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, Srpanj
Anonim
Image
Image

Ova instrukcija će vam pokazati kako izgraditi svestrani okidač robota koji može pomicati nešto poput gumba, prekidača ili biranja na raznim uređajima kada ste (sa telefonom ili svjetionikom u džepu) u blizini. To znači da bi mogao automatski otključati i ponovno zaključati zasun vrata dok * samo vi * prolazite, zatvoriti prskalni ventil tako da možete proći kroz vodu neoštećen 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 kad ustanete kako biste koristili toalet.

Ovaj projekt ne zahtijeva lemljenje ili posebne alate

Ako vam se dovoljno sviđaju ove upute, razmislite o glasovanju za ovu instrukciju na natječaju 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 značajkom mobilne pristupne točke, trebat će vam i:

  • Modul ESP-01 oko 2,50 USD besplatna dostava na DealExtreme, GearBest, Ebay ili Aliexpress.
  • 1 par AAA baterija
  • 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

// Popis za kupnju: // NodeMCU V3 (Lolin) ESP8266 mikrokontroler

// SG90 9G servo motor

// USB Power Bank ili USB zidni adapter.

// Micro USB podatkovni/punjač kabel

// Arduino žice kratkospojnika muškog i ženskog tipa

// 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 preferencije u Arduino IDE -u …

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

// 5. kliknite U redu da biste zatvorili 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:

// Nakon što je dovršen gore navedeni proces, čitamo se da programiramo naš esp8266 NodeMCU mikrokontroler s Arduino IDE -om.

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

/10. Odaberite COM port koji koristite.

// 11. odaberite kôd (preuzmite s www.makersa.ga) i kliknite 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 stupanj kretanja pomoću koda.

// 15. Ponovno učitavanje 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 usporedbu:

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… // Dijagram iscrtavanja NodeMCU v3:

// Objašnjenje platformi:

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

// Možete koristiti 2. nemodificirani modul esp8266 kao pristupnu točku beacon hotspota umjesto korištenja pametnog telefona, bez potrebe za programiranjem.

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 s 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

Nekoliko korisnih informacija
Nekoliko korisnih informacija

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

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 čip CH340G, pa ćete možda morati komentirati upravljački program koji tražite, a ja ću 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 kôd:
  3. Pritisnite U redu da biste zatvorili karticu postavki.
  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 dovršen, spremni smo za programiranje našeg esp8266 NodeMCU mikrokontrolera s Arduino IDE -om!

Korak 5: Neke korisne informacije

Nekoliko korisnih informacija
Nekoliko korisnih informacija
Nekoliko korisnih informacija
Nekoliko korisnih informacija

Možda će vam biti korisno shvatiti 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. U konačnici sam umjesto toga umjesto toga upotrijebio utičnice za napajanje od 3 volta radi sigurnosti (Ulazno -izlazne pinove NodeMCU nisu tolerantne na 5 V), ali možda biste htjeli koristiti igle 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čunalo pomoću bilo kojeg mikro USB kabela.
  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 s makersa.ga da biste otvorili Arduino skicu pod nazivom "ProximityActuator013017DonovanMagryta.ino"
  4. Zatim uredite redak koda koji to sadrži kako biste dodali ime i lozinku vašeg WiFi svjetionika. Više o tome ispod! Na primjer:

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

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

Zatim kliknite "upload" za prebacivanje koda na ploču NodeMCU.

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

Mobilnu žarišnu točku vašeg pametnog telefona možete koristiti kao svjetionik ili alternativno koristiti jeftini WiFi modul ESP-01 koji se napaja s par AAA baterija ili malom litijskom baterijom od 3,7 V. Nema potrebe za programiranjem ESP-01, prema zadanim postavkama je u načinu rada žarišne točke kada je uključen. Shema sklopa za to prikazana je u ovom koraku.

Korak 7: Priključite servo na NodeMCU

Za priključivanje servo u NodeMCU V3 trebat će vam neke kratkospojne žice.

Shema kola je jednostavna.

Priključite 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 kabel (druga svjetlija žica 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 djeluje na udaljenosti reakcije manje od 2 metra ili 6,5 stopa. Budući da se radi o izravnoj pretvorbi, nije toliko glatka za daljnje udaljenosti od 3 metra koliko bi potencijalno mogla biti s boljom metodom izračuna. O tome kasnije.

Možda ćete htjeti prilagoditi mjesto na kojem se nalazi servo truba (mala bijela ruka koja se pomiče). 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 učinite sljedeće …

Korak 9: Kako to radi

  1. NearBot se prvo povezuje s hotspotom unaprijed dok 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 ugađanje (-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 obično spada u raspon 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, prikazat će 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 preferencije u Arduino IDE -u … // 4. kopirajte donju vezu u Upravitelj dodatnih ploča: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. kliknite U redu da biste zatvorili karticu 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 dovršili gore navedeni proces, mi smo čitajte kako biste programirali naš esp8266 NodeMCU mikrokontroler s Arduino IDE -om. Možda želite saznati koju verziju NodeMCU -a imate. Evo vodiča za usporedbu: https://www.arduino.cc/en/Main/Software // Izrađeno od NodeMCU ESP8266 mikrokontrolera, baterije ili USB napajanja i SG90 Servo // Možete koristiti drugi nemodificirani modul esp8266 kao svjetionik hotspot AP umjesto korištenja pametnog telefona. // 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 bilješki počinju s dvije kose crte prema naprijed, a računala ih zanemaruju. Bilješke su samo za nas ljude! #Include #include // Može biti potrebno za serijski ispis. #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 Bus SCK (sat) #define D6 12 // SPI Bus 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; // Stvorite servo objekt pod imenom myservo // Telefon ili dodatni modul ESP8266 postavljen na način rada pristupne točke: const ch ar* ssid = ""; // Stavite svoje ime hotspota unutar navodnika const char* password = ""; // Stavite svoju lozinku za pristupnu točku unutar navodnika void setup () {Serial.begin (115200); // postavlja brzinu serijskog prijenosa podataka tako da mikrokontroler može razgovarati sa sučeljem za serijski ispis 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); // Povezuje se s hotspot beacon} void loop () {// Petlja se uvijek iznova brzo pokreće ako (WiFi.status ()! = WL_CONNECTED) {// Ako wifi NIJE spojen, učinite sljedeće … Serial.println ("Nije moguće uspostaviti WiFi vezu"); myservo.write (10); // Pomicanje servo kraka na 10 stupnjeva Serial.println ("Zaključano"); } else {// Ako je WiFi IS spojen, učinite sljedeće … long rssi = WiFi. RSSI (); // Kreira varijablu s imenom rssi i dodjeljuje je funkciji koja vraća očitanje jačine signala svjetionika žarišne točke 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 stupnjeva Serial.println ("Otključano"); } else {// Ako gornji uvjeti nisu ispunjeni, učinite sljedeće … myservo.write (10); // Rotira servo polugu natrag za 10 stupnjeva. Serial.println ("Zaključano"); }}}

Korak 10: Morate znati …

Odricanje:

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 ove upute mogao ažurirati preciznijom metodom izračuna udaljenosti!

Ove veze mogu biti korisne: YouTuber CNLohr razvio je firmver za mjerenje udaljenosti i položaja za ESP8266 s ograničenim uspjehom:

Espressif je razvio funkciju otkrivanja udaljenosti prema vremenu leta koja bi radila s Arduino IDE -om za ESP8266, ali je nikada nije objavila:

Sustav pozicioniranja SubPos koristi module ESP8266 i izrač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, (((double) (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 velika inspiracija za druge korisnike instrukcija!

Ako vam se sviđa ovaj vodič, razmislite o glasovanju za ovo uputstvo na natječajima!

Preporučeni: