Mundarija:
- 1 -qadam: ehtiyot qismlar va materiallar
- 2 -qadam: Konfiguratsiya
- 3 -qadam: MATLAB mantig'i
- 4 -qadam: Xulosa
Video: MATLAB bilan Roomba: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Ushbu loyiha MATLAB va iRobot Create2 dasturlashtiriladigan robotidan foydalanadi. MATLAB haqidagi bilimlarimizni sinab ko'rish orqali biz Create2 -ni tasvirlarni talqin qilish va signallarni aniqlash uchun dasturlashimiz mumkin. Robotning funksionalligi asosan MATLAB mobil ilovasi va Raspberry Pi kamera moduliga bog'liq.
1 -qadam: ehtiyot qismlar va materiallar
1. iRobot yaratish, 2 -versiya
- Bu dasturlashtiriladigan robot, u Roombaga o'xshaydi. Bilingki, bu iRobot mahsuloti vakuum emas. Bu foydalanuvchi tomonidan maxsus dasturlash uchun mo'ljallangan.
2. MATLAB 2017a
- Ko'pgina eski versiyalar biz ishlatgan kodga mos keladi. MATLAB sizda mavjud bo'lgan versiyaga mos kelmaydigan buyruqni aniqlab beradi va eng mos buyruqni taklif qiladi.
3. Raspberry Pi 3 Model B, 1.2 -versiya
- Qaysi Raspberry Pi sizning iRobot -ga mos kelishini tekshiring. Qo'shimcha yordam uchun bu havolani ko'ring: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Bu ko'rsatma sizga oldindan dasturlashtirilgan Raspberry Pi bilan ishlayotganingizni ko'rsatadi. Shuni yodda tutingki, quyidagi amallarni bajarish uchun oldindan dasturlashtirilgan Pi bilan ishlash kerak bo'ladi. Oldindan dasturlashtirilgan Pi -dan foydalanish sizga barcha kodlashni faqat MATLAB -da bajarishga imkon beradi.
4. V2 kamera moduli (Raspberry Pi uchun)
- Siz hayron qolishingiz mumkin; o'lchamiga qaramay, Raspberry Pi kamera moduli juda yaxshi sifatga ega. Bu loyiha uchun eng arzon va eng mos variant.
Majburiy emas: 3D bosma stend. Bu kamerani barqarorlashtirish uchun ishlatiladi. Bu robotning ishlashiga ta'sir qilmaydi, lekin agar siz tasvir ma'lumotlarini rang va/yoki ob'ektni aniqlash uchun ishlatmoqchi bo'lsangiz, bu sizning kodlashingizga yordam beradi.
2 -qadam: Konfiguratsiya
1. Raspberry Pi va kamera modulini ulash (Uskuna)
- Raspberry Pi -ni quvvatlantirish uchun siz mikrokontroldagi ayol quvvat portiga erkak USB -ni ulashingiz kerak bo'ladi. Majburiy emas: kuchlanish 5V dan oshmasligi uchun voltaj regulyatoridan foydalanish mumkin. Raspberry Pi -ni quvvatlantirgandan so'ng, siz uni robotga ulashingiz mumkin, erkak USB -ni anakartdan mikrokontroldagi USB port A ga ulashingiz mumkin.
- Pi -ni Roomba -ga ulaganingizdan so'ng, kamera o'rnatishga tayyor. Kamera moduli siz kutganingizdan ancha kichik bo'ladi. E'tibor bering, linzalar sensorga o'rnatiladi va kameradan oq tasma cho'zilgan. Ipni olib tashlamang yoki yirtmang! Bu Raspberry Pi -ga ulash uchun kerak bo'lgan kabel. Birinchidan, lentaning uchini ushlab turing va kumush ulagichlar va ko'k kabelni toping. Bular qarama -qarshi tomonlarda. Keyin, Raspberry Pi -dagi chekilgan va HDMI portlari orasidagi uyani toping. E'tibor bering, uni kichik, oq qulf yopadi. Qulfni sekin ko'taring, lekin uni uyadan olib tashlamang, chunki u qulab tushadi va doimiy shikastlanadi. Qulfni ko'targaningizdan so'ng, lentani oling va HDMI portiga kumush ulagichlarga qarang. Moviy tomon Ethernet portiga qaraydi. Lentani uyasi ichiga sekin suring. Siz uni uyaga majburlashingiz shart emas. Tugatgandan so'ng, qulfni pastga tushiring. Agar sizning kamerangiz to'g'ri himoyalangan bo'lsa, siz lentani (ohista) tortib, kuchlanishni sezishingiz kerak. Ip bo'shashmasligi kerak. Kamerangizni Pi -ga ulaganingizdan so'ng, siz uning qanchalik bo'sh ekanligini sezishingiz mumkin. Shuning uchun biz uni ushlab turish uchun 3D bosma moslamadan foydalanganmiz. Kamerani yuqori sifatli suratga olish uchun qanday materiallardan foydalanishni xohlayotganingizni o'zingiz hal qilasiz.
2. To'g'ri fayllarni o'rnatish va kompyuterga Roomba-ni ulash Barcha jihozlar konfiguratsiya qilinganidan so'ng, siz MATLAB-ni o'rnatishga o'tishingiz mumkin, bu sizga robot bilan muloqot qilish imkonini beruvchi m-fayllar bilan bog'liq. Buning uchun MATLAB -ni oching va barcha tegishli fayllarni birga saqlash uchun yangi papka yarating. Kerakli fayllarni o'rnatish/yangilash uchun ushbu skriptdan foydalaning:
- Endi barcha fayllar siz yaratgan papkada ko'rsatilishi kerak. MATLAB fayllarni qidiradigan kataloglar ro'yxatiga ushbu yo'lni qo'shish uchun joriy papka oynasini o'ng tugmasini bosing va "Yo'lga qo'shish" -ni tanlang. Barcha fayllaringiz to'g'ri yo'lda ekanligiga ishonch hosil qiling.
3. Fayllar o'rnatilgandan so'ng, endi siz robotga ulanishni boshlashingiz mumkin. Robotni ishga tushirishdan so'ng, uni ishga tushirishdan so'ng, qattiq sozlamalarni tiklashdan boshlang (har safar ishlatishdan oldin va keyin robotni qattiq sozlashni unutmang). Ikkinchidan, robot va noutbukni bir xil wifi tarmog'iga ulang. Shundan so'ng, biz MATLAB orqali oldindan dasturlashtirilgan Raspberry Pi bilan gaplashamiz va Roomba nomini va Roomba funksiyasini ishlatamiz. Masalan, men 28 -robotga quyidagi satr yordamida ulanardim: R = roomba (28).
- Ob'ektni R o'zgaruvchisiga qanday tayinlaganimga e'tibor bering, endi men o'zgarmaydigan Roomba funktsiyalariga o'rnatish faylidan R o'zgaruvchini tuzilish kabi ko'rib chiqishim mumkin.
- R.turnAngle (90) Agar hamma narsa yaxshi ketsa, musiqiy ohang o'ynashi kerak, bu aloqani tasdiqlaydi.
3 -qadam: MATLAB mantig'i
Ushbu qadamning pastki qismidagi PDF -hujjat - bu MATLAB -da kodlash jarayonining batafsil mantiqiy oqimi. Robot yaqin atrofdagi ob'ektni aniqlaganda biz bilan aloqa o'rnatishi uchun biz jarlik, yorug'lik va yorug'lik zarbasi sensorlarini ishga tushirdik. Masalan, robot oldinga siljiganida, uning yorug'lik sezgichlari o'z yo'lidagi ob'ektlarni u sayohat qilayotgan vektorga muvofiq tekshiradi. Biz robot uchun masofa chegarasini tanladik, shunda u ob'ektga yaqinlashganda, u bilan to'qnashish o'rniga teskari tomonga buriladi. Bizning robotimiz, shuningdek, biz kodlash jarayonida ko'rsatgan Twitter bilan tuzilgan (bu quyida ko'rsatiladi).
Tajribani yaxshilash uchun biz mobil qurilmalarimizdagi MATLAB dasturidan foydalandik, shunda biz faqat telefonimizni egib robotning harakatini boshqaramiz. Bu ixtiyoriy faoliyat, chunki siz, albatta, MATLAB kod segmentidagi moveDistance buyrug'i yordamida robotni harakatga keltira olasiz. Shuni yodda tutingki, agar sizning maqsadingiz aniq bo'lsa, robotni boshqarish uchun MATLAB buyruqlaridan foydalanish afzalroqdir. Agar siz robotni maqsadli joylashtirmoqchi bo'lsangiz, kamera ma'lum bir joyda suratga tushsa, robotning harakatlarini MATLABda kodlash yaxshiroqdir. O'yin -kulgi paytida robotni boshqarish uchun MATLAB ilovasidan foydalanish aniqlik uchun kerak emas.
Kod Roombaga asosiy sozlamalarni bajarishni, so'ngra uzluksiz tsiklni davom ettirishni buyuradi. Dastlab, noutbuk Roomba () buyrug'i yordamida Roomba bilan bog'lanishni o'rnatadi. Shuningdek, u MATLAB -da webwrite () buyrug'i yordamida twitter aloqasini o'rnatadi. Loop Roomba atrofidagi muhitga qarab beshta asosiy mantiqiy oqimni o'z ichiga oladi. Birinchidan, Roomba to'siqlarni tekshiradi va agar u to'sqinlik qilsa, orqaga qarab to'g'rilaydi. Bu tsiklga o'rnatilgan - bu foydalanuvchilarni Roomba olib ketilayotgani to'g'risida ogohlantiruvchi ikkinchi yo'l. Qattiq Mars urush zonasida muhim yordamchi dastur. Roomba o'z pozitsiyasini xavfsizligini aniqlagandan so'ng, u keyingi harakatini aniqlash uchun mobil qurilmaga qaraydi. Agar mobil qurilma oldinga siljigan bo'lsa, u g'ildirakning tezligini qadam darajasiga qarab aylantirishdan ko'ra, rulon o'lchovining og'irligiga qarab tayanch tezlikni hisoblab chiqadi. Telefon, shuningdek, Roombani teskari harakatlantirishi mumkin. Neytral mobil qurilma holati oxirgi ikkita yo'lni yopadi. Dam olayotgan Roomba chet el bayrog'ini qidiradi va foydalanuvchini shunga mos ravishda ogohlantiradi.
Quyida bizning kodimiz (MATLAB 2017a da to'ldirilgan)
%kirish: Wi -Fi ulangan qurilmadan, kameradan yo'naltirish ma'lumotlari
%ma'lumot, sensor ma'lumotlari
%chiqish: harakat Wi -Fi ulangan qurilma va harakat bilan boshqariladi
% - sensorlar ma'lumotlarini o'qish orqali xavfsizlik tekshiriladi. Agar kamera aniqlasa
% begona bayroq, keyin Roomba dushman bayrog'ini tweetlash orqali javob beradi
% aniqlandi.
%maqsadi: bizning qurilmamiz faqat himoya qiladiganlardan boshqa maqsadsiz yashaydi
% uni yaratdi, u o'z yaratuvchisiga xizmat qiladi va qiladi
% aynan nima deyilgan.
%Foydalanish: asosan dastur o'z -o'zidan ishlaydi.
hammasini tozalash, hammasini yopish, clc
%Ob'ektlar va o'zgaruvchilarni ishga tushirish
r = xona (28);
m = mobiledev;
%javobni ishlatish = veb -yozish (xost nomi, ma'lumotlar)
xost nomi = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop operatsion … buyruq kutilmoqda';
ma'lumotlar = strcat ('api_key =', API, '& status =', tvit);
reponse = webwrite (xost nomi, ma'lumotlar);
%doimiy ishlaydigan tsikl
1 == 1 bo'lsa
Relavent ma'lumotlarini o'z ichiga olgan %tuzilmalar
o = m.yo'nalish; %mobil qurilmaning yo'nalishi
yorug'lik = r.getLightBampers (); %Light Bamper qiymatlari
a = r.getCliffSensors (); %CLiff sensori qiymatlari
bump = r.getBampers (); %Tampon sensorlar
%bamperlarni tekshiring
agar bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%datchiklarni tekshiring
elseif light.left> 60 || light.leftFront> 60 || light.leftCenter> 60 || yorug'lik. o'ng> 60 || nur.rightFront> 60 || yorug'lik. o'ng markaz> 60
r.moveDistance (-. 2,.2);
%Cliff sensorlarini tekshiring
%O'g'rilikka qarshi signal va ogohlantirish
boshqa <a & chap <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'RoboCop o'chirildi!'
ma'lumotlar = strcat ('api_key =', API, '& status =', tvit);
reponse = webwrite (xost nomi, ma'lumotlar);
%Oddiy Cliff oldini olish operatsiyasi
elseif a.chap <300 || a. o'ng <300 || a.leftFront <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
%Roomba tekshiruvlardan o'tdi va endi normal ish bilan ishlaydi.
%Dastlab qurilmaning rulosi o'lchanadi va asosga aylanadi
G'ildirak tezligini hisoblash uchun %tezlik ishlatiladi
%Oldinga harakat
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
agar o (2)> =-70 && o (2) <0 bo'lsa
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
boshqa o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
boshqa r.stop
oxiri
%Orqaga harakat
elseif (3)> 100 && (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%dam olish xonasi floresan sifatida belgilangan chet el bayrog'ini qidiradi
%yashil Qog'oz
boshqa
r.stop
img = r.getImage (); %rasm oladi
ostona = kul rang (img (200: 383,:, 2))+.1; %yashil yashil darajasi
agar chegara>.42
tweet = 'Dushman aniqlandi!'
ma'lumotlar = strcat ('api_key =', API, '& status =', tvit);
reponse = webwrite (xost nomi, ma'lumotlar);
boshqa
r.stop
oxiri
oxiri
oxiri
4 -qadam: Xulosa
Yodingizda bo'lsin, siz yuqorida yozgan skriptdan foydalanishingiz mumkin, lekin siz uni har doim ehtiyojlaringizga mos ravishda o'zgartirishingiz mumkin. Bu sizning telefoningiz tomonidan boshqarilishi shart emas! (Biroq, bu yanada qiziqarli bo'ladi.) Robotingizni boshqarish uchun qaysi usulni tanlashni tanlang. Robotingiz bilan haydang va zavqlaning!
Tavsiya:
Roomba Bot - bulider: 5 qadam (rasmlar bilan)
Roomba Bot bulider: Bot Builder - bu "ushlagichlar" bilan jihozlangan xona. old tomondan biriktirilgan narsalar atrofdagi narsalarni harakatlantira oladi. U bilan kod sichqonchaning bir marta bosilishi bilan boshqariladigan GUI qutisi bilan birinchi harakatni yozib olish uchun o'rnatiladi. Keyin
MATLAB tomonidan boshqariladigan Roomba: 5 qadam
MATLAB tomonidan boshqariladigan Roomba: Ushbu loyihaning maqsadi MATLAB -dan, shuningdek o'zgartirilgan dasturlashtirilgan iRobot robotidan foydalanishdir. Bizning guruhimiz iRobot -ning ko'p funktsiyalari, shu jumladan jarlik sensorlar, bamper sensorlaridan foydalanadigan MATLAB skriptini yaratish uchun kodlash ko'nikmalarimizni birlashtirdi
Brauzer tomonidan boshqariladigan Roomba roboti Raspberry Pi Model 3 A+: 6 qadam (rasmlar bilan)
Brauzer tomonidan boshqariladigan Roomba roboti Raspberry Pi Model 3 A+bilan: Umumiy nuqtai Bu ko'rsatma o'lik Roombaga yangi miya (Raspberry Pi), ko'zlar (veb -kamera) va hamma narsani veb -brauzerdan boshqarish usulini berishga qaratiladi. Ketma -ket interfeys orqali boshqarishga imkon beradigan Roomba xakerlari ko'p. Menda yo'q
Roomba MATLAB loyihasi: 5 qadam
Roomba MATLAB loyihasi: NASA Mars sayyorasi uchun hozirgi rejasi - bu ma'lumot yig'uvchi bo'lish va Mars atrofida aylanib yurish, Yerga qaytarish uchun tuproq namunalarini to'plash, shunda olimlar oldingi hayot shakllari bor yoki yo'qligini ko'rishlari mumkin. sayyora. Qo'shimcha
Roomblock: Roomba, Raspberry Pi va RPLIDAR bilan ROS navigatsiyasini o'rganish platformasi: 9 qadam (rasmlar bilan)
Roomblock: Roomba, Raspberry Pi va RPLIDAR bilan ROS navigatsiyasini o'rganish platformasi: bu nima? &Quot; Roomblock " Robot platformasi Roomba, Raspberry Pi 2, lazer sensori (RPLIDAR) va mobil batareyadan iborat. O'rnatish ramkasi 3D -printerlar yordamida tayyorlanishi mumkin. ROS navigatsiya tizimi xonalar xaritasini tuzishga va i -dan foydalanishga imkon beradi