INHOUDSOPGAWE:

Veelsydige NearBot: 11 stappe (met foto's)
Veelsydige NearBot: 11 stappe (met foto's)

Video: Veelsydige NearBot: 11 stappe (met foto's)

Video: Veelsydige NearBot: 11 stappe (met foto's)
Video: Hoe vis heerlijk te bakken, Recepten van vis, een recept voor het koken van vis 2024, Julie
Anonim
Image
Image

Hierdie instruksie sal u wys hoe u 'n veelsydige robot -sneller bou wat iets soos 'n knoppie, skakelaar of skakelaar op verskillende toestelle kan beweeg as u (met u telefoon of 'n baken in u sak) naby is. Dit beteken dat dit outomaties 'n deurgrendel kan oopmaak en sluit as * net u * verbygaan, 'n sproeiklep afsluit sodat u ongeskonde deur die water kan gaan soos 'n soort voorstedelike Moses, laer luidsprekervolume terwyl u in die motorhuis is orkes, 'n iPod laat speel deur 'n dramatiese melodie te speel of 'n grap te vertel (tweet Jaden Smith?) terwyl jy in die kamer is, of 'n fliek onderbreek as jy opstaan om die toilet te gebruik.

Hierdie projek benodig geen soldeersel of spesiale gereedskap nie

As u hierdie instruksies genoeg geniet, oorweeg dit om daarvoor te stem in die Robotics 2017 -kompetisie!

Stap 1: Verkry die hardeware -onderdele

Jy sal nodig hê:

  • NodeMCU v2 of V3
  • Micro 9G Servomotor ongeveer $ 1,40 USD gratis aflewering op eBay of Aliexpress
  • Arduino trui drade vroulik tot manlik.
  • 'N Omhulsel vir die NearBot - ek het 'n plastiekboks gebruik wat ek gevind het.
  • Mikro -USB -datakabel (afvalfoononderdele)
  • USB kragbron (selfoonlaaier)

As u nie 'n slimfoon met 'n mobiele hotspot -funksie het nie, benodig u ook:

  • ESP-01-module ongeveer $ 2,50 USD gratis aflewering op DealExtreme, GearBest, Ebay of Aliexpress.
  • 1 Paar AAA -batterye
  • dubbele AAA -batteryhouer met skakelaar

Stap 2: Vinnige aanvang

Hierdie stap bevat 'n vinnige aanvangsgids as u van so iets hou. Die res van hierdie instruksies gaan stap vir stap en voeg meer diepgaande inligting by

// Inkopielys: // NodeMCU V3 (Lolin) ESP8266 mikrobeheerder

// SG90 9G Servomotor

// USB Power Bank of USB muuradapter.

// Micro USB data/laadkabel

// Springdrade van manlike tot vroulike tipe Arduino

//VOOR JY BEGIN:

// 1. As u nog nie die Arduino IDE afgelaai het nie, kry dit gratis (donasie opsioneel) by:

// 2. maak die Arduino IDE oop (as u dit nog nie in die Arduino IDE lees nie!) …

// 3. Gaan na lêers en klik op die voorkeur in die Arduino IDE …

// 4. kopieer die onderstaande kode in die bestuurder van die bykomende borde: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. klik op OK om die voorkeur -oortjie te sluit …

// 6. Gaan na gereedskap en bord en kies raadbestuurder …

// 7. Navigeer na esp8266 deur die esp8266 -gemeenskap en installeer die sagteware vir Arduino …

// 8. Miskien moet u die CH340 -bestuurder aflaai en installeer as u nie die NodeMCU met u Arduino IDE kan praat nie:

// Sodra al die bogenoemde proses afgehandel is, word ons gelees om ons esp8266 NodeMCU mikrobeheerder te programmeer met die Arduino IDE.

//9.kies NodeMCU V1.0 ESP12E in die spyskaart /

/10. Kies die COM -poort wat u gebruik.

// 11. kies die kode (aflaai van www.makersa.ga) en klik op oplaai. /

/12. Koppel die servo aan die NodeMCU met behulp van jumperdrade. D0 vir sein, grond tot grond, +VCC na VO of 3V. /

/13. Verstel die servohoring met 'n skroewedraaier.

// 14. Pas die maksimum en minimum bewegingsgrade aan met behulp van die kode.

// 15. Laai weer op na die NodeMCU wanneer die kode opgedateer word.

// Miskien vind u dit belangrik om uit te vind watter NodeMCU -weergawe u het. Hier is 'n vergelykingsgids:

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:

// Verduideliking van die tuine:

// Gemaak van NodeMCU ESP8266 mikrobeheerder, battery of USB -kragbron en SG90 Servo

// U kan 'n 2de onveranderde esp8266 -module as 'n baken -hotspot -AP gebruik in plaas van 'n slimfoon, geen programmering nodig nie.

Stap 3: Verkry die sagteware -onderdele

U moet eers die gratis Arduino IDE aflaai

Die Arduino Web Editor werk nie met die NodeMCU op die oomblik dat ek dit skryf nie, dus moet u die IDE eerder op u rekenaar installeer.

U moet ook die NearBot -lêers van www. MakerSa.ga aflaai - Die aflaai -skakel vir hierdie projek word op die webwerf gelys.

Stap 4: Installeer bestuurders en bordprofiele

'N Paar nuttige inligting
'N Paar nuttige inligting

Die bestuurders van die NodeMCU -module sal binne die NearBot -zip wees wat u afgelaai en afgerits het. Installeer dit op u rekenaar.

As dit nie vir u werk nie, kan u CH340G -bestuurders vind op wemos.cc/downloads

U NodeMCU gebruik moontlik nie die CH340G -chip nie, dus moet u moontlik kommentaar lewer met die bestuurder wat u soek, en ek sal antwoord met die aflaai -skakel vir die bestuurder.

  1. Maak dan die Arduino IDE oop en gaan na File PreferencesAdditional Boards Manager in die Arduino IDE.
  2. Plak die volgende kode daar:
  3. Klik op OK om die voorkeur -oortjie te sluit.
  4. Gaan na gereedskap en bord en kies raadbestuurder.
  5. Gaan na "esp8266 by esp8266 community" en installeer die sagteware vir Arduino.

Sodra al die bogenoemde proses voltooi is, is ons gereed om ons esp8266 NodeMCU mikrokontroleerder te programmeer met die Arduino IDE!

Stap 5: 'n Paar nuttige inligting

'N Paar nuttige inligting
'N Paar nuttige inligting
'N Paar nuttige inligting
'N Paar nuttige inligting

U vind dit miskien handig om uit te vind watter NodeMCU -weergawe u het. Hier is 'n vergelykingsgids:

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

Elke weergawe het verskillende penreëlings. Ek het die v3 (Lolin) weergawe gekoop omdat dit 5V uitsetpenne het om die servomotor aan te dryf. Uiteindelik gebruik ek eerder die 3 volt -kragpenne ter wille van veiligheid (Die NodeMCU I/O -penne is nie 5V -verdraagsaam nie), maar u kan die 5V -penne gebruik omdat hierdie soort servomotore tegnies gespesifiseer is vir 4,5 tot 5 volt krag.

Stap 6: Laai die kode op die NodeMCU

Laai die kode op die NodeMCU
Laai die kode op die NodeMCU
Laai die kode op die NodeMCU
Laai die kode op die NodeMCU
  1. Koppel die NodeMCU met u mikro -USB -kabel op u rekenaar.
  2. Maak die Arduino IDE oop, en kies onder "Boards" "ESP12E" en die COM -poort vir die NodeMCU.
  3. Gaan in die IDE na FileOpen en blaai deur die zip -gids wat voorheen afgelaai is van makersa.ga om die Arduino -skets genaamd "ProximityActuator013017DonovanMagryta.ino" oop te maak
  4. Wysig dan die kodelyn wat dit bevat om die naam en wagwoord van u WiFi -baken by te voeg. Meer hieroor hieronder! Byvoorbeeld:

const char* ssid = "mywifi"; // Plaas u hotspot -naam in die aanhalings

const char* password = "mywifipassword"; // Plaas u hotspot -wagwoord in die aanhalings

Klik dan op "oplaai" om die kode op die NodeMCU -bord te flits.

Die NearBot gebruik 'n sakbare WiFi -baken om u te identifiseer en afstand te skat. Net soos die nabyheids sleutels, het sommige nuwer motors wat die deur van die motor oopmaak terwyl u nader kom.

U kan die mobiele hotspot van u slimfoon as 'n baken gebruik, of as alternatief 'n goedkoop ESP-01 WiFi-module gebruik wat aangedryf word deur 'n paar AAA-batterye of 'n klein litium-3,7v-battery. U hoef die ESP-01 nie te programmeer nie; dit is standaard in die hotspot-modus wanneer dit aangeskakel word. Die stroombaan diagram hiervoor word in hierdie stap getoon.

Stap 7: Heg die servo aan die NodeMCU

U benodig 'n paar draaddrade om die servo in die NodeMCU V3 aan te sluit.

Die kringdiagram is eenvoudig.

Speld D0 aan die sein in die lood (die ligste kleurdraad op die servo. Gewoonlik geel of wit.)

Speld 3V of pen VO aan die 5V -ingangskabel (die tweede ligste kleurdraad op die servo, gewoonlik rooi of oranje.)

Speld GND aan die grondkabel vas (donkerste gekleurde draad op die servo, gewoonlik bruin of swart.)

Stap 8: Stel die NearBot fyn

Die kode omskakel seinsterkte na afstandskatting. Dit werk betroubaar vir reaksieafstande minder as 2 meter of 6,5 voet. Omdat dit 'n direkte omskakeling is, is dit vir gladde afstande as 3 meter nie so glad as wat dit moontlik sou wees met 'n beter berekeningsmetode nie. Meer hieroor later.

U kan aanpas waar die servohoring (die wit arm wat beweeg) is. Dit word gedoen deur die servo-arm met 'n skroewedraaier los te skroef en weer te plaas.

Die volgende deel is om die maksimum en minimum bewegingsgrade aan te pas met behulp van die kode.

Dit kan gedoen word deur die getalle in reëls wat so lyk te verander:

myservo.write (10); // beweeg servo -arm na 10 grade rotasie

U kan ook die sensitiwiteit van die seinstelsel aanpas deur die negatiewe getalle te verander in lyne wat so lyk:

if (rssi> -30 && rssi <-5) {// As seinsterkte sterker is as -30, en swakker as -5. doen dan die volgende …

Stap 9: Hoe dit werk

  1. Die NearBot maak eers vooraf verbinding met die hotspot namate gebruikers nader.
  2. Dit skandeer die RSSI (ontvangde seinsterkte) en skakel dit na benaderde afstand.
  3. Terwyl die afstand binne die gespesifiseerde bereik is, beweeg dit die servomotorarm na posisie 1.
  4. Andersins word die servomotor na posisie 2 geskuif.

Toe ek dit toets, skuif hierdie RSSI-stemming (-50) die servo na posisie 1 terwyl die afstand 0 tot 1,5 meter is met die ESP-01 baken of telefoon-hotspot in my sak.

Die RSSI val tipies binne -90 tot -20, met -20 die sterkste seinsterkte.

As u die Arduino IDE Serial Monitor oopmaak terwyl die NearBot op die rekenaar ingeskakel is, sal dit die seinsterkte en snellerpunte intyds vertoon sodat u handige terugvoer kan kry.

Hier is die volledige kode:

//VOOR JY BEGIN:

// 1. As u nog nie die Arduino IDE afgelaai het nie, kry dit gratis (donasie opsioneel) by: https://www.arduino.cc/en/Main/Software // 2. maak die Arduino IDE oop (as u dit nog nie in die Arduino IDE lees nie!) … // 3. Gaan na lêers en klik op die voorkeur in die Arduino IDE … // 4. kopieer die onderstaande skakel in die bestuurder van die bykomende borde: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klik op OK om die voorkeur -oortjie te sluit … // 6. Gaan na gereedskap en bord en kies raadbestuurder … // 7. Navigeer na esp8266 deur die esp8266 -gemeenskap en installeer die sagteware vir Arduino … // 8. Miskien moet u die CH340 -bestuurder aflaai en installeer as u nie die NodeMCU met u Arduino IDE kan praat nie: https://www.arduino.cc/en/Main/Software // Nadat al die bogenoemde proses voltooi is, is ons lees om ons esp8266 NodeMCU mikrobeheerder te programmeer met die Arduino IDE. U wil dalk uitvind watter NodeMCU -weergawe u het. Hier is 'n vergelykingsgids: https://www.arduino.cc/en/Main/Software // Gemaak van NodeMCU ESP8266 mikrokontroller, battery of USB -kragtoevoer, en SG90 Servo // U kan 'n 2de onveranderde esp8266 -module as baken gebruik hotspot AP in plaas van om 'n slimfoon te gebruik. // NearBot -stroombaan: // D0 -pen na Servo -seindraad (ligste kleur) // 3V -pen na servo -5v -draad (middelste draad) (parallel aan usb -kabel of die VO -pen op die NodeMCU gesplitst as jy V3 het. / /USB -krag na USB -aansluiting op die NodeMCU // GND -pen na servo -aardingsdraad (donkerste kleurdraad) // Nota -lyne begin met twee voorwaartse skuinsstrepe en word deur die rekenaars geïgnoreer. Notas is net vir ons mense! #Sluit #insluit in // Kan nodig wees vir seriële druk. #Include // Servobiblioteek #definieer D0 16 // Definieer penne om penne makliker toe te ken. #Definieer D1 5 // I2C Bus SCL (klok) #definieer D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Dieselfde as "LED_BUILTIN", maar omgekeerde logika #definieer D5 14 // SPI Bus SCK (klok) #definieer 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; // Skep 'n servo -voorwerp met die naam myservo // Telefoon of 'n addisionele ESP8266 -module wat op die hotspot AP -modus gestel is: konst ar* ssid = ""; // Plaas u hotspot -naam in die aanhalings const char* password = ""; // Plaas u hotspot -wagwoord in die aanhalingstekens () {Serial.begin (115200); // stel die seriële baud -tempo in, sodat die mikrobeheerder met die seriële druk -koppelvlak in die Arduino IDE kan praat - Miskien moet u dit in plaas daarvan na 9600 verander! myservo.attach (D0); // plak die servo op pin D0 aka GPIO16 aan die servo -voorwerp - Sien meer op: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // beweeg servo -arm na 10 grade rotasie Serial.println ("Gesluit"); // stuur die woord "Geslote" WiFi.mode (WIFI_STA) na die seriële monitor; // Stel wifi in die stasie -modus WiFi in. Begin (ssid, wagwoord); // Verbind met hotspot baken} leemte lus () {// Die lus loop vinnig oor en oor as (WiFi.status ()! = WL_CONNECTED) {// As wifi NIE gekoppel is nie, doen die volgende … Serial.println ("Kon nie 'n wifi -verbinding kry nie"); myservo.write (10); // Beweeg servo -arm na 10 grade Serial.println ("Gesluit"); } anders {// As WiFi gekoppel is, doen dan die volgende … lang rssi = WiFi. RSSI (); // Skep 'n veranderlike met die naam rssi en ken dit toe aan die funksie wat die seinsterkte -lesing van die hotspot -baken Serial.print (rssi) teruggee; // gee die rssi -lesing uit na die seriële monitor as (rssi> -50 && rssi <-5) {// As die seinsterkte sterker is as -50 en swakker as -5. doen dan die volgende … myservo.write (170); // Draai servo -arm na 170 grade Serial.println ("Ontsluit"); } anders {// As die bogenoemde voorwaardes nie nagekom word nie, doen dan die volgende … myservo.write (10); // Draai servo -arm terug na 10 grade. Serial.println ("Gesluit"); }}}

Stap 10: U behoort te weet …

Vrywaring:

Die huidige iterasie van die NearBot -kode werk betroubaar vir afstande van minder as 2 meter of 6,5 voet. Verder word dit minder presies, maar dit werk steeds.

Dit kan opgelos word, maar op die oomblik weet ek nie hoe om dit te doen nie. Ek sal dit baie geniet as iemand saam met my werk, sodat ek hierdie instruksies kan opdateer met 'n meer akkurate metode om afstand te bereken!

Hierdie skakels kan handig wees: YouTuber CNLohr het 'n afstands- en posisie -waarnemings firmware vir die ESP8266 met beperkte sukses ontwikkel:

Espressif het 'n Time of Flight afstandsopsporingsfunksie ontwikkel wat saam met Arduino IDE vir die ESP8266 werk, maar dit nooit vrygestel nie:

SubPos -posisioneringstelsel gebruik ESP8266 -modules en padverliesberekening, wat ek nie weet hoe om in Arduino IDE te implementeer nie:

Ek het 'n voorbeeld in Java -taal gevind, maar ek weet nie hoe ek dit moet herhaal nie, is Arduino IDE:

dubbele afstand = Math.pow (10.0, (((dubbel) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekwensie)))) ((20*mu));

Stap 11: Dit is al

As u u eie NearBot maak, plaas u 'Ek het dit gemaak' in die kommentaar hieronder!

As u nog idees het waarvoor u die Veelsydige NearBot -platform moet gebruik, lewer kommentaar op u idees! Dit kan groot inspirasie wees vir ander instruksionele gebruikers!

As u van hierdie tutoriaal hou, kan u dit oorweeg om in hierdie wedstryde te leer!

Aanbeveel: