Obsah:

Univerzální NearBot: 11 kroků (s obrázky)
Univerzální NearBot: 11 kroků (s obrázky)

Video: Univerzální NearBot: 11 kroků (s obrázky)

Video: Univerzální NearBot: 11 kroků (s obrázky)
Video: Univerzální voják - klip (10/17) - Máte na to všechno dost peněz? 2024, Červenec
Anonim
Image
Image

Tento návod vám ukáže, jak vytvořit univerzální spoušť robota, která dokáže pohnout něčím, jako je tlačítko, přepínač nebo vytáčení, na různých zařízeních, když jste (s telefonem nebo majákem v kapse) poblíž. To znamená, že se může automaticky odemknout a znovu zamknout dveřní západka, když * jen vy * procházíte kolem, zavřete zavlažovací ventil, abyste mohli projít vodou bez úhony jako jakýsi příměstský Mojžíš, nižší hlasitost reproduktoru, když jste v garáži pásmová místnost, spusťte iPod, který hraje dramatickou vstupní melodii, nebo řekněte vtip (tweet Jaden Smith?), když jste v místnosti, nebo pozastavte film, když vstanete a použijete toaletu.

Tento projekt nevyžaduje pájení ani speciální nástroje

Pokud vás tento návod dostatečně baví, zvažte prosím jeho hlasování v soutěži Robotika 2017!

Krok 1: Získejte hardwarové součásti

Budete potřebovat:

  • NodeMCU v2 nebo V3
  • Servo motor Micro 9G přibližně za 1,40 USD doprava zdarma na eBay nebo Aliexpress
  • Propojovací vodiče Arduino Žena - Muž.
  • Plášť pro NearBot - použil jsem šrot z plastové krabičky, který jsem našel.
  • Datový kabel Micro USB (sešrotované části telefonu)
  • USB napájecí zdroj (šrotová nabíječka telefonu)

Pokud nemáte smartphone s funkcí mobilního hotspotu, budete také potřebovat:

  • Modul ESP-01 asi 2,50 USD doprava zdarma na DealExtreme, GearBest, Ebay nebo Aliexpress.
  • 1 Spárujte baterie AAA
  • duální držák baterie AAA s vypínačem

Krok 2: Rychlý start

Tento krok obsahuje stručnou příručku pro případ, že by se vám něco takového líbilo. Zbytek tohoto pokynu jde krok za krokem a přidává podrobnější informace

// Nákupní seznam: // Mikrokontrolér NodeMCU V3 (Lolin) ESP8266

// Servo motor SG90 9G

// USB power banka nebo USB nástěnný adaptér.

// Datový/nabíjecí kabel Micro USB

// Propojovací vodiče Arduino typu male -female

//NEŽ ZAČNEŠ:

// 1. Pokud jste si ještě nestáhli Arduino IDE, získejte jej zdarma (darování volitelné) na:

// 2. otevřete Arduino IDE (pokud to ještě nečtete v Arduino IDE!)…

// 3. Přejděte na soubory a klikněte na předvolbu v Arduino IDE…

// 4. zkopírujte níže uvedený kód do Správce dalších desek: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. kliknutím na OK zavřete kartu předvoleb …

// 6. Přejděte na nástroje a nástěnku a poté vyberte správce tabule …

// 7. Přejděte na komunitu esp8266 by esp8266 a nainstalujte software pro Arduino…

// 8. Pokud se vám nedaří přimět NodeMCU ke komunikaci s vaším Arduino IDE, bude možná nutné stáhnout a nainstalovat ovladač CH340:

// Jakmile jsou všechny výše uvedené procesy dokončeny, čteme, abychom naprogramovali náš mikrořadič esp8266 NodeMCU s Arduino IDE.

//9.vyberte NodeMCU V1.0 ESP12E z nabídky desky /

/10. Vyberte port COM, který používáte.

// 11. vyberte kód (stáhněte si z www.makersa.ga) a klikněte na nahrát. /

/12. Zapojte servo do NodeMCU pomocí propojovacích vodičů. D0 k signálu, země k zemi, +VCC k VO nebo 3V. /

/13. Seřiďte houkačku servo pomocí šroubováku.

// 14. Pomocí kódu upravte maximální a minimální stupeň pohybu.

// 15. Při aktualizaci kódu znovu nahrajte na NodeMCU.

// Může být důležité zjistit, jakou verzi NodeMCU máte. Zde je srovnávací průvodce:

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 pinoutu NodeMCU v3:

// Vysvětlení souprav:

// Vyrobeno z mikrokontroléru NodeMCU ESP8266, baterie nebo napájecího zdroje USB a serva SG90

// Druhý nemodifikovaný modul esp8266 můžete použít jako AP majáku hotspot místo použití smartphonu, není nutné žádné programování.

Krok 3: Získejte části softwaru

Nejprve si budete muset stáhnout zdarma Arduino IDE

V době, kdy to píšu, Arduino Web Editor nefunguje s NodeMCU, takže místo toho budete muset nainstalovat IDE do počítače.

Budete také muset stáhnout soubory NearBot z www. MakerSa.ga - odkaz na stažení souboru pro tento projekt je uveden na tomto webu.

Krok 4: Nainstalujte ovladače a profily desek

Několik užitečných informací
Několik užitečných informací

Uvnitř zipu NearBot, který jste stáhli a rozbalili, budou ovladače pro modul NodeMCU. Nainstalujte si je do počítače.

Pokud vám tyto nefungují, můžete ovladače CH340G najít na wemos.cc/downloads

Váš NodeMCU možná nepoužívá čip CH340G, takže možná budete muset okomentovat ovladač, který hledáte, a já vám odpovím odkazem ke stažení pro tento ovladač.

  1. Dále otevřete Arduino IDE a v Arduino IDE přejděte na File PreferencesAdditional Boards Manager.
  2. Vložte tam následující kód:
  3. Kliknutím na OK zavřete kartu předvoleb.
  4. Přejděte na nástroje a deska a poté vyberte správce tabule.
  5. Přejděte na „esp8266 by esp8266 community“a nainstalujte software pro Arduino.

Jakmile budou všechny výše uvedené procesy dokončeny, jsme připraveni naprogramovat náš mikrokontrolér esp8266 NodeMCU pomocí Arduino IDE!

Krok 5: Několik užitečných informací

Několik užitečných informací
Několik užitečných informací
Několik užitečných informací
Několik užitečných informací

Může být užitečné zjistit, jakou verzi NodeMCU máte. Zde je průvodce porovnáním:

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

Každá verze má jiné uspořádání kolíků. Koupil jsem verzi v3 (Lolin), protože má 5V výstupní kolíky pro napájení servomotoru. Nakonec jsem místo toho místo toho použil 3pinové napájecí kolíky z důvodu bezpečnosti (I/O piny NodeMCU nejsou tolerantní k 5V), ale možná budete chtít použít 5V piny, protože technicky jsou tyto druhy servomotorů specifikovány pro výkon 4,5 až 5 voltů.

Krok 6: Načtěte kód na NodeMCU

Načtěte kód na NodeMCU
Načtěte kód na NodeMCU
Načtěte kód na NodeMCU
Načtěte kód na NodeMCU
  1. Připojte NodeMCU k počítači pomocí jakéhokoli kabelu micro USB.
  2. Otevřete Arduino IDE a v části „Desky“vyberte „ESP12E“a port COM pro NodeMCU.
  3. V IDE přejděte na FileOpen a procházejte složku zip, která byla dříve stažena z makersa.ga, a otevřete skicu Arduina s názvem „ProximityActuator013017DonovanMagryta.ino“
  4. Poté upravte řádek kódu, který toto obsahuje, a přidejte název a heslo svého WiFi majáku. Více o tom níže! Například:

const char* ssid = "mywifi"; // Vložte název vašeho hotspotu do uvozovek

const char* heslo = "mywifipassword"; // Vložte heslo hotspotu do uvozovek

Poté klikněte na „nahrát“, aby se kód přenesl na desku NodeMCU.

NearBot používá kapesní WiFi maják k vaší identifikaci a odhad vzdálenosti. Stejně jako bezdotykové klíče mají některá novější auta odemykání dveří do auta, když se blížíte.

Svůj mobilní hotspot ve smartphonu můžete použít jako maják nebo alternativně můžete použít levný WiFi modul ESP-01 napájený dvojicí baterií AAA nebo malou lithiovou 3,7v baterií. Není třeba programovat ESP-01, když je zapnutý, je ve výchozím nastavení skladem v režimu hotspot. Schéma zapojení je znázorněno v tomto kroku.

Krok 7: Připojte servo k NodeMCU

K zapojení serva do NodeMCU V3 budete potřebovat propojovací vodiče.

Schéma zapojení je jednoduché.

Pin D0 k signálu ve vedení (nejsvětlejší barevný vodič na servu. Obvykle žlutý nebo bílý.)

Pin 3V nebo pin VO na 5V vstupní vodič (druhý nejsvětlejší barevný vodič na servu, obvykle červený nebo oranžový.)

Připojte GND k zemnícímu vodiči (nejtmavší vodič na servu, obvykle hnědý nebo černý.)

Krok 8: Jemně dolaďte NearBot

Kód převádí sílu signálu na odhad vzdálenosti. Funguje spolehlivě na reakční vzdálenosti menší než 2 metry nebo 6,5 stopy. Protože se jedná o přímý převod, není na delší vzdálenosti než 3 metry tak hladký, jak by to potenciálně mohlo být u lepší metody výpočtu. Více o tom později.

Možná budete chtít upravit, kde je umístěn servo roh (malá bílá paže, která se pohybuje). To se provádí jednoduchým odšroubováním ramene serva pomocí šroubováku a jeho opětovným umístěním.

Další částí je úprava maximálního a minimálního stupně pohybu pomocí kódu.

To lze provést změnou čísel obsažených v řádcích, které vypadají takto:

myservo.write (10); // posune rameno serva o 10 stupňů

Citlivost síly signálu můžete také upravit změnou záporných čísel v řádcích, které vypadají takto:

if (rssi> -30 && rssi <-5) {// Pokud je síla signálu silnější než -30 a slabší než -5. pak proveďte následující…

Krok 9: Jak to funguje

  1. Nearbot se nejprve připojí k hotspotu předem, když se uživatel přiblíží.
  2. Skenuje RSSI (síla přijímaného signálu) a převádí jej na přibližnou vzdálenost.
  3. Když je vzdálenost v uvedeném rozsahu, přesune rameno servomotoru do polohy 1.
  4. Jinak se servomotor přesune do polohy 2.

Když jsem to testoval, toto ladění RSSI (-50) přesune servo do polohy 1, zatímco vzdálenost je 0 až 1,5 metru s majákem ESP-01 nebo hotspotem telefonu v kapse.

RSSI obvykle spadá do rozsahu -90 až -20, přičemž -20 je nejsilnější signál.

Pokud otevřete Arduino IDE Serial Monitor, zatímco je NearBot zapojen do počítače, zobrazí sílu signálu a spouštěcí body v reálném čase, abyste měli praktickou zpětnou vazbu.

Zde je kompletní kód:

//NEŽ ZAČNEŠ:

// 1. Pokud jste si ještě nestáhli Arduino IDE, získejte jej zdarma (darování volitelné) na: https://www.arduino.cc/en/Main/Software // 2. otevřete Arduino IDE (pokud to ještě nečtete v Arduino IDE!) … // 3. Přejděte na soubory a klikněte na předvolbu v Arduino IDE … // 4. zkopírujte níže uvedený odkaz do Správce dalších desek: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kliknutím na OK zavřete kartu předvoleb … // 6. Přejděte na nástroje a nástěnku a poté vyberte správce tabule … // 7. Přejděte na komunitu esp8266 by esp8266 a nainstalujte software pro Arduino… // 8. Pokud se vám nedaří přimět NodeMCU ke komunikaci s vaším Arduino IDE, bude možná nutné stáhnout a nainstalovat ovladač CH340: https://www.arduino.cc/en/Main/Software // Jakmile bude dokončen celý výše uvedený proces přečtěte si a naprogramujte náš mikrořadič esp8266 NodeMCU s Arduino IDE. Možná budete chtít zjistit, jakou verzi NodeMCU máte. Zde je srovnávací průvodce: https://www.arduino.cc/en/Main/Software // Vyrobeno z mikrokontroléru NodeMCU ESP8266, baterie nebo napájecího zdroje USB a servo SG90 // Jako maják můžete použít 2. neupravený modul esp8266 hotspot AP místo použití smartphonu. // Okruh NearBot: // D0 pin na signální vodič servo (nejsvětlejší barevný vodič) // 3V pin na servo 5v vodič (střední vodič) (spojeno paralelně s USB kabelem nebo pinem VO na NodeMCU, pokud máte V3. / /USB napájení k USB konektoru na NodeMCU // GND pin na Servo Ground Wire (nejtmavší barevný vodič) // Řádky poznámek začínají dvěma lomítky a jsou počítači ignorovány. Poznámky jsou jen pro nás lidi! #Include #include // Může být potřeba pro sériový tisk. #Include // Servo knihovna #define D0 16 // Definuje piny, aby bylo přiřazení pinů jednodušší. #Define D1 5 // I2C Bus SCL (hodiny) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Stejné jako "LED_BUILTIN", ale převrácená 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 nebo další modul ESP8266 nastavený na režim AP hotspot: konst ar* ssid = ""; // Vložte název vašeho hotspotu do uvozovek const char* heslo = ""; // Heslo hotspotu vložte do uvozovek void setup () {Serial.begin (115200); // nastavuje sériovou přenosovou rychlost, aby mikrokontrolér mohl komunikovat se sériovým tiskovým rozhraním v Arduino IDE - místo toho jej možná budete muset změnit na 9600! myservo.attach (D0); // připojí servo na pinu D0 aka GPIO16 k objektu serva - Více viz: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // přesune rameno serva na otočení o 10 stupňů Serial.println ("Locked"); // vyvede ze sériového monitoru slovo „Locked“WiFi.mode (WIFI_STA); // Nastaví wifi na režim Station WiFi.begin (ssid, heslo); // Připojuje se k majáku hotspot} void loop () {// Smyčka běží znovu a znovu rychle, pokud (WiFi.status ()! = WL_CONNECTED) {// Pokud wifi není připojeno, proveďte následující … Serial.println („Nelze získat připojení Wi -Fi“); myservo.write (10); // Posune rameno serva na 10 stupňů Serial.println ("Zamčeno"); } else {// Pokud je připojeno WiFi, proveďte následující… long rssi = WiFi. RSSI (); // Vytvoří proměnnou s názvem rssi a přiřadí ji funkci, která vrací čtení síly signálu majáku hotspotu Serial.print (rssi); // vydá čtení rssi na sériový monitor, pokud (rssi> -50 && rssi <-5) {// Pokud je síla signálu silnější než -50 a slabší než -5. potom proveďte následující … myservo.write (170); // Otočte rameno serva na 170 stupňů Serial.println ("Odemčeno"); } else {// Pokud nejsou splněny výše uvedené podmínky, proveďte následující … myservo.write (10); // Otočí rameno serva zpět o 10 stupňů. Serial.println ("Zamčeno"); }}}

Krok 10: Měli byste vědět…

Prohlášení:

Aktuální iterace kódu NearBot funguje spolehlivě na vzdálenosti menší než 2 metry nebo 6,5 stopy. Kromě toho je méně přesný, ale stále funguje.

To lze opravit, ale v tuto chvíli nevím, jak to udělat. Byl bych rád, kdyby se mnou někdo pracoval, abych mohl aktualizovat tento návod pomocí přesnější metody výpočtu vzdálenosti!

Tyto odkazy mohou být užitečné: YouTuber CNLohr vyvinul firmware ESP8266 pro snímání vzdálenosti a polohy s omezeným úspěchem:

Espressif vyvinul funkci detekce vzdálenosti Time of Flight, která by fungovala s Arduino IDE pro ESP8266, ale nikdy ji nevydala:

Polohovací systém SubPos využívá moduly ESP8266 a Path Loss Calculation, což nevím, jak implementovat v Arduino IDE:

Našel jsem příklad v jazyce Java, ale nevím, jak replikovat toto je Arduino IDE:

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

Krok 11: To je vše

Pokud si vytvoříte vlastní NearBot, napište do komentářů níže své „vyrobil jsem to“!

Pokud máte nějaké další nápady, k čemu použít platformu Versatile NearBot, napište své nápady! Mohla by to být skvělá inspirace pro ostatní uživatele instruktabilní!

Pokud vás tento návod baví, zvažte prosím hlasování pro tento návod v soutěžích!

Doporučuje: