Satura rādītājs:

Daudzpusīgs blakus robots: 11 soļi (ar attēliem)
Daudzpusīgs blakus robots: 11 soļi (ar attēliem)

Video: Daudzpusīgs blakus robots: 11 soļi (ar attēliem)

Video: Daudzpusīgs blakus robots: 11 soļi (ar attēliem)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Novembris
Anonim
Image
Image

Šī pamācība parādīs, kā izveidot daudzpusīgu robota sprūdu, kas var pārvietot kaut ko, piemēram, pogu, slēdzi vai zvanīt dažādās ierīcēs, kad jūs (ar tālruni vai bāku kabatā) esat tuvumā. Tas nozīmē, ka tas var automātiski atslēgt un atkal aizslēgt durvju aizbīdni, kad * tikai jūs * ejat garām, aizverat sprinkleru vārstu, lai jūs varētu iziet cauri ūdenim neskartā veidā kā sava veida piepilsētas Mozus, samazinot skaļruņu skaļumu, kamēr atrodaties garāžā joslas telpā, iedarbiniet iPod, atskaņojot dramatisku ieraksta melodiju vai pastāstiet joku (Džadena Smita tvīts?), kamēr atrodaties telpā, vai pauzējiet filmu, kad pieceļaties, lai izmantotu tualeti.

Šim projektam nav nepieciešama lodēšana vai speciāli instrumenti

Ja jums pietiekami patīk šīs pamācības, lūdzu, apsveriet iespēju balsot par šo pamācību konkursā Robotics 2017!

1. darbība: iegādājieties aparatūras daļas

Jums būs nepieciešams:

  • NodeMCU v2 vai V3
  • Micro 9G Servo Motor aptuveni $ 1,40 USD bezmaksas piegāde eBay vai Aliexpress
  • Arduino džemperu vadi no sievietes līdz vīrietim.
  • Korpuss NearBot - es izmantoju atrasto plastmasas kastīti.
  • Mikro USB datu kabelis (tālruņa detaļu lūžņi)
  • USB barošanas avots (tālruņa lādētāja lūžņi)

Ja jums nav viedtālruņa ar mobilā tīklāja funkciju, jums būs nepieciešams arī:

  • ESP-01 modulis aptuveni $ 2,50 USD bezmaksas piegāde DealExtreme, GearBest, Ebay vai Aliexpress.
  • 1 savienojiet pārī AAA baterijas
  • dubults AAA bateriju turētājs ar slēdzi

2. darbība. Ātrā sākšana

Šis solis satur ātru darba sākšanas rokasgrāmatu, ja jums patīk šāda veida lietas. Pārējā šī pamācība iet soli pa solim un pievieno padziļinātu informāciju

// Iepirkumu saraksts: // NodeMCU V3 (Lolin) ESP8266 mikrokontrolleris

// SG90 9G servomotors

// USB barošanas bloks vai USB sienas adapteris.

// Mikro USB datu/uzlādes kabelis

// Arduino vīriešu un sieviešu tipa džemperu vadi

// PIRMS SĀKT:

1. Ja vēl neesat lejupielādējis Arduino IDE, iegūstiet to bez maksas (ziedojums nav obligāts) vietnē:

2. atveriet Arduino IDE (ja jūs to vēl nelasāt Arduino IDE!)…

// 3. Dodieties uz failiem un noklikšķiniet uz preferences Arduino IDE …

// 4. nokopējiet tālāk esošo kodu Papildu dēļu pārvaldniekā: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

5. noklikšķiniet uz Labi, lai aizvērtu preferenču cilni …

6. Dodieties uz rīkiem un tāfeli un pēc tam atlasiet tāfeles pārvaldnieku …

// 7. Dodieties uz esp8266 ar esp8266 kopienu un instalējiet Arduino programmatūru …

8. Jums var būt nepieciešams lejupielādēt un instalēt CH340 draiveri, ja nevarat panākt NodeMCU sarunu ar savu Arduino IDE:

// Kad viss iepriekš minētais process ir pabeigts, mēs lasām, lai ieprogrammētu mūsu esp8266 NodeMCU mikrokontrolleru ar Arduino IDE.

//9.plāksnes izvēlnē atlasiet NodeMCU V1.0 ESP12E /

/10. Atlasiet izmantoto COM portu.

// 11. atlasiet kodu (lejupielādējiet no www.makersa.ga) un noklikšķiniet uz augšupielādēt. /

/12. Pievienojiet servo NodeMCU, izmantojot džemperu vadus. D0, lai signalizētu, no zemes līdz zemei, +VCC līdz VO vai 3V. /

/13. Pielāgojiet servo ragu, izmantojot skrūvgriezi.

14. Pielāgojiet maksimālo un minimālo kustības pakāpi, izmantojot kodu.

15. Kad kods tiek atjaunināts, atkārtoti augšupielādējiet NodeMCU.

// Jums var šķist svarīgi noskaidrot, kura NodeMCU versija jums ir. Šeit ir salīdzināšanas ceļvedis:

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

Iekārtu skaidrojums:

// Izgatavots no NodeMCU ESP8266 mikrokontrollera, akumulatora vai USB barošanas avota un SG90 Servo

// Jūs varat izmantot 2. nemodificētu esp8266 moduli kā bākas piekļuves punktu AP, nevis viedtālruni, nav nepieciešama programmēšana.

3. darbība: iegūstiet programmatūras daļas

Vispirms jums būs jālejupielādē bezmaksas Arduino IDE

Rakstīšanas laikā Arduino tīmekļa redaktors nedarbojas ar NodeMCU, tāpēc jums tā vietā datorā būs jāinstalē IDE.

Jums būs arī jāpaņem NearBot faili no vietnes www. MakerSa.ga - šī projekta failu lejupielādes saite ir norādīta šajā vietnē.

4. darbība: instalējiet draiverus un plates profilus

Noderīga informācija
Noderīga informācija

Lejupielādētajā un izpakotajā NearBot zip iekšpusē būs NodeMCU moduļa draiveri. Instalējiet tos savā datorā.

Ja tie jums nedarbojas, iespējams, varēsit atrast CH340G draiverus vietnē wemos.cc/downloads

Jūsu NodeMCU, iespējams, neizmanto CH340G mikroshēmu, tāpēc jums, iespējams, vajadzēs komentēt meklēto draiveri, un es atbildēšu ar šī draivera lejupielādes saiti.

  1. Pēc tam atveriet Arduino IDE un Arduino IDE dodieties uz failu preferenču papildu dēļu pārvaldnieku.
  2. Ielīmējiet šādu kodu:
  3. Noklikšķiniet uz Labi, lai aizvērtu preferenču cilni.
  4. Dodieties uz rīkiem un tāfeli un pēc tam atlasiet tāfeles pārvaldnieku.
  5. Dodieties uz "esp8266 by esp8266 community" un instalējiet Arduino programmatūru.

Kad viss iepriekš minētais process ir pabeigts, mēs esam gatavi programmēt savu esp8266 NodeMCU mikrokontrolleru ar Arduino IDE!

5. darbība: noderīga informācija

Noderīga informācija
Noderīga informācija
Noderīga informācija
Noderīga informācija

Jums var būt noderīgi noskaidrot, kura jums ir NodeMCU versija. Šeit ir salīdzināšanas ceļvedis:

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

Katrai versijai ir atšķirīgs tapu izvietojums. Es nopirku versiju v3 (Lolin), jo tai ir 5 V izejas tapas, lai darbinātu Servo motoru. Galu galā es drošībai izmantoju 3 voltu strāvas tapas (NodeMCU I/O tapas nav izturīgas pret 5 V), taču jūs varētu vēlēties izmantot 5 V tapas, jo tehniski šāda veida servomotori ir paredzēti 4,5 līdz 5 voltu jaudai.

6. darbība: ielādējiet kodu NodeMCU

Ielādējiet kodu NodeMCU
Ielādējiet kodu NodeMCU
Ielādējiet kodu NodeMCU
Ielādējiet kodu NodeMCU
  1. Pievienojiet NodeMCU datoram, izmantojot jebkuru mikro USB kabeli.
  2. Atveriet Arduino IDE un sadaļā "Dēļi" izvēlieties "ESP12E" un NodeMCU COM portu.
  3. IDE dodieties uz FileOpen un pārlūkojiet zip mapi, kas iepriekš lejupielādēta no makersa.ga, lai atvērtu Arduino skici ar nosaukumu "ProximityActuator013017DonovanMagryta.ino"
  4. Pēc tam rediģējiet koda rindu, kas satur šo, lai pievienotu sava WiFi bākas nosaukumu un paroli. Vairāk par to zemāk! Piemēram:

const char* ssid = "mywifi"; // Ievietojiet savu tīklāja nosaukumu pēdiņās

const char* parole = "mywifipassword"; // Ievietojiet savu karsta punkta paroli pēdiņās

Pēc tam noklikšķiniet uz "augšupielādēt", lai mirgot kodu uz NodeMCU plates.

NearBot izmanto kabatā pieejamu WiFi bāku, lai identificētu jūs un novērtētu attālumu. Tāpat kā tuvuma atslēgas, dažām jaunākām automašīnām ir pieejamas durvis, tuvojoties automašīnai.

Jūs varat izmantot savu viedtālruņa mobilo tīklāju kā bāku vai arī izmantot lētu ESP-01 WiFi moduli, ko darbina pāris AAA baterijas vai mazs 3,7 V litija akumulators. Nav nepieciešams programmēt ESP-01, pēc noklusējuma tas tiek aktivizēts karsto punktu režīmā. Šīs darbības shēma ir parādīta šajā solī.

7. solis: pievienojiet servo NodeMCU

Lai pievienotu servo NodeMCU V3, jums būs nepieciešami daži džemperu vadi.

Shēmas shēma ir vienkārša.

Piespraudiet D0 pie signāla vadā (gaišākā krāsu vads uz servo. Parasti dzeltens vai balts.)

Piestipriniet 3V vai piespiediet VO pie 5V ieejas vada (otrs gaišākais krāsas vads uz servo, parasti sarkans vai oranžs).

Piestipriniet GND pie zemes vada (tumšākās krāsas vads uz servo, parasti brūns vai melns.)

8. solis: precīzi noregulējiet NearBot

Kods pārvērš signāla stiprumu par attāluma novērtējumu. Tas darbojas droši, ja reakcijas attālums ir mazāks par 2 metriem vai 6,5 pēdām. Tā kā tā ir tieša pārveidošana, tā nav tik gluda tālākos attālumos kā 3 metri, kā tas varētu būt, izmantojot labāku aprēķina metodi. Vairāk par to vēlāk.

Iespējams, vēlēsities noregulēt servo signāltaures (mazā baltā roka, kas pārvietojas) novietojumu. Tas tiek darīts, vienkārši atskrūvējot servo sviru ar skrūvgriezi un novietojot to atpakaļ.

Nākamā daļa ir pielāgot maksimālo un minimālo kustības pakāpi, izmantojot kodu.

To var izdarīt, mainot numurus rindās, kas izskatās šādi:

myservo.write (10); // pārvieto servo roku uz 10 grādu rotāciju

Varat arī pielāgot signāla stipruma jutību, mainot negatīvos skaitļus rindās, kas izskatās šādi:

ja (rssi> -30 && rssi <-5) {// Ja signāla stiprums ir spēcīgāks par -30 un vājāks par -5. tad rīkojies šādi …

9. darbība. Kā tas darbojas

  1. Tuvojoties lietotājiem, NearBot vispirms izveido savienojumu ar tīklāju.
  2. Tas skenē RSSI (uztvertā signāla stiprumu) un pārvērš to aptuvenā attālumā.
  3. Kamēr attālums ir norādītajā diapazonā, tas pārvieto servomotoru uz 1 pozīciju.
  4. Pretējā gadījumā servomotors tiek pārvietots 2. pozīcijā.

Kad es to pārbaudīju, šī RSSI regulēšana (-50) pārnes servo uz 1. pozīciju, kamēr attālums ir no 0 līdz 1,5 metriem ar ESP-01 bāku vai tālruņa karsto punktu manā kabatā.

RSSI parasti ietilpst diapazonā no -90 līdz -20, un -20 ir spēcīgākais signāla stiprums.

Ja atverat Arduino IDE seriālo monitoru, kamēr NearBot ir pievienots datoram, tas reālā laikā parādīs signāla stiprumu un sprūda punktus, lai jūs varētu ērti saņemt atsauksmes.

Šeit ir pilns kods:

// PIRMS SĀKT:

1. Ja vēl neesat lejupielādējis Arduino IDE, iegūstiet to bez maksas (ziedošana nav obligāta) vietnē: https://www.arduino.cc/en/Main/Software // 2. atveriet Arduino IDE (ja jūs to vēl nelasāt Arduino IDE!)… // 3. Dodieties uz failiem un noklikšķiniet uz preferences Arduino IDE… // 4. nokopējiet tālāk esošo saiti papildu dēļu pārvaldniekā: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. noklikšķiniet uz Labi, lai aizvērtu preferenču cilni… // 6. Dodieties uz rīkiem un tāfeli un pēc tam atlasiet tāfeles pārvaldnieku… // 7. Dodieties uz esp8266 ar esp8266 kopienu un instalējiet Arduino programmatūru … // 8. Jums var būt nepieciešams lejupielādēt un instalēt CH340 draiveri, ja nevarat panākt, lai NodeMCU sarunājas ar savu Arduino IDE: https://www.arduino.cc/en/Main/Software // Kad viss iepriekš minētais process ir pabeigts, lasiet, lai ieprogrammētu mūsu esp8266 NodeMCU mikrokontrolleru ar Arduino IDE. Iespējams, vēlēsities noskaidrot, kura NodeMCU versija jums ir. Šeit ir salīdzināšanas rokasgrāmata: https://www.arduino.cc/en/Main/Software // Izgatavots no NodeMCU ESP8266 mikrokontrollera, akumulatora vai USB barošanas avota un SG90 servo // Kā bāku varat izmantot otro nemodificētu esp8266 moduli Hotspot AP, nevis viedtālruni. // NearBot ķēde: // D0 kontakts līdz servo signāla vadam (vieglākās krāsas vads) // 3 V kontakts līdz 5 voltu servo vadam (vidējais vads) (savienots paralēli USB kabelim vai VO tapai NodeMCU, ja jums ir V3.) /USB strāvas padeve USB spraudnim NodeMCU // GND tapa līdz servo zemējuma vadam (tumšākās krāsas vads) // Piezīmju līnijas sākas ar diviem slīpsvītrām uz priekšu, un datori tās ignorē. Piezīmes ir domātas tikai mums cilvēkiem! #Include #include // Var būt vajadzīgs sērijveida drukāšanai. #Include // Servo bibliotēka #define D0 16 // Definē tapas, lai atvieglotu tapas piešķiršanu. #Define D1 5 // I2C Bus SCL (pulkstenis) #define D2 4 // I2C Bus SDA (dati) #define D3 0 #define D4 2 // Tāds pats kā "LED_BUILTIN", bet apgriezta loģika #define D5 14 // SPI Bus SCK (pulkstenis) #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; // Izveidojiet servobjektu ar nosaukumu myservo // Tālrunis vai papildu ESP8266 modulis ir iestatīts karstā punkta AP režīmā: const ch ar* ssid = ""; // Ievietojiet karsta punkta nosaukumu pēdiņās const char* password = ""; // Ievietojiet savu karsta punkta paroli pēdiņās void setup () {Serial.begin (115200); // iestata sērijas pārraides ātrumu, lai mikrokontrolleris varētu sarunāties ar sērijveida drukas interfeisu Arduino IDE - tā vietā, iespējams, būs jāmaina uz 9600! myservo.attach (D0); // piestiprina servo objektam servo uz D0 pin aka GPIO16 - Skatīt vairāk: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // pārvieto servo roku uz 10 grādu rotāciju Serial.println ("Bloķēts"); // izvada seriālā monitora vārdu "Bloķēts" WiFi.mode (WIFI_STA); // Iestata wifi uz stacijas režīmu WiFi.begin (ssid, parole); // Izveido savienojumu ar karsto punktu bāku} void loop () {// Cikls ātri un atkal darbojas ātri, ja (WiFi.status ()! = WL_CONNECTED) {// Ja wifi nav pievienots, rīkojieties šādi … Serial.println ("Nevarēja iegūt wifi savienojumu"); myservo.write (10); // Pārvieto servo roku uz 10 grādiem Serial.println ("Bloķēts"); } cits {// Ja ir pieslēgts WiFi, rīkojieties šādi … ilgi rssi = WiFi. RSSI (); // Izveido mainīgo ar nosaukumu rssi un piešķir to funkcijai, kas atgriež karsto punktu bākas Serial.print (rssi) signāla stipruma nolasījumu; // izvada rssi nolasījumu sērijas monitorā, ja (rssi> -50 && rssi <-5) {// Ja signāla stiprums ir spēcīgāks par -50 un vājāks par -5. tad rīkojies šādi … myservo.write (170); // Pagrieziet servo roku līdz 170 grādiem Serial.println ("Unlocked"); } cits {// Ja iepriekš minētie nosacījumi nav izpildīti, rīkojieties šādi … myservo.write (10); // Pagriež servo roku atpakaļ līdz 10 grādiem. Serial.println ("Bloķēts"); }}}

10. solis: jums vajadzētu zināt…

Atruna:

Pašreizējā NearBot koda iterācija darbojas droši attālumos, kas ir mazāki par 2 metriem vai 6,5 pēdām. Turklāt tas kļūst mazāk precīzs, bet joprojām darbojas.

To var labot, bet šobrīd es nezinu, kā to izdarīt. Es priecātos, ja kāds strādātu ar mani, lai es varētu atjaunināt šo pamācību ar precīzāku attāluma aprēķināšanas metodi!

Šīs saites varētu būt parocīgas: YouTuber CNLohr ar ierobežotu panākumu izstrādāja attāluma un pozīcijas noteikšanas programmaparatūru ESP8266:

Espressif izstrādāja lidojuma laika noteikšanas funkciju, kas darbotos ar Arduino IDE ESP8266, bet nekad to neizlaida:

SubPos pozicionēšanas sistēma izmanto ESP8266 moduļus un ceļa zuduma aprēķinu, ko es nezinu, kā ieviest Arduino IDE:

Es atradu piemēru Java valodā, bet es nezinu, kā atkārtot Arduino IDE:

divkāršs attālums = Math.pow (10,0, (((dubultā) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvence)))/(20*mu));

11. solis: tas arī viss

Ja izveidojat savu NearBot, ievietojiet komentāru zemāk: “Es to izdarīju”!

Ja jums ir vēl kādas idejas, kam izmantot Versatile NearBot platformu, lūdzu, komentējiet savas idejas! Tas varētu būt lieliska iedvesma citiem pamācību lietotājiem!

Ja jums patīk šī apmācība, lūdzu, apsveriet iespēju balsot par šo pamācību konkursos!

Ieteicams: