Sisukord:

Mitmekülgne NearBot: 11 sammu (koos piltidega)
Mitmekülgne NearBot: 11 sammu (koos piltidega)

Video: Mitmekülgne NearBot: 11 sammu (koos piltidega)

Video: Mitmekülgne NearBot: 11 sammu (koos piltidega)
Video: Йога для начинающих дома с Алиной Anandee #1. Здоровое и гибкое тело за 40 минут 2024, Juuli
Anonim
Image
Image

See juhend annab teile teada, kuidas ehitada mitmekülgne robotkäiviti, mis liigutab mitmesuguseid seadmeid, näiteks nuppu, lülitit või valib erinevates seadmetes, kui olete (telefoni või majakaga taskus) läheduses. See tähendab, et see võib automaatselt avada ja uuesti lukustada ukse riivi, kui * ainult teie * möödute, sulgege sprinklerventiil, et saaksite veest puutumatult läbi minna nagu omamoodi äärelinna Mooses, garaažis olles vähendage kõlarite helitugevust bändiruum, käivitage iPod, mängides dramaatilist sisenemisviisi või rääkige toas olles nalja (Jaden Smithi säuts?), või peatage film, kui ärkate tualetti kasutama.

See projekt ei vaja jootmist ega spetsiaalseid tööriistu

Kui teile meeldivad need juhendid piisavalt, kaaluge Robotics 2017 võistlusel selle juhendi poolt hääletamist!

Samm: hankige riistvaraosad

Sa vajad:

  • NodeMCU v2 või V3
  • Micro 9G servomootor umbes 1,40 USD USD tasuta kohaletoimetamine eBays või Aliexpressis
  • Arduino hüppajajuhtmed naisest meessoost.
  • Korpus NearBotile - kasutasin leitud plastkarbi puru.
  • Micro USB -andmesidekaabel (telefoni osade jäägid)
  • USB toiteallikas (vanaraua laadija)

Kui teil pole mobiilse leviala funktsiooniga nutitelefoni, vajate ka järgmist.

  • ESP-01 moodul umbes $ 2,50 USD tasuta kohaletoimetamine DealExtreme, GearBest, Ebay või Aliexpress.
  • 1 Siduge AAA patareid
  • topelt AAA patareipesa koos lülitiga

Samm 2: Kiire algus

See samm sisaldab kiirjuhendit juhuks, kui teile selline asi meeldib. Ülejäänud juhised lähevad samm-sammult ja lisavad põhjalikumat teavet

// Ostunimekiri: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller

// SG90 9G servomootor

// USB toitepank või USB -seinaadapter.

// Micro USB andmeside-/laadimiskaabel

// Arduino isast naisesse tüüpi hüppaja juhtmed

//ENNE KUI ALUSTAD:

// 1. Kui te pole Arduino IDE -d juba alla laadinud, hankige see tasuta (annetamine pole kohustuslik) aadressil:

2. avage Arduino IDE (kui te seda veel Arduino IDE -s ei loe!)…

// 3. Minge failide juurde ja klõpsake Arduino IDE eelistustel …

// 4. kopeerige allolev kood lisalaudade haldurisse: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

5. eelistuste vahekaardi sulgemiseks klõpsake nuppu OK …

6. Minge tööriistade ja tahvli juurde ning valige seejärel tahvlihaldur …

// 7. Liikuge esp8266 kogukonnaga esp8266 ja installige Arduino tarkvara …

8. Võimalik, et peate CH340 draiveri alla laadima ja installima, kui te ei saa NodeMCU -d oma Arduino IDE -ga rääkima panna:

// Kui kõik ülaltoodud protsess on lõpule viidud, loetakse meie esp8266 NodeMCU mikrokontrolleri programmeerimine Arduino IDE -ga.

//9.vali tahvli menüüst NodeMCU V1.0 ESP12E /

/10. Valige kasutatav COM -port.

// 11. valige kood (laadige alla saidilt www.makersa.ga) ja klõpsake üleslaadimist. /

/12. Ühendage servo hüppajajuhtmete abil NodeMCU -ga. D0 annab märku, maandus maapinnale, +VCC VO või 3V. /

/13. Reguleerige servosarve kruvikeerajaga.

14. Reguleerige koodi abil maksimaalset ja minimaalset liikumisastet.

// 15. Laadige kood NodeMCU-sse uuesti, kui koodi uuendatakse.

// Teil võib olla oluline välja selgitada, milline NodeMCU versioon teil on. Siin on võrdlusjuhend:

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

Seadmete selgitus:

// Valmistatud NodeMCU ESP8266 mikrokontrollerist, aku või USB toiteallikast ja SG90 servost

// Võite kasutada teist modifitseerimata esp8266 moodulit majaka leviala AP -na nutitelefoni asemel, programmeerimine pole vajalik.

3. samm: hankige tarkvara osad

Esmalt peate alla laadima tasuta Arduino IDE

Arduino veebiredaktor ei tööta selle kirjutamise ajal NodeMCU -ga, nii et peate selle asemel arvutisse installima IDE.

Samuti peate hankima NearBoti failid saidilt www. MakerSa.ga - sellel saidil on selle projekti failide allalaadimise link.

Samm: installige draiverid ja pardaprofiilid

Mõned kasulikud andmed
Mõned kasulikud andmed

Allalaaditud ja lahtipakitud NearBot'i ZIP -i sees on NodeMCU mooduli draiverid. Installige need oma arvutisse.

Kui need teie jaoks ei tööta, leiate võib -olla CH340G draiverid aadressilt wemos.cc/downloads

Teie NodeMCU ei pruugi CH340G kiipi kasutada, seega peate võib -olla otsitava draiveriga kommenteerima ja ma vastan selle draiveri allalaadimislingiga.

  1. Seejärel avage Arduino IDE ja minge Arduino IDE -s Failieelistused Täiendavate tahvlite haldur.
  2. Kleepige sinna järgmine kood:
  3. Eelistuste vahekaardi sulgemiseks klõpsake nuppu OK.
  4. Minge tööriistade ja tahvli juurde ning valige seejärel tahvlihaldur.
  5. Minge jaotisse "esp8266 by esp8266 community" ja installige Arduino tarkvara.

Kui kõik ülaltoodud protsess on lõpule jõudnud, oleme valmis programmeerima oma esp8266 NodeMCU mikrokontrolleri Arduino IDE -ga!

Samm: kasulik teave

Mõned kasulikud andmed
Mõned kasulikud andmed
Mõned kasulikud andmed
Mõned kasulikud andmed

Teil võib olla mugav välja selgitada, milline NodeMCU versioon teil on. Siin on võrdlusjuhend:

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

Igal versioonil on erinev tihvtide paigutus. Ostsin versiooni v3 (Lolin), kuna sellel on servomootori toiteks 5 V väljundpoldid. Lõppkokkuvõttes kasutasin turvalisuse asemel hoopis 3 -voldiseid toitepinge (NodeMCU I/O -tihvtid ei talu 5 V -d), kuid võiksite kasutada 5 -voldiseid, kuna tehniliselt on sellised servomootorid ette nähtud 4,5–5 -voldise võimsusega.

Samm: laadige kood NodeMCU -sse

Laadige kood NodeMCU -sse
Laadige kood NodeMCU -sse
Laadige kood NodeMCU -sse
Laadige kood NodeMCU -sse
  1. Ühendage NodeMCU arvutiga mis tahes mikro -USB -kaabli abil.
  2. Avage Arduino IDE ja valige jaotises "Lauad" "ESP12E" ja NodeMCU COM -port.
  3. Avage IDE -s FileOpen ja sirvige aadressilt makersa.ga varem alla laaditud zip -kausta, et avada Arduino visand nimega "ProximityActuator013017DonovanMagryta.ino"
  4. Seejärel muutke seda sisaldavat koodirida, et lisada oma WiFi majaka nimi ja parool. Sellest lähemalt allpool! Näiteks:

const char* ssid = "mywifi"; // Pane oma leviala nimi jutumärkidesse

const char* parool = "mywifipassword"; // Pane oma leviala parool jutumärkidesse

Seejärel klõpsake koodi üleslaadimiseks NodeMCU tahvlile nuppu "Laadi üles".

NearBot kasutab teie tuvastamiseks ja kauguse hindamiseks tasku WiFi -majakat. Nii nagu lähedusvõtmed, on mõnedel uuematel autodel ka uksed, mis lähenevad.

Majakana saate kasutada oma nutitelefoni mobiilset leviala või kasutada odavat ESP-01 WiFi-moodulit, mis töötab paari AAA patareide või väikese 3,7 V liitiumakuga. ESP-01 pole vaja programmeerida, vaikimisi on see sisselülitamisel leviala režiim. Selle skeemi skeem on näidatud sellel etapil.

Samm: kinnitage servo NodeMCU külge

Servo ühendamiseks NodeMCU V3 -ga vajate hüppajajuhtmeid.

Lülitusskeem on lihtne.

Kinnitage D0 juhtme signaali külge (servo heledama värvi juhe. Tavaliselt kollane või valge.)

Kinnitage 3V või VO 5V sisendjuhtme külge (servo teine heledam värvijuhe, tavaliselt punane või oranž).

Kinnitage GND maandusjuhtme külge (servo tumedam traat, tavaliselt pruun või must.)

8. samm: peenhäälestage NearBot

Kood teisendab signaali tugevuse kauguse hindamiseks. See töötab usaldusväärselt, kui reaktsioonivahe on alla 2 meetri või 6,5 jalga. Kuna tegemist on otsese muundamisega, pole see kaugemal kui 3 meetrit nii sujuv, kui see võiks olla parema arvutusmeetodi korral. Sellest pikemalt hiljem.

Võimalik, et soovite reguleerida servosarve (väike valge käsi, mis liigub) asukohta. Selleks keerake servovar lihtsalt kruvikeerajaga lahti ja asetage see tagasi.

Järgmine osa on koodi abil maksimaalse ja minimaalse liikumisastme reguleerimine.

Seda saab teha, muutes järgmiselt väljaminevate ridade numbreid:

myservo.write (10); // liigutab servohoova 10 -kraadise pöörlemise suunas

Samuti saate reguleerida signaali tugevuse tundlikkust, muutes negatiivseid numbreid ridades, mis näevad välja järgmised:

if (rssi> -30 && rssi <-5) {// Kui signaali tugevus on tugevam kui -30 ja nõrgem kui -5. siis tee järgmist …

9. toiming: kuidas see toimib

  1. NearBot loob esmalt ühenduse levialaga, kui kasutajad lähenevad.
  2. See skaneerib RSSI (vastuvõetud signaali tugevus) ja teisendab selle ligikaudseks kauguseks.
  3. Kuigi kaugus on määratud vahemikus, liigutab see servomootori käe asendisse 1.
  4. Vastasel korral viiakse servomootor asendisse 2.

Kui ma seda katsetasin, liigutab see RSSI häälestus (-50) servo asendisse 1, samal ajal kui kaugus on 0 kuni 1,5 meetrit, ESP-01 majakas või telefoni leviala taskus.

RSSI jääb tavaliselt vahemikku -90 kuni -20, kusjuures -20 on tugevaim signaalitugevus.

Kui avate Arduino IDE jadamonitori, kui NearBot on arvutiga ühendatud, kuvab see signaali tugevuse ja käivituspunktid reaalajas, et saaksite käepärast tagasisidet.

Siin on täielik kood:

//ENNE KUI ALUSTAD:

// 1. Kui te pole Arduino IDE -d juba alla laadinud, hankige see tasuta (annetamine pole kohustuslik) aadressil: https://www.arduino.cc/en/Main/Software // 2. avage Arduino IDE (kui te seda veel Arduino IDE -s ei loe!)… // 3. Minge failide juurde ja klõpsake Arduino IDE eelistusel… // 4. kopeerige allolev link lisatahvlite haldurisse: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. eelistuste vahekaardi sulgemiseks klõpsake nuppu OK … // 6. Minge tööriistade ja tahvli juurde ning valige seejärel tahvlihaldur… // 7. Liikuge esp8266 by esp8266 kogukonnaga esp8266 ja installige Arduino tarkvara… // 8. Kui te ei saa NodeMCU -d oma Arduino IDE -ga rääkima, peate võib -olla alla laadima ja installima draiveri CH340: https://www.arduino.cc/en/Main/Software // Kui kõik ülaltoodud protsess on lõpule viidud, lugege meie esp8266 NodeMCU mikrokontrolleri programmeerimiseks Arduino IDE -ga. Võib -olla soovite välja selgitada, milline NodeMCU versioon teil on. Siin on võrdlusjuhend: https://www.arduino.cc/et/Main/Software // Valmistatud NodeMCU ESP8266 mikrokontrollerist, aku või USB toiteallikast ja SG90 servost // Majakana saate kasutada teist modifitseerimata esp8266 moodulit nutitelefoni kasutamise asemel hotspot AP. // NearBoti vooluahel: // D0 tihvt servosignaali juhtmele (heledaima värvi juhe) // 3 V tihvt 5 V servojuhtmele (keskmine juhe) (ühendatud spiraalselt USB -kaabli või NodeMCU VO -tihvtiga, kui teil on V3.) /USB toide NodeMCU USB pistikusse // GND pin to Servo Ground traat (tumedam värvijuhe) // Märkuste read algavad kahe ettepoole suunatud kaldkriipsuga ja arvutid eiravad neid. Märkused on mõeldud ainult meile inimestele! #Include #include // Võib olla vajalik seeriaprintimisel. #Include // Servo raamatukogu #define D0 16 // Määrab tihvtid, et hõlbustada tihvtide määramist. #Define D1 5 // I2C Bus SCL (kell) #define D2 4 // I2C Bus SDA (andmed) #define D3 0 #define D4 2 // Sama mis "LED_BUILTIN", kuid ümberpööratud loogika #define D5 14 // SPI Bus SCK (kell) #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; // Loo servobjekt nimega myservo // Telefon või täiendav ESP8266 moodul, mis on seatud leviala AP -režiimi: const ch ar* ssid = ""; // Pane oma leviala nimi jutumärkidesse const char* password = ""; // Pane oma leviala parool jutumärkide sisse void setup () {Serial.begin (115200); // määrab jada edastuskiiruse, et mikrokontroller saaks rääkida Arduino IDE jadaprindi liidesega - võib -olla peate selle asemel muutma 9600! myservo.attach (D0); // lisab servo -objektile servo nööpnõelal D0 aka GPIO16 - vaata lähemalt: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // nihutab servohoova 10 -kraadise pöörlemisega Serial.println ("Lukustatud"); // väljuda jadamonitorile sõna "Lukustatud" WiFi.mode (WIFI_STA); // Seab wifi jaamarežiimile WiFi.begin (ssid, parool); // Ühendub leviala majakaga} void loop () {// Silmus jookseb ikka ja jälle kiiresti, kui (WiFi.status ()! = WL_CONNECTED) {// Kui wifi EI ole ühendatud, tehke järgmist… Serial.println ("Ei saanud WiFi -ühendust"); myservo.write (10); // Nihutab servo käe 10 kraadi Serial.println ("Lukustatud"); } else {// Kui WiFi on ühendatud, tehke järgmist … pikk rssi = WiFi. RSSI (); // Loob muutuja nimega rssi ja määrab selle funktsioonile, mis tagastab leviala majaka signaalitugevuse näidu Serial.print (rssi); // väljastab rssi lugemise jadamonitorile, kui (rssi> -50 && rssi <-5) {// Kui signaali tugevus on tugevam kui -50 ja nõrgem kui -5. siis tee järgmist … myservo.write (170); // Servohoova pööramine 170 kraadini Serial.println ("Unlocked"); } else {// Kui ülaltoodud tingimused ei ole täidetud, tehke järgmist … myservo.write (10); // Pöörab servovart 10 kraadi tagasi. Serial.println ("Lukustatud"); }}}

Samm: peaksite teadma…

Vastutusest loobumine:

NearBot -koodi praegune iteratsioon töötab usaldusväärselt vahemaadel, mis on väiksemad kui 2 meetrit või 6,5 jalga. Peale selle muutub see vähem täpseks, kuid töötab siiski.

Seda saab parandada, kuid hetkel ma ei tea, kuidas seda teha. Mulle meeldiks, kui keegi töötaks koos minuga, et saaksin seda juhendit värskendada täpsema kauguse arvutamise meetodiga!

Need lingid võivad olla käepärased: YouTuber CNLohr töötas ESP8266 jaoks piiratud eduga välja kaugus- ja positsioonitundliku püsivara:

Espressif töötas välja lennuaja kauguse tuvastamise funktsiooni, mis töötaks koos ESP8266 -ga Arduino IDE -ga, kuid ei avaldanud seda kunagi:

Positsioneerimissüsteem SubPos kasutab ESP8266 mooduleid ja teekadude arvutamist, mida ma ei tea, kuidas rakendada Arduino IDE -s:

Leidsin näite Java -keelest, kuid ma ei tea, kuidas seda Arduino IDE -d korrata:

topeltkaugus = Math.pow (10,0, (((kahekordne) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/sagedus)))/(20*mu));

Samm: see on kõik

Kui teete oma NearBoti, postitage oma kommentaar "Ma tegin selle"!

Kui teil on veel ideid, milleks Versatile NearBot platvormi kasutada, siis kommenteerige oma ideid! See võib olla suureks inspiratsiooniks teistele juhendatavate kasutajatele!

Kui teile see õpetus meeldib, kaaluge võistlustel selle juhendatava poolt hääletamist!

Soovitan: