Cuprins:

NearBot versatil: 11 pași (cu imagini)
NearBot versatil: 11 pași (cu imagini)

Video: NearBot versatil: 11 pași (cu imagini)

Video: NearBot versatil: 11 pași (cu imagini)
Video: 14 Actually Useful Tips for BARD 2024, Noiembrie
Anonim
Image
Image

Această instrucțiune vă va arăta cum să construiți un declanșator robot versatil care poate muta ceva cum ar fi un buton, un comutator sau un apel pe diferite dispozitive atunci când sunteți în apropiere (cu telefonul sau un far în buzunar). Acest lucru înseamnă că ar putea debloca și bloca automat un zăvor de ușă în timp ce * doar dvs. * treceți, închideți o supapă de aspersoare, astfel încât să puteți trece prin apă nevătămat ca un fel de Moise suburban, volumul redus al difuzoarelor în timp ce vă aflați în garaj sala de trupă, declanșează un iPod care redă o melodie dramatică de intrare sau spune o glumă (tweet-ul lui Jaden Smith?) în timp ce ești în cameră sau întrerupe un film când te ridici pentru a folosi toaleta.

Acest proiect nu necesită lipire sau instrumente speciale

Dacă vă place suficient acest instructable, vă rugăm să luați în considerare votarea pentru acest instructable în concursul de robotică 2017!

Pasul 1: Achiziționați componentele hardware

Vei avea nevoie:

  • NodeMCU v2 sau V3
  • Servomotor Micro 9G aproximativ 1,40 USD USD transport gratuit pe eBay sau Aliexpress
  • Jumperul Arduino sârmă de la femeie la bărbat.
  • O carcasă pentru NearBot - am folosit o cutie de resturi de plastic pe care am găsit-o.
  • Cablu de date micro USB (piese de telefon uzate)
  • Sursă de alimentare USB (încărcător de fier vechi)

Dacă nu aveți un smartphone cu o funcție hotspot mobil, veți avea nevoie și de:

  • Modul ESP-01 aproximativ 2,50 USD USD livrare gratuită pe DealExtreme, GearBest, Ebay sau Aliexpress.
  • 1 pereche de baterii AAA
  • suport dual baterie AAA cu comutator

Pasul 2: Pornire rapidă

Acest pas conține un ghid de pornire rapidă în cazul în care vă plac acest gen de lucruri. Restul acestui instructable merge pas cu pas și adaugă informații mai detaliate

// Lista de cumpărături: // NodeMCU V3 (Lolin) microcontroler ESP8266

// Servomotor SG90 9G

// USB Power Bank sau adaptor de perete USB.

// Cablu micro USB de date / încărcare

// Firele jumper Arduino de la mascul la feminin

//INAINTE SA INCEPI:

// 1. Dacă nu ați descărcat deja ID-ul Arduino, obțineți-l gratuit (donație opțională) la:

// 2. deschideți ID-ul Arduino (dacă nu citiți deja acest lucru în ID-ul Arduino!) …

// 3. Mergeți la fișiere și faceți clic pe preferință în ID-ul Arduino …

// 4. copiați codul de mai jos în Managerul de panouri suplimentare: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. faceți clic pe OK pentru a închide fila de preferințe …

// 6. Mergeți la instrumente și bord, apoi selectați managerul de bord …

// 7. Navigați la comunitatea esp8266 de către esp8266 și instalați software-ul pentru Arduino …

// 8. Este posibil să trebuiască să descărcați și să instalați driverul CH340 dacă nu reușiți să discutați cu NodeMCU cu ID-ul dvs. Arduino:

// Odată ce a fost finalizat tot procesul de mai sus, suntem citiți pentru a programa microcontrolerul nostru N8MCU esp8266 cu IDE Arduino.

//9.selectați NodeMCU V1.0 ESP12E din meniul bordului /

/ 10. Selectați portul COM pe care îl utilizați.

// 11. selectați codul (descărcați de pe www.makersa.ga) și faceți clic pe încărcare. /

/ 12. Conectați servo-ul la NodeMCU folosind fire jumper. D0 la semnal, masă la masă, + VCC la VO sau 3V. /

/ 13. Reglați claxonul servo cu o șurubelniță.

// 14. Reglați gradele de mișcare maxime și minime folosind codul.

// 15. Reîncărcați pe NodeMCU ori de câte ori codul este actualizat.

// S-ar putea să fie important să vă dați seama ce versiune de NodeMCU aveți. Iată un ghid de comparație:

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

// Explicația platformelor:

// Fabricat din microcontroler NodeMCU ESP8266, baterie sau sursă de alimentare USB și SG90 Servo

// Puteți utiliza un al doilea modul esp8266 nemodificat ca punct de acces hotspot far în loc să utilizați un smartphone, nu este necesară programarea.

Pasul 3: Achiziționați părțile software

Mai întâi va trebui să descărcați IDE-ul gratuit Arduino

Editorul web Arduino nu funcționează cu NodeMCU în momentul în care scriu acest lucru, deci va trebui să instalați IDE-ul pe computer.

De asemenea, va trebui să preluați fișierele NearBot de pe www. MakerSa.ga - Link-ul de descărcare a fișierelor pentru acest proiect este listat pe acel site.

Pasul 4: Instalați drivere și profiluri de placă

Câteva informații utile
Câteva informații utile

În interiorul fișierului zip NearBot pe care l-ați descărcat și dezarhivat vor fi driverele pentru modulul NodeMCU. Instalați-le pe computer.

Dacă acestea nu funcționează pentru dvs., este posibil să găsiți drivere CH340G la wemos.cc/downloads

Este posibil ca NodeMCU să nu utilizeze cipul CH340G, deci este posibil să fie nevoie să comentați cu driverul pe care îl căutați și vă voi răspunde cu linkul de descărcare pentru acel driver.

  1. Apoi, deschideți Arduino IDE și accesați File PreferencesAdditional Boards Manager în Arduino IDE.
  2. Lipiți următorul cod acolo:
  3. Faceți clic pe OK pentru a închide fila de preferințe.
  4. Mergeți la instrumente și bord, apoi selectați managerul de bord.
  5. Navigați la „comunitatea esp8266 de către esp8266” și instalați software-ul pentru Arduino.

Odată finalizat tot procesul de mai sus, suntem gata să ne programăm microcontrolerul N8MCU esp8266 cu IDE Arduino!

Pasul 5: câteva informații utile

Câteva informații utile
Câteva informații utile
Câteva informații utile
Câteva informații utile

S-ar putea să vă fie util să vă dați seama ce versiune de NodeMCU aveți. Iată un ghid de comparație:

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

Fiecare versiune are aranjamente de pin diferite. Am achiziționat versiunea v3 (Lolin) deoarece are pini de ieșire de 5V pentru a alimenta motorul Servo. În cele din urmă, am folosit în schimb pinii de putere de 3 volți pentru siguranță (pinii I / O NodeMCU nu sunt toleranți la 5V), dar s-ar putea să doriți să utilizați pinii de 5V, deoarece din punct de vedere tehnic aceste tipuri de servomotoare sunt specificate pentru o putere de 4,5 până la 5 volți.

Pasul 6: Încărcați codul pe NodeMCU

Încărcați codul pe NodeMCU
Încărcați codul pe NodeMCU
Încărcați codul pe NodeMCU
Încărcați codul pe NodeMCU
  1. Conectați NodeMCU la computer utilizând orice cablu micro USB.
  2. Deschideți IDE-ul Arduino și, în „Plăci”, selectați „ESP12E” și portul COM pentru NodeMCU.
  3. În IDE, accesați FileOpen și răsfoiți folderul zip descărcat anterior de pe makersa.ga pentru a deschide schița Arduino numită „ProximityActuator013017DonovanMagryta.ino”
  4. Apoi, editați linia de cod care o conține pentru a adăuga numele și parola balizului WiFi. Mai multe despre asta mai jos! De exemplu:

const char * ssid = "mywifi"; // Introduceți numele hotspotului dvs. în ghilimele

const char * password = "mywifipassword"; // Introduceți parola hotspot în ghilimele

Apoi faceți clic pe „încărcați” pentru a bloca codul pe placa NodeMCU.

NearBot folosește un far WiFi de buzunar pentru a vă identifica și a estima distanța. La fel ca tastele de proximitate pe care le au unele mașini mai noi care deblochează ușa mașinii pe măsură ce vă apropiați.

Puteți utiliza hotspotul mobil al smartphone-ului ca un far sau, alternativ, puteți utiliza un modul WiFi ESP-01 ieftin alimentat de o pereche de baterii AAA sau o baterie mică de litiu de 3,7 v. Nu este nevoie să programați ESP-01, acesta implicit fiind stocat în modul hotspot atunci când este pornit. Schema circuitului pentru aceasta este prezentată în acest pas.

Pasul 7: Atașați Servo-ul la NodeMCU

Veți avea nevoie de câteva fire jumper pentru a conecta servo-ul la NodeMCU V3.

Diagrama circuitului este simplă.

Pin D0 la semnalul din plumb (firul de culoare cea mai deschisă de pe servo. De obicei galben sau alb.)

Pin 3V sau pin VO la cablul de intrare de 5V (al doilea fir de culoare cea mai deschisă de pe servo, de obicei roșu sau portocaliu.)

Fixați GND la sol (firul cel mai închis de pe servo, de obicei maro sau negru).

Pasul 8: Reglați fin NearBot

Codul convertește puterea semnalului în estimarea distanței. Funcționează fiabil pentru distanțe de reacție mai mici de 2 metri sau 6,5 picioare. Deoarece este o conversie directă, nu este la fel de lină pentru distanțe mai mari de 3 metri, așa cum ar putea fi cu o metodă de calcul mai bună. Mai multe despre asta mai târziu.

Poate doriți să reglați locul în care este poziționat claxonul servo (micul braț alb care se mișcă). Acest lucru se face prin simpla deșurubare a brațului servo cu o șurubelniță și repoziționarea acestuia.

Următoarea parte este de a regla gradele maxime și minime de mișcare folosind codul.

Acest lucru se poate face prin schimbarea numerelor conținute în linii care arată astfel:

myservo.write (10); // deplasează brațul servo la o rotație de 10 grade

De asemenea, puteți ajusta sensibilitatea puterii semnalului modificând numerele negative în linii care arată astfel:

if (rssi> -30 && rssi <-5) {// Dacă puterea semnalului este mai mare decât -30 și mai slabă decât -5. apoi faceți următoarele …

Pasul 9: Cum funcționează

  1. NearBot se conectează mai întâi la hotspot în timp ce se apropie utilizatorii.
  2. Scanează RSSI (puterea semnalului primit) și îl convertește la distanță aproximativă.
  3. În timp ce distanța se încadrează în domeniul specificat, acesta mută brațul servomotorului în poziția 1.
  4. În caz contrar, servomotorul este mutat în poziția 2.

Când am testat acest lucru, această reglare RSSI (-50) mută servo în poziția 1 în timp ce distanța este de la 0 la 1,5 metri, cu baliza ESP-01 sau hotspotul telefonic în buzunar.

RSSI se încadrează de obicei în intervalul de la -90 la -20, cu -20 fiind puterea semnalului cea mai puternică.

Dacă deschideți monitorul serial Arduino IDE în timp ce NearBot este conectat la computer, acesta va afișa puterea semnalului și va declanșa punctele în timp real pentru a avea feedback util.

Iată codul complet:

//INAINTE SA INCEPI:

// 1. Dacă nu ați descărcat deja ID-ul Arduino, obțineți-l gratuit (donație opțională) la: https://www.arduino.cc/en/Main/Software // 2. deschideți ID-ul Arduino (dacă nu citiți deja acest lucru în ID-ul Arduino!)… // 3. Mergeți la fișiere și faceți clic pe preferința din Arduino IDE … // 4. copiați linkul de mai jos în Managerul de panouri suplimentare: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. faceți clic pe OK pentru a închide fila de preferințe … // 6. Mergeți la instrumente și bord, apoi selectați managerul de bord … // 7. Navigați la comunitatea esp8266 de către comunitatea esp8266 și instalați software-ul pentru Arduino … // 8. Poate fi necesar să descărcați și să instalați driverul CH340 dacă nu reușiți să discutați cu NodeMCU cu ID-ul dvs. Arduino: https://www.arduino.cc/en/Main/Software // Odată finalizat tot procesul de mai sus, suntem citiți pentru a programa microcontrolerul nostru esp8266 NodeMCU cu IDE Arduino. Poate doriți să aflați ce versiune de NodeMCU aveți. Iată un ghid de comparație: https://www.arduino.cc/en/Main/Software // Fabricat din microcontroler NodeMCU ESP8266, baterie sau sursă de alimentare USB și Servo SG90 // Puteți utiliza un al doilea modul esp8266 nemodificat ca far hotspot AP în loc să utilizați un smartphone. // Circuitul NearBot: // Pin D0 la firul de semnal Servo (firul de culoare cea mai deschisă) // Pinul 3V la firul servo 5v (firul de mijloc) (îmbinat în paralel cu cablul USB sau pinul VO de pe NodeMCU dacă aveți V3. / / Alimentarea USB la mufa USB de pe NodeMCU // Pinul GND la firul Servo Ground (firul de culoare cea mai închisă) // Liniile de note încep cu două bare oblice înainte și sunt ignorate de computere. Notele sunt doar pentru noi, oamenii! #Include #include // Poate fi necesar pentru tipărirea în serie. #Include // Servo library #define D0 16 // Definește pinii pentru a facilita atribuirea pinilor. #Define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (date) #define D3 0 #define D4 2 // La fel ca "LED_BUILTIN", dar logica inversată #define D5 14 // SPI Bus SCK (clock) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Consola serială) #define D10 1 // TX0 (Console serială) Servo myservo; // Creați un obiect servo numit myservo // Telefon sau modul ESP8266 suplimentar setat la modul AP hotspot: const ch ar * ssid = ""; // Introduceți numele hotspotului dvs. în ghilimele const char * password = ""; // Introduceți parola hotspot în ghilimele void setup () {Serial.begin (115200); // setează rata de transmisie în serie, astfel încât microcontrolerul să poată vorbi cu interfața de imprimare serială din ID-ul Arduino - Poate fi necesar să o schimbați la 9600! myservo.attach (D0); // atașează servo pe pinul D0 aka GPIO16 la obiectul servo - Vezi mai multe la: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // mută brațul servo la rotație de 10 grade Serial.println ("Blocat"); // scoateți monitorul serial cuvântul „Locked” WiFi.mode (WIFI_STA); // Setează wifi în modul Station WiFi.begin (ssid, parolă); // Se conectează la hotspot beacon} void loop () {// Bucla rulează repetat și repetat dacă (WiFi.status ()! = WL_CONNECTED) {// Dacă WIFI NU este conectat, faceți următoarele … Serial.println („Nu s-a putut obține o conexiune wifi”); myservo.write (10); // Mută brațul servo la 10 grade Serial.println („Blocat”); } else {// Dacă WiFi este conectat, faceți următoarele … long rssi = WiFi. RSSI (); // Creează o variabilă numită rssi și atribuie-o funcției care returnează citirea puterii semnalului semnalizatorului hotspot Serial.print (rssi); // transmite citirea rssi pe monitorul serial dacă (rssi> -50 && rssi <-5) {// Dacă puterea semnalului este mai mare de -50 și mai slabă decât -5. apoi faceți următoarele … myservo.write (170); // Rotiți brațul servo la 170 de grade Serial.println („Deblocat”); } else {// Dacă condițiile de mai sus nu sunt îndeplinite, faceți următoarele … myservo.write (10); // Rotește brațul servo înapoi la 10 grade. Serial.println („Blocat”); }}}

Pasul 10: Trebuie să știți …

Declinare de responsabilitate:

Iterația curentă a codului NearBot funcționează în mod fiabil pentru distanțe mai mici de 2 metri sau 6,5 picioare. Dincolo de asta, devine mai puțin precis, dar funcționează în continuare.

Acest lucru poate fi reparat, dar în acest moment nu știu cum să fac asta. Mi-ar plăcea dacă cineva ar lucra cu mine, astfel încât să pot actualiza acest instructable cu o metodă mai precisă de calcul a distanței!

Aceste legături ar putea fi la îndemână: YouTuber CNLohr a dezvoltat un firmware de detectare a distanței și poziției pentru ESP8266 cu succes limitat:

Espressif a dezvoltat o funcție de detectare a distanței Time of Flight care ar funcționa cu Arduino IDE pentru ESP8266, dar nu a lansat-o niciodată:

Sistemul de poziționare SubPos utilizează module ESP8266 și Path Loss Calculation, ceea ce nu știu cum să implementez în Arduino IDE:

Am găsit un exemplu în limbajul Java, dar nu știu cum să reproduc acest lucru este Arduino IDE:

distanță dublă = Math.pow (10.0, (((double) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frecvență))) / (20 * mu));

Pasul 11: Asta este tot

Dacă îți faci propriul NearBot, postează „Am făcut-o” în comentariile de mai jos!

Dacă mai aveți idei pentru ce să folosiți platforma versatilă NearBot, vă rugăm să comentați ideile dvs.! Ar putea fi o mare inspirație pentru alți utilizatori instructabili!

Dacă vă place acest tutorial, vă rugăm să luați în considerare votarea pentru acest instructiv în concursuri!

Recomandat: