Mundarija:

Arduino bilan DIY ko'p funktsiyali robot: 13 qadam (rasmlar bilan)
Arduino bilan DIY ko'p funktsiyali robot: 13 qadam (rasmlar bilan)

Video: Arduino bilan DIY ko'p funktsiyali robot: 13 qadam (rasmlar bilan)

Video: Arduino bilan DIY ko'p funktsiyali robot: 13 qadam (rasmlar bilan)
Video: PYTHON ๐Ÿ DASTURLASH TILIDA OVOZLI DASTUR | GAPIRADIGAN DASTUR | JARVIS 2024, Iyul
Anonim
Arduino bilan DIY ko'p funktsiyali robot
Arduino bilan DIY ko'p funktsiyali robot
Arduino bilan DIY ko'p funktsiyali robot
Arduino bilan DIY ko'p funktsiyali robot
Arduino bilan DIY ko'p funktsiyali robot
Arduino bilan DIY ko'p funktsiyali robot

Bu robot asosan Arduino -ni tushunish va Arduino -ning turli loyihalarini birlashtirib, ko'p funktsiyali Arduino robotini yaratish uchun yaratilgan. Va yana, kim uy hayvonlari robotiga ega bo'lishni xohlamaydi? Shunday qilib, men uni BLUE ROVIER 316 deb nomladim. Men chiroyli shassi sotib olgan bo'lardim, lekin uni noldan yasash sizga ko'proq narsani o'rgatadi va uni tugatgandan so'ng sizga g'urur bag'ishlaydi. Robot ovozli buyruqlarni tushunishga, oddiy savollarga javob berishga va boshqalarni boshqarishga qodir. RC avtomobili va hatto harakatlanayotganda to'siqlardan qochish. U asosan Bluetooth orqali ulangan Android telefon orqali boshqariladi. Google Voice Recognition va Tilt sensatsiyasi kabi Android xususiyatlariga asoslanib, u o'zini yoqimli, aqlli robot kabi tutishi mumkin. Men uning nomiga BLUE qo'shdim, chunki u asosan Bluetooth -ga asoslangan. Bu mening birinchi Arduino loyiham edi va men uni o'ziga xos bo'lishini xohlardim. Agar sizga loyiha yoqsa, robototexnika tanlovida menga ovoz bering!

1 -qadam: Namoyish videosi

Image
Image
ROVIER haqida hikoya
ROVIER haqida hikoya

Siz robotning demosini ushbu saytda ko'rishingiz mumkin:

2 -qadam: ROVIER haqida hikoya

ROVIER haqida hikoya
ROVIER haqida hikoya

Agar siz BLUE ROVIER 316 -ning yoqimli hikoyasini boshdan kechirishni xohlamasangiz, keyingi bosqichga o'tishingiz mumkin. Bir yilcha oldin men otamdan Arduino UNO -ni sovg'a sifatida oldim. Bu mening Arduino sohasidagi birinchi qadamim bo'lgani uchun, men umumiy Arduino loyihalaridan farq qiladigan va o'ziga xos narsalarni yaratmoqchi edim. Bu ovozli buyruqlarni tushunadigan va masofadan boshqarish, chiziqlarni ta'qib qilish, to'siqlardan qochish va boshqalar kabi aqlli ishlarni bajaradigan aqlli va aqlli robot bo'lishi kerak edi. Savol ularni qanday qilib birlashtirish edi. Haqiqatan ham, vaqtni to'rda o'tkazgandan so'ng, men Bluetooth eng arzon rejim bo'ladi degan xulosaga keldim. Shunday qilib, BLUE ROVIER harakatga keltirildi, lekin men Arduino UNO -da xotira yo'qligi sababli, men kutgan robotning ko'p xususiyatlarini istisno qilishga majbur bo'ldim. BMTdagi raqamli pinlar). Bu muhim emas, men davom etdim. Robotning oxirgi versiyasini yaratish uchun menga juda yaxshi vaqt kerak bo'ldi. Ko'p sinov va muvaffaqiyatsizliklardan so'ng, nihoyat, BLUE ROVIER paydo bo'ldi va endi biz robot ishlab chiqarishga o'tamiz.

3 -qadam: Komponentlar va qismlar

Komponentlar va qismlar
Komponentlar va qismlar
Komponentlar va qismlar
Komponentlar va qismlar
Komponentlar va qismlar
Komponentlar va qismlar

Sizga faqat quyidagi komponentlar kerak bo'ladi: 1. Android tizimi 2. Arduino Uno 3. wtv020-sd-16p moduli va 8 ohmli karnay4. 2x L293d dvigatel boshqaruvi davri 5. 4x bo motor va g'ildiraklar6. HC SR04 ultratovush sensori 7. 9g servo8. 8 AA batareya ushlagichi va batareyalar 9. 1gb micro SD karta 10. shassi uchun kichik kalit qutisi.11. HC 05 Bluetooth moduli Men bilaman, bu qimmatga tushadi! Lekin xavotir olmang, buning uchun atigi ikki -uch ming so'm kerak bo'ladi. Android haqida gapiradigan bo'lsak, uni ishlatish unchalik katta muammo bo'lmaydi, chunki hozirda ko'pchilikda shunday. Ammo yangi versiyalarga ega bo'lish (5.0 dan yuqori) ishlashni oshirishi mumkin. O'rtacha aylanish tezligi (60 dan 100 gacha) bo'lgan dvigatellarni sotib olishga harakat qiling. Bu robot tezligini nazorat ostida ushlab turishga yordam beradi, chunki boshqa tezlikni boshqarish sxemasi o'rnatilmagan. Va 8 ta aa batareyasi robotni yaxshi vaqtga quvvatlantirish uchun etarli. Bluetooth -ni hisobga olsak, HC 05 robotga mos keladi, chunki u etarlicha arzon va ishlashi ham ajoyib. Robotga biron bir savol berilganda eshitiladigan ovozli fayllarni saqlash uchun 1 gigabaytli micro SD -karta kerak bo'ladi [Bo'limning keyingi qismida batafsil muhokama qilingan]. Boshqa komponentlar tegishli bosqichda batafsil muhokama qilinadi.

Endi biz ushbu robotda ishlatiladigan oddiy "nazariyalar" ga o'tamiz.

4 -qadam: Ovozni boshqarish nazariyasi

Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi
Ovozni boshqarish nazariyasi

Robot android telefon orqali ovozli buyruqlarni tushuna oladi. O'ylaymanki, hamma Google Voice Recognition -ni biladi, biz bu so'zni aytadigan Android va Google uni yozadi, xuddi shu xususiyat bu erda ovozli buyruqlarni tanib, ularni matnli buyruqlarga aylantirish uchun ishlatiladi. Bu yerdagi ilova Google orqali nutqni matnga o'zgartiradi va uni Bluetooth orqali robotga yuboradi. Robot Bluetooth orqali olingan ushbu buyruqlarga amal qilish uchun dasturlashtirilgan. Shuningdek, u ko'plab savollarga javob bera oladi. Siz robotni yanada ajoyib ishlarni bajarishi uchun kodga bir nechta buyruqlar qo'shishingiz mumkin. Mana Android ilovasi:

5 -qadam: Imo -ishora nazorati nazariyasi

Imo -ishora nazorati nazariyasi
Imo -ishora nazorati nazariyasi
Imo -ishora nazorati nazariyasi
Imo -ishora nazorati nazariyasi

Imo -ishora yoki harakatni boshqarish rejimi ham Android orqali amalga oshiriladi. Ushbu rejimda robotni RC avtomobili sifatida Android -ni rul sifatida boshqarish mumkin. Ushbu rejimda ishlatiladigan barcha Android qurilmalarida "akselerometr" deb nomlangan sensor mavjud. Bu akselerometr Android -da ishlaydigan tezlashuv kuchlarini o'lchash orqali telefonning burchagini aniqlay oladi. Aynan mana shu sensor, biz telefonni egganda Android ekranini aylantiradi. Bu yerdagi ilova telefon akselometridan foydalanib, telefonning egilgan burchagini aniqlaydi. Keyin Bluetooth orqali robotga belgi (A, Bโ€ฆ.) Yuboriladi. Arduino olingan ma'lumotlarga muvofiq ishlaydi, agar telefon oldinga egilgan bo'lsa, A belgisi yuboriladi va robot oldinga siljiydi. Orqaga burilganda, B belgi yuboriladi va robot orqaga, chapga va o'ngga siljiydi. Android gorizontal joylashganda, E belgisi yuboriladi va robot harakatini to'xtatadi.

6 -qadam: Bluetooth boshqaruv nazariyasi

Bluetooth boshqaruv nazariyasi
Bluetooth boshqaruv nazariyasi
Bluetooth boshqaruv nazariyasi
Bluetooth boshqaruv nazariyasi

Bu rejimda robot umumiy RC avtomobili sifatida ishlaydi. Bu rejimda hech qanday yangilik yo'q, bu bozorda mavjud bo'lgan masofadan boshqariladigan umumiy avtomobil bilan bir xil, faqat biz robotni boshqarish uchun Android ilovasidan foydalanamiz. Ilovada har xil belgi bo'lgan turli tugmalar mavjud. u bilan bog'liq. Har qanday tugmachaga teginilganda, imo -ishorani boshqarish rejimida bo'lgani kabi, Bluetooth orqali ham robotga belgi yuboriladi. Tegishli tugmalar bosilganda ham xuddi shu belgilar yuboriladi va robot kiruvchi belgilarga ergashadi. Men robotni o'ngga va chapga qaratish uchun ilovadagi 360 va -360 darajali tugmalardan foydalanganman. Agar siz robotni boshqa ishlarga majbur qilmoqchi bo'lsangiz, uni kodda o'zgartirishingiz mumkin.

7 -qadam: to'siqlardan qochish nazariyasi

To'siqlardan qochish nazariyasi
To'siqlardan qochish nazariyasi
To'siqlardan qochish nazariyasi
To'siqlardan qochish nazariyasi

Bu rejimda robot to'siqlardan qochish roboti sifatida ishlaydi va o'zini har qanday ob'ekt bilan to'qnashishiga yo'l qo'ymaydi. Bu HC SR04 sensori yordamida amalga oshiriladi. O'ylaymanki, siz SONAR (ovozli navigatsiya va sozlash) haqida bilasiz. HC SR04 sensori doimiy ravishda ultratovushli tovush to'lqinlarini chiqaradi. Bu to'lqinlar qattiq sirtga urilgandan keyin qaytadi va sensorga qaytadi. Sensorga qaytish uchun to'lqinlar sarflagan vaqt qayd qilinadi. Ovoz taxminan 340 m/s tezlikda yurgani uchun, biz bilamizki, SPEED ร— TIME = DISTANCE, biz masofani aniqlay olamiz, masalan, agar ovoz 2 soniya davom etsa. orqaga qaytish uchun masofani yuqoridagi formula orqali aniqlay olamiz, ya'ni 340 ร— 2 = 680 m. Shunday qilib, robot sensori orqali oldidagi masofani o'lchashi mumkin, harakatlanayotganda robot doimiy ravishda sensori orqali oldinga masofani o'lchaydi. Agar u oldida turgan bo'sh joy 30 sm dan kamligini sezsa, u harakatini to'xtatadi. Keyin u chap va o'ngga qaraydi va har bir tomonning masofasini taqqoslaydi. Agar chap tomon katta masofaga ega bo'lsa, robot chapga buriladi. Agar o'ng tomon katta bo'lsa, robot o'ngga buriladi. Agar ikkala tomon ham teng masofaga ega bo'lsa, robot orqaga buriladi. Bu oddiy mexanizm robotga to'siqlardan qochishga yordam beradi.

8 -qadam: shassini yig'ish

Shassini yig'ish
Shassini yig'ish
Shassini yig'ish
Shassini yig'ish
Shassini yig'ish
Shassini yig'ish
Shassini yig'ish
Shassini yig'ish

Shassini mustaqil ravishda yasashda siz o'lchovlar va hizalamalarga juda ehtiyot bo'lishingiz kerak. Men shunday qarorga keldim, chunki tarmoqdan meni qoniqtiradigan narsani topa olmadim, shassi sifatida elektr ta'minoti uchun ishlatiladigan umumiy kalit qutisi ishlatiladi. O'ylaymanki, siz elektr jihozlari do'konidan osongina sotib olishingiz mumkin. Birinchidan, pastki qismidagi to'rtta dvigatelni elim yoki qisqich bilan mahkamlang, so'ngra g'ildiraklarni mahkamlang. Keyin siz robotning boshini yasashingiz kerak (servo va HC SR04 sensori), bosh uchun perfboardning kichik bir qismini kesib oling va uni vint bilan servoga mahkamlang. Keyin ultratovushli sensorni pervaz paneliga elim bilan mahkamlang. Qutining yuqori qismidagi kichkina kvadrat teshikni kesib oling va undagi servoni mahkamlang. Keyin robotning orqa qismidagi batareya ushlagichini vint orqali ulang. Zanjirlarni va boshqa komponentlarni qutiga soling va shassisingiz tayyor. Ovoz chiqib, sifatli bo'lishi uchun karnay oldida bir nechta teshiklar qilishni unutmang.

9 -qadam: Ovoz modulini tayyorlash

Ovozli modulni tayyorlash
Ovozli modulni tayyorlash
Ovozli modulni tayyorlash
Ovozli modulni tayyorlash
Ovozli modulni tayyorlash
Ovozli modulni tayyorlash

Robotning gapirish rejimi WTV 020 SD moduli bilan bajariladi. Modul robot uchun ovozli fayllarni ijro etish uchun ishlatiladi. Har qanday savol berilganda, arduino modulni SD -kartadagi tegishli ovozli faylni ijro etishga majbur qiladi. Modulda arduino, qayta o'rnatish, soat, ma'lumotlar va band pinlar bilan bog'lanish uchun to'rtta ketma -ket ma'lumotlar liniyasi mavjud. Shuni esda tutingki, fayllar nomlari o'nli kasrlarda bo'lishi kerak (0001, 0002โ€ฆ). Va fayllar AD4 yoki WAV formatida bo'lishi kerak. Bundan tashqari, modul faqat 1 gigabaytli micro SD kartada ishlaydi. Ba'zi modullar hatto 2 gigabaytlik kartalarda ham ishlaydi va kartada maksimal 504 ta ovozli fayl bo'lishi mumkin. Shunday qilib, siz ko'plab savollarga javob beradigan ovozli fayllar sonini qo'shishingiz mumkin, siz hatto o'z ovozli AD4 fayllarini ham yaratishingiz mumkin (agar siz ushbu ovozli fayllar bilan birga sozlashingiz mumkin bo'lsa, bu qismni o'tkazib yuborishingiz mumkin)., sizda ikkita dastur, ovozni tahrirlash dasturi va 4D SOMO TOOL deb nomlangan dastur bo'lishi kerak, bu fayllarni AD4 formatiga o'tkazadi. Ikkinchidan, siz robot ovozlarini tayyorlashingiz kerak. Siz matnni nutqqa aylantira olasiz, hatto o'z ovozingizni yozib, Robot ovozini chiqarishingiz mumkin. Bularning ikkalasini ham Ovozni tahrirlash dasturida bajarish mumkin. Shubhasiz, robotlar odam ovozi bilan gaplashsalar, yaxshi ko'rinmaydi. Shuning uchun matnni nutqqa aylantirish yaxshiroq bo'lishi kerak. Microsoft Anna va Microsoft Sam kabi turli xil dvigatellar mavjud bo'lib, ular sizga yordam beradi. Ovozli fayllarni tayyorlagandan so'ng, uni 32000 Gts va WAV formatida saqlash kerak. Buning sababi, modul 32000 Gts gacha bo'lgan ovozli fayllarni o'ynata oladi. Keyin fayllarni AD4 formatiga o'tkazish uchun 4D SOMO TOOL -dan foydalaning. Buning uchun SOMO TOOL -ni oching, fayllarni tanlang va AD4 kodini bosing va ovozli fayllar tayyor. Ma'lumot uchun yuqoridagi rasmni tekshirib ko'rishingiz mumkin. Agar siz robotli ovozlar haqida batafsil ma'lumotga ega bo'lishni istasangiz, bu erga kirishingiz mumkin:

[Robotik ovozlarni chiqarish] Mana asl ovozli fayllar va dasturiy ta'minot:

10 -qadam: ulanishlarni o'rnatish

Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish

Tegishli modullarning barcha Vcc pinlarini qisqartiring va uni arduino -dagi 5v piniga ulang. Gnd pinlari uchun ham xuddi shunday qiling. Bu erda turli xil modullarning ulanishlari. HC 05 moduli: RX pin arduino qazish pimi 0. TX pin arduino qazish pimi 1. HC SR04 sensori: echo pin arduino qazish pimi 6. Arduino qazish pimi 7WTV020-SD modul: pin1 (pinni qayta tiklash) arduino qazish uchun pin2.pin4 karnayga +pin5 karnayga -pin7 (soat) arduino qazish pin3.pin8 ga gnd.pin10 (ma'lumotlar).pin16 dan 3.3v gacha Keyin, servo signal (sariq) simini ulang va 12 -pinli L293d dvigatelini tekshiring: A1 pinini arduino qazish pimiga 8. pin A2 ni arduino qazish pimiga 9. pin B1 ni arduino qazish piniga 10. pin B2 ga ulang. to arduino dig pin 11. Bu robotda biz ikkita L293d modulidan foydalanayotganimizni unutmang. Buning sababi shundaki, bitta modul ikkita dvigatelni quvvatlantirish imkoniyatiga ega. To'rt dvigatelni boshqarish uchun biz ikkita dvigatelni ishlatamiz. Dvigatelni boshqarish moduliga takroriy ulanishni unutmang. Masalan, Arduino pin 8 ni ikkala haydovchi modulining A1 piniga ulang. Bir modulning chiqishini ikkita dvigatelga, ikkinchisini boshqa ikkita dvigatelga ulashni unutmang. Qo'shimcha ma'lumot olish uchun diagramani tekshiring.

11 -qadam: Arduino kodi

Arduino kodi
Arduino kodi
Arduino kodi
Arduino kodi

Kodni yaratish juda hayajonli vaqt edi. Bu murakkab kod emas, faqat Android va ovozli modul bilan bog'lanish uchun ba'zi kutubxonalardan foydalanadi. Ishning asosiy qismi Arduino -da emas, Android -da amalga oshiriladi. Kod Bluetooth aloqasi va Bluetooth -dan kelgan ma'lumotlarga asoslangan. Kod shunday tuzilganki, biz robotga har xil rejimlarni bajarish uchun ovozli buyruqlar berishimiz kerak va Arduino Bluetooth -ning kiruvchi signallarini doimiy ravishda tekshirib turadi. Har qanday rejimni to'xtatish uchun biz faqat "to'xtatish" deyishimiz kerak. Koddagi yagona muammo shundaki, biz robotni to'siqlardan qochish rejimida qo'lda o'chirishimiz kerak. Biz bu rejimda "to'xtatish" buyrug'ini ishlata olmaymiz. Chunki bu xususiyatni yoqish ob'ektlar masofasini skanerlash tezligiga ta'sir qiladi. Arduino bir vaqtning o'zida ob'ektning masofasini ham, kiruvchi Bluetooth signallarini ham o'qishi kerak bo'ladi. Bu rejimga xalaqit beradi va robot o'zini to'siqlardan to'liq himoya qila olmaydi. Robot oldinga masofa 30 sm dan kam bo'lsa ham, darhol to'xtab qolishi mumkin. Shunday qilib, bu funksiyani ushbu rejimga kiritmaslik yaxshi bo'lardi, faqat kutubxonalar va kodni yuklab oling va Arduino -ga yuklang. Yuklamasdan oldin Arduino -dan TX va RX (0, 1) pinlarini olishni unutmang. Bu pinlar ketma -ket aloqa uchun ishlatiladi va kodni yuklash paytida ishlatiladi. Va bu robotda bu pinlar Bluetooth modulini ulash uchun ishlatiladi. Shunday qilib, ularni echib olishni unutmang, bu sizning Bluetooth modulingizga to'sqinlik qilishi mumkin. Bu erda kod va kutubxonalar:

12 -qadam: Muammolarni saralash va takomillashtirish

Muammolarni saralash va takomillashtirish
Muammolarni saralash va takomillashtirish

Siz bu qadamni o'tkazib yuborishingiz mumkin, chunki u faqat robotni takomillashtirish bilan shug'ullanadi. Xotira kartasining sig'imi bilan bog'liq WTV-020-SD-16p modulida ko'p muammolar paydo bo'ladi. Buning sababi shundaki, ba'zi modullar 2 Gb kartalarda ishlaydi, ba'zilari esa yo'q. Shuning uchun 1 gigabaytli micro SD -kartani ishlatgan ma'qul, har xil komponentlarni ishlatishda katta muammo bo'lmaydi. Wtv 020 sd modulining turli xil versiyalarini eslatib o'tish mumkin. Modullar orasida faqat qadoqlash farqi bor, boshqa ichki narsalar esa o'zgarmaydi, yana bir muhim jihat shundaki, robot uchun PCBdan foydalanish joriy iste'molni sezilarli darajada kamaytirishga yordam beradi. Agar siz men kabi turli xil komponentlarni ulayotgan bo'lsangiz, bu sizga biroz qimmatga tushadi, chunki uning katta qismi yuqori qarshilikka ega simlarda yo'qoladi. Buning sababi, sxemaning etarlicha katta bo'lishi. Bu aql bovar qilmaydigan darajada PCB dizaynini o'z ichiga olmaydi (chunki men buni qilmaganman), lekin u robotning quvvat samaradorligini oshirishi mumkin. Lekin BLUE ROVIER 316 hali bajarilmagan! Men qatorlarni ta'qib qilish, labirintlarni hal qilish va boshqa ko'p narsalarni o'z ichiga olaman. Ammo bu Arduino UNO -da pinlar yo'qligi sababli orzu bo'lib qoldi (BLUE ROVIER haqiqatan ham Arduino -ning ko'plab pinlarini yeydi). Shunday qilib, men ushbu robotning barcha xususiyatlarini yaxshilashni o'ylayman va ularni birlashtirib, yanada murakkab va foydali Arduino robotini yarataman. Shunday qilib, bir necha oydan so'ng ROVIER -ning o'zgartirilgan ko'rinishini ko'rishga tayyor bo'ling !!! Men robotning boshqa o'zgartirilgan versiyalarini menikidan ko'ra ko'proq ijodga ega bo'lgan boshqa odamlar tomonidan ko'rishni xohlayman !!!!

13 -qadam: Robot bilan o'ynash

Robot bilan o'ynash
Robot bilan o'ynash

Robotni yoqing va u sizni qanday kutib olganini, siz bilan o'ynayotganini ko'ring. Har qanday savol bering (ahmoq emas!) Va uning javobini ko'ring. Siz chiziqlarga rioya qilishni yoki oldinga borishni ayta olasiz. Robotni to'xtatmoqchi bo'lganingizda "to'xtating" deb ayting.

Robototexnika musobaqasi 2017
Robototexnika musobaqasi 2017
Robototexnika musobaqasi 2017
Robototexnika musobaqasi 2017

2017 yilgi robototexnika musobaqasida ikkinchi o'rinni egalladi

Tavsiya: