Mundarija:
- 1 -qadam: kerakli qismlar va materiallarni sotib oling
- 2-qadam: Kamera va Geiger-Myuller hisoblagichini sozlash
- 3 -qadam: Roomba -ga ulaning va yorug'lik sensori kodini yarating
- 4 -qadam: Bamper kodini yarating
- 5 -qadam: Hisoblagich ekranini o'qish uchun kod yarating, uni izohlang va manbadan chekining
- 6 -qadam: Cliff sensori kodini yarating
- 7 -qadam: Xulosa
Video: RADbot: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
EF 230 uchun Jekson Breakell, Tayler Makkubbin va Jakob Talerning loyihasi.
Marsda astronavtlar haroratdan tortib to chang bo'ronlariga qadar har xil xavflarga duch keladilar. Ammo tez -tez e'tiborga olinmaydigan omillardan biri bu sayyora yuzasida joylashgan kuchli radioizotoplarning xavfidir. RADbot Mars sayyorasida kosmonavtlarni kashf etishda yordam beradi, ular sayohat paytida yuqori faollikka ega bo'lgan tosh namunalarini aniqlaydi, shuningdek, robotning shikastlanishiga yo'l qo'ymaydigan, uning jarlik sezgichlari, yorug'lik sezgichlari, bamper sensorlari va kamerasidan foydalanadigan xavfsizlik xususiyatlariga ega. kechirilmaydigan Mars maydonida. Astronavtlarni yuzasida yuzaga kelishi mumkin bo'lgan radioaktiv xavflar haqida ogohlantirishdan tashqari, robotning radioaktiv namunalarini joylashtirish xususiyati Uran va boshqa aktinidlarning katta konlarini o'z ichiga oladigan joylarni aniqlash vositasi sifatida qo'llanilishi mumkin. Astronavtlar bu elementlarni qazib olishlari, ularni etarli darajada boyitishlari va yadroviy reaktorlar va termoelektr generatorlarida foydalanishlari mumkin edi, bu esa sayyoradagi doimiy, o'zini o'zi ta'minlaydigan koloniya bilan ta'minlanishi mumkin edi.
Oddiy Mars sayohatchisidan farqli o'laroq, bizning dizaynimizda mavjud bo'lmagan komponentlar va o'rtacha narx yorlig'i mavjud. Agar sizda mablag 'va xohish bo'lsa, ushbu qo'llanmaga amal qilib, o'zingiz ham qurishingiz mumkin. Iltimos, o'zingizning RADbot -ni qanday qilishni o'rganish uchun o'qing.
1 -qadam: kerakli qismlar va materiallarni sotib oling
Ishni boshlash uchun sizga nima kerak (Rasmlar joylashtirilgan tartibda joylashtirilgan)
1. One Roomba (har qanday yangi model)
2. Bitta Geyger-Myuller hisoblagichi
3. Bitta Raspberry Pi
4. USB rozetkasi bo'lgan bitta taxtali kamera
5. Bitta mikro USB - USB kabeli
6. Bitta USB -USB kabeli
7. Etarli faollikning bitta radioaktiv namunasi (~ 5 mSv yoki undan yuqori)
8. Matlab o'rnatilgan bitta kompyuter
9. Yopishtiruvchi (osonlik bilan olinadigan yopishqoq lenta)
2-qadam: Kamera va Geiger-Myuller hisoblagichini sozlash
Endi sizda RADbot yaratish uchun zarur bo'lgan barcha materiallar bor, biz kamerani hisoblagichdagi harakatlarni o'qiy oladigan qilib joylashtirishdan boshlaymiz. Geiger-Myuller hisoblagichini Roombaning oxiriga iloji boricha yaqinroq joylashtiring va uning sensori bloklanmaganligiga ishonch hosil qiling. Hisoblagichni siz tanlagan yopishtiruvchi bilan mahkam o'rnating va kamerani oldinga o'rnatishni davom eting. Tashqi kirishlar dasturga ta'sir qilmasligi uchun kamerani hisoblagich displeyiga iloji boricha yaqinroq joylashtiring va o'zingizni qulay his qilgandan so'ng uni mahkamlang. Biz sizga kameraning xavfsizligini bir zumgacha saqlashingizni maslahat beramiz, chunki sizning kodingiz tugagach, siz kameradan tasvirni kompyuteringizga ko'rsatishingiz mumkin, bu sizga kamerani ko'rish maydoniga qarab joylashtirish imkonini beradi. Kamera va hisoblagich mahkam o'rnashganidan so'ng, kamerani Raspberry Pi -ning USB -kirishlaridan biriga USB -dan USB -kabelga ulang va Raspberry Pi -ni mikro USB -USB kabeli bilan Roomba -ga ulang.
3 -qadam: Roomba -ga ulaning va yorug'lik sensori kodini yarating
Birinchidan, EF 230 veb -saytining Roomba asboblar qutisini yuklab oling va uni belgilangan papkalarga joylashtiring. Roomba -ga ulanish uchun Raspberry Pi -ga yopishtirilgan stikerga murojaat qiling va "r = roomba (x)" buyruqlar oynasiga tirnoqsiz kiriting va bu erda x Roomba raqamini bildiradi. Roomba ohangda o'ynashi kerak, va toza tugma atrofida yashil halqa ko'rsatilishi kerak. Kodni "while" iborasi bilan boshlang va sensorlar ro'yxatida ko'rinadigan yorug'lik sensorlariga murojaat qiling. Sensor ro'yxatini buyruq oynasida "r.testSensors" yozib oching.
Yorug'lik qancha aks etayotganini aniqlaydigan ob'ektimizning rangiga asoslanib, while funktsiyasi uchun bajariladigan talablarni> funktsiyasi sifatida belgilang. Bizning holatlarimizda, biz oldingi yorug'lik sensori kodini ishlash vaqtida o'rnatamiz, agar chap yoki o'ng markazidagi yorug'lik sensorlaridagi o'qish> 25 bo'lsa. Bajariladigan bayonot uchun Roomba tezligini "r.setDriveVelocity (x, y)" yozib sekinlashtiradigan qilib belgilang, bu erda x va y mos ravishda chap va o'ng g'ildiraklarning tezligi. "Boshqa" iborasini kiriting, shunda Roomba aniqlanmagan qiymatlarni sekinlashtirmaydi va belgilangan tezlik buyrug'ini boshqa tezlikdan tashqari yana kiriting. "End" so'zini "tugatish" bilan yakunlang. Ushbu kod segmenti Roomba -ni ob'ektga yaqinlashishiga olib keladi va ta'sirni kamaytirish uchun ma'lum bir diapazonga yetganda sekinlashadi.
Bizning kodimizning skrinshoti ilova qilingan, lekin uni sizning vazifangiz parametrlariga mos keladigan tarzda tahrir qilishingiz mumkin.
4 -qadam: Bamper kodini yarating
Roomba sekinlashganda, u ob'ektga ta'sirini kamaytiradi, lekin jismoniy tamponni ishga solmaydi. Kodning ushbu segmenti uchun yana "while" tsiklidan boshlang va uning ifodasini rost qilib belgilang. Bayonot uchun T o'zgaruvchisini bamperning chiqishiga teng qilib qo'ying, yo 0 yoki 1, noto'g'ri va rost. Buning uchun "T = r.getBumpers" dan foydalanishingiz mumkin. T tuzilma sifatida chiqadi. "If" iborasini kiriting va T.front kichik tuzilmasi uchun uning ifodasini 1 ga teng qilib qo'ying va "r.setDriveVelocity (x, y)" yoki "r.stop" yordamida disk tezligini 0 ga sozlang. ". "Tanaffus" kiriting, shunda Roomba keyingi koddagi shart bajarilgandan so'ng harakatlana oladi. "Boshqa" qo'shing va uning tezligini Roomba -ning normal harakatlanish tezligiga o'rnatish uchun o'z bayonotini o'rnating.
Bizning kodimizning skrinshoti ilova qilingan, lekin uni sizning vazifangiz parametrlariga mos keladigan tarzda tahrir qilishingiz mumkin.
5 -qadam: Hisoblagich ekranini o'qish uchun kod yarating, uni izohlang va manbadan chekining
Loyihamizning markazida Geiger-Myuller hisoblagichi yotadi va ekrandagi ma'lumotlar kamera yordamida nimani anglatishini aniqlash uchun quyidagi kod segmentidan foydalaniladi. Hisoblagichimiz ekranining rangini manba faolligiga qarab o'zgartirishini hisobga olib, biz kamerani ekran rangini sharhlaydigan qilib o'rnatamiz. Kodni "r.getImage" buyrug'iga teng o'zgaruvchini o'rnatish orqali boshlang. O'zgaruvchi qizil, yashil va ko'k ranglarda olingan rasmning rang qiymatlarining 3d massivini o'z ichiga oladi. "O'rtacha (o'rtacha (img1 (:,,, x))))" buyrug'i yordamida mos keladigan rang matritsalarining o'rtacha qiymatiga teng o'zgaruvchilarni belgilang, bu erda x - 1 dan 3 gacha bo'lgan butun son. 1, 2 va 3 qizil, yashil va mos ravishda ko'k. Havola qilingan barcha buyruqlar singari, tirnoq belgilarini ham qo'shmang.
Dastur "pauza (20)" yordamida 20 soniya pauza qilsin, shunda hisoblagich namunani aniq o'qishi mumkin va keyin "if" iborasini boshlashi mumkin. Bizda "r.beep" tugmachasini ishlatgan holda Roomba ovozli signalini bir necha marta eshitganmiz, unda "Radioizotop topildi! Diqqat!" Buni "waitfor (helpdlg ({'texthere'})") "buyrug'i bilan bajarish mumkin. OK tugmasini bosgandan so'ng, Roomba" if "iborasidagi kodning qolgan qismini bajarishda davom etadi. "r.moveDistance" va "r.turnAngle" buyruqlarining kombinatsiyasi. if ifodasini "end" bilan tugatganingizga ishonch hosil qiling.
Bizning kodimizning skrinshoti ilova qilingan, lekin uni sizning vazifangiz parametrlariga mos keladigan tarzda tahrir qilishingiz mumkin.
6 -qadam: Cliff sensori kodini yarating
Roomba o'rnatilgan jarlik sensorlaridan foydalanish uchun kod yaratish uchun "while" tsiklidan boshlang va uning ifodasini rost qilib belgilang. O'zgaruvchini "r.getCliffSensors" ga teng qilib o'rnating va natijada tuzilish hosil bo'ladi. "If" iborasini boshlang va "X.leftFront" va "X.rightFront" o'zgaruvchilarini strukturadan oldindan belgilangan qiymatdan kattaroq qilib o'rnating, bu erda "X" "r.getCliffSensors" buyrug'ini tanlagan o'zgaruvchidir. ga teng bo'lish. Bizning holatimizda biz 1000 ni ishlatardik, chunki oq qog'oz parchani tasvirlash uchun ishlatilgan, va datchiklar yaqinlashganda qog'oz qiymatlari 1000dan oshib ketgan, bu kod faqat jarlik aniqlanganda bajarilishini ta'minlaydi.. "Break" buyrug'ini qo'shgandan so'ng, "else" so'zini kiriting. Agar jarlik aniqlanmasa, bajariladigan "boshqa" iborasi uchun haydovchi tezligini har bir g'ildirak uchun normal harakatlanish tezligiga o'rnating. Agar Roomba jarlikni aniqlasa, "tanaffus" bajariladi, keyin esa loopdan tashqaridagi kod bajariladi. "If" va "while" tsikli uchun "oxiri" qo'yilgandan so'ng, Roomba -ni masofani bosib o'tish buyrug'i yordamida orqaga harakatlanishga sozlang. Kosmonavtlarni yaqin atrofda jarlik borligi haqida ogohlantirish uchun haydash tezligi buyrug'idagi har bir g'ildirakning x va y tezliklarini a va -a qilib belgilang, bu erda a -haqiqiy raqam. Bu Roombaning aylanishiga olib keladi, bu esa kosmonavtni jarlik haqida ogohlantiradi.
Bizning kodimizning skrinshoti ilova qilingan, lekin uni sizning vazifangiz parametrlariga mos keladigan tarzda tahrir qilishingiz mumkin.
7 -qadam: Xulosa
RADbotning Marsdagi asosiy maqsadi - kosmonavtlarga qizil sayyorani o'rganish va kolonizatsiya qilishda yordam berish. Yuzaki radioaktiv namunalarni aniqlab, biz umid qilamizki, robot yoki rover, bu holda, kosmonavtlarni haqiqatan ham xavfsiz saqlay oladi va ularning bazalari uchun quvvat manbalarini aniqlashga yordam beradi. Ushbu qadamlarning barchasini bajarganingizdan so'ng, ehtimol ba'zi sinov va xatolar bilan, sizning RADbot ishga tushishi kerak. Radioaktiv namunani sinov maydonining bir joyiga qo'ying, kodingizni bajaring va rover nima uchun qilinganini ko'rsin. RADbot -dan rohatlaning!
-EF230 RADbot jamoasi
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Kompyuteringizni qadam dvigateli bilan boshqaring!: 9 qadam (rasmlar bilan)
Kompyuteringizni qadam dvigateli bilan boshqaring!: Oldingi ko'rsatmalarimdan birida men sizga step motorini aylanuvchi kodlovchi sifatida qanday ishlatishni ko'rsatdim. Bu yo'riqnomada keling, undan kompyuterni boshqarish uchun qanday foydalanish kerakligini bilib olaylik. Shunday qilib, ko'p vaqt sarflamasdan, boshlaylik