Mündəricat:
- Addım 1: Nəqliyyat vasitəsinin yığılması
- Addım 2: Motorların quraşdırılması
- Addım 3: Vivado Blok Dizaynının Yaradılması
- Addım 4: LiDAR ilə ünsiyyət qurun
- Addım 5: Şəbəkəni maneələrlə doldurun
- Addım 6: Motorlarla ünsiyyət
- Addım 7: Yol Planlaması
Video: Muxtar Avtomobil: 7 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Bu layihə, yolda əngəllərin qarşısını almaqla, hədəf mövqeyinə çatmağa çalışan, öz -özünə gedən bir robotdur. Robot, ətrafındakı obyektləri aşkar etmək üçün istifadə ediləcək LiDAR sensoru ilə təchiz ediləcək. Cisimlər aşkar edildikdə və robot hərəkət edərkən, real vaxt xəritəsi yenilənəcək. Xəritə müəyyən edilmiş maneələrin yerlərini saxlamaq üçün istifadə ediləcək. Bu yolla, robot, hədəf mövqeyinə uğursuz bir yolu yenidən sınamayacaq. Bunun əvəzinə ya heç bir maneəsi olmayan və ya hələ maneələr üçün yoxlanılmamış yolları sınayacaq.
Robot iki DC mühərrikli təkər və iki təkərlə hərəkət edəcək. Mühərriklər dairəvi bir platformanın altına bağlanacaq. Mühərriklər iki motor sürücüsü tərəfindən idarə olunacaq. Motor sürücüləri Zynq Prosessorundan PWM əmrləri alacaqlar. Hər bir mühərrikdəki kodlayıcıların hamısı nəqliyyat vasitələrinin mövqeyini və istiqamətini izləmək üçün istifadə olunur. Bütün sistem LiPo batareyası ilə təchiz olunacaq.
Addım 1: Nəqliyyat vasitəsinin yığılması
Robot, yan təkərlərə bərkidilmiş iki mühərriklə işləyir və daha sonra biri öndə, biri arxada olmaqla iki təkər təkərlə dəstəklənir. Platforma və motor dayaqları alüminium metaldan hazırlanmışdır. Təkərləri mühərrikə bağlamaq üçün bir motor mərkəzi alındı. Bununla birlikdə, göbələyin delik nümunəsi təkərin delik modelindən fərqli olduğu üçün xüsusi bir ara bağlayıcı hazırlamaq lazım idi.
Seçilən motor, quraşdırılmış kodlayıcıları olan 12V DC Escap DC mühərriki idi. Bu motoru ebay -dan çox münasib qiymətə almaq olar (bax: Materiallar Billinə). Motoru tapmaq üçün ebayda "12V Escap 16 Çekirdeksiz Redüktörlü DC Motoru" axtarın. Adətən seçmək üçün kifayət qədər satıcı var. Aşağıdakı diaqramlarda mühərriklərin texniki xüsusiyyətləri və pinoutları göstərilmişdir.
Robotun yığılması şassinin CAD rejimi dizaynı ilə başladı. Aşağıdakı model, şassi üçün hazırlanmış 2D formalı profilin yuxarı görünüşünü göstərir.
Şassinin asanlıqla istehsal oluna bilməsi üçün 2Dprofile olaraq dizayn edilməsi təklif olunur. 12 düymlük X12 düymlük bir alüminium lövhəni su şırnağı istifadə edərək şassi şəklində kəsdik. Şassi platforması bant mişarı ilə də kəsilə bilər.
Addım 2: Motorların quraşdırılması
Növbəti addım motoru bağlamaqdır. Mühərriklərin 90 dərəcə Sac Alüminiumdan hazırlanması təklif olunur. Bu hissədən istifadə edərək, mühərrik iki hissədən istifadə edərək sacın bir üzünə konsolla bağlana bilər
Motorun və digər üzün M2 delikləri platformaya bərkidilə bilər. Vintlərdən istifadə edərək mühərriki mühərrikin mühərrikinə və mühərrikin platformaya bərkidilməsi üçün motor yuvasına deliklər açılmalıdır. Motor montajını yuxarıdakı şəkildə görmək olar.
Daha sonra Pololu Motor Hubu (bax: Materiallar) motor şaftının üzərinə qoyulur və təchiz olunmuş vida və Allen açarı ilə bərkidilir. Pololu motor qovşağının deşik modeli VEX təkərinin deşik modelinə uyğun gəlmir, buna görə xüsusi ara bağlayıcı hazırlanmalıdır. Şassi platformasını düzəltmək üçün istifadə olunan alüminium dəmir -dümür bağlayıcının istehsalı üçün istifadə edilməsi təklif olunur. Bu cütlüyün çuxur nümunəsi və ölçüləri aşağıdakı şəkildə göstərilmişdir. Xüsusi alüminium bağlayıcının xarici diametri və forması (bir dairə olması lazım deyil) bütün deliklər hissəyə uyğun olduğu müddətdə heç bir əhəmiyyət kəsb etmir.
Addım 3: Vivado Blok Dizaynının Yaradılması
- Yeni bir Vivado layihəsi yaradaraq başlayın və hədəf cihaz olaraq Zybo Zynq 7000 Z010 seçin.
- Sonra yeni blok dizaynı yaradın və Zynq IP əlavə edin. Zynq IP -ni iki dəfə vurun və Zynq üçün verilən XPS parametrlərini idxal edin. Sonra MIO konfiqurasiyaları nişanı altında UART0 -u MIO 10..11 ilə aktivləşdirin və həmçinin Timer 0 və Watchdog timer -in aktiv olduğundan əmin olun.
- Blok dizaynına iki AXI GPIOS əlavə edin. GPIO 0 üçün ikili kanalı aktiv edin və hər ikisini bütün çıxışlara təyin edin. GPIO genişliyini kanal 1 -dən 4 bitə və kanal 2 -dən 12 bitə qədər təyin edin, bu kanallar motor istiqamətini təyin etmək və kodlayıcının ölçülərini prosessora göndərmək üçün istifadə ediləcəkdir. GPIO 1 üçün, 4 bitlik kanal genişliyi olan bütün girişlərə yalnız bir kanal təyin edin. Bu kodlayıcılardan məlumat almaq üçün istifadə ediləcək. Bütün GPIO portlarını kənarlaşdırın.
- Sonra iki AXI Taymeri əlavə edin. Hər iki taymerdəki pwm0 portlarını xarici hala gətirin. Bu, motorların fırlanma sürətini idarə edən pwms olacaq.
- Nəhayət blok avtomatlaşdırmasını və əlaqə avtomatlaşdırmasını işə salın. Sahib olduğunuz blok dizaynının təqdim edilənə uyğun olduğunu yoxlayın.
Addım 4: LiDAR ilə ünsiyyət qurun
Bu LiDAR, UART vasitəsilə ünsiyyət qurmaq üçün SCIP 2.0 protokolundan istifadə edir, əlavə edilmiş fayl bütün protokolu təsvir edir.
LiDAR ilə əlaqə qurmaq üçün UART0 istifadə edəcəyik. LiDAR hər biri bu açıdakı bir obyektə olan məsafəni təmsil edən 682 məlumat nöqtəsini qaytarır. LiDAR 0.351 dərəcə bir addım ilə saat yönünün əksinə -30 dərəcədən 210 dərəcəyə qədər tarar.
- LiDAR ilə bütün ünsiyyət ASCI simvolları ilə aparılır, istifadə olunan format üçün SCIP protokoluna baxın. LiDAR -ı açmaq üçün QT əmrini göndərməklə başlayırıq. Daha sonra bir neçə dəfə UARTS 64 bayt FIFO -da ft üçün 18 məlumat nöqtəsi tələb edən GS əmrini bir neçə dəfə göndəririk. LiDAR -dan qaytarılmış məlumatlar daha sonra təhlil edilir və SCANdata qlobal massivində saxlanılır.
- Saxlanan hər bir məlumat nöqtəsi 2 bayt kodlanmış məlumatdır. Bu məlumatların dekoderə ötürülməsi bir millimetr məsafəni geri qaytaracaq.
Main_av.c faylında LiDAR ilə əlaqə qurmaq üçün aşağıdakı funksiyaları tapa bilərsiniz
sendLIDARcmd (əmr)
- Bu, giriş sətrini LiDAR -a UART0 vasitəsilə göndərəcək
recvLIDARdata ()
- LiDAR -a bir əmr göndərildikdən və məlumatları RECBuffer -də saxladıqdan sonra bu məlumatları alacaq
requestDistanceData ()
- Bu funksiya bütün 682 məlumat nöqtələrini əldə etmək üçün bir sıra əmrlər göndərəcək. Hər 18 məlumat nöqtəsi alındıqdan sonra məlumatları təhlil etmək və məlumat nöqtələrini SCANdatada saxlamaq üçün parseLIDARinput () çağırılır.
Addım 5: Şəbəkəni maneələrlə doldurun
Saxlanılan GRID, bir yeri təmsil edən hər bir indeks dəyəri olan 2D bir sıra. Hər bir indeksdə saxlanılan məlumatlar sırasıyla 0 və ya 1 -dir, heç bir maneə və maneə yoxdur. Hər bir indeksin təmsil etdiyi milimetrlərlə kvadrat məsafə, transport.h faylında GRID_SCALE tərifi ilə dəyişdirilə bilər. 2D sıra ölçüsü, GRID_SIZE tərifini dəyişdirərək avtomobilin daha böyük bir ərazini taramasına imkan vermək üçün də dəyişdirilə bilər.
Yeni bir məsafə məlumatları skan edildikdən sonra LiDAR updateGrid () adlanır. Bu, şəbəkədəki hansı indekslərin maneə törətdiyini müəyyən etmək üçün SCANdata dizisində saxlanılan hər bir məlumat nöqtəsini təkrarlayacaq. Avtomobilin indiki istiqamətini istifadə edərək, hər bir məlumat nöqtəsinə uyğun olan bucağı təyin edə bilərik. Bir maneənin harada olduğunu müəyyən etmək üçün müvafiq məsafəni bucağın cos/sin ilə vurun. Bu iki dəyəri avtomobillərin indiki x və y mövqeyinə əlavə etmək, indeksi maneə ızgarasına qaytaracaq. Bu əməliyyatla qaytarılmış məsafəni GRID_SCALE ilə bölmək, hər indeksin kvadrat məsafəsinin nə qədər böyük olduğunu dəyişməyə imkan verəcəkdir.
Yuxarıdakı şəkillər nəqliyyat vasitələrinin mövcud mühitini və nəticədə ortaya çıxan Şəbəkəni göstərir.
Addım 6: Motorlarla ünsiyyət
Mühərrikin idarə etdiyi GPIO -ları işə salmaqla başladığımız mühərriklərlə ünsiyyət qurmaq, motorun fırladığı istiqamətdir. Sonra birbaşa AXI Taymerində PWM -lərin əsas ünvanına yazmaq, dövr və vəzifə dövrü kimi şeyləri təyin etməyə imkan verir. motorun fırlanma sürəti.
Addım 7: Yol Planlaması
Yaxın gələcəkdə həyata keçiriləcək.
Daha əvvəl təsvir olunan şəbəkə və motor funksiyasından istifadə edərək A*kimi alqoritmləri tətbiq etmək çox asandır. Nəqliyyat vasitəsi hərəkət edərkən ətrafdakı ərazini taramağa davam edəcək və gedən yolun hələ də etibarlı olub olmadığını müəyyən edəcək
Tövsiyə:
GorillaBot 3D Çaplı Arduino Muxtar Sprint Dördlü Robot: 9 Addım (Şəkillərlə birlikdə)
GorillaBot 3D Çaplı Arduino Muxtar Sprint Dördlü Robotu: Hər il Tuluzada (Fransa) Toulouse Robot Yarışı var #TRR2021 Yarış iki ayaqlı və dördlü robotlar üçün 10 metrlik avtonom sprintdən ibarətdir. 10 metr məsafəyə qaçış, buna görə də m
Baby MIT Cheetah Robot V2 Muxtar və RC: 22 addım (şəkillərlə)
Baby MIT Cheetah Robot V2 Muxtar və RC: Çox Çox Bağışlayın İndi yalnız tinkercaddakı bacakların dizaynında problem olduğunu gördüm, Mr.kjellgnilsson.kn sayəsində mənə məlumat verin. İndi dizayn faylını dəyişdirin və yükləyin. Zəhmət olmasa yoxlayın və yükləyin. Artıq yükləyənlər və çap edənlər mən çox
Raspberry Pi və OpenCV istifadə edərək muxtar zolaqlı maşın: 7 addım (şəkillərlə)
Raspberry Pi və OpenCV istifadə edərək muxtar zolaq saxlayan avtomobil: Bu təlimatlarda avtonom zolaq saxlayan robot tətbiq ediləcək və aşağıdakı addımlardan keçəcək: Parçaların toplanması Proqramın ön şərtlərinin quraşdırılması Avadanlıq montajı İlk Test Zolaq xətlərinin aşkarlanması və təlimatın göstərilməsi
Muxtar RC Avtomobil: 7 addım
Muxtar RC Avtomobil: Bu gün özüyeriyən, avtonom avtomobillərin artması ilə öz maşınımı yaratmaq problemini öz üzərimə götürməyə qərar verdim. Bu layihə, Mühəndislik Dizaynı və İnkişafı və Robototexnika dərslərimdə də əsas layihəm olaraq xidmət etdi və
Bir IRobot istifadə edərək muxtar bir basketbol oynayan robot necə yaradılır: 7 addım (şəkillərlə)
Bir IRobot istifadə edərək muxtar bir basketbol oynayan robot necə yaradılır: Bu, iRobot Create probleminə girişimdir. Mənim üçün bütün bu prosesin ən çətin hissəsi robotun nə edəcəyinə qərar vermək idi. Yaratmanın sərin xüsusiyyətlərini nümayiş etdirmək istəyirdim, eyni zamanda bir robo qabiliyyəti də əlavə etdim. Bütün mənim