Përmbajtje:

NearBot i gjithanshëm: 11 hapa (me fotografi)
NearBot i gjithanshëm: 11 hapa (me fotografi)

Video: NearBot i gjithanshëm: 11 hapa (me fotografi)

Video: NearBot i gjithanshëm: 11 hapa (me fotografi)
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Korrik
Anonim
Image
Image

Ky udhëzues do t'ju tregojë se si të krijoni një shkas robot të gjithanshëm që mund të lëvizë diçka të tillë si një buton, çelës ose thirrje në pajisje të ndryshme kur ju (me telefonin tuaj ose një fener në xhep) jeni afër. Kjo do të thotë se mund të zhbllokojë dhe të mbyllë automatikisht një shul derë pasi * vetëm ju * kaloni, të mbyllni një valvul spërkatës në mënyrë që të kaloni nëpër ujë të padëmtuar si një lloj Moisiu periferik, vëllimi më i ulët i altoparlantit ndërsa jeni në garazh salla e grupit, aktivizoni një iPod duke luajtur një melodi hyrëse dramatike ose tregoni një shaka (cicërimë e Jaden Smith?) ndërsa jeni në dhomë, ose ndaloni një film kur ngriheni për të përdorur banjën.

Ky projekt nuk kërkon bashkim ose mjete speciale

Nëse ju pëlqejnë mjaft këto udhëzime, ju lutemi konsideroni të votoni për këtë udhëzues në konkursin Robotics 2017!

Hapi 1: Merrni Pjesët e Hardware

Do t'ju duhet:

  • NodeMCU v2 ose V3
  • Micro 9G Servo Motor rreth $ 1.40 USD transport falas në eBay ose Aliexpress
  • Arduino Jumper Wires Femra në Mashkull.
  • Një shtresë për NearBot - Kam përdorur një kuti plastike të mbeturinave që gjeta.
  • Kabllo e të dhënave Micro USB (copëzoni pjesët e telefonit)
  • Burimi i energjisë USB (karikuesi i telefonit të mbeturinave)

Nëse nuk keni një smartphone me një funksion të nxehtë celular, do t'ju duhet gjithashtu:

  • Moduli ESP-01 rreth $ 2.50 USD transport falas në DealExtreme, GearBest, Ebay, ose Aliexpress.
  • 1 Çift bateri AAA
  • mbajtës i dyfishtë i baterisë AAA me ndërprerës

Hapi 2: Fillimi i shpejtë

Ky hap përmban një udhëzues të fillimit të shpejtë në rast se ju pëlqen një gjë e tillë. Pjesa tjetër e këtij udhëzimi shkon hap pas hapi dhe shton më shumë informacion të thelluar

// Lista e blerjeve: // Mikrokontrolluesi NodeMCU V3 (Lolin) ESP8266

// Servo Motor SG90 9G

// USB Power Bank ose përshtatës muri USB.

// Të dhëna mikro USB/kabllo ngarkimi

// Telat e bluzave të tipit Arduino nga mashkulli në femër

// PARA FILLIMIT:

// 1. Nëse nuk e keni shkarkuar tashmë Arduino IDE, merrni atë falas (dhurimi sipas dëshirës) në:

// 2 hapni Arduino IDE (nëse nuk e lexoni këtë në Arduino IDE tashmë!)…

// 3 Shkoni te skedarët dhe klikoni në preferencën në Arduino IDE…

// 4. kopjoni kodin e mëposhtëm në Menaxherin e bordeve shtesë: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. kliko OK për të mbyllur skedën e preferencave…

// 6 Shkoni te mjetet dhe bordi, dhe më pas zgjidhni menaxherin e bordit…

// 7 Shkoni te esp8266 nga komuniteti esp8266 dhe instaloni programin për Arduino…

// 8. Ju mund të keni nevojë të shkarkoni dhe instaloni drejtuesin CH340 nëse nuk jeni në gjendje të bëni që NodeMCU të flasë me Arduino IDE tuaj:

// Pasi të ketë përfunduar i gjithë procesi i mësipërm, ne lexojmë të programojmë mikrokontrolluesin tonë esp8266 NodeMCU me Arduino IDE.

//9. Zgjidhni NodeMCU V1.0 ESP12E nga menyja e bordit /

/10 Zgjidhni portën COM që po përdorni.

// 11 zgjidhni kodin (shkarkoni nga www.makersa.ga) dhe klikoni ngarkim. /

/12 Lidheni servo -n në NodeMCU duke përdorur tela kërcyes. D0 për të sinjalizuar, tokë për tokë, +VCC në VO ose 3V. /

/13 Rregulloni bririn e servo duke përdorur një kaçavidë.

// 14 Rregulloni shkallët maksimale dhe minimale të lëvizjes duke përdorur kodin.

// 15 Ngarko përsëri në NodeMCU sa herë që azhurnohet kodi.

// Ju mund ta shihni të rëndësishme të kuptoni se cilin version të NodeMCU keni. Këtu keni një udhëzues krahasimi:

frightanic.com/iot/comparison-of-esp8266-no… // Diagrami pinout i NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 diagrami pinout: https://frightanic.com/iot/comparison-of-esp8266-no… // Diagrami pinout i NodeMCU v3:

// Shpjegimi i pajisjeve:

// Bërë nga mikrokontrolluesi NodeMCU ESP8266, bateri ose furnizim me energji USB, dhe SG90 Servo

// Ju mund të përdorni një modul të dytë të pandryshuar esp8266 si një pikë e nxehtë sinjalizuese AP në vend që të përdorni një smartphone, pa programim të nevojshëm.

Hapi 3: Merrni Pjesët e Softuerit

Së pari do të duhet të shkarkoni Arduino IDE falas

Redaktori i uebit Arduino nuk punon me NodeMCU në kohën që po e shkruaj këtë, kështu që ju do të duhet të instaloni IDE në kompjuterin tuaj.

Ju gjithashtu do të duhet të kapni skedarët NearBot nga www. MakerSa.ga - Lidhja e shkarkimit të skedarëve për këtë projekt është e shënuar në atë faqe.

Hapi 4: Instaloni drejtuesit dhe profilet e bordit

Disa informacione ndihmuese
Disa informacione ndihmuese

Brenda zipit NearBot që keni shkarkuar dhe zbërthyer do të jenë drejtuesit për modulin NodeMCU. Instaloni ato në kompjuterin tuaj.

Nëse ato nuk funksionojnë për ju, mund të jeni në gjendje të gjeni drejtues CH340G në wemos.cc/downloads

NodeMCU juaj mund të mos përdorë çipin CH340G, kështu që mund t'ju duhet të komentoni me drejtuesin që kërkoni, dhe unë do të përgjigjem me lidhjen e shkarkimit për atë drejtues.

  1. Tjetra, hapni Arduino IDE dhe shkoni te File PreferencesAdditional Boards Manager në Arduino IDE.
  2. Ngjitni kodin e mëposhtëm atje:
  3. Klikoni OK për të mbyllur skedën e preferencave.
  4. Shkoni te mjetet dhe bordi, dhe më pas zgjidhni menaxherin e bordit.
  5. Shkoni te "esp8266 by esp8266 community" dhe instaloni programin për Arduino.

Pasi të ketë përfunduar i gjithë procesi i mësipërm, ne jemi gati të programojmë mikrokontrolluesin tonë esp8266 NodeMCU me Arduino IDE!

Hapi 5: Disa informacione të dobishme

Disa informacione ndihmuese
Disa informacione ndihmuese
Disa informacione ndihmuese
Disa informacione ndihmuese

Ju mund ta gjeni të lehtë të kuptoni se cilin version të NodeMCU keni. Këtu është një udhëzues krahasimi:

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

Çdo version ka aranzhime të ndryshme pin. Bleva versionin v3 (Lolin) sepse ka kunja dalëse 5V për të fuqizuar motorin Servo. Në fund të fundit, në vend të kësaj kam përdorur kunjat e energjisë 3 volt për siguri (Kunjat e hyrjes/daljes NodeMCU nuk janë 5V toleruese), por ju mund të dëshironi të përdorni kunjat 5V sepse teknikisht këto lloj servo motorësh janë specifikuar për fuqi 4.5 deri në 5 volt.

Hapi 6: Ngarko kodin në NodeMCU

Ngarko kodin në NodeMCU
Ngarko kodin në NodeMCU
Ngarko kodin në NodeMCU
Ngarko kodin në NodeMCU
  1. Lidheni NodeMCU në kompjuterin tuaj duke përdorur ndonjë kabllo mikro USB.
  2. Hapni Arduino IDE dhe nën "Bordet", zgjidhni "ESP12E" dhe portën COM për NodeMCU.
  3. Në IDE, shkoni te FileOpen dhe shfletoni dosjen zip të shkarkuar më parë nga makersa.ga për të hapur skicën Arduino të quajtur "ProximityActuator013017DonovanMagryta.ino"
  4. Pastaj, redaktoni linjën e kodit që përmban këtë për të shtuar emrin dhe fjalëkalimin e fenerit tuaj WiFi. Më shumë për atë më poshtë! Për shembull:

const char* ssid = "mywifi"; // Vendosni emrin tuaj të nxehtë brenda thonjëzave

const char* fjalëkalim = "mywifipassword"; // Vendosni fjalëkalimin tuaj të nxehtë brenda thonjëzave

Pastaj klikoni "ngarkoni" për të ndezur kodin në tabelën NodeMCU.

NearBot përdor një fener xhepi WiFi për t'ju identifikuar dhe vlerësuar distancën. Ashtu si çelësat e afërsisë disa makina më të reja kanë që hapin derën e makinës ndërsa afroheni.

Ju mund të përdorni pikën e nxehtë të celularit tuaj si një fener, ose të përdorni një modul të lirë WiFi ESP-01 të mundësuar nga një palë bateri AAA ose një bateri të vogël litium 3.7v. Nuk ka nevojë të programoni ESP-01, ai është i paracaktuar në stacionin e modalitetit të nxehtë kur është i ndezur. Diagrami i qarkut për këtë është treguar në këtë hap.

Hapi 7: Bashkojeni Servo -n në NodeMCU

Ju do të keni nevojë për disa tela bluzë për të lidhur servo në NodeMCU V3.

Diagrami i qarkut është i thjeshtë.

Vendoseni D0 në sinjalin në plumb (tela me ngjyrë më të ndritshme në servo. Zakonisht e verdhë ose e bardhë.)

Fiksoni 3V ose pin VO në prizën hyrëse 5V (tela e dytë me ngjyrë më të ndritshme në servo, zakonisht e kuqe ose portokalli.)

Mbërtheni GND në plumbin e tokës (tela me ngjyrë më të errët në servo, zakonisht kafe ose të zezë.)

Hapi 8: Përcaktoni rregullimin e NearBot

Kodi konverton fuqinë e sinjalit në vlerësimin e distancës. Punon në mënyrë të besueshme për distancat e reagimit më pak se 2 metra ose 6.5 këmbë. Për shkak se është një konvertim i drejtpërdrejtë, nuk është aq i qetë për distanca më të largëta se 3 metra siç mund të jetë me një metodë më të mirë të llogaritjes. Më shumë për këtë më vonë.

Ju mund të dëshironi të rregulloni vendin ku është vendosur briri i servo (krahu i vogël i bardhë që lëviz). Kjo bëhet thjesht duke hequr krahun servo me një kaçavidë dhe duke e pozicionuar përsëri.

Pjesa tjetër është rregullimi i shkallëve maksimale dhe minimale të lëvizjes duke përdorur kodin.

Kjo mund të bëhet duke ndryshuar numrat e përfshirë në rreshta që duken kështu:

myservo.shkruaj (10); // lëviz krahun servo në rrotullimin 10 gradë

Ju gjithashtu mund të rregulloni ndjeshmërinë e fuqisë së sinjalit duke ndryshuar numrat negativë në linjat që duken kështu:

nëse (rssi> -30 && rssi <-5) {// Nëse fuqia e sinjalit është më e fortë se -30, dhe më e dobët se -5. atëherë bëni sa më poshtë…

Hapi 9: Si funksionon

  1. NearBot së pari lidhet me pikën e nxehtë paraprakisht ndërsa afrohet një përdorues.
  2. Ai skanon RSSI (fuqia e sinjalit të marrë) dhe e konverton atë në distancë të përafërt.
  3. Ndërsa distanca është brenda intervalit të specifikuar, ai lëviz krahun servo motor në pozicionin 1.
  4. Përndryshe, servo motori zhvendoset në pozicionin 2.

Kur e testova këtë, ky akordim RSSI (-50) e lëviz servon në pozicionin 1 ndërsa distanca është 0 deri në 1.5 metër me fenerin ESP-01 ose pikën e nxehtë të telefonit në xhepin tim.

RSSI zakonisht bie brenda një diapazoni prej -90 në -20, me -20 që është forca më e fortë e sinjalit.

Nëse hapni Arduino IDE Serial Monitor ndërsa NearBot është i kyçur në kompjuter, ai do të shfaqë fuqinë e sinjalit dhe pikat e nxitjes në kohë reale që ju të keni reagime të dobishme.

Këtu është kodi i plotë:

// PARA FILLIMIT:

// 1. Nëse nuk e keni shkarkuar tashmë Arduino IDE, merrni atë falas (dhurimi sipas dëshirës) në: https://www.arduino.cc/en/Main/Software // 2. hapni Arduino IDE (nëse nuk e lexoni këtë tashmë në Arduino IDE!)… // 3. Shkoni te skedarët dhe klikoni mbi preferencën në Arduino IDE… // 4. kopjoni lidhjen më poshtë në Menaxherin e bordeve shtesë: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klikoni OK për të mbyllur skedën e preferencave… // 6. Shkoni te mjetet dhe bordi, dhe më pas zgjidhni menaxherin e bordit… // 7. Shkoni te esp8266 nga komuniteti esp8266 dhe instaloni programin për Arduino… // 8. Ju mund të keni nevojë të shkarkoni dhe instaloni drejtuesin CH340 nëse nuk jeni në gjendje të bëni që NodeMCU të flasë me Arduino IDE tuaj: https://www.arduino.cc/en/Main/Software // Pasi të ketë përfunduar i gjithë procesi i mësipërm, ne jemi lexoni për të programuar mikrokontrolluesin tonë esp8266 NodeMCU me Arduino IDE. Ju mund të dëshironi të kuptoni se cilin version të NodeMCU keni. Këtu keni një udhëzues krahasimi: https://www.arduino.cc/en/Main/Software // Bërë nga mikrokontrolluesi NodeMCU ESP8266, bateri ose furnizim me energji USB, dhe SG90 Servo // Ju mund të përdorni një modul të dytë të pa modifikuar esp8266 si një fener hotspot AP në vend që të përdorni një smartphone. // Qarku NearBot: // Pika D0 në telin e sinjalit Servo (tela me ngjyra më të lehta) // PIN 3V në tela servo 5v (tela e mesme) (e bashkuar paralelisht me kabllon usb ose kunjin VO në NodeMCU nëse keni V3. / / /USB power to USB plug on the NodeMCU // pin GND to Servo Ground wire (teli me ngjyrën më të errët) // Linjat e shënimeve fillojnë me dy pjerrësi përpara, dhe injorohen nga kompjuterët. Shënimet janë vetëm për ne njerëzit! #Include #include // Mund të nevojitet për printimin serik. #Përfshi // Biblioteka servo #përcakto D0 16 // Përcakton kunjat për ta bërë më të lehtë caktimin e kunjave. #Përcakto D1 5 // I2C Bus SCL (ora) #define D2 4 // I2C Bus SDA (të dhëna) #define D3 0 #define D4 2 // Njësoj si "LED_BUILTIN", por logjikë e përmbysur #përcakto D5 14 // SPI Bus SCK (ora) #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; // Krijo një servo objekt të quajtur myservo // Telefon ose modul shtesë ESP8266 i vendosur në modalitetin AP të nxehtë: const ch ar* ssid = ""; // Vendosni emrin tuaj të nxehtë brenda thonjëzave const char* password = ""; // Vendosni fjalëkalimin tuaj të nxehtë brenda kuotimit void setup () {Serial.begin (115200); // vendos shpejtësinë e baudit serik në mënyrë që mikrokontrolluesi të mund të flasë me ndërfaqen e printimit serik në Arduino IDE - Ju mund të keni nevojë ta ndryshoni atë në 9600! myservo.attach (D0); // bashkon servon në pin D0 aka GPIO16 në objektin servo - Shih më shumë në: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // lëviz krahun servo në rrotullimin 10 gradë Serial.println ("Bllokuar"); // nxjerr monitorin serik fjalën "Locked" WiFi.mode (WIFI_STA); // Vendos wifi në modalitetin e stacionit WiFi.begin (ssid, fjalëkalim); // Lidhet me fenerin hotspot} void loop () {// Cikli shkon pa pushim shpejt nëse (WiFi.status ()! = WL_CONNECTED) {// Nëse wifi NUK është i lidhur, bëni sa më poshtë… Serial.println ("Nuk mund të marr një lidhje wifi"); myservo.shkruaj (10); // Lëviz krahun servo në 10 gradë Serial.println ("Bllokuar"); } else {// Nëse WiFi është i lidhur, atëherë bëni sa më poshtë… long rssi = WiFi. RSSI (); // Krijon një ndryshore të quajtur rssi dhe caktojeni atë funksionit që kthen leximin e fuqisë së sinjalit të fenerit të nxehtë Serial.print (rssi); // nxjerr leximin rssi në monitorin serik nëse (rssi> -50 && rssi <-5) {// Nëse fuqia e sinjalit është më e fortë se -50, dhe më e dobët se -5. atëherë bëni sa më poshtë… myservo.write (170); // Rrotulloni krahun servo në 170 gradë Serial.println ("Hape"); } else {// Nëse kushtet e mësipërme nuk plotësohen atëherë bëni sa më poshtë… myservo.write (10); // Rrotullon krahun servo përsëri në 10 gradë. Serial.println ("Mbyllur"); }}}

Hapi 10: Duhet të dini…

Disclaimer:

Përsëritja aktuale e kodit NearBot funksionon me besueshmëri për distanca më të vogla se 2 metra ose 6.5 këmbë. Përtej kësaj, bëhet më pak e saktë, por ende funksionon.

Kjo mund të rregullohet, por për momentin nuk di si ta bëj këtë. Do të më pëlqente nëse dikush do të punonte me mua, kështu që unë mund t'i përditësoj këto udhëzime me një metodë më të saktë të llogaritjes së distancës!

Këto lidhje mund të jenë të dobishme: YouTuber CNLohr krijoi një firmware të ndjeshmërisë së distancës dhe pozicionit për ESP8266 me sukses të kufizuar:

Espressif zhvilloi një funksion të zbulimit të distancës Time of Flight i cili do të punonte me Arduino IDE për ESP8266, por kurrë nuk e lëshoi atë:

Sistemi i pozicionimit SubPos përdor modulet ESP8266 dhe Llogaritjen e Humbjes së Rrugës, e cila është ajo që unë nuk di si të zbatoj në Arduino IDE:

Gjeta një shembull në gjuhën Java, por nuk di si ta përsëris këtë është Arduino IDE:

distancë e dyfishtë = Math.pow (10.0, (((dyshe) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekuenca)))) ((20*mu));

Hapi 11: Kjo është e gjitha

Nëse e bëni vetë NearBot, postoni "Unë e bëra" në komentet më poshtë!

Nëse keni më shumë ide se për çfarë të përdorni platformën Versatile NearBot, ju lutemi komentoni idetë tuaja! Mund të jetë një frymëzim i madh për përdoruesit e tjerë të udhëzueshëm!

Nëse ju pëlqen ky tutorial, ju lutemi konsideroni të votoni për këtë udhëzues në konkurse!

Recommended: