Obsah:

Všestranný systém NearBot: 11 krokov (s obrázkami)
Všestranný systém NearBot: 11 krokov (s obrázkami)

Video: Všestranný systém NearBot: 11 krokov (s obrázkami)

Video: Všestranný systém NearBot: 11 krokov (s obrázkami)
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Júl
Anonim
Image
Image

Tento návod vám ukáže, ako vytvoriť všestranný spúšťač robota, ktorý dokáže pohybovať niečím, ako je tlačidlo, vypínač alebo vytáčanie, na rôznych zariadeniach, keď ste (s telefónom alebo majákom vo vrecku) v blízkosti. To znamená, že by sa mohol automaticky odomknúť a znova zamknúť zámok dverí, keď * len vy * prechádzate, zatvorte postrekovací ventil, aby ste mohli prejsť vodou bez ujmy ako akýsi prímestský Mojžiš, znížte hlasitosť reproduktora, keď ste v garáži pásmová izba, spustite prehrávač iPod, ktorý hrá dramatickú vstupnú melódiu, alebo povedzte vtip (tweet Jadena Smitha?), keď ste v miestnosti, alebo pozastavte film, keď vstanete a použijete toaletu.

Tento projekt nevyžaduje spájkovanie ani špeciálne nástroje

Ak vás tieto pokyny dostatočne bavia, zvážte prosím hlasovanie za tieto pokyny v súťaži Robotika 2017!

Krok 1: Získajte hardvérové diely

Budete potrebovať:

  • NodeMCU v2 alebo V3
  • Servo motor Micro 9G asi za 1,40 USD bezplatná doprava na eBay alebo Aliexpress
  • Prepojovacie vodiče Arduino, žena - muž.
  • Plášť pre NearBot - použil som šrotový plastový box, ktorý som našiel.
  • Dátový kábel micro USB (zlikvidované časti telefónu)
  • USB zdroj napájania (šrotová nabíjačka telefónu)

Ak nemáte smartphone s funkciou mobilného hotspotu, budete tiež potrebovať:

  • Modul ESP-01 asi 2,50 USD bezplatná doprava na DealExtreme, GearBest, Ebay alebo Aliexpress.
  • 1 Pár batérií AAA
  • duálny držiak batérie AAA s vypínačom

Krok 2: Rýchly štart

Tento krok obsahuje stručného sprievodcu pre prípad, že sa vám niečo také páči. Zvyšok tohto návodu ide krok za krokom a pridáva ďalšie podrobné informácie

// Nákupný zoznam: // Mikrokontrolér NodeMCU V3 (Lolin) ESP8266

// Servomotor SG90 9G

// USB power banka alebo USB nástenný adaptér.

// Dátový/nabíjací kábel Micro USB

// Prepojovacie vodiče Arduino mužského až ženského typu

//PREDTÝM AKO ZAČNEŠ:

// 1. Ak ste si ešte nestiahli Arduino IDE, získajte ho zadarmo (dobrovoľné darovanie) na:

// 2. otvorte Arduino IDE (ak to ešte nečítate v Arduino IDE!) …

// 3. Prejdite na súbory a kliknite na predvoľby v Arduino IDE …

// 4. skopírujte nižšie uvedený kód do Správcu dodatočných dosiek: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. kliknutím na tlačidlo OK zatvorte kartu predvolieb …

// 6. Prejdite na nástroje a nástenku a potom vyberte správcu rady …

// 7. Prejdite na komunitu esp8266 od komunity esp8266 a nainštalujte softvér pre Arduino…

// 8. Ak sa vám nedarí komunikovať s NodeMCU s IDE Arduino, bude možno potrebné stiahnuť a nainštalovať ovládač CH340:

// Akonáhle budú všetky vyššie uvedené procesy dokončené, budeme čítať, aby sme naprogramovali náš mikrokontrolér esp8266 NodeMCU s Arduino IDE.

//9.vyber NodeMCU V1.0 ESP12E z ponuky dosky /

/10. Vyberte port COM, ktorý používate.

// 11. vyberte kód (stiahnite si ho z www.makersa.ga) a kliknite na nahrať. /

/12. Pripojte servo k NodeMCU pomocou prepojovacích káblov. D0 na signál, uzemnenie na zem, +VCC na VO alebo 3V. /

/13. Nastavte servo klaksón pomocou skrutkovača.

// 14. Pomocou kódu upravte maximálny a minimálny stupeň pohybu.

// 15. Znovu nahrajte na NodeMCU vždy, keď sa kód aktualizuje.

// Môže byť pre vás dôležité zistiť, akú verziu NodeMCU máte. Tu je návod na porovnanie:

frightanic.com/iot/comparison-of-esp8266-no… // // Pinout diagram NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 diagram pinout: https://frightanic.com/iot/comparison-of-esp8266-no… // // diagram pinov NodeMCU v3:

// Vysvetlenie súprav:

// Vyrobené z mikrokontroléra NodeMCU ESP8266, batérie alebo napájania USB a serva SG90

// 2. nemodifikovaný modul esp8266 môžete použiť ako AP prístupového bodu hotspotu namiesto použitia smartfónu, nie je potrebné žiadne programovanie.

Krok 3: Získajte softvérové časti

Najprv si budete musieť stiahnuť bezplatné Arduino IDE

V čase, keď to píšem, Arduino Web Editor nefunguje s NodeMCU, takže si namiesto toho budete musieť nainštalovať IDE do počítača.

Budete tiež musieť stiahnuť súbory NearBot z www. MakerSa.ga - Odkaz na stiahnutie súboru pre tento projekt je uvedený na tomto webe.

Krok 4: Nainštalujte ovládače a profily dosky

Niekoľko užitočných informácií
Niekoľko užitočných informácií

Vo vnútri zipu NearBot, ktorý ste stiahli a rozbalili, budú ovládače pre modul NodeMCU. Nainštalujte si ich do počítača.

Ak vám to nefunguje, ovládače CH340G môžete nájsť na wemos.cc/downloads

Váš NodeMCU nemusí používať čip CH340G, takže sa budete musieť vyjadriť k ovládaču, ktorý hľadáte, a ja vám odpoviem odkazom na stiahnutie tohto ovládača.

  1. Potom otvorte Arduino IDE a v Arduino IDE prejdite na File PreferencesAdditional Boards Manager v Arduino IDE.
  2. Prilepte tam nasledujúci kód:
  3. Kliknutím na tlačidlo OK zatvorte kartu predvolieb.
  4. Prejdite na nástroje a panel a potom vyberte správcu rady.
  5. Prejdite na „esp8266 by esp8266 community“a nainštalujte softvér pre Arduino.

Akonáhle sú všetky vyššie uvedené procesy dokončené, sme pripravení naprogramovať náš mikrokontrolér esp8266 NodeMCU s Arduino IDE!

Krok 5: Niektoré užitočné informácie

Niekoľko užitočných informácií
Niekoľko užitočných informácií
Niekoľko užitočných informácií
Niekoľko užitočných informácií

Možno vám príde vhod zistiť, akú verziu NodeMCU máte. Tu je návod na porovnanie:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Každá verzia má iné usporiadanie pinov. Kúpil som si verziu v3 (Lolin), pretože má výstupné kolíky 5V na napájanie servomotora. Nakoniec som namiesto toho namiesto toho kvôli bezpečnosti použil 3 -voltové napájacie kolíky (I/O kolíky NodeMCU netolerujú 5V), ale možno budete chcieť použiť 5V -kolíky, pretože technicky sú tieto druhy servomotorov určené na 4,5 až 5 -voltové napájanie.

Krok 6: Načítajte kód na NodeMCU

Vložte kód na NodeMCU
Vložte kód na NodeMCU
Vložte kód na NodeMCU
Vložte kód na NodeMCU
  1. Pripojte NodeMCU k počítaču pomocou akéhokoľvek kábla micro USB.
  2. Otvorte Arduino IDE a v časti „Dosky“vyberte „ESP12E“a port COM pre NodeMCU.
  3. V IDE otvorte FileOpen a prezrite si priečinok zip, ktorý ste predtým stiahli z makersa.ga, a otvorte skicu Arduina s názvom „ProximityActuator013017DonovanMagryta.ino“
  4. Potom upravte riadok kódu, ktorý ho obsahuje, a zadajte názov a heslo vášho majáku WiFi. Viac o tom nižšie! Napríklad:

const char* ssid = "mywifi"; // Vložte názov hotspotu do úvodzoviek

const char* heslo = "mywifipassword"; // Heslo do hotspotu vložte do úvodzoviek

Potom kliknite na „nahrať“, aby sa kód vložil na dosku NodeMCU.

NearBot používa vreckový WiFi maják na vašu identifikáciu a odhad vzdialenosti. Rovnako ako bezdotykové kľúče majú niektoré novšie autá odomknutie dverí do auta, keď sa k nim priblížite.

Mobilný hotspot smartfónu môžete použiť ako maják alebo alternatívne použiť lacný WiFi modul ESP-01 napájaný dvojicou batérií AAA alebo malou lítiovou batériou 3,7V. ESP-01 nie je potrebné programovať, keď je zapnutý, je predvolene k dispozícii v režime hotspotu. Schéma zapojenia je zobrazená v tomto kroku.

Krok 7: Pripojte servo k NodeMCU

Na zapojenie serva do NodeMCU V3 budete potrebovať prepojovacie vodiče.

Schéma zapojenia je jednoduchá.

Kolík D0 k signálu vo vedení (najľahší farebný vodič na servo. Zvyčajne žltý alebo biely.)

Pripojte 3V alebo pin VO k 5V vstupnému vodiču (druhý najľahší farebný vodič na servo, zvyčajne červený alebo oranžový.)

Pripojte GND k uzemňovaciemu vodiču (najtmavší vodič na servo, zvyčajne hnedý alebo čierny.)

Krok 8: Jemne dolaďte NearBot

Kód prevádza silu signálu na odhad vzdialenosti. Funguje spoľahlivo na reakčné vzdialenosti menšie ako 2 metre alebo 6,5 stopy. Pretože ide o priamu konverziu, nie je taká plynulá na dlhšie vzdialenosti ako 3 metre, ako by to potenciálne mohlo byť pri lepšej metóde výpočtu. Viac o tom neskôr.

Možno budete chcieť nastaviť, kde je umiestnený servo roh (malé biele rameno, ktoré sa pohybuje). To sa dosiahne jednoduchým odskrutkovaním ramena serva pomocou skrutkovača a jeho opätovným umiestnením.

Ďalšou časťou je úprava maximálneho a minimálneho stupňa pohybu pomocou kódu.

To sa dá dosiahnuť zmenou čísel uvedených v riadkoch, ktoré vyzerajú takto:

myservo.write (10); // posúva rameno serva o 10 stupňov

Citlivosť sily signálu môžete tiež upraviť zmenou záporných čísel v riadkoch, ktoré vyzerajú takto:

if (rssi> -30 && rssi <-5) {// Ak je sila signálu silnejšia ako -30 a slabšia ako -5. potom urobte nasledujúce …

Krok 9: Ako to funguje

  1. Zariadenie NearBot sa najskôr pripojí k hotspotu vopred, keď sa k nemu blíži používateľ.
  2. Skenuje RSSI (sila prijatého signálu) a prevádza ho na približnú vzdialenosť.
  3. Kým je vzdialenosť v špecifikovanom rozsahu, presunie rameno servomotora do polohy 1.
  4. V opačnom prípade sa servomotor presunie do polohy 2.

Keď som to testoval, toto ladenie RSSI (-50) presunie servo do polohy 1, zatiaľ čo vzdialenosť je 0 až 1,5 metra s majákom ESP-01 alebo hotspotom vo vrecku vo vrecku.

RSSI sa zvyčajne pohybuje v rozmedzí od -90 do -20, pričom -20 je najsilnejšia sila signálu.

Ak otvoríte sériový monitor Arduino IDE, keď je NearBot zapojený do počítača, zobrazí v reálnom čase silu signálu a spúšťacie body, aby ste mali praktickú spätnú väzbu.

Tu je kompletný kód:

//PREDTÝM AKO ZAČNEŠ:

// 1. Ak ste si ešte nestiahli Arduino IDE, získajte ho zadarmo (dobrovoľné darovanie) na: https://www.arduino.cc/en/Main/Software // 2. otvorte Arduino IDE (ak to ešte nečítate v Arduino IDE!) … // 3. Prejdite na súbory a kliknite na predvoľby v Arduino IDE … // 4. skopírujte nižšie uvedený odkaz do Správcu dodatočných dosiek: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kliknutím na tlačidlo OK zatvorte kartu predvolieb … // 6. Prejdite na nástroje a nástenku a potom vyberte správcu rady … // 7. Prejdite na komunitu esp8266 by esp8266 a nainštalujte softvér pre Arduino … // 8. Ak sa vám nedarí dosiahnuť, aby NodeMCU komunikoval s vašim Arduino IDE, bude možno potrebné stiahnuť a nainštalovať ovládač CH340: https://www.arduino.cc/en/Main/Software // Po dokončení vyššie uvedeného postupu sme prečítajte si a naprogramujte náš mikrokontrolér esp8266 NodeMCU s Arduino IDE. Možno budete chcieť zistiť, akú verziu NodeMCU máte. Tu je návod na porovnanie: https://www.arduino.cc/en/Main/Software // Vyrobené z mikrokontroléra NodeMCU ESP8266, batérie alebo napájania USB a serva SG90 // Ako maják môžete použiť 2. neupravený modul esp8266 hotspot AP namiesto použitia smartfónu. // Obvod NearBot: // D0 pin na signálny vodič (najľahší farebný vodič) // 3V pin na servo 5V vodič (stredný vodič) (spojené paralelne s USB káblom alebo VO pinom na NodeMCU, ak máte V3. / /Zásuvka USB na USB na NodeMCU // GND pin na servo uzemňovací vodič (najtmavší farebný vodič) // Riadky na poznámky začínajú dvoma lomkami a počítače ich ignorujú. Poznámky sú len pre nás ľudí! #Include #include // Môže byť potrebný pre sériovú tlač. #Include // Servo knižnica #define D0 16 // Definuje piny na uľahčenie priradenia pinov. #Define D1 5 // I2C Bus SCL (hodiny) #define D2 4 // I2C Bus SDA (údaje) #define D3 0 #define D4 2 // Rovnaké ako „LED_BUILTIN“, ale invertovaná logika #define D5 14 // SPI Bus SCK (hodiny) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Serial console) #define D10 1 // TX0 (Serial console) Servo myservo; // Create a servo object named myservo // Phone alebo ďalší modul ESP8266 nastavený na režim AP hotspotu: konšt ar* ssid = ""; // Vložte názov vášho hotspotu do úvodzoviek const char* heslo = ""; // Heslo hotspotu vložte do úvodzoviek void setup () {Serial.begin (115200); // nastavuje sériovú prenosovú rýchlosť, aby mikrokontrolér mohol komunikovať so sériovým tlačovým rozhraním v Arduino IDE - namiesto toho ho možno budete musieť zmeniť na 9600! myservo.attach (D0); // pripája servo na pin D0 alias GPIO16 k objektu serva - Viac informácií nájdete na: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // posunie rameno serva o 10 stupňov rotácie Serial.println ("Zamknuté"); // vyvedie zo sériového monitora slovo „Locked“WiFi.mode (WIFI_STA); // Nastaví wifi na režim Station WiFi.begin (ssid, heslo); // Pripojí sa k majáku hotspot} void loop () {// Smyčka beží znova a znova rýchlo, ak (WiFi.status ()! = WL_CONNECTED) {// Ak wifi NIE JE pripojené, urobte nasledovné … Serial.println („Nepodarilo sa získať wifi pripojenie“); myservo.write (10); // Posun ramena serva na 10 stupnov Serial.println ("Zamknute"); } else {// Ak je pripojené WiFi, urobte nasledujúce… long rssi = WiFi. RSSI (); // Vytvorí premennú s názvom rssi a priradí ju k funkcii, ktorá vracia čítanie sily signálu majáku hotspotu Serial.print (rssi); // vydá čítanie rssi na sériový monitor, ak (rssi> -50 && rssi <-5) {// Ak je sila signálu silnejšia ako -50 a slabšia ako -5. potom urobte nasledujúce … myservo.write (170); // Otočenie ramena serva na 170 stupňov Serial.println („Odblokované“); } else {// Ak vyššie uvedené podmienky nie sú splnené, urobte nasledovné … myservo.write (10); // Otočí rameno serva späť o 10 stupňov. Serial.println ("Zamknuté"); }}}

Krok 10: Mali by ste vedieť…

Zrieknutie sa zodpovednosti:

Aktuálna iterácia kódu NearBot funguje spoľahlivo na vzdialenosti menšie ako 2 metre alebo 6,5 stopy. Okrem toho je už menej presný, ale stále funguje.

Dá sa to napraviť, ale momentálne neviem, ako to urobiť. Bol by som rád, keby so mnou niekto pracoval, aby som mohol aktualizovať tieto pokyny presnejšou metódou výpočtu vzdialenosti!

Tieto odkazy môžu byť užitočné: YouTuber CNLohr vyvinul pre ESP8266 firmvér na snímanie vzdialenosti a polohy s obmedzeným úspechom:

Spoločnosť Espressif vyvinula funkciu detekcie vzdialenosti Time of Flight, ktorá by fungovala s Arduino IDE pre ESP8266, ale nikdy ju neuvoľnila:

Polohovací systém SubPos používa moduly ESP8266 a Path Loss Calculation, čo neviem implementovať v Arduino IDE:

Našiel som príklad v jazyku Java, ale neviem, ako replikovať toto je Arduino IDE:

dvojnásobná vzdialenosť = Math.pow (10,0, ((((double) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvencia)))/(20*mu));

Krok 11: To je všetko

Ak si vyrábate svoj vlastný NearBot, pošlite do komentárov nižšie svoje „Zvládol som to“!

Ak máte ďalšie nápady, na čo použiť platformu Versatile NearBot, napíšte svoje nápady! Mohla by to byť veľká inšpirácia pre ostatných používateľov inštrukcií!

Ak sa vám tento návod páči, zvážte hlasovanie za tento návod v súťažiach!

Odporúča: