Kazalo:

Vsestranski NearBot: 11 korakov (s slikami)
Vsestranski NearBot: 11 korakov (s slikami)

Video: Vsestranski NearBot: 11 korakov (s slikami)

Video: Vsestranski NearBot: 11 korakov (s slikami)
Video: Как утеплить дверь входную (металлическую) 2024, Julij
Anonim
Image
Image

Ta navodila vam bodo pokazala, kako sestaviti vsestranski robotski sprožilec, ki lahko premika nekaj, kot je gumb, stikalo ali klicanje na različnih napravah, ko ste (s telefonom ali svetilnikom v žepu) v bližini. To pomeni, da bi lahko samodejno odklenil in ponovno zaklenil ključavnico, ko greste samo vi *, zaprite brizgalni ventil, tako da lahko neovirano greste skozi vodo, kot nekakšen primestni Mojzes, znižajte glasnost zvočnikov, medtem ko ste v garaži band room, sprožite iPod, ki predvaja dramsko melodijo za vstop, ali povejte šalo (tvit Jaden Smith?), medtem ko ste v sobi, ali pa ustavite film, ko vstanete in uporabite stranišče.

Ta projekt ne zahteva spajkanja ali posebnih orodij

Če vam je ta navodila dovolj všeč, razmislite o glasovanju za to navodilo na natečaju Robotika 2017!

1. korak: Pridobite dele strojne opreme

Boste potrebovali:

  • NodeMCU v2 ali V3
  • Servo motor Micro 9G za približno 1,40 USD brezplačna dostava na eBayu ali Aliexpressu
  • Arduino žice za moške od ženskega do moškega.
  • Ohišje za NearBot - uporabil sem odpadno plastično škatlo, ki sem jo našel.
  • Podatkovni kabel Micro USB (odpadni deli telefona)
  • Vir napajanja USB (polnilec za odpadne telefone)

Če nimate pametnega telefona s funkcijo mobilne dostopne točke, boste potrebovali tudi:

  • Modul ESP-01 za približno 2,50 USD brezplačna dostava na DealExtreme, GearBest, Ebay ali Aliexpress.
  • 1 par AAA baterij
  • dvojno držalo za baterije AAA s stikalom

2. korak: hiter začetek

Ta korak vsebuje vodnik za hiter začetek, če vam je všeč kaj takega. Preostanek tega navodila sledi korak za korakom in dodaja bolj poglobljene informacije

// Nakupovalni seznam: // mikrokrmilnik NodeMCU V3 (Lolin) ESP8266

// SG90 9G servo motor

// USB Power Bank ali USB stenski adapter.

// Podatkovni/polnilni kabel Micro USB

// Mostične žice Arduino moški do ženski

// PREDEN ZAČNETE:

// 1. Če še niste prenesli Arduino IDE, ga dobite brezplačno (donacija neobvezno) na:

// 2. odprite Arduino IDE (če tega še ne berete v Arduino IDE!) …

// 3. Pojdite na datoteke in kliknite nastavitve v Arduino IDE …

// 4. kopirajte spodnjo kodo v upravitelju dodatnih plošč: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. kliknite V redu, da zaprete zavihek z nastavitvami …

// 6. Pojdite na orodja in tablo, nato izberite upravitelja plošče …

// 7. Pojdite na esp8266 s strani skupnosti esp8266 in namestite programsko opremo za Arduino …

// 8. Morda boste morali prenesti in namestiti gonilnik CH340, če se NodeMCU ne more pogovarjati s svojim Arduino IDE:

// Ko je zgornji postopek končan, smo prebrani, da programiramo naš mikrokrmilnik esp8266 NodeMCU z Arduino IDE.

//9. v meniju plošče izberite NodeMCU V1.0 ESP12E /

/10. Izberite vrata COM, ki jih uporabljate.

// 11. izberite kodo (prenesite z www.makersa.ga) in kliknite naloži. /

/12. S pomočjo mostičnih žic priključite servo v NodeMCU. D0 za signal, zemlja -zemlja, +VCC do VO ali 3V. /

/13. S pomočjo izvijača nastavite servo rog.

// 14. Največjo in najmanjšo stopnjo gibanja prilagodite s kodo.

// 15. Ponovno naložite v NodeMCU vsakič, ko se koda posodobi.

// Morda se vam bo zdelo pomembno ugotoviti, katero različico NodeMCU imate. Tukaj je primerjalni vodič:

frightanic.com/iot/comparison-of-esp8266-no… // Diagram izklopa NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // Diagram izklopa NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // NoutMCU v3 diagram diagrama:

// Pojasnilo ploščadi:

// Izdelano iz mikrokrmilnika NodeMCU ESP8266, napajanja iz baterije ali USB in servo SG90

// Namesto pametnega telefona lahko uporabite drugo nespremenjeno modul esp8266 kot dostopno točko svetilnika, programiranje ni potrebno.

3. korak: Pridobite dele programske opreme

Najprej boste morali prenesti brezplačni Arduino IDE

Spletni urejevalnik Arduino v času, ko to pišem, ne deluje z NodeMCU, zato boste morali namesto tega namestiti IDE v računalnik.

Na spletnem mestu www. MakerSa.ga boste morali vzeti tudi datoteke NearBot - povezava za prenos datotek za ta projekt je navedena na tem spletnem mestu.

4. korak: Namestite gonilnike in profile plošč

Nekaj koristnih informacij
Nekaj koristnih informacij

V zip NearBot, ki ste ga prenesli in razpakirali, bodo gonilniki za modul NodeMCU. Namestite jih v računalnik.

Če vam to ne deluje, boste morda našli gonilnike CH340G na wemos.cc/downloads

Vaš NodeMCU morda ne uporablja čipa CH340G, zato boste morda morali komentirati iskalnik, ki ga iščete, in odgovoril bom s povezavo za prenos tega gonilnika.

  1. Nato odprite Arduino IDE in pojdite na File Preferences FileAdvance Boards Manager v Arduino IDE.
  2. Tam prilepite naslednjo kodo:
  3. Kliknite V redu, da zaprete zavihek z nastavitvami.
  4. Pojdite na orodja in tablo, nato izberite upravitelja plošče.
  5. Pomaknite se do "esp8266 skupnosti esp8266" in namestite programsko opremo za Arduino.

Ko je zgornji postopek končan, smo pripravljeni za programiranje našega mikrokrmilnika esp8266 NodeMCU z Arduino IDE!

5. korak: Nekaj koristnih informacij

Nekaj koristnih informacij
Nekaj koristnih informacij
Nekaj koristnih informacij
Nekaj koristnih informacij

Morda se vam bo zdelo koristno ugotoviti, katero različico NodeMCU imate. Tu je primerjalni vodnik:

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

Vsaka različica ima drugačno razporeditev zatičev. Kupil sem različico v3 (Lolin), ker ima izhodne zatiče 5V za napajanje servo motorja. Namesto tega sem namesto tega zaradi varnosti uporabil 3 -voltne napajalne zatiče (vhodno -izhodni zatiči NodeMCU niso tolerantni na 5 V), vendar boste morda želeli uporabiti 5 -palčne zatiče, ker so tehnično ti servo motorji tehnično določeni za moč od 4,5 do 5 voltov.

6. korak: Naložite kodo v NodeMCU

Kodo naložite v NodeMCU
Kodo naložite v NodeMCU
Kodo naložite v NodeMCU
Kodo naložite v NodeMCU
  1. Priključite NodeMCU v računalnik s katerim koli kablom mikro USB.
  2. Odprite Arduino IDE in pod "Boards" izberite "ESP12E" in vrata COM za NodeMCU.
  3. V IDE pojdite na FileOpen in poiščite mapo zip, ki ste jo prej naložili z makersa.ga, da odprete skico Arduino z imenom "ProximityActuator013017DonovanMagryta.ino"
  4. Nato uredite vrstico kode, ki vsebuje to, da dodate ime in geslo vašega svetilnika WiFi. Več o tem spodaj! Na primer:

const char* ssid = "mywifi"; // Vnesite svoje vročo točko v narekovaje

const char* geslo = "mywifipassword"; // Vnesite geslo za dostopno točko v narekovaje

Nato kliknite »naloži«, da kodo prestavite na ploščo NodeMCU.

NearBot uporablja žepni svetilnik WiFi za identifikacijo in oceno razdalje. Tako kot bližinski ključi imajo nekateri novejši avtomobili, ki odklenejo vrata avtomobila, ko se približate.

Mobilno dostopno točko pametnega telefona lahko uporabite kot svetilnik ali pa uporabite poceni modul WiFi ESP-01, ki ga napaja par baterij AAA ali majhna litijeva baterija 3,7 V. ESP-01 ni treba programirati, privzeto je na zalogi načina vroče točke, ko je vklopljen. Shema vezja za to je prikazana na tem koraku.

7. korak: Servo pritrdite na NodeMCU

Za priključitev servo v NodeMCU V3 boste potrebovali nekaj mostičnih žic.

Shema vezja je preprosta.

Priključite D0 na signal v vodi (najlažja barvna žica na servo pogonu. Običajno rumena ali bela.)

Priključite 3V ali pin VO na vhodni kabel 5V (druga najlažja barvna žica na servo, običajno rdeča ali oranžna.)

Pripnite GND na ozemljitveni kabel (žica najtemnejše barve na servo, običajno rjava ali črna.)

8. korak: natančno nastavite NearBot

Koda pretvori jakost signala v oceno razdalje. Zanesljivo deluje na reakcijskih razdaljah manj kot 2 metra ali 6,5 čevljev. Ker gre za neposredno pretvorbo, ni tako gladka za daljše razdalje kot 3 metre, kot bi lahko bila z boljšo metodo izračuna. Več o tem kasneje.

Morda boste želeli nastaviti, kje je nameščen servo rog (majhna bela ročica, ki se premika). To naredite tako, da preprosto odvijete servo roko z izvijačem in jo znova postavite.

Naslednji del je prilagoditev največje in najnižje stopnje premikanja s kodo.

To lahko storite tako, da spremenite številke v vrsticah, ki izgledajo takole:

myservo.write (10); // premakne servo roko za 10 stopinj

Občutljivost jakosti signala lahko prilagodite tudi s spreminjanjem negativnih števil v vrsticah, ki izgledajo takole:

if (rssi> -30 && rssi <-5) {// Če je moč signala močnejša od -30 in šibkejša od -5. potem naredi naslednje …

9. korak: Kako deluje

  1. NearBot se najprej približa vroči točki, ko se uporabniki približajo.
  2. Skenira RSSI (moč prejetega signala) in ga pretvori v približno razdaljo.
  3. Medtem ko je razdalja znotraj določenega območja, ročico servo motorja premakne v položaj 1.
  4. V nasprotnem primeru se servo motor premakne v položaj 2.

Ko sem to preizkusil, ta nastavitev RSSI (-50) premakne servo v položaj 1, medtem ko je razdalja od 0 do 1,5 metra z svetilnikom ESP-01 ali vročo točko telefona v žepu.

RSSI običajno spada v območje od -90 do -20, pri čemer je -20 najmočnejša moč signala.

Če odprete serijski monitor Arduino IDE, medtem ko je NearBot priključen na računalnik, bo v realnem času prikazal jakost signala in sprožilne točke, da boste lahko imeli priročne povratne informacije.

Tu je celotna koda:

// PREDEN ZAČNETE:

// 1. Če še niste prenesli Arduino IDE, ga dobite brezplačno (donacija neobvezno) na: https://www.arduino.cc/en/Main/Software // 2. odprite Arduino IDE (če tega še ne berete v Arduino IDE!)… // 3. Pojdite na datoteke in kliknite nastavitve v Arduino IDE… // 4. kopirajte spodnjo povezavo v upravitelju dodatnih plošč: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kliknite V redu, da zaprete zavihek z nastavitvami … // 6. Pojdite na orodja in tablo, nato izberite upravitelja plošče … // 7. Pojdite na esp8266 s skupnostjo esp8266 in namestite programsko opremo za Arduino… // 8. Morda boste morali prenesti in namestiti gonilnik CH340, če ne morete doseči, da se NodeMCU pogovarja z vašo Arduino IDE: https://www.arduino.cc/en/Main/Software // Ko smo zgoraj opisani postopek zaključili, smo preberite, če želite programirati naš mikrokrmilnik esp8266 NodeMCU z Arduino IDE. Morda boste želeli ugotoviti, katero različico NodeMCU imate. Tukaj je primerjalni vodnik: https://www.arduino.cc/en/Main/Software // Narejen iz mikrokrmilnika NodeMCU ESP8266, napajanja iz baterije ali USB in servo SG90 // Kot svetilnik lahko uporabite 2. nespremenjeni modul esp8266 dostopno točko AP namesto uporabe pametnega telefona. // NearBot vezje: // pin D0 na signalno žico servo (najlažja barvna žica) // 3V pin na servo 5v žica (srednja žica) (spojena vzporedno s kablom usb ali VO pin na NodeMCU, če imate V3. / /Napajanje USB v vtič USB na NodeMCU // Pin GND na ozemljitveno žico servo (najtemnejša barvna žica) // Opombne vrstice se začnejo z dvema poševnicama naprej in jih računalniki prezrejo. Opombe so samo za nas ljudi! #Include #include // Morda bo potrebno za serijsko tiskanje. #Include // Servo knjižnica #define D0 16 // Določa zatiče za lažje dodeljevanje zatičev. #Define D1 5 // I2C Bus SCL (ura) #define D2 4 // I2C Bus SDA (podatki) #define D3 0 #define D4 2 // Enako kot "LED_BUILTIN", vendar obrnjena logika #define D5 14 // SPI Bus SCK (ura) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Vodilo MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (zaporedna konzola) #define D10 1 // TX0 (serijska konzola) Servo myservo; // Ustvarite servo objekt z imenom myservo // Telefon ali dodatni modul ESP8266, nastavljen na način dostopne točke AP: const ch ar* ssid = ""; // Vnesite ime svoje dostopne točke v narekovaje const char* password = ""; // Vnesite geslo za dostopno točko v narekovaje void setup () {Serial.begin (115200); // nastavi serijsko hitrost prenosa, tako da se mikrokrmilnik lahko pogovarja z vmesnikom za serijsko tiskanje v Arduino IDE - morda ga boste morali spremeniti na 9600! myservo.attach (D0); // pritrdi servo na pin D0 ali GPIO16 na servo objekt - Več o tem na: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // premakne servo roko na 10 stopinj rotacije Serial.println ("Zaklenjeno"); // iz serijskega monitorja izpiše besedo "Zaklenjeno" WiFi.mode (WIFI_STA); // Nastavi wifi na način postaje WiFi.begin (ssid, geslo); // Poveže se s svetilnikom vroče točke} void loop () {// Zanka se znova in znova hitro izvaja, če (WiFi.status ()! = WL_CONNECTED) {// Če wifi NI priključen, naredite naslednje … Serial.println ("Povezave wifi ni bilo mogoče vzpostaviti"); myservo.write (10); // Premakne servo roko na 10 stopinj Serial.println ("Zaklenjeno"); } else {// Če je WiFi povezan, naredite naslednje … long rssi = WiFi. RSSI (); // Ustvari spremenljivko z imenom rssi in jo dodeli funkciji, ki vrne branje jakosti signala svetilnika vroče točke Serial.print (rssi); // oddaja branje rssi na serijski monitor if (rssi> -50 && rssi <-5) {// Če je moč signala močnejša od -50 in šibkejša od -5. nato naredite naslednje … myservo.write (170); // Zavrtite servo roko na 170 stopinj Serial.println ("Odklenjeno"); } else {// Če zgornji pogoji niso izpolnjeni, naredite naslednje … myservo.write (10); // Zavrtite servo roko nazaj na 10 stopinj. Serial.println ("Zaklenjeno"); }}}

Korak: Morali bi vedeti …

Zavrnitev odgovornosti:

Trenutna ponovitev kode NearBot deluje zanesljivo za razdalje, manjše od 2 metrov ali 6,5 čevljev. Poleg tega postane manj natančen, vendar še vedno deluje.

To je mogoče popraviti, vendar trenutno ne vem, kako to storiti. Veselo bi bilo, če bi kdo delal z mano, da lahko posodobim ta navodila z natančnejšo metodo izračunavanja razdalje!

Te povezave so lahko priročne: YouTuber CNLohr je z omejenim uspehom razvil vdelano programsko opremo za zaznavanje razdalje in položaja za ESP8266:

Espressif je razvil funkcijo zaznavanja razdalje časa letenja, ki bi delovala z Arduino IDE za ESP8266, vendar je nikoli ni izdala:

Sistem pozicioniranja SubPos uporablja module ESP8266 in izračun izgube poti, kar pa ne vem, kako implementirati v Arduino IDE:

Našel sem primer v jeziku Java, vendar ne vem, kako bi to ponovil, Arduino IDE:

dvojna razdalja = Math.pow (10.0, (((dvojno) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvenca)))/(20*mu));

11. korak: To je vse

Če naredite svoj NearBot, v spodnjih komentarjih objavite svoj "Uspelo mi je"!

Če imate še kakšno idejo, za kaj uporabiti univerzalno platformo NearBot, prosim, komentirajte svoje ideje! To bi lahko bil velik navdih za druge uporabnike z navodili!

Če vam je ta vadnica všeč, razmislite o glasovanju za to navodilo na tekmovanjih!

Priporočena: