Բովանդակություն:

Բազմակողմանի մոտակայքում ՝ 11 քայլ (նկարներով)
Բազմակողմանի մոտակայքում ՝ 11 քայլ (նկարներով)

Video: Բազմակողմանի մոտակայքում ՝ 11 քայլ (նկարներով)

Video: Բազմակողմանի մոտակայքում ՝ 11 քայլ (նկարներով)
Video: 30 Days to SPEAK ENGLISH FLUENTLY - Improve your English in 30 Days - English Speaking Practice 2024, Հուլիսի
Anonim
Image
Image

Այս հրահանգը ցույց կտա ձեզ, թե ինչպես կառուցել բազմակողմանի ռոբոտի ձգան, որը կարող է տեղափոխել ինչ -որ բան, օրինակ ՝ կոճակ, անջատիչ կամ հավաքել տարբեր սարքերի վրա, երբ մոտակայքում եք (հեռախոսով կամ գրպանով փարոս): Սա նշանակում է, որ այն կարող է ինքնաբերաբար կողպել և նորից կողպել դռան կողպեքը, քանի որ * միայն դու * անցնում ես, փակել ցնցուղի փականը, որպեսզի կարողանաս անվնաս անցնել ջրի միջով, ինչպես որևէ արվարձանային Մովսեսի նման, բարձրախոսի ցածր ձայնը, երբ դու գտնվում ես ավտոտնակում: սենյակ, միացրեք iPod- ը, որը խաղում է դրամատիկ մուտքի հնչերանգ կամ կատակ պատմեք (adեյդեն Սմիթի թվիթ) սենյակում գտնվելու ընթացքում, կամ դադարեցրեք ֆիլմը, երբ վեր կենաք զուգարանից օգտվելու համար:

Այս նախագիծը չի պահանջում զոդում կամ հատուկ գործիքներ:

Եթե բավականաչափ վայելում եք այս ուսանելի առարկաները, խնդրում ենք հաշվի առնել Robotics 2017 մրցույթում այս ուսանելիի օգտին քվեարկելը:

Քայլ 1: Ձեռք բերեք ապարատային մասերը:

Ձեզ հարկավոր կլինի.

  • NodeMCU v2 կամ V3
  • Micro 9G Servo Motor մոտ $ 1.40 ԱՄՆ դոլար անվճար առաքում eBay- ում կամ Aliexpress- ում
  • Arduino Jumper մետաղալարեր իգականից արական:
  • NearingBot- ի պատյան. Ես օգտագործեցի իմ գտած պլաստիկե տուփը:
  • Միկրո USB տվյալների մալուխ (հեռացնել հեռախոսի մասերը)
  • USB էներգիայի աղբյուր (հեռախոսի լիցքավորիչ)

Եթե դուք չունեք բջջային թեժ կետի գործառույթ ունեցող սմարթֆոն, ձեզ նույնպես պետք կլինի.

  • ESP-01 մոդուլը մոտ $ 2.50 ԱՄՆ դոլար անվճար առաքում DealExtreme- ում, GearBest- ում, Ebay- ում կամ Aliexpress- ում:
  • 1 զույգ AAA մարտկոց
  • երկակի AAA մարտկոցի բռնիչ անջատիչով

Քայլ 2: Արագ մեկնարկ

Այս քայլը պարունակում է արագ մեկնարկի ուղեցույց, եթե ձեզ դուր է գալիս նման բան: Մնացած այս ուսանելիը գնում է քայլ առ քայլ և ավելացնում ավելի խորը տեղեկատվություն:

// Գնումների ցուցակ. // NodeMCU V3 (Lolin) ESP8266 միկրոկոնտրոլեր

// SG90 9G Servo Motor

// USB Power Bank կամ USB պատի ադապտեր:

// Միկրո USB տվյալների/լիցքավորման մալուխ

// Arduino արականից իգական տիպի jumper լարեր

// ՄԻՆՉԵՎ ՍԿՍԵԼ.

// 1. Եթե դուք դեռ չեք ներբեռնել Arduino IDE- ն, ստացեք այն անվճար (նվիրատվությունը ՝ ըստ ցանկության) ՝

// 2. բացեք Arduino IDE- ն (եթե սա արդեն չեք կարդում Arduino IDE- ում)…

// 3. Գնացեք ֆայլեր և կտտացրեք Arduino IDE- ի նախասիրությանը…

// 4. պատճենեք ստորև նշված ծածկագիրը Լրացուցիչ տախտակների կառավարիչում ՝ //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. կտտացրեք OK ՝ նախընտրությունների ներդիրը փակելու համար…

// 6. Գնացեք գործիքներ և տախտակ, ապա ընտրեք տախտակի կառավարիչ…

// 7. Գնացեք esp8266 համայնքի կողմից դեպի esp8266 և տեղադրեք ծրագրակազմը Arduino- ի համար…

// 8. Հնարավոր է, անհրաժեշտ լինի ներբեռնել և տեղադրել CH340 վարորդը, եթե չեք կարողանում NodeMCU- ին զրուցել ձեր Arduino IDE- ի հետ ՝

// Վերոնշյալ բոլոր գործընթացներն ավարտվելուց հետո մենք կարդում ենք, որպեսզի ծրագրավորենք մեր esp8266 NodeMCU միկրոկառավարիչը Arduino IDE- ով:

//9. Տախտակի ընտրացանկից ընտրեք NodeMCU V1.0 ESP12E /

/10. Ընտրեք օգտագործվող COM նավահանգիստը:

// 11. ընտրեք կոդը (ներբեռնեք www.makersa.ga- ից) և կտտացրեք վերբեռնում: /

/12 Միացրեք servo- ն NodeMCU- ին `օգտագործելով jumper լարերը: D0 ազդանշանին, գետնից գետնին, +VCC- ից VO կամ 3V: /

/13 Կարգավորեք servo եղջյուրը `օգտագործելով պտուտակահան:

// 14. Կոդի միջոցով կարգավորեք շարժման առավելագույն և նվազագույն աստիճանը:

// 15. Նորից վերբեռնեք NodeMCU- ում, երբ ծածկագիրը թարմացվի:

// Կարող եք կարևոր համարել պարզել, թե որ NodeMCU տարբերակն ունեք: Ահա համեմատության ուղեցույց.

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:

// Հորատանցքերի բացատրություն.

// Պատրաստված է NodeMCU ESP8266 միկրոկառավարիչից, մարտկոցից կամ USB հոսանքի աղբյուրից և SG90 Servo- ից

// Սմարթֆոն օգտագործելու փոխարեն կարող եք օգտագործել 2 -րդ չփոփոխված esp8266 մոդուլը ՝ որպես փարոս թեժ կետ, առանց ծրագրավորման:

Քայլ 3: Ձեռք բերեք ծրագրակազմի մասերը

Նախ պետք է ներբեռնեք անվճար Arduino IDE- ն

Arduino վեբ խմբագիրը չի աշխատում NodeMCU- ի հետ, երբ ես գրում եմ սա, այնպես որ դրա փոխարեն ստիպված կլինեք տեղադրել IDE- ն ձեր համակարգչին:

Դուք նաև պետք է գրեք NearBot ֆայլերը www. MakerSa.ga- ից - Այս ծրագրի ֆայլերի ներբեռնման հղումը նշված է այդ կայքում:

Քայլ 4: Տեղադրեք վարորդներ և տախտակի պրոֆիլներ

Որոշ օգտակար տեղեկություններ
Որոշ օգտակար տեղեկություններ

Ներբեռնված և ապափաթեթավորված NearBot zip- ի ներսում կլինեն NodeMCU մոդուլի վարորդները: Տեղադրեք դրանք ձեր համակարգչում:

Եթե դրանք ձեզ մոտ չեն աշխատում, գուցե կարողանաք գտնել CH340G վարորդներ wemos.cc/downloads

Ձեր NodeMCU- ն կարող է չօգտագործել CH340G չիպը, այնպես որ գուցե անհրաժեշտ լինի մեկնաբանել ձեր փնտրած վարորդը, և ես կպատասխանեմ այդ վարորդի ներբեռնման հղումով:

  1. Հաջորդը, բացեք Arduino IDE- ն և անցեք File PreferencesAddual Boards Manager- ին Arduino IDE- ում:
  2. Տեղադրեք այնտեղ հետևյալ կոդը ՝
  3. Կտտացրեք OK ՝ նախընտրությունների ներդիրը փակելու համար:
  4. Գնացեք գործիքներ և տախտակ, այնուհետև ընտրեք տախտակի կառավարիչ:
  5. Գնացեք «esp8266 by esp8266 community» և տեղադրեք ծրագրակազմը Arduino- ի համար:

Վերոնշյալ բոլոր գործընթացներն ավարտելուց հետո մենք պատրաստ ենք ծրագրավորել մեր esp8266 NodeMCU միկրոկառավարիչը Arduino IDE- ով:

Քայլ 5: Որոշ օգտակար տեղեկություններ

Որոշ օգտակար տեղեկություններ
Որոշ օգտակար տեղեկություններ
Որոշ օգտակար տեղեկություններ
Որոշ օգտակար տեղեկություններ

Գուցե ձեզ համար հարմար լինի պարզել, թե որ NodeMCU տարբերակն ունեք: Ահա համեմատության ուղեցույց.

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

Յուրաքանչյուր տարբերակ ունի քորոցների տարբեր դասավորություններ: Ես գնել եմ v3 (Lolin) տարբերակը, քանի որ այն ունի 5V ելքային կապանքներ, որոնք սնուցում են Servo շարժիչը: Ի վերջո, ես փոխարենը 3 վոլտ հզորության կապակցիչներ օգտագործեցի անվտանգության համար (The NodeMCU I/O կապերը 5 Վ չեն հանդուրժում), բայց գուցե ցանկանաք օգտագործել 5 Վ կապոցները, քանի որ տեխնիկապես այս տեսակի սերվո շարժիչներ նախատեսված են 4.5 -ից 5 վոլտ հզորության համար:

Քայլ 6: Բեռնեք կոդը NodeMCU- ում

Տեղադրեք կոդը NodeMCU- ում
Տեղադրեք կոդը NodeMCU- ում
Տեղադրեք կոդը NodeMCU- ում
Տեղադրեք կոդը NodeMCU- ում
  1. Միացրեք NodeMCU- ը ձեր համակարգչին ՝ օգտագործելով ցանկացած միկրո USB մալուխ:
  2. Բացեք Arduino IDE- ն և «Տախտակներ» բաժնում ընտրեք «ESP12E» և COM նավահանգիստը ՝ NodeMCU- ի համար:
  3. IDE- ում գնացեք FileOpen և դիտեք makersa.ga- ից նախկինում ներբեռնված zip թղթապանակը ՝ Arduino էսքիզը բացելու համար, որը կոչվում է «ProximityActuator013017DonovanMagryta.ino»:
  4. Այնուհետև խմբագրեք այն պարունակող կոդի տողը ՝ ձեր WiFi փարոսի անունն ու գաղտնաբառը ավելացնելու համար: Այդ մասին ստորև! Օրինակ:

const char* ssid = "mywifi"; // Տեղադրեք ձեր թեժ կետի անունը մեջբերումների մեջ

const char* գաղտնաբառ = "mywifipassword"; // Տեղադրեք ձեր թեժ կետի գաղտնաբառը մեջբերումների մեջ

Այնուհետև կտտացրեք «վերբեռնում» ՝ ծածկագիրը NodeMCU տախտակի վրա ցայտելու համար:

NearBot- ը գրպանող WiFi փարոս է օգտագործում `ձեզ ճանաչելու և հեռավորությունը գնահատելու համար: Theիշտ այնպես, ինչպես մոտակայքի բանալիները, որոշ նոր մեքենաներ ունեն, որոնք կողպում են մեքենայի դուռը մոտենալիս:

Դուք կարող եք օգտագործել ձեր սմարթֆոնի բջջային թեժ կետը որպես փարոս, կամ այլընտրանք օգտագործել էժան ESP-01 WiFi մոդուլը, որը սնուցվում է մի զույգ AAA մարտկոցներով կամ փոքր լիթիումի 3.7 վ մարտկոցով: ESP-01- ի ծրագրավորման կարիք չկա, այն կանխադրված է թեժ կետի ռեժիմի պահուստում, երբ այն միացված է: Դրա սխեման ցուցադրվում է այս քայլին:

Քայլ 7: Կցեք Servo- ն NodeMCU- ին

Սերվոն NodeMCU V3- ին միացնելու համար ձեզ կպահանջվեն մի քանի ցատկային լարեր:

Շղթայի սխեման պարզ է.

Ամրացրեք D0- ը կապարի ազդանշանին (սերվոյի ամենաթեթև գույնի մետաղալարը: սովորաբար դեղին կամ սպիտակ):

Կցեք 3V կամ կապեք VO- ին 5V մուտքի լարին (երկրորդ ամենաթեթև գունավոր մետաղալարը սերվոյի վրա, սովորաբար կարմիր կամ նարնջագույն):

GND- ը ամրացրեք գետնին կապողին (սերվոյի ամենամուգ գույնի մետաղալարը, սովորաբար դարչնագույն կամ սև):

Քայլ 8: Կարգավորեք NearBot- ը

Կոդը ազդանշանի ուժը փոխակերպում է հեռավորության գնահատման: Այն հուսալիորեն աշխատում է 2 մետրից կամ 6,5 ոտնաչափից պակաս ռեակցիայի հեռավորությունների վրա: Քանի որ դա ուղղակի փոխակերպում է, այն այնքան հարթ չէ ավելի քան 3 մետր հեռավորությունների վրա, որքան կարող էր լինել ավելի լավ հաշվարկման մեթոդով: Այդ մասին ավելի ուշ:

Հնարավոր է, որ ցանկանաք կարգավորել սերվոյի եղջյուրը (շարժվող փոքրիկ սպիտակ թևը): Դա արվում է ՝ պարզապես պտուտակահանով պտուտակահանելով սերվոյի թևը և նորից տեղադրելով այն:

Հաջորդ մասը կոդի միջոցով շարժման առավելագույն և նվազագույն աստիճանների ճշգրտումն է:

Դա կարելի է անել ՝ փոխելով տողերում պարունակվող թվերը, որոնք ունեն այս տեսքը.

myservo.write (10); // տեղափոխում է servo թևը 10 աստիճանի պտույտով

Կարող եք նաև ազդանշանի ուժի զգայունությունը կարգավորել ՝ տողերում բացասական թվերը փոխելով.

եթե (rssi> -30 && rssi <-5) {// Եթե ազդանշանի ուժգնությունն ավելի ուժեղ է -30 -ից, և թույլ է -5 -ից: ապա արեք հետևյալը…

Քայլ 9: Ինչպես է այն աշխատում

  1. NearBot- ը նախապես միանում է թեժ կետին, քանի որ օգտվողները մոտենում են:
  2. Այն սկանավորում է RSSI- ն (ստացված ազդանշանի ուժը) և այն փոխարկում է մոտավոր հեռավորության:
  3. Մինչ հեռավորությունը նշված միջակայքում է, այն շարժիչով շարժիչի թևը տեղափոխում է 1 -ին դիրքի:
  4. Հակառակ դեպքում, servo շարժիչը տեղափոխվում է 2 -րդ դիրք:

Երբ ես փորձարկեցի սա, այս RSSI թյունինգը (-50) սերվոյին տեղափոխում է 1 դիրքի, մինչդեռ հեռավորությունը 0-ից 1,5 մետր է ՝ գրպանումս ESP-01 փարոսով կամ հեռախոսի թեժ կետով:

RSSI- ն սովորաբար ընկնում է -90 -ից -20 միջակայքում, իսկ -20 -ը ազդանշանի ամենաուժեղ ուժն է:

Եթե դուք բացում եք Arduino IDE սերիական մոնիտորը, մինչ NearBot- ը միացված է համակարգչին, այն իրական ժամանակում կցուցադրի ազդանշանի ուժգնությունը և գործարկման կետերը, որպեսզի ունենաք հարմար հետադարձ կապ:

Ահա ամբողջական ծածկագիրը.

// ՄԻՆՉԵՎ ՍԿՍԵԼ.

// 1. Եթե դուք դեռ չեք ներբեռնել Arduino IDE- ն, ստացեք այն անվճար (նվիրատվությունը ՝ ըստ ցանկության) ՝ https://www.arduino.cc/hy/Main/Software // 2: բացեք Arduino IDE- ն (եթե սա արդեն չեք կարդում Arduino IDE- ում)… // 3. Գնացեք ֆայլեր և կտտացրեք նախապատվությունը Arduino IDE- ում… // 4. պատճենեք ստորև բերված հղումը Լրացուցիչ տախտակների կառավարիչում ՝ //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5: կտտացրեք OK ՝ նախընտրությունների ներդիրը փակելու համար… // 6. Գնացեք գործիքներ և տախտակ, այնուհետև ընտրեք տախտակի կառավարիչ… // 7. Գնացեք esp8266 համայնքի կողմից դեպի esp8266 և տեղադրեք ծրագրակազմը Arduino… // 8 -ի համար: Հնարավոր է, անհրաժեշտ լինի ներբեռնել և տեղադրել CH340 վարորդը, եթե չեք կարողանում NodeMCU- ին զրուցել ձեր Arduino IDE- ի հետ. կարդացեք, որպեսզի ծրագրավորեք մեր esp8266 NodeMCU միկրոկառավարիչը Arduino IDE- ով: Կարող եք պարզել, թե որ NodeMCU տարբերակն ունեք: Ահա համեմատության ուղեցույց. սմարթֆոն օգտագործելու փոխարեն hotspot AP: // NearBot Circuit: // D0 կապում դեպի Servo ազդանշանային մետաղալար (ամենաթեթև գույնի մետաղալար) // 3V կապ դեպի servo 5v մետաղալար (միջին մետաղալար) (զուգված զուգահեռ USB մալուխին կամ VO կապին NodeMCU- ի վրա, եթե V3 ունեք): / /USB power to USB plug on the NodeMCU // GND pin to Servo Ground wire (ամենամուգ գույնի մետաղալար) // Կարող է անհրաժեշտ լինել սերիական տպագրության համար: (տվյալներ) #սահմանել D3 0 #սահմանել D4 2 // Նույնը, ինչպես «LED_BUILTIN», բայց շրջված տրամաբանությունը #սահմանել D5 14 // SPI Bus SCK (ժամացույց) #սահմանել 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; // Ստեղծել myservo անունով servo օբյեկտ // Հեռախոս կամ լրացուցիչ ESP8266 մոդուլ, որը դրված է թեժ կետի AP ռեժիմում. const ch ar* ssid = ""; // Տեղադրեք ձեր թեժ կետի անունը մեջբերումների const char* գաղտնաբառ = ""; // Տեղադրեք ձեր թեժ կետի գաղտնաբառը մեջբերումների մեջ void setup () {Serial.begin (115200); // սահմանում է սերիական բաուդ արագությունը, որպեսզի միկրոկառավարիչը կարողանա խոսել Arduino IDE- ի սերիական տպման ինտերֆեյսի հետ. դրա փոխարեն կարող է անհրաժեշտ լինել այն փոխել 9600 -ի: myservo.attach (D0); // կցում է servo մատնանշում D0 aka GPIO16 սերվոյի օբյեկտին - Տես ավելին ՝ https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // տեղափոխում է servo թևը դեպի 10 աստիճան պտույտ Serial.println («Կողպված»); // թողարկեք սերիական մոնիտորի «Կողպված» WiFi.mode բառը (WIFI_STA); // WiFi- ն սահմանում է կայանի ռեժիմում WiFi.begin (ssid, գաղտնաբառ); // Միանում է թեժ կետի փարոս} void loop () {// Օղակը նորից ու նորից արագ է անցնում, եթե (WiFi.status ()! = WL_CONNECTED) {// Եթե wifi- ն ՉԻ միացված, կատարեք հետևյալը … Serial.println ("Չհաջողվեց ստանալ Wi -Fi կապ"); myservo.write (10); // Տեղափոխում է servo թևը 10 աստիճանի Serial.println («Կողպված»); } else {// Եթե WiFi- ն միացված է, ապա արեք հետևյալը … երկար rssi = WiFi. RSSI (); // Ստեղծում է rssi անունով փոփոխական և այն վերագրում այն գործառույթին, որը վերադարձնում է թեժ կետի փարոսի Serial.print (rssi) ազդանշանի ուժգնության ընթերցումը; // թողարկում է rssi ընթերցումը սերիական մոնիտորին, եթե (rssi> -50 && rssi <-5) {// Եթե ազդանշանի ուժգնությունը -50 -ից ուժեղ է, և թույլ -5 -ից: ապա արեք հետևյալը … myservo.write (170); // Պտտել servo թևը 170 աստիճանի Serial.println ("Unlocked"); } else {// Եթե վերը նշված պայմանները չեն համապատասխանում, ապա կատարեք հետևյալը … myservo.write (10); // Սերվո թևը հետ է պտտում 10 աստիճանի: Serial.println («Կողպված»); }}}

Քայլ 10: Դուք պետք է իմանաք…

Հրաժարում

NearBot կոդի ընթացիկ կրկնությունը հուսալիորեն աշխատում է 2 մետրից կամ 6.5 ոտնաչափից պակաս հեռավորությունների վրա: Դրանից դուրս, այն դառնում է ավելի քիչ ճշգրիտ, բայց դեռ աշխատում է:

Սա կարող է շտկվել, բայց այս պահին ես չգիտեմ, թե ինչպես դա անել: Ես շատ կցանկանայի, եթե ինչ -որ մեկը աշխատեր ինձ հետ, որպեսզի ես կարողանամ այս հրահանգները թարմացնել հեռավորությունը հաշվարկելու ավելի ճշգրիտ մեթոդով:

Այս հղումները կարող են օգտակար լինել. YouTuber CNLohr- ը ESP8266- ի համար մշակեց հեռավորության և դիրքորոշման որոնման ծրագիր ՝ սահմանափակ հաջողությամբ.

Espressif- ը մշակեց Time of Flight հեռավորությունների հայտնաբերման գործառույթ, որը կաշխատի Arduino IDE- ի հետ ESP8266- ի համար, բայց այն երբեք չթողարկեց ՝

SubPos դիրքավորման համակարգը օգտագործում է ESP8266 մոդուլներ և Path Loss հաշվարկ, որն այն է, ինչ ես չգիտեմ, թե ինչպես իրականացնել Arduino IDE- ում.

Ես գտա օրինակ Java լեզվով, բայց չգիտեմ, թե ինչպես կրկնել սա Arduino IDE- ն.

կրկնակի հեռավորություն = Math.pow (10.0, (((կրկնակի) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(գ/հաճախականություն)))) ((20*mu));

Քայլ 11: Դա բոլորն են:

Եթե դուք ինքներդ եք պատրաստում NearBot- ը, տեղադրեք ձեր «Ես պատրաստեցի» ստորև բերված մեկնաբանություններում:

Եթե ունեք այլ գաղափարներ, թե ինչի համար օգտագործել Versatile NearBot հարթակը, խնդրում ենք մեկնաբանել ձեր գաղափարները: Այն կարող է մեծ ոգեշնչում լինել ուսանելի այլ օգտվողների համար:

Եթե ձեզ դուր է գալիս այս ձեռնարկը, խնդրում ենք հաշվի առնել մրցույթներում ուսանելի այս ծրագրի օգտին քվեարկելը:

Խորհուրդ ենք տալիս: