Cuprins:
- Pasul 1: Achiziționați componentele hardware
- Pasul 2: Pornire rapidă
- Pasul 3: Achiziționați părțile software
- Pasul 4: Instalați drivere și profiluri de placă
- Pasul 5: câteva informații utile
- Pasul 6: Încărcați codul pe NodeMCU
- Pasul 7: Atașați Servo-ul la NodeMCU
- Pasul 8: Reglați fin NearBot
- Pasul 9: Cum funcționează
- Pasul 10: Trebuie să știți …
- Pasul 11: Asta este tot
Video: NearBot versatil: 11 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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ă
Î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.
- Apoi, deschideți Arduino IDE și accesați File PreferencesAdditional Boards Manager în Arduino IDE.
- Lipiți următorul cod acolo:
- Faceți clic pe OK pentru a închide fila de preferințe.
- Mergeți la instrumente și bord, apoi selectați managerul de bord.
- 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
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
- Conectați NodeMCU la computer utilizând orice cablu micro USB.
- Deschideți IDE-ul Arduino și, în „Plăci”, selectați „ESP12E” și portul COM pentru NodeMCU.
- Î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”
- 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ă
- NearBot se conectează mai întâi la hotspot în timp ce se apropie utilizatorii.
- Scanează RSSI (puterea semnalului primit) și îl convertește la distanță aproximativă.
- În timp ce distanța se încadrează în domeniul specificat, acesta mută brațul servomotorului în poziția 1.
- Î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:
PCB versatil I / O Extender pentru a controla multe tuburi Nixie cu I2C: 9 pași (cu imagini)
PCB versatil I / O Extender pentru a controla multe tuburi Nixie cu I2C: În prezent, există un mare interes în aducerea la viață a tuburilor nixie de epocă. O mulțime de seturi de ceasuri cu tub nixie sunt disponibile pe piață. Părea să existe chiar și un comerț plin de viață pe stocul vechi de tuburi nixie rusești. Tot aici pe Instructables acolo
Cum să dezasamblați un computer cu pași și imagini ușoare: 13 pași (cu imagini)
Cum să dezasamblați un computer cu pași și imagini ușoare: Aceasta este o instrucțiune despre cum să dezasamblați un computer. Majoritatea componentelor de bază sunt modulare și ușor de îndepărtat. Cu toate acestea, este important să fiți organizat în acest sens. Acest lucru vă va ajuta să nu vă pierdeți piese și, de asemenea, să faceți reasamblarea
Voltmetru, ampere și contor de putere versatil: 6 pași (cu imagini)
Voltmetru versatil, ampere și contor de putere: Multimetrele sunt potrivite pentru mai multe scopuri. Dar, de obicei, ele măsoară o singură valoare la un moment dat. Dacă ne ocupăm de măsurători de putere, avem nevoie de doi multimetri, unul pentru tensiune și al doilea pentru Ampere. Și dacă vrem să măsurăm eficiența, avem nevoie de
Contor digital versatil și cu cost redus: 5 pași (cu imagini)
Contor digital versatil și cu cost redus: acest hack va transforma un calculator ieftin ușor de obținut într-o mașină de numărare versatilă. Poate fi folosit ca o metodă ieftină de măsurare a distanței folosind o roată, un comutator reed și un magnet (gândiți contorul de biciclete). Deci, ce altceva mai poți întreba? Ei bine, ho
Suport lanternă AA ieftin și versatil: 3 pași
Suport lanternă AA ieftin și versatil: Am dependență de lanterne, în special de lumini LED, sunt la îndemână și eficiente, dar unde să le pun când nu sunt folosite? Lucram la diferite instrumente și am dat peste un pachet de "Spring Grips" la hardware-ul local