Talaan ng mga Nilalaman:

Maraming nalalaman na NearBot: 11 Mga Hakbang (na may Mga Larawan)
Maraming nalalaman na NearBot: 11 Mga Hakbang (na may Mga Larawan)

Video: Maraming nalalaman na NearBot: 11 Mga Hakbang (na may Mga Larawan)

Video: Maraming nalalaman na NearBot: 11 Mga Hakbang (na may Mga Larawan)
Video: Seremonyas ng HALIKAN at YAKAPAN ng LALAKE at BABAE sa Indonesia 2024, Hulyo
Anonim
Image
Image

Ituturo sa iyo ang itinuturo na ito kung paano bumuo ng isang maraming nalalaman na pag-trigger ng robot na maaaring ilipat ang isang bagay tulad ng isang pindutan, switch, o pag-dial sa iba't ibang mga aparato kapag ikaw (kasama ang iyong telepono o isang beacon sa iyong bulsa) ay malapit. Nangangahulugan ito na maaari itong awtomatikong i-unlock at muling ma-lock ang isang trangka sa pinto bilang * ikaw lamang * ang dumaan, patayin ang isang balbula ng pandilig upang maaari kang dumaan sa tubig na hindi nasaktan tulad ng isang uri ng suburban na Moises, ibababa ang dami ng nagsasalita habang nasa garahe ka band room, magpalitaw ng isang iPod na nagpe-play ng isang madrama na tune ng entry o nagsasabi ng isang biro (tweet ni Jaden Smith?) habang nasa silid ka, o i-pause ang isang pelikula kapag bumangon ka upang magamit ang banyo.

Ang proyekto na ito ay hindi nangangailangan ng paghihinang o mga espesyal na tool

Kung nasisiyahan ka sa sapat na mga itinuturo na ito, mangyaring isaalang-alang ang pagboto para sa itinuturo na ito sa paligsahan ng Robotics 2017!

Hakbang 1: Kunin ang Mga Bahagi ng Hardware

Kakailanganin mong:

  • NodeMCU v2 o V3
  • Micro 9G Servo Motor mga $ 1.40 USD libreng pagpapadala sa eBay o Aliexpress
  • Arduino Jumper Wires Babae sa Lalaki.
  • Isang pambalot para sa NearBot - Gumamit ako ng isang scrap plastic box na nakita ko.
  • Micro USB data cable (mga bahagi ng scrap ng telepono)
  • Pinagmulan ng USB power (scrap phone charger)

Kung wala kang isang smartphone na may tampok na mobile hotspot, kakailanganin mo rin ang:

  • Ang module ng ESP-01 tungkol sa $ 2.50 USD libreng pagpapadala sa DealExtreme, GearBest, Ebay, o Aliexpress.
  • 1 Pares ng mga AAA baterya
  • dalawahang may hawak ng baterya ng AAA na may switch

Hakbang 2: Mabilis na Pagsisimula

Naglalaman ang hakbang na ito ng isang mabilis na gabay sa pagsisimula kung sakaling gusto mo ang ganoong uri ng bagay. Ang natitirang pagtuturo na ito ay paunti-unti at nagdaragdag ng mas malalim na impormasyon

// Listahan ng pamimili: // NodeMCU V3 (Lolin) ESP8266 microcontroller

// SG90 9G Servo Motor

// USB Power Bank o USB wall adapter.

// Micro USB data / charge cable

// Arduino male to female type jumper wires

//BAGO KA MAGSIMULA:

// 1. Kung hindi mo pa na-download ang Arduino IDE, makuha ito nang libre (opsyonal na donasyon) sa:

// 2. buksan ang Arduino IDE (kung hindi mo pa ito binabasa sa Arduino IDE!)…

// 3. Pumunta sa mga file at mag-click sa kagustuhan sa Arduino IDE…

// 4. kopyahin ang code sa ibaba sa Karagdagang board Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. i-click ang OK upang isara ang tab ng kagustuhan …

// 6. Pumunta sa mga tool at board, at pagkatapos ay piliin ang board manager…

// 7. Mag-navigate sa esp8266 sa pamamagitan ng komunidad ng esp8266 at i-install ang software para sa Arduino…

// 8. Maaaring kailanganin mong i-download at i-install ang driver ng CH340 kung hindi mo makuha ang pakikipag-usap sa NodeMCU sa iyong Arduino IDE:

// Kapag nakumpleto na ang lahat ng proseso sa itaas nabasa na namin sa programa ang aming esp8266 NodeMCU microcontroller kasama ang Arduino IDE.

//9.select NodeMCU V1.0 ESP12E mula sa menu ng board /

/ 10. Piliin ang COM port na iyong ginagamit.

// 11. piliin ang code (mag-download mula sa www.makersa.ga) at i-click ang upload. /

/ 12. I-plug ang servo sa NodeMCU gamit ang mga jumper wires. D0 upang mag-signal, ground to ground, + VCC sa VO o 3V. /

/ 13. Ayusin ang servo sungay gamit ang isang distornilyador.

// 14. Ayusin ang maximum at minimum na degree ng paggalaw gamit ang code.

// 15. Muling i-upload sa NodeMCU sa tuwing nai-update ang code.

// Maaari mong malaman na mahalagang alamin kung aling bersyon ang NodeMCU mayroon ka. Mayroon siyang gabay sa paghahambing:

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

// Paliwanag ng mga rigs:

// Ginawa mula sa NodeMCU ESP8266 microcontroller, baterya o USB power supply, at SG90 Servo

// Maaari mong gamitin ang isang 2nd unmodified esp8266 module bilang isang beacon hotspot AP sa halip na gumamit ng isang smartphone, walang kinakailangang programa.

Hakbang 3: Kunin ang Mga Bahagi ng Software

Kakailanganin mo munang i-download ang libreng Arduino IDE

Ang Arduino Web Editor ay hindi gumagana sa NodeMCU sa oras na sinusulat ko ito, kaya kakailanganin mong i-install ang IDE sa iyong computer sa halip.

Kakailanganin mo ring grab ang mga file ng NearBot mula sa www. MakerSa.ga - Ang link ng pag-download ng file para sa proyektong ito ay nakalista sa site na iyon.

Hakbang 4: Mag-install ng Mga Driver at Profile ng Board

Ilang Makatulong na Impormasyon
Ilang Makatulong na Impormasyon

Sa loob ng zip ng NearBot na na-download mo at na-zip ay ang mga driver para sa module na NodeMCU. I-install ang mga iyon sa iyong computer.

Kung ang mga iyon ay hindi gagana para sa iyo, maaari kang makahanap ng mga driver ng CH340G sa wemos.cc/downloads

Maaaring hindi gumamit ang iyong NodeMCU chip ng CH340G, kaya maaaring kailangan mong magbigay ng puna sa driver na iyong hinahanap, at tutugon ako sa link ng pag-download para sa driver na iyon.

  1. Susunod, buksan ang Arduino IDE at pumunta sa Mga Kagustuhan sa FileAdditional Boards Manager sa Arduino IDE.
  2. I-paste ang sumusunod na code doon:
  3. Mag-click sa OK upang isara ang tab ng kagustuhan.
  4. Pumunta sa mga tool at board, at pagkatapos ay piliin ang board manager.
  5. Mag-navigate sa "esp8266 sa pamamagitan ng komunidad ng esp8266" at i-install ang software para sa Arduino.

Kapag natapos na ang lahat ng proseso sa itaas handa na kaming i-program ang aming esp8266 NodeMCU microcontroller gamit ang Arduino IDE!

Hakbang 5: Ilang Makatulong na Impormasyon

Ilang Makatulong na Impormasyon
Ilang Makatulong na Impormasyon
Ilang Makatulong na Impormasyon
Ilang Makatulong na Impormasyon

Maaari mong mahanap ito madaling gamitin upang malaman kung aling bersyon ng NodeMCU mayroon ka. Narito ang isang gabay sa paghahambing:

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

Ang bawat bersyon ay may iba't ibang mga kaayusan sa pin. Binili ko ang bersyon ng v3 (Lolin) dahil mayroon itong 5V output pin upang mapagana ang Servo motor. Sa huli ay sa halip ay ginamit ko ang 3 volt power pin sa halip para sa kaligtasan (Ang NodeMCU I / O pin ay hindi mapagparaya sa 5V), ngunit baka gusto mong gamitin ang 5V pin dahil sa teknikal na ang mga ganitong uri ng servo motor ay tinukoy para sa 4.5 hanggang 5 volt na lakas.

Hakbang 6: I-load ang Code Sa NodeMCU

I-load ang Code Sa NodeMCU
I-load ang Code Sa NodeMCU
I-load ang Code Sa NodeMCU
I-load ang Code Sa NodeMCU
  1. I-plug ang NodeMCU sa iyong computer gamit ang anumang micro USB cable.
  2. Buksan ang Arduino IDE, at sa ilalim ng "Mga Lupon", piliin ang "ESP12E", at ang COM port para sa NodeMCU.
  3. Sa IDE, pumunta sa FileOpen at i-browse ang zip folder na dati nang na-download mula sa makersa.ga upang buksan ang sketch ng Arduino na tinatawag na "ProximityActuator013017DonovanMagryta.ino"
  4. Pagkatapos, i-edit ang linya ng code na naglalaman nito upang idagdag ang pangalan at password ng iyong WiFi beacon. Higit pa sa na sa ibaba! Halimbawa:

const char * ssid = "mywifi"; // Ilagay ang iyong pangalan ng hotspot sa loob ng mga quote

const char * password = "mywifipassword"; // Ilagay ang iyong password ng hotspot sa loob ng mga quote

Pagkatapos i-click ang "upload" upang i-flash ang code sa board ng NodeMCU.

Gumagamit ang NearBot ng isang pocketable WiFi beacon upang makilala ka at tantyahin ang distansya. Tulad ng mga proximity key na may ilang mga mas bagong kotse na naka-unlock ang pinto sa kotse habang papalapit ka.

Maaari mong gamitin ang iyong mobile phone hotspot bilang isang beacon, o kahalili gamitin ang isang murang module ng WiFi na ESP-01 na pinalakas ng isang pares ng mga baterya ng AAA o isang maliit na baterya ng lithium 3.7v. Hindi kailangang i-program ang ESP-01, nagde-default ito sa stock ng hotspot mode kapag ito ay pinapagana. Ang circuit diagram para doon ay ipinapakita sa hakbang na ito.

Hakbang 7: Ikabit ang Servo sa NodeMCU

Kakailanganin mo ng ilang mga jumper wires upang mai-plug ang servo sa NodeMCU V3.

Ang circuit diagram ay simple.

I-pin ang D0 sa signal na lead (lightest color wire sa servo. Karaniwang dilaw o puti.)

I-pin ang 3V o i-pin ang VO sa 5V input lead (pangalawang pinakamagaan na wire ng kulay sa servo, karaniwang pula o kahel.)

I-pin ang GND sa ground lead (pinakamadilim na kulay na kawad sa servo, karaniwang kayumanggi o itim.)

Hakbang 8: Fine Tune the NearBot

Binago ng code ang lakas ng signal sa pagtatantya ng distansya. Gumagawa ito ng mapagkakatiwalaan para sa mga distansya ng reaksyon na mas mababa sa 2 metro o 6.5 talampakan. Sapagkat ito ay isang direktang pag-convert, ito ay hindi makinis para sa mas malayong distansya kaysa sa 3 metro dahil maaaring ito ay may mas mahusay na paraan ng pagkalkula. Higit pa doon

Maaaring gusto mong ayusin kung saan nakaposisyon ang sungay ng servo (ang maliit na puting braso na gumagalaw). Ginagawa ito sa pamamagitan lamang ng pag-unscrew ng servo arm gamit ang isang distornilyador, at muling pagposisyon nito.

Ang susunod na bahagi ay upang ayusin ang maximum at minimum na degree ng paggalaw gamit ang code.

Magagawa ito sa pamamagitan ng pagbabago ng mga bilang na nilalaman sa mga linya na ganito ang hitsura:

myservo.write (10); // gumagalaw ang servo arm sa 10 degree rotation

Maaari mo ring ayusin ang pagkasensitibo ng lakas ng signal sa pamamagitan ng pagbabago ng mga negatibong numero sa mga linya na ganito:

kung (rssi> -30 && rssi <-5) {// Kung ang lakas ng signal ay mas malakas kaysa sa -30, at mas mahina kaysa sa -5. pagkatapos gawin ang sumusunod …

Hakbang 9: Paano Ito Gumagana

  1. Ang NearBot ay unang kumokonekta sa hotspot nang maaga habang papalapit ang mga gumagamit.
  2. Sinusuri nito ang RSSI (natanggap na lakas ng signal) at binabago iyon sa tinatayang distansya.
  3. Habang ang distansya ay nasa loob ng tinukoy na saklaw, inililipat nito ang servo motor arm sa posisyon 1.
  4. Kung hindi man, ang servo motor ay inilipat sa posisyon 2.

Kapag nasubukan ko ito, inililipat ng RSSI tuning (-50) na ito ang servo sa posisyon na 1 habang ang distansya ay 0 hanggang 1.5 metro na may ESP-01 beacon o hotspot ng telepono sa aking bulsa.

Karaniwang nahuhulog ang RSSI sa loob ng saklaw na -90 hanggang -20, na may -20 ang pinakamalakas na lakas ng signal.

Kung buksan mo ang Arduino IDE Serial Monitor habang ang NearBot ay naka-plug sa computer, ipapakita nito ang lakas ng signal at mag-trigger ng mga point sa real time para magkaroon ka ng madaling gamiting puna.

Narito ang kumpletong code:

//BAGO KA MAGSIMULA:

// 1. Kung hindi mo pa na-download ang Arduino IDE, makuha ito nang libre (opsyonal na donasyon) sa: https://www.arduino.cc/en/Main/Software // 2. buksan ang Arduino IDE (kung hindi mo pa nababasa ito sa Arduino IDE!) … // 3. Pumunta sa mga file at mag-click sa kagustuhan sa Arduino IDE… // 4. kopyahin ang link sa ibaba sa Karagdagang board Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. i-click ang OK upang isara ang tab ng kagustuhan … // 6. Pumunta sa mga tool at board, at pagkatapos ay piliin ang board manager … // 7. Mag-navigate sa esp8266 sa pamamagitan ng komunidad ng esp8266 at i-install ang software para sa Arduino… // 8. Maaaring kailanganin mong i-download at mai-install ang driver ng CH340 kung hindi mo makuha ang pakikipag-usap sa NodeMCU sa iyong Arduino IDE: https://www.arduino.cc/en/Main/Software // Kapag nakumpleto na ang proseso sa itaas ay nakumpleto na kami basahin sa programa ang aming esp8266 NodeMCU microcontroller gamit ang Arduino IDE. Maaari mong alamin kung aling bersyon ang NodeMCU mayroon ka. Gumagawa siya ng isang gabay sa paghahambing: https://www.arduino.cc/en/Main/Software // Ginawa mula sa NodeMCU ESP8266 microcontroller, baterya o USB power supply, at SG90 Servo // Maaari mong gamitin ang isang 2nd unmodified esp8266 module bilang isang beacon hotspot AP sa halip na gumamit ng isang smartphone. // NearBot Circuit: // D0 pin to Servo signal wire (lightest color wire) // 3V pin to servo 5v wire (gitnang wire) (splice kahanay sa usb cable o ang VO pin sa NodeMCU kung mayroon kang V3. / / Lakas ng USB sa USB plug sa NodeMCU // GND pin sa Servo Ground wire (pinakamadilim na kulay na wire) // Ang mga linya ng tala ay nagsisimula sa dalawang mga slash pasulong, at hindi pinansin ng mga computer. Ang mga tala ay para lamang sa ating mga tao! # Isama ang # isama // Maaaring kailanganin para sa pag-print ng serial. # Isama // Servo library #define D0 16 // Tinutukoy ang mga pin upang gawing mas madali ang pagtatalaga ng mga pin. # Tukuyin ang D1 5 // I2C Bus SCL (orasan) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Parehong bilang "LED_BUILTIN", ngunit baligtad na lohika #define D5 14 // SPI Bus SCK (orasan) #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; // Lumikha ng isang object ng servo na pinangalanang myservo // Telepono o karagdagang module ng ESP8266 na nakatakda sa hotspot AP mode: const ch ar * ssid = ""; // Ilagay ang iyong pangalan ng hotspot sa loob ng mga quote const char * password = ""; // Ilagay ang iyong password ng hotspot sa loob ng mga quote na void setup () {Serial.begin (115200); // nagtatakda ng serial baud rate upang ang microcontroller ay maaaring makipag-usap sa serial interface ng pag-print sa Arduino IDE - Maaaring kailanganin mong baguhin ito sa 9600 sa halip! myservo.attach (D0); // ikinakabit ang servo sa pin D0 aka GPIO16 sa object ng servo - Tingnan ang higit pa sa: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // gumagalaw ang servo arm sa 10 degree rotation Serial.println ("Locked"); // output the serial monitor the word "Locked" WiFi.mode (WIFI_STA); // Nagtatakda ng wifi sa Station mode WiFi.begin (ssid, password); // Kumonekta sa hotspot beacon} void loop () {// Ang loop ay paulit-ulit na tumatakbo nang paulit-ulit kung (WiFi.status ()! = WL_CONNected) {// Kung ang wifi ay HINDI nakakonekta, gawin ang sumusunod … Serial.println ("Hindi makakuha ng koneksyon sa wifi"); myservo.write (10); // Inililipat ang servo arm sa 10 degree Serial.println ("Locked"); } iba pa {// Kung konektado ang WiFi, gawin ang sumusunod… mahabang rssi = WiFi. RSSI (); // Lumilikha ng isang variable na pinangalanang rssi at italaga ito sa pagpapaandar na nagbabalik ng lakas na nagbasa ng signal ng hotspot beacon Serial.print (rssi); // ay naglalabas ng pagbabasa ng rssi sa serial monitor kung (rssi> -50 && rssi <-5) {// Kung ang lakas ng signal ay mas malakas kaysa sa -50, at mas mahina kaysa sa -5. pagkatapos ay gawin ang sumusunod … myservo.write (170); // Paikutin ang servo arm sa 170 degree Serial.println ("Unlocked"); } iba pa {// Kung hindi natutugunan ang mga kundisyon sa itaas gawin ang sumusunod … myservo.write (10); // Paikutin ang servo arm pabalik sa 10 degree. Serial.println ("Naka-lock"); }}}

Hakbang 10: Dapat Mong Malaman…

Pagwawaksi:

Ang kasalukuyang pag-ulit ng NearBot code ay gumagana nang maaasahan para sa mga distansya na mas mababa sa 2 metro o 6.5 talampakan. Higit pa rito, nakakakuha ng mas tumpak, ngunit gumagana pa rin.

Maaari itong maayos, ngunit sa ngayon hindi ko alam kung paano ito gawin. Gustung-gusto ko ito kung ang isang tao ay gagana sa akin upang ma-update ko ang mga itinuturo na ito na may mas tumpak na paraan ng pagkalkula ng distansya!

Ang mga link na ito ay maaaring maging madaling gamiting: Ang YouTuber CNLohr ay bumuo ng isang distansya at posisyon ng pag-sense ng firmware para sa ESP8266 na may limitadong tagumpay:

Ang Espressif ay bumuo ng isang Oras ng Paglalakad sa distansya ng pag-andar ng function na gagana sa Arduino IDE para sa ESP8266, ngunit hindi ito pinakawalan:

Ang system ng pagpoposisyon ng SubPos ay gumagamit ng mga module ng ESP8266 at Pagkalkula ng Path Loss, na kung saan ay hindi ko alam kung paano ipatupad sa Arduino IDE:

Nakakita ako ng isang halimbawa sa wikang Java, ngunit hindi ko alam kung paano ito makaya ay ang Arduino IDE:

dobleng distansya = Math.pow (10.0, (((doble) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frequency))) / (20 * mu));

Hakbang 11: Iyon lamang

Kung gumawa ka ng iyong sariling NearBot, i-post ang iyong "Ginawa ko ito" sa mga komento sa ibaba!

Kung mayroon kang anumang mga ideya para sa kung ano ang gagamitin para sa maraming nalalaman na platform ng NearBot, mangyaring puna ang iyong mga ideya! Maaari itong maging mahusay na inspirasyon para sa iba pang mga gumagamit na maaaring turuan!

Kung nasisiyahan ka sa tutorial na ito, mangyaring isaalang-alang ang pagboto para sa itinuro sa mga paligsahan!

Inirerekumendang: