Mundarija:

Ko'p tomonlama NearBot: 11 qadam (rasmlar bilan)
Ko'p tomonlama NearBot: 11 qadam (rasmlar bilan)

Video: Ko'p tomonlama NearBot: 11 qadam (rasmlar bilan)

Video: Ko'p tomonlama NearBot: 11 qadam (rasmlar bilan)
Video: Qanday qilib 2023 yildan Ko'p tomonlama Multi Schengen viza olish mumkin? Mijozimizdan natija! 2024, Noyabr
Anonim
Image
Image

Bu ko'rsatma sizga (telefoningiz yoki cho'ntagingizda cho'ntagingizda) yoningizda bo'lganingizda, har xil qurilmalarda tugma, kalit yoki terish kabi narsalarni harakatlantira oladigan ko'p qirrali robot -tetikni qanday yaratishni ko'rsatib beradi. Bu shuni anglatadiki, u eshik qulfini avtomatik ravishda qulfdan chiqarishi va qayta qulflashi mumkin, chunki faqat siz * o'tayotganda, sug'orish vanasini yopib qo'ying, shunda siz shahar atrofidagi Muso singari shikastlanmagan suvdan o'tishingiz mumkin, garajda bo'lganingizda ovoz balandligi past bo'ladi. xonaga kiring, iPod -ni ishga tushiring yoki xonada bo'lganingizda hazil qiling (Jaden Smitning tviti?) yoki hojatxonadan foydalanganingizda filmni to'xtatib turing.

Ushbu loyiha lehim yoki maxsus asboblarni talab qilmaydi

Agar siz ushbu ko'rsatmalarni etarli darajada yoqtirsangiz, iltimos, Robototexnika 2017 tanlovida ushbu ko'rsatmaga ovoz berishni o'ylab ko'ring!

1 -qadam: Uskuna qismlarini sotib oling

Sizga kerak bo'ladi:

  • NodeMCU v2 yoki V3
  • Micro 9G Servo dvigateli eBay yoki Aliexpress -da 1,40 AQSh dollari miqdorida bepul etkazib beriladi
  • Arduino jumper ayollardan erkaklarga o'tadi.
  • NearBot uchun korpus - men topilgan plastik qutidan foydalanardim.
  • Micro USB ma'lumot kabeli (telefon qismlari)
  • USB quvvat manbai (telefon zaryadlovchi qurilmasi)

Agar sizda mobil ulanish nuqtasi bo'lgan smartfon bo'lmasa, sizga quyidagilar kerak bo'ladi:

  • ESP-01 moduli taxminan 2,50 AQSh dollari, DealExtreme, GearBest, Ebay yoki Aliexpress-da bepul etkazib berish.
  • 1 juft AAA batareyasi
  • kalitli ikkita AAA batareya ushlagichi

2 -qadam: Tez boshlash

Agar sizga bunday narsa yoqsa, bu qadamda tez boshlash bo'yicha ko'rsatma mavjud. Qolganlari asta-sekin o'tib boriladi va chuqurroq ma'lumotlar qo'shiladi

// Xaridlar ro'yxati: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller

// SG90 9G Servo Dvigatel

// USB Power Bank yoki USB devor adapteri.

// Micro USB ma'lumot/zaryad kabeli

// Arduino erkak va ayol tipidagi o'tish simlari

// Boshlashdan oldin:

// 1. Agar siz Arduino IDE -ni hali yuklab olmagan bo'lsangiz, uni bepul oling (xayriya ixtiyoriy):

// 2. Arduino IDE -ni oching (agar siz buni Arduino IDE -da o'qimagan bo'lsangiz!) …

// 3. Fayllarga o'ting va Arduino IDE -ni tanlang.

// 4. Quyidagi kodni Qo'shimcha taxtalar menejeridan nusxa ko'chiring: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. afzal yorlig'ini yopish uchun OK ni bosing …

// 6. Asboblar va taxtaga o'ting, keyin boshqaruv menejerini tanlang …

// 7. Esp8266 hamjamiyati tomonidan esp8266 -ga o'ting va Arduino uchun dasturiy ta'minotni o'rnating …

// 8. Agar siz NodeMCU ni Arduino IDE bilan gaplasha olmasangiz, CH340 drayverini yuklab olishingiz va o'rnatishingiz kerak bo'lishi mumkin:

// Yuqoridagi barcha jarayonlar tugagandan so'ng, biz esp8266 NodeMCU mikrokontrollerimizni Arduino IDE bilan dasturlash uchun o'qiymiz.

//9.tort menyusidan NodeMCU V1.0 ESP12E ni tanlang /

/10. Foydalanadigan COM portini tanlang.

// 11. kodni tanlang (www.makersa.ga saytidan yuklab oling) va yuklashni bosing. /

/12. O'tish simlari yordamida servoni NodeMCU -ga ulang. D0 signal uchun, erdan erga, +VCC - VO yoki 3V. /

/13. Tornavida yordamida servo shoxini sozlang.

// 14. Kod yordamida maksimal va minimal harakat darajasini sozlang.

// 15. Kod yangilanib turganda, NodeMCU-ga qayta yuklang.

// Sizda NodeMCU -ning qaysi versiyasi borligini aniqlash muhim bo'lishi mumkin. Mana taqqoslash qo'llanmasi:

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

// Qurilmalar haqida tushuntirish:

// NodeMCU ESP8266 mikrokontroller, batareya yoki USB quvvat manbai va SG90 Servo -dan ishlab chiqarilgan.

// Siz 2 -chi o'zgartirilmagan esp8266 modulini smartfondan foydalanish o'rniga, mayoq nuqtasi sifatida ishlatishingiz mumkin, dasturlash shart emas.

3 -qadam: dasturiy ta'minot qismlarini sotib oling

Avval siz Arduino IDE -ni bepul yuklab olishingiz kerak

Men yozayotgan vaqtda Arduino veb -muharriri NodeMCU bilan ishlamaydi, shuning uchun uning o'rniga IDE -ni kompyuteringizga o'rnatishingiz kerak bo'ladi.

Siz shuningdek NearBot fayllarini www. MakerSa.ga saytidan olishingiz kerak bo'ladi - bu loyihani yuklab olish uchun havola o'sha saytda ko'rsatilgan.

4 -qadam: Haydovchilar va taxta profillarini o'rnating

Ba'zi foydali ma'lumotlar
Ba'zi foydali ma'lumotlar

Siz yuklagan va ochilmagan NearBot zip ichida NodeMCU moduli uchun drayverlar bo'ladi. Ularni kompyuteringizga o'rnating.

Agar ular siz uchun ishlamasa, siz CH340G drayverlarini wemos.cc/downloads saytidan topishingiz mumkin.

Sizning NodeMCU CH340G chipini ishlatmasligi mumkin, shuning uchun siz qidirayotgan haydovchiga izoh berishingiz kerak bo'lishi mumkin va men bu drayverni yuklab olish havolasi bilan javob beraman.

  1. Keyin, Arduino IDE -ni oching va Arduino IDE -dagi qo'shimcha fayllar menejeriga o'ting.
  2. U erga quyidagi kodni kiriting:
  3. Tanlov yorlig'ini yopish uchun OK ni bosing.
  4. Asboblar va taxtaga o'ting, so'ngra boshqaruv menejerini tanlang.
  5. "Esp8266 by esp8266 hamjamiyati" ga o'ting va Arduino uchun dasturiy ta'minotni o'rnating.

Yuqoridagi barcha jarayonlar tugagach, biz esp8266 NodeMCU mikrokontrollerimizni Arduino IDE bilan dasturlashga tayyormiz!

5 -qadam: Ba'zi foydali ma'lumotlar

Ba'zi foydali ma'lumotlar
Ba'zi foydali ma'lumotlar
Ba'zi foydali ma'lumotlar
Ba'zi foydali ma'lumotlar

Sizda NodeMCU -ning qaysi versiyasi borligini aniqlash qulay bo'lishi mumkin. Bu erda taqqoslash qo'llanmasi:

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

Har bir versiyada turli xil pinli tuzilmalar mavjud. Men v3 (Lolin) versiyasini sotib oldim, chunki u Servo motorini quvvatlantirish uchun 5V chiqish piniga ega. Oxir -oqibat men xavfsizlik uchun 3 voltli quvvat pimlarini ishlatardim (NodeMCU I/U pinlari 5V ga bardoshli emas), lekin siz 5V pinlardan foydalanishni xohlashingiz mumkin, chunki texnik jihatdan bunday servo dvigatellar 4,5 dan 5 voltgacha quvvat bilan ko'rsatilgan.

6 -qadam: Kodni NodeMCU -ga yuklang

Kodni NodeMCU -ga yuklang
Kodni NodeMCU -ga yuklang
Kodni NodeMCU -ga yuklang
Kodni NodeMCU -ga yuklang
  1. NodeMCU -ni har qanday mikro USB kabelidan foydalanib kompyuteringizga ulang.
  2. Arduino IDE -ni oching va "Kengashlar" ostida "ESP12E" ni va NodeMCU uchun COM portini tanlang.
  3. IDE -da FileOpen -ga o'ting va "proximityActuator013017DonovanMagryta.ino" nomli Arduino eskizini ochish uchun avval makersa.ga saytidan yuklangan zip papkasini ko'rib chiqing.
  4. Keyin, Wi -Fi mayoqchasining nomi va parolini qo'shish uchun, bu o'z ichiga olgan kod qatorini tahrir qiling. Bu haqda quyida batafsilroq! Masalan:

const char* ssid = "mywifi"; // Tirnoq ichiga kirish nuqtasi nomini kiriting

const char* password = "mywifipassword"; // Hotspot parolini tirnoq ichiga kiriting

Keyin kodni NodeMCU taxtasida ko'rsatish uchun "yuklash" tugmasini bosing.

NearBot sizni aniqlash va masofani taxmin qilish uchun cho'ntakli Wi -Fi chiroqidan foydalanadi. Xuddi yaqinlik kalitlari singari, ba'zi yangi mashinalarda siz yaqinlashganda mashinaning eshigi ochiladi.

Siz o'z uyali telefoningizni mayoq sifatida ishlatishingiz yoki muqobil ravishda bir juft AAA batareyasi yoki kichik lityum 3.7v batareyali ESP-01 WiFi modulidan foydalanishingiz mumkin. ESP-01-ni dasturlashning hojati yo'q, u yoqilganda hotspot rejimining zaxirasini oladi. Buning sxemasi ushbu bosqichda ko'rsatilgan.

7 -qadam: Servo -ni NodeMCU -ga ulang

Servo NodeMCU V3 ga ulash uchun sizga bir nechta o'tish simlari kerak bo'ladi.

O'chirish diagrammasi oddiy.

Qo'rg'oshin signaliga D0 pinini qo'ying (servodagi eng ochiq rangli sim. Odatda sariq yoki oq.)

3V yoki VO pinini 5V kirish simiga ulang (servodagi ikkinchi eng ochiq rangli sim, odatda qizil yoki to'q sariq).

GND -ni erga ulang (servodagi eng quyuq rangli sim, odatda jigarrang yoki qora).

8 -qadam: NearBot -ni sozlang

Kod signal kuchini masofani baholashga o'zgartiradi. 2 metr yoki 6,5 futdan kam bo'lgan reaktsiya masofalari uchun ishonchli ishlaydi. To'g'ridan -to'g'ri konvertatsiya qilinganligi sababli, u 3 metrdan uzoqroq masofalar uchun, ehtimol, yaxshiroq hisoblash usuli bo'lishi mumkin. Bu haqda keyinroq.

Siz servo shoxi (harakatlanuvchi oq qo'l) qayerda joylashganligini sozlashni xohlashingiz mumkin. Bu servo qo'lni tornavida bilan burab, uni qayta joylashtirish orqali amalga oshiriladi.

Keyingi qism - bu kod yordamida maksimal va minimal harakatlanish darajasini sozlash.

Buni quyidagi satrlarda joylashgan raqamlarni o'zgartirish orqali amalga oshirish mumkin:

myservo.write (10); // servo qo'lni 10 gradusga aylantiradi

Bundan tashqari, quyidagi kabi chiziqlardagi manfiy sonlarni o'zgartirish orqali signal kuchining sezgirligini sozlashingiz mumkin:

if (rssi> -30 && rssi <-5) {// Agar signal kuchi -30 dan kuchliroq va -5dan kuchsiz bo'lsa. keyin quyidagilarni bajaring …

9 -qadam: Bu qanday ishlaydi

  1. NearBot foydalanuvchilar yaqinlashganda, avval ulanish nuqtasiga oldindan ulanadi.
  2. U RSSI (qabul qilingan signal kuchi) ni skanerlaydi va uni taxminiy masofaga o'zgartiradi.
  3. Masofa belgilangan diapazonda bo'lsa -da, u servo dvigatel qo'lini 1 -holatga o'tkazadi.
  4. Aks holda, servo dvigatel 2 -holatga o'tkaziladi.

Men buni sinab ko'rganimda, RSSI-ni sozlash (-50) servoni 1-holatga o'tkazadi, masofa 0 dan 1,5 metrgacha cho'ntagimda ESP-01 mayoqchasi yoki telefon nuqtasi bilan.

RSSI odatda -90 dan -20 gacha, -20 esa eng kuchli signal kuchi.

Agar siz NearBot kompyuterga ulangan paytda Arduino IDE Serial Monitor -ni ochsangiz, u sizga signal va kuch manbalarini real vaqtda aks ettiradi.

Bu erda to'liq kod:

// Boshlashdan oldin:

// 1. Agar siz Arduino IDE -ni hali yuklab olmagan bo'lsangiz, uni bepul oling (ixtiyoriy ravishda): https://www.arduino.cc/en/Main/Software // 2. Arduino IDE -ni oching (agar siz buni Arduino IDE -da o'qimagan bo'lsangiz!)… // 3. Fayllarga o'ting va Arduino IDE -dagi afzalliklarni bosing … // 4. Qo'shimcha taxtalar menejeridagi quyidagi havolani nusxalash: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. afzal yorlig'ini yopish uchun OK ni bosing … // 6. Asboblar va taxtaga o'ting, keyin boshqaruv menejerini tanlang … // 7. Esp8266 hamjamiyati tomonidan esp8266 -ga o'ting va Arduino uchun dasturiy ta'minotni o'rnating … // 8. Agar siz NodeMCU -ni Arduino IDE bilan gaplasha olmasangiz, CH340 drayverini yuklab olishingiz va o'rnatishingiz kerak bo'lishi mumkin: https://www.arduino.cc/en/Main/Software // Yuqoridagi jarayonlar tugagach, biz esp8266 NodeMCU mikrokontrollerimizni Arduino IDE bilan dasturlash uchun o'qing. NodeMCU -ning qaysi versiyasi borligini aniqlashni xohlashingiz mumkin. Bu erda taqqoslash bo'yicha qo'llanma: https://www.arduino.cc/en/Main/Software // NodeMCU ESP8266 mikrokontrolderi, batareya yoki USB quvvat manbai va SG90 Servo dan ishlab chiqarilgan // Siz mayoq sifatida 2 -chi o'zgartirilmagan esp8266 modulidan foydalanishingiz mumkin. smartfondan foydalanish o'rniga, hotspot AP. // NearBot Circuit: // Servo signal simiga D0 pin (eng ochiq rangli sim) // 3V pinli servo 5v simga (o'rta sim) (usb kabeliga parallel ravishda yoki NodeMCU -dagi VO piniga V3 bo'lsa. / /NodeMCU -dagi USB ulagichining USB -quvvat manbai // GND pinini Servo topraklama simiga (eng quyuq rangli sim) // Eslatma chiziqlari ikkita oldinga siljish bilan boshlanadi va ular kompyuter tomonidan e'tiborga olinmaydi. Eslatmalar faqat biz odamlar uchun! #Include #include // Seriyali bosib chiqarish uchun kerak bo'lishi mumkin. #Qo'shish // Servo kutubxonasi #D0 16 ni belgilash // Pimlarni belgilashni osonlashtirish uchun pinlarni belgilaydi. (ma'lumotlar) #define D3 0 #define D4 2 // "LED_BUILTIN" bilan bir xil, lekin teskari mantiq #define D5 14 // SPI Bus SCK (soat) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Serial konsol) #define D10 1 // TX0 (Serial console) Servo myservo; // myservo nomli servo ob'ekt yaratish // Telefon yoki qo'shimcha ESP8266 moduli kirish nuqtasi AP rejimiga o'rnatildi: const ch ar* ssid = ""; // Hotspot nomingizni tirnoq ichiga kiriting const char* password = ""; // Hotspot parolini tirnoqlarning ichiga joylashtiring void setup () {Serial.begin (115200); // ketma -ket uzatish tezligini o'rnatadi, shuning uchun mikrokontroller Arduino IDE -da ketma -ket chop etish interfeysi bilan gaplashishi mumkin - buning o'rniga uni 9600 ga o'zgartirish kerak bo'lishi mumkin! myservo.attach (D0); // servo moslamaga D0 aka GPIO16 pinidagi servo biriktiriladi - Batafsil: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // servo qo'lni 10 gradusga aylantiradi Serial.println ("Qulflangan"); // ketma -ket monitorni "qulflangan" WiFi.mode (WIFI_STA) so'zini chiqaradi; // Wi -Fi -ni bekat rejimiga qo'yadi WiFi.begin (ssid, parol); // Hotspot mayoqqa ulanadi} void loop () {// Agar pastadir tez -tez ishlaydi (WiFi.status ()! = WL_CONNECTED) {// Agar wifi ulanmagan bo'lsa, quyidagilarni bajaring … Serial.println ("Wi -Fi ulanib bo'lmadi"); myservo.write (10); // Servo qo'lini 10 gradusgacha siljitadi Serial.println ("Qulflangan"); } else {// Agar WiFi ulangan bo'lsa, quyidagilarni bajaring … long rssi = WiFi. RSSI (); // rssi nomli o'zgaruvchini yaratadi va uni Serial.print (rssi) kirish nuqtasi signalining signal kuchini o'qishini qaytaradigan funktsiyaga tayinlaydi; // rssi o'qilishini ketma -ket monitorga chiqaradi, agar (rssi> -50 && rssi <-5) {// Agar signal kuchi -50 dan kuchliroq va -5dan kuchsiz bo'lsa. keyin quyidagilarni bajaring … myservo.write (170); // Servo qo'lini 170 darajaga burish Serial.println ("Qulflanmagan"); } else {// Agar yuqoridagi shartlar bajarilmasa, quyidagilarni bajaring … myservo.write (10); // Servo qo'lini 10 darajaga qaytaradi. Serial.println ("Qulflangan"); }}}

10 -qadam: Siz bilishingiz kerak …

Ogohlantirishlar:

NearBot kodining joriy iteratsiyasi 2 metr yoki 6,5 futdan kam masofalarda ishonchli ishlaydi. Bundan tashqari, u kamroq aniqroq, lekin baribir ishlaydi.

Buni tuzatish mumkin, lekin hozir men buni qanday qilishni bilmayman. Agar kimdir men bilan ishlasa, men juda xursand bo'lardim, shuning uchun men bu ko'rsatmalarni masofani hisoblashning aniq usuli bilan yangilay olaman!

Bu havolalar qulay bo'lishi mumkin: YouTuber CNLohr cheklangan muvaffaqiyat bilan ESP8266 uchun masofa va joylashishni aniqlash dasturini ishlab chiqdi:

Espressif ESP8266 uchun Arduino IDE bilan ishlaydigan Parvoz masofasini aniqlash funksiyasini ishlab chiqdi, lekin uni hech qachon chiqarmadi:

SubPos joylashishni aniqlash tizimi ESP8266 modullari va Yo'qotishlarni hisoblashdan foydalanadi, men buni Arduino IDE -da qanday amalga oshirishni bilmayman:

Men Java tilida misol topdim, lekin buni qanday takrorlashni bilmayman Arduino IDE:

er -xotin masofa = Math.pow (10.0, (((ikki baravar) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/chastota)))/(20*mu));

11 -qadam: Hammasi shu

Agar siz o'zingizning NearBot -ni o'zingiz qilsangiz, quyidagi izohlarda "men qildim" deb yozing!

Agar sizda Versatile NearBot platformasidan qanday foydalanish haqida boshqa fikrlaringiz bo'lsa, o'z fikrlaringizni bildiring! Bu boshqa ko'rsatmali foydalanuvchilar uchun ajoyib ilhom bo'lishi mumkin!

Agar sizga bu darslik yoqqan bo'lsa, iltimos, tanlovlarda ushbu ko'rsatmaga ovoz bering!

Tavsiya: