Mundarija:
- 1 -qadam: Avtomobilni yig'ish
- 2 -qadam: motorlarni o'rnatish
- 3 -qadam: Vivado blok dizaynini yaratish
- 4 -qadam: LiDAR bilan aloqa
- 5 -qadam: Tarmoqni to'siqlar bilan to'ldirish
- 6 -qadam: motorlar bilan aloqa
- 7 -qadam: Yo'lni rejalashtirish
Video: Avtonom mashina: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Bu loyiha avtonom boshqariladigan robot bo'lib, u yo'lda to'siqlardan qochib, o'z maqsadiga erishishga harakat qiladi. Robot LiDAR sensori bilan jihozlanadi, u atrofdagi narsalarni aniqlash uchun ishlatiladi. Ob'ektlar aniqlanganda va robot harakatlanayotganda real vaqt xaritasi yangilanadi. Xarita aniqlangan to'siqlarning joylarini saqlash uchun ishlatiladi. Shunday qilib, robot maqsad pozitsiyasiga muvaffaqiyatsiz yo'lni qaytadan urmaydi. Buning o'rniga u hech qanday to'siqsiz yo'llarni yoki hali to'siqlar tekshirilmagan yo'llarni sinab ko'radi.
Robot doimiy dvigatel bilan boshqariladigan ikkita g'ildirak va ikkita g'ildirak g'ildiragi bilan harakatlanadi. Dvigatellar dumaloq platformaning pastki qismiga o'rnatiladi. Dvigatellarni ikkita haydovchi boshqaradi. Dvigatel haydovchilari PWM buyruqlarini Zynq protsessoridan oladi. Har bir dvigateldagi enkoderlarning barchasi transport vositalarining joylashuvi va yo'nalishini kuzatish uchun ishlatiladi. Butun tizim LiPo batareyasi bilan ta'minlanadi.
1 -qadam: Avtomobilni yig'ish
Robot yon g'ildiraklarga biriktirilgan ikkita dvigatel bilan ishlaydi, so'ngra old va orqa tomondan ikkita g'ildirak g'ildiragi bilan quvvatlanadi. Platforma va dvigatellar alyuminiydan yasalgan. G'ildiraklarni dvigatelga ulash uchun dvigatel uyasi sotib olindi. Biroq, maxsus oraliq biriktirgich qilish kerak edi, chunki uyaning teshik shakli g'ildirakning teshik naqshidan farq qilardi.
Tanlangan dvigatel o'rnatilgan 12 V DC Port Escap enkoderli dvigatel edi. Bu dvigatelni ebayda juda maqbul narxga sotib olish mumkin (qarang: Materiallar ro'yxati). Dvigatelni topish uchun ebayda "12V Escap 16 yadrosiz tishli dvigatel kodlovchi bilan qidiring" kalit so'zlarini qidiring. Odatda tanlash uchun adolatli miqdordagi sotuvchilar bor. Dvigatellarning texnik xususiyatlari va ulagichlari quyidagi diagrammada ko'rsatilgan.
Robotni yig'ish shassi dizaynining SAPR rejimidan boshlandi. Quyidagi model shassi uchun mo'ljallangan 2D shakli profilining yuqori ko'rinishini ko'rsatadi.
Shassi oson ishlab chiqarilishi uchun 2Dprofile sifatida ishlab chiqilishi tavsiya etiladi. Biz 12 dyuymli X12 dyuymli alyuminiy varag'ini shassi shakliga suv jeti yordamida kesib tashladik. Shassi platformasi, shuningdek, arra bilan kesilishi mumkin.
2 -qadam: motorlarni o'rnatish
Keyingi qadam - motorni o'rnatish. Dvigatelni 90 gradusli alyuminiy plastinkadan yasash tavsiya etiladi. Ushbu qismdan foydalanib, dvigatelni ikkita metall plitaning bir yuziga konsol bilan mahkamlash mumkin
Dvigatel va boshqa yuzning M2 teshiklari platformaga mahkamlanadi. Dvigatel moslamasiga teshiklarni burish kerak, shunda vintlar yordamida dvigatelni dvigatelga va dvigatelni platformaga mahkamlash mumkin. Dvigatel moslamasini yuqoridagi rasmda ko'rish mumkin.
Keyinchalik, Pololu dvigatel uyasi (materiallar ro'yxatiga qarang) dvigatel miliga joylashtiriladi va vint va Allen kaliti bilan mahkamlanadi. Pololu dvigatel uyasining teshik shakli VEX g'ildiragining teshik modeliga mos kelmaydi, shuning uchun maxsus oraliq biriktirgich tayyorlanishi kerak. Shassi platformasini ishlab chiqarish uchun ishlatiladigan alyuminiy plastmassadan yasalgan plastmassa biriktirgichni ishlab chiqarish uchun ishlatiladi. Bu juftlikning teshik shakli va o'lchamlari quyidagi rasmda ko'rsatilgan. Maxsus alyuminiy biriktirgichning tashqi diametri va shakli (aylana bo'lishi shart emas) barcha teshiklar qismga to'g'ri kelganda muhim emas.
3 -qadam: Vivado blok dizaynini yaratish
- Yangi Vivado loyihasini yaratish bilan boshlang va maqsadli qurilma sifatida Zybo Zynq 7000 Z010 ni tanlang.
- Keyin yangi blok dizaynini yaratish -ni bosing va Zynq IP -ni qo'shing. Zynq IP -ni ikki marta bosing va Zynq uchun taqdim etilgan XPS sozlamalarini import qiling. Keyin MIO konfiguratsiyasi yorlig'i ostidagi UART0 ni MIO 10..11 bilan yoqing, shuningdek Timer 0 va Watchdog taymerining yoqilganligiga ishonch hosil qiling.
- Blok dizayniga ikkita AXI GPIOS qo'shing. GPIO 0 uchun ikkita kanalni yoqing va ikkalasini ham barcha chiqishlarga o'rnating. GPIO kengligini 1 -kanaldan 4 -bitgacha va 2 -kanaldan 12 -bitga o'rnating, bu kanallar dvigatel yo'nalishini belgilash va kodlovchi o'lchovlarini protsessorga yuborish uchun ishlatiladi. GPIO 1 uchun 4 bitli kanal kengligi bo'lgan barcha kirishlar uchun bitta kanalni o'rnating. Bu kodlovchilardan ma'lumotlarni olish uchun ishlatiladi. Barcha GPIO portlarini tashqi qilib qo'ying.
- Keyin ikkita AXI taymerini qo'shing. Ikkala taymerda ham pwm0 portlarini tashqi qilib qo'ying. Bu dvigatellarning aylanish tezligini boshqaradigan pwms bo'ladi.
- Nihoyat, blokni avtomatlashtirish va ulanishni avtomatlashtirishni ishga tushiring. Sizda mavjud bo'lgan blok dizayni sizga mos kelishini tekshiring.
4 -qadam: LiDAR bilan aloqa
Bu LiDAR UART orqali muloqot qilish uchun SCIP 2.0 protokolidan foydalanadi, unga biriktirilgan fayl butun protokolni tavsiflaydi.
LiDAR bilan bog'lanish uchun biz UART0 dan foydalanamiz. LiDAR har bir ob'ektga bu burchakdagi masofani ifodalovchi 682 ma'lumot nuqtasini qaytaradi. LiDAR 0.351 darajali qadam bilan soat yo'nalishi bo'yicha -30 darajadan 210 gradusgacha skanerlaydi.
- LiDAR bilan barcha aloqa ASCI belgilar bilan amalga oshiriladi, ishlatilgan format uchun SCIP protokoliga qarang. Biz LiDAR -ni yoqish uchun QT buyrug'ini yuborishdan boshlaymiz. Keyin biz GS buyrug'ini UARTS 64 baytli FIFO -da bir vaqtning o'zida bir vaqtning o'zida 18 ta ma'lumotlar punktini so'rab yuboramiz. LiDAR -dan qaytarilgan ma'lumotlar keyinchalik tahlil qilinadi va SCANdata global massivida saqlanadi.
- Saqlangan har bir ma'lumot nuqtasi 2 bayt kodlangan ma'lumotdir. Bu ma'lumotni dekoderga o'tkazilsa, millimetrdagi masofa qaytadi.
Main_av.c faylida siz LiDAR bilan bog'lanish uchun quyidagi funktsiyalarni topasiz
sendLIDARcmd (buyruq)
- Bu UART0 orqali LiDARga kirish qatorini yuboradi
recvLIDARdata ()
- Bu LiDAR -ga buyruq yuborilgandan keyin ma'lumotlarni oladi va ma'lumotlarni RECBuffer -da saqlaydi
requestDistanceData ()
- Bu funktsiya barcha 682 ma'lumotlar nuqtalarini olish uchun bir qator buyruqlar yuboradi. Har bir 18 ta ma'lumot punktlari qabul qilingandan so'ng, ma'lumotlarni tahlil qilish va bosqichma -bosqich SCANdata -da saqlash uchun parseLIDARinput () chaqiriladi.
5 -qadam: Tarmoqni to'siqlar bilan to'ldirish
Saqlanadigan GRID - bu har bir indeks qiymati joylashuvni ifodalovchi 2D qator. Har bir indeksda saqlanadigan ma'lumotlar mos ravishda 0 yoki 1, hech qanday to'siq va to'siq yo'q. Har bir indeks ko'rsatadigan millimetrdagi kvadrat masofani transport.h faylidagi GRID_SCALE ta'rifi bilan o'zgartirish mumkin. GRID_SIZE ta'rifini o'zgartirib, mashinaning katta maydonini skanerlashi uchun 2D massivining o'lchamini ham o'zgartirish mumkin.
Ma'lumotlar skanerdan o'tkazilgandan so'ng, LiDAR updateGrid () chaqiriladi. Bu SCANdata massivida saqlangan har bir ma'lumot nuqtasi orqali tarmoqdagi qaysi indekslarning to'siqlari borligini aniqlashga yordam beradi. Avtotransportning hozirgi yo'nalishini ishlatib, biz har bir ma'lumot nuqtasiga mos keladigan burchakni aniqlashimiz mumkin. To'siq qaerda ekanligini aniqlash uchun mos keladigan masofani burchakning cos/sin ga ko'paytiring. Hozirgi x va y pozitsiyalariga ushbu ikkita qiymat qo'shilsa, to'siq panjarasidagi indeks qaytariladi. GRID_SCALE tomonidan qaytarilgan masofani ajratish bizga har bir indeksning kvadrat masofasi qanchalik katta ekanligini o'zgartirish imkonini beradi.
Yuqoridagi rasmlar avtomobillarning hozirgi muhitini va natijada paydo bo'lgan Gridni ko'rsatadi.
6 -qadam: motorlar bilan aloqa
Dvigatellar bilan muloqot qilish uchun biz GPIO -ni ishga tushirishni boshlaymiz, bu dvigatelning aylanish yo'nalishi edi. Keyin to'g'ridan -to'g'ri AXI taymeridagi PWM -larning asosiy manziliga yozish bizga davr va vazifa tsikli kabi narsalarni belgilashga imkon beradi. dvigatelning aylanish tezligi.
7 -qadam: Yo'lni rejalashtirish
Yaqin kelajakda amalga oshirilishi kerak.
Yuqorida tasvirlangan tarmoq va motor funksiyalaridan foydalanib, A*kabi algoritmlarni amalga oshirish juda oson. Avtomobil harakatlanayotganda, u atrofni ko'zdan kechirishni davom ettiradi va uning yo'lining to'g'riligini aniqlaydi
Tavsiya:
RC bilan ishlaydigan elektr o'yinchoqli mashina: 10 qadam (rasmlar bilan)
RC bilan ishlaydigan elektr o'yinchoqli mashina: Muallif: Peter Tran 10ELT1 Ushbu qo'llanmada HT12E/D IC chiplari yordamida masofadan boshqariladigan (RC) elektr o'yinchoqli avtomobil uchun nazariya, dizayn, ishlab chiqarish va sinov jarayoni batafsil bayon qilingan. O'quv qo'llanmalari avtomobil dizaynining uch bosqichini batafsil bayon qiladi: Bog'langan kabel infraqizil
Raspberry Pi - OpenCV ob'ektlarini kuzatish bilan avtonom Mars Rover: 7 qadam (rasmlar bilan)
Raspberry Pi - Ob'ektlarni kuzatish bilan avtonom Mars Rover: Raspberry Pi 3, ochiq rezyumelarni aniqlash, ultratovushli datchiklar va tishli shahar motorlari. Bu rover o'rgatilgan har qanday ob'ektni kuzatishi va istalgan erda harakatlanishi mumkin
Avtonom masofadan boshqariladigan mashina: 6 qadam
Avtonom masofadan boshqariladigan mashina: Bu ko'rsatma Janubiy Floridadagi universitetda (www.makecourse.com) Makecourse loyihasi talablarini bajarish uchun yaratilgan. to'rttasini nazorat qilish
GPS bilan avtonom tank: 5 qadam (rasmlar bilan)
GPS bilan avtonom tank: DFRobot yaqinda menga sinab ko'rish uchun Devastator tank platformasi to'plamini yubordi. Albatta, men uni avtonom va GPS imkoniyatlariga ega bo'lishga qaror qildim. Bu robot navigatsiya qilish uchun ultratovushli datchikdan foydalanadi, u erda u oldinga siljiydi, uni tekshiradi
KEVIN To'liq avtonom mashina: 17 qadam (rasmlar bilan)
KEVIN To'liq Avtonom Avtomobil: Bu Kevin. Bu to'liq avtonom haydash qobiliyatiga ega radio boshqariladigan mashina. Mening birinchi maqsadim avtonom avtomashinani Arduino boshqaradigan qilish edi. Shunday qilib, men arzon Xitoy shassisini sotib oldim. Lekin bu dahshatli edi, chunki men hech narsani qo'sha olmadim