Sadržaj:

Svestrani NearBot: 11 koraka (sa slikama)
Svestrani NearBot: 11 koraka (sa slikama)

Video: Svestrani NearBot: 11 koraka (sa slikama)

Video: Svestrani NearBot: 11 koraka (sa slikama)
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Novembar
Anonim
Image
Image

Ova instrukcija će vam pokazati kako izgraditi svestrani robotski okidač koji može pomicati nešto poput dugmeta, prekidača ili biranja na različitim uređajima kada ste (sa telefonom ili svjetionikom u džepu) u blizini. To znači da bi mogao automatski otključati i ponovo zaključati zasun vrata dok * samo vi * prolazite, zatvoriti prskalni ventil kako biste mogli neozlijeđeni proći kroz vodu poput svojevrsnog prigradskog Mojsija, smanjiti glasnoću zvučnika dok ste u garaži u prostoriji benda, aktivirajte iPod koji svira dramatičnu melodiju za unos ili ispričajte vic (tvit Jaden Smith?) dok ste u prostoriji, ili pauzirajte film kada ustanete da koristite toalet.

Ovaj projekt ne zahtijeva lemljenje ili posebne alate

Ako vam se dovoljno sviđaju ove instrukcije, razmislite o glasanju za ovu instrukciju na takmičenju Robotics 2017!

Korak 1: Nabavite dijelove hardvera

Trebat će vam:

  • NodeMCU v2 ili V3
  • Micro 9G servo motor oko 1,40 USD besplatna dostava na eBayu ili Aliexpressu
  • Arduino kratkospojnik žica na mužjak.
  • Kućište za NearBot - koristio sam plastičnu kutiju za otpad koju sam pronašao.
  • Mikro USB podatkovni kabel (dijelovi telefona za otpad)
  • USB izvor napajanja (punjač za stare telefone)

Ako nemate pametni telefon sa funkcijom mobilne pristupne tačke, trebat će vam i:

  • ESP-01 modul oko 2,50 USD besplatna dostava na DealExtreme, GearBest, Ebay ili Aliexpress.
  • 1 Uparite AAA baterije
  • dvostruki AAA držač baterije sa prekidačem

Korak 2: Brzi početak

Ovaj korak sadrži vodič za brzi početak u slučaju da vam se sviđaju takve stvari. Ostatak ovog uputstva ide korak po korak i dodaje detaljnije informacije

// Lista za kupovinu: // NodeMCU V3 (Lolin) ESP8266 mikrokontroler

// SG90 9G servo motor

// USB Power Bank ili USB zidni adapter.

// Micro USB kabel za prijenos podataka/punjenje

// Arduino žice kratkospojnika muški na ženski

// Prije nego počnete:

// 1. Ako još niste preuzeli Arduino IDE, nabavite ga besplatno (donacija nije obavezna) na:

// 2. otvorite Arduino IDE (ako ovo već ne čitate u Arduino IDE -u!) …

// 3. Idite na datoteke i kliknite na željene postavke u Arduino IDE …

// 4. kopirajte donji kod u Upravitelj dodatnih ploča: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. kliknite OK da zatvorite karticu sa preferencama …

// 6. Idite na alate i ploču, a zatim odaberite upravitelja ploče …

// 7. Idite na esp8266 od strane zajednice esp8266 i instalirajte softver za Arduino…

// 8. Možda ćete morati preuzeti i instalirati upravljački program CH340 ako ne možete natjerati NodeMCU da razgovara s vašim Arduino IDE -om:

// Kada se sve gore navedeno završi, čitamo se da programiramo naš esp8266 NodeMCU mikrokontroler sa Arduino IDE -om.

//9.izbor NodeMCU V1.0 ESP12E iz izbornika ploče /

/10. Odaberite COM port koji koristite.

// 11. odaberite kôd (preuzmite sa www.makersa.ga) i kliknite na upload. /

/12. Uključite servo u NodeMCU pomoću kratkospojnih žica. D0 za signal, zemlja -zemlja, +VCC do VO ili 3V. /

/13. Podesite servo trubu pomoću odvijača.

// 14. Podesite maksimalni i minimalni stepen kretanja pomoću koda.

// 15. Ponovo učitajte na NodeMCU kad god se kôd ažurira.

// Možda će vam biti važno shvatiti koju verziju NodeMCU -a imate. Evo vodiča za poređenje:

frightanic.com/iot/comparison-of-esp8266-no… // Dijagram iscrtavanja NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 dijagram iscrtavanja: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 dijagram iscrtavanja:

// Objašnjenje platformi:

// Napravljeno od NodeMCU ESP8266 mikrokontrolera, baterije ili USB napajanja i SG90 servo

// Možete koristiti 2. nemodifikovani modul esp8266 kao pristupnu tačku beacon hotspota umjesto korištenja pametnog telefona, nije potrebno programiranje.

Korak 3: Nabavite dijelove softvera

Prvo ćete morati preuzeti besplatni Arduino IDE

Arduino Web Editor ne radi s NodeMCU -om u vrijeme dok ovo pišem, pa ćete umjesto toga morati instalirati IDE na svoje računalo.

Također ćete morati preuzeti datoteke NearBot sa www. MakerSa.ga - Veza za preuzimanje datoteke za ovaj projekt navedena je na toj web stranici.

Korak 4: Instalirajte upravljačke programe i profile ploče

Neke korisne informacije
Neke korisne informacije

Unutar NearBot zip -a koji ste preuzeli i raspakirali bit će upravljački programi za NodeMCU modul. Instalirajte ih na svoj računar.

Ako vam oni ne rade, možda ćete moći pronaći upravljačke programe CH340G na wemos.cc/downloads

Vaš NodeMCU možda ne koristi CH340G čip, pa ćete možda trebati komentirati upravljački program koji tražite, a ja ću vam odgovoriti s vezom za preuzimanje tog upravljačkog programa.

  1. Zatim otvorite Arduino IDE i idite na File Preferences FileAdditional Boards Manager u Arduino IDE.
  2. Tamo zalijepite sljedeći kod:
  3. Pritisnite OK da zatvorite karticu sa preferencama.
  4. Idite na alate i ploču, a zatim odaberite upravitelj ploče.
  5. Idite na "esp8266 by esp8266 community" i instalirajte softver za Arduino.

Nakon što je gore navedeni proces završen, spremni smo za programiranje našeg esp8266 NodeMCU mikrokontrolera s Arduino IDE -om!

Korak 5: Neke korisne informacije

Neke korisne informacije
Neke korisne informacije
Neke korisne informacije
Neke korisne informacije

Možda će vam biti korisno otkriti koju verziju NodeMCU -a imate. Evo vodiča za usporedbu:

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

Svaka verzija ima drugačiji raspored pinova. Kupio sam verziju v3 (Lolin) jer ima 5V izlazne pinove za napajanje servo motora. Konačno sam umjesto toga umjesto toga upotrijebio utičnice za napajanje od 3 volta radi sigurnosti (NodeMCU I/O pinovi nisu tolerantni na 5 V), ali možda biste htjeli koristiti pinove od 5 V jer su tehnički ove vrste servo motora specificirane za snagu od 4,5 do 5 volti.

Korak 6: Učitajte kôd u NodeMCU

Učitajte kôd u NodeMCU
Učitajte kôd u NodeMCU
Učitajte kôd u NodeMCU
Učitajte kôd u NodeMCU
  1. Uključite NodeMCU u računar pomoću bilo kojeg mikro USB kabla.
  2. Otvorite Arduino IDE i u odjeljku "Ploče" odaberite "ESP12E" i COM port za NodeMCU.
  3. U IDE -u idite na FileOpen i pregledajte zip mapu prethodno preuzetu sa makersa.ga da biste otvorili Arduino skicu pod nazivom "ProximityActuator013017DonovanMagryta.ino"
  4. Zatim uredite red koda koji ovo sadrži kako biste dodali ime i lozinku vašeg WiFi svjetionika. Više o tome ispod! Na primjer:

const char* ssid = "mywifi"; // Stavite svoje ime hotspota unutar navodnika

const char* password = "mywifipassword"; // Stavite svoju lozinku za pristupnu tačku unutar navodnika

Zatim kliknite "upload" da biste šifrirali kod na NodeMCU ploču.

NearBot koristi džepni WiFi signal za identifikaciju i procjenu udaljenosti. Baš kao i ključevi za blizinu, neki noviji automobili imaju otključavanje vrata auta dok se približavate.

Mobilnu pristupnu točku pametnog telefona možete koristiti kao svjetionik ili alternativno koristiti jeftini WiFi modul ESP-01 koji se napaja s par AAA baterija ili malom litijumskom baterijom od 3,7 V. Nema potrebe za programiranjem ESP-01, on je prema zadanim postavkama postavljen na način rada vruće tačke kada je uključen. Shema kola za to prikazana je na ovom koraku.

Korak 7: Priključite Servo na NodeMCU

Trebat će vam neke kratkospojne žice za uključivanje servo u NodeMCU V3.

Shema kola je jednostavna.

Utaknite D0 na signal u vodi (žica najsvjetlije boje na servo -u. Obično žuta ili bijela.)

Priključite 3V ili pin VO na 5V ulazni vod (druga žica u svjetlu u boji na servo -u, obično crvena ili narančasta.)

Pričvrstite GND na uzemljenje (žica najtamnije boje na servo -u, obično smeđa ili crna.)

Korak 8: Fino podesite NearBot

Kod pretvara snagu signala u procjenu udaljenosti. Pouzdano radi na udaljenostima reakcije manjim od 2 metra ili 6,5 stopa. Budući da se radi o izravnoj konverziji, nije tako glatka za daljnje udaljenosti od 3 metra koliko bi potencijalno mogla biti s boljom metodom proračuna. O tome kasnije.

Možda ćete htjeti podesiti gdje je servo truba (mala bijela ruka koja se pomiče) postavljena. To se postiže jednostavnim odvrtanjem servo kraka odvijačem i ponovnim postavljanjem.

Sljedeći dio je podešavanje maksimalnog i minimalnog stupnja kretanja pomoću koda.

To se može učiniti promjenom brojeva sadržanih u redovima koji izgledaju ovako:

myservo.write (10); // pomiče servo krak na 10 stupnjeva rotacije

Također možete prilagoditi osjetljivost jačine signala promjenom negativnih brojeva u redovima koji izgledaju ovako:

if (rssi> -30 && rssi <-5) {// Ako je jačina signala jača od -30 i slabija od -5. zatim uradite sljedeće …

Korak 9: Kako to funkcionira

  1. NearBot se prvo povezuje s hotspotom unaprijed kako se korisnici približavaju.
  2. On skenira RSSI (jačinu primljenog signala) i pretvara ga u približnu udaljenost.
  3. Dok je udaljenost unutar navedenog raspona, pomiče ruku servo motora u položaj 1.
  4. U suprotnom, servo motor se pomiče u položaj 2.

Kad sam ovo testirao, ovo RSSI podešavanje (-50) pomiče servo u položaj 1 dok je udaljenost 0 do 1,5 metar s ESP-01 svjetionikom ili hotspotom telefona u džepu.

RSSI se obično nalazi u rasponu od -90 do -20, pri čemu je -20 najjača snaga signala.

Ako otvorite Arduino IDE serijski monitor dok je NearBot priključen na računalo, on će prikazati jačinu signala i točke okidanja u stvarnom vremenu kako biste imali korisne povratne informacije.

Evo potpunog koda:

// Prije nego počnete:

// 1. Ako još niste preuzeli Arduino IDE, nabavite ga besplatno (donacija nije obavezna) na: https://www.arduino.cc/en/Main/Software // 2. otvorite Arduino IDE (ako ovo već ne čitate u Arduino IDE -u!)… // 3. Idite na datoteke i kliknite na željene postavke u Arduino IDE -u … // 4. kopirajte donju vezu u Upravitelju dodatnih ploča: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kliknite OK za zatvaranje kartice sa preferencama … // 6. Idite na alate i ploču, a zatim odaberite upravitelj ploče … // 7. Idite na esp8266 od strane zajednice esp8266 i instalirajte softver za Arduino… // 8. Možda ćete morati preuzeti i instalirati upravljački program CH340 ako ne možete natjerati NodeMCU da razgovara s vašim Arduino IDE -om: https://www.arduino.cc/en/Main/Software // Nakon što smo završili gore navedeni proces, mi smo Pročitajte kako biste programirali naš esp8266 NodeMCU mikrokontroler s Arduino IDE -om. Možda ćete htjeti saznati koju NodeMCU verziju imate. Evo vodiča za usporedbu: https://www.arduino.cc/en/Main/Software // Napravljeno od NodeMCU ESP8266 mikrokontrolera, baterije ili USB napajanja i SG90 Servo // Možete koristiti 2. nemodificirani modul esp8266 kao svjetionik hotspot AP umesto da koristite pametni telefon. // NearBot krug: // pin D0 na žicu servo signala (žica najsvjetlije boje) // pin 3 V na žicu servo 5v (srednja žica) (spojeno paralelno s USB kabelom ili VO pinom na NodeMCU -u ako imate V3. / /USB napajanje na USB utikač na NodeMCU // GND pin na žicu za uzemljenje servo servera (žica najtamnije boje) // Linije napomena počinju s dvije kose crte prema naprijed, a računari ih zanemaruju. Napomene su samo za nas ljude! #Include #include // Možda će biti potrebno za serijsko ispisivanje. #Include // Servoteka #define D0 16 // Definira pinove za lakše dodjeljivanje pinova. #Define D1 5 // I2C sabirnica SCL (sat) #define D2 4 // I2C sabirnica SDA (podaci) #define D3 0 #define D4 2 // Isto kao "LED_BUILTIN", ali obrnuta logika #define D5 14 // SPI magistrala SCK (sat) #define D6 12 // SPI sabirnica MISO #define D7 13 // SPI Sabirnica MOSI #define D8 15 // SPI sabirnica SS (CS) #define D9 3 // RX0 (serijska konzola) #define D10 1 // TX0 (serijska konzola) Servo myservo; // Kreirajte servo objekt pod nazivom myservo // Telefon ili dodatni modul ESP8266 postavljen na način rada pristupne tačke: konst ar* ssid = ""; // Stavite svoje ime hotspota unutar navodnika const char* password = ""; // Stavite svoju pristupnu lozinku unutar navodnika void setup () {Serial.begin (115200); // postavlja serijsku brzinu prijenosa podataka tako da mikrokontroler može razgovarati sa sučeljem za serijsko ispisivanje u Arduino IDE - Možda ćete je umjesto toga morati promijeniti na 9600! myservo.attach (D0); // priključuje servo na pin D0 ili GPIO16 na servo objekt - Vidi više na: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // pomiče servo krak na 10 stupnjeva rotacije Serial.println ("Zaključano"); // izlaz serijskog monitora riječi "Zaključano" WiFi.mode (WIFI_STA); // Postavlja wifi na način rada stanice WiFi.begin (ssid, lozinka); // Spaja se na hotspot beacon} void loop () {// Petlja se brzo ponavlja uvijek i ponovo ako (WiFi.status ()! = WL_CONNECTED) {// Ako wifi NIJE spojen, učinite sljedeće … Serial.println ("Nije moguće uspostaviti WiFi vezu"); myservo.write (10); // Pomera servo krak na 10 stepeni Serial.println ("Zaključano"); } else {// Ako je WiFi IS spojen, učinite sljedeće … long rssi = WiFi. RSSI (); // Kreira varijablu pod nazivom rssi i dodjeljuje je funkciji koja vraća očitavanje jačine signala beacon -a hotspot -a Serial.print (rssi); // šalje rssi čitanje na serijski monitor if (rssi> -50 && rssi <-5) {// Ako je jačina signala jača od -50 i slabija od -5. zatim učinite sljedeće … myservo.write (170); // Rotirajte servo polugu na 170 stepeni Serial.println ("Otključano"); } else {// Ako gornji uslovi nisu ispunjeni, učinite sljedeće … myservo.write (10); // Rotira servo krak unatrag za 10 stupnjeva. Serial.println ("Zaključano"); }}}

Korak 10: Trebali biste znati …

Odricanje odgovornosti:

Trenutna iteracija NearBot koda pouzdano radi na udaljenostima manjim od 2 metra ili 6,5 stopa. Osim toga, postaje manje precizan, ali i dalje radi.

To se može popraviti, ali trenutno ne znam kako to učiniti. Bilo bi mi drago ako bi netko radio sa mnom kako bih mogao ažurirati ove upute preciznijom metodom izračuna udaljenosti!

Ove veze mogu biti korisne: YouTuber CNLohr je sa ograničenim uspjehom razvio firmver za mjerenje udaljenosti i pozicije za ESP8266:

Espressif je razvio funkciju otkrivanja udaljenosti Time of Flight koja bi radila s Arduino IDE -om za ESP8266, ali je nikada nije objavila:

SubPos sistem pozicioniranja koristi module ESP8266 i proračun gubitka puta, što ne znam kako implementirati u Arduino IDE:

Našao sam primjer u Java jeziku, ali ne znam kako replicirati ovo je Arduino IDE:

dvostruka udaljenost = Math.pow (10.0, (((dvostruko) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvencija)))/(20*mu));

Korak 11: To je sve

Ako sami napravite NearBot, u komentarima ispod objavite svoj "Uspio sam"!

Ako imate još ideja za što koristiti Versatile NearBot platformu, komentirajte svoje ideje! To bi mogla biti odlična inspiracija za druge korisnike instrukcija!

Ako vam se sviđa ovaj vodič, razmislite o glasanju za ovo uputstvo na takmičenjima!

Preporučuje se: