Mündəricat:
- Addım 1: Lazım olan hissələr
- Addım 2: Fayllar və Kamera Konfiqurasiyası
- Addım 3: İlkin Roomba Testi
- Addım 4: Nümunə MATLAB Kodu
Video: Astronavt köməkçisi Roomba: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu layihə, iRobot Create Version 2 gəmisində olan Raspberry Pi 3 -dən istifadə etməklə hazırlanmışdır. MATLAB, robotu sensorlar və kameradan istifadə edərək xüsusi təlimatlara əməl etməsi üçün proqramlaşdırmaq üçün istifadə olunur. Sensorlar və kameralar, bir astronavtı izləyəcək və bir şey səhv olarsa, ev bazası ilə əlaqə qurma qabiliyyətini təmin edəcək xüsusi vəzifələri yerinə yetirmək üçün istifadə olunur.
Addım 1: Lazım olan hissələr
1. iRobot 2 -ci versiya yaradın
İRobot Create, bu layihənin ən vacib hissəsidir, çünki proqramlaşdırıla bilər və astronavtları izləyən və gələcəkdə onlara kömək edən faktiki bir rover üçün əla bir təqdimat ola bilər
2. Raspberry Pi 3
Raspberry Pi bu layihə üçün istifadə edilə bilən proqramlaşdırıcı idi. Kod Pi üçün hazırlanmışdır və əlavə olunan Pi versiyası 3 (model B) dir. Arduino kimi digər proqramlaşdırıla bilən lövhələr istifadə edilə bilər, lakin arduino və digər lövhələrin əksəriyyəti başqa bir addımda təsvir olunandan fərqli kodlaşdırma tələb edir
3. Raspberry Pi Kamera Modulu
Bu layihə üçün Raspberry Pi ilə lazım olan yeganə kənar əlaqə Kamera Moduludur. Kamera modulu bu layihənin ayrılmaz hissəsidir, çünki Roomba yalnız kamerada gördüklərinə əsaslanaraq vəzifələri yerinə yetirəcəkdir
4. MATLAB 2018a
Bu quraşdırmada iştirak edən kodlaşdırma üçün MATLAB -ın ikinci ən son versiyası 2018a istifadə edilmişdir. Roomba proqramlaşdırması bir müddət mövcud olduğundan MATLAB -ın bir çox digər versiyasının bununla işləyəcəyi ehtimal olunur
Addım 2: Fayllar və Kamera Konfiqurasiyası
1. Raspberry Pi və Camera -nın Roomba ilə əlaqələri
- Pi iRobot -a birbaşa mikro USB ilə qoşula bilər. İstifadəyə hazır olması lazım olan budur. Bununla birlikdə, indiyə qədər təqdimat boyunca şəkillərdə göstərildiyi kimi otaq otağına etibarlı şəkildə yerləşdirilməsi tövsiyə olunur.
- Kameranın Raspberry Pi ilə birbaşa əlaqəsi var və kameranı birbaşa yuxarı qaldırmaq üçün bir şeyin alınması və ya edilməsi məsləhət görülür. Roombanın gördüklərini göstərmək üçün yerində tutmaq mümkün deyilsə, kameranın əsl mənası yoxdur.
2. Fayllar
- Hər şeyi qurduqdan və bağladıqdan sonra, "Spot" və "Dock" düymələrini 10 saniyə birlikdə tutaraq robotun sıfırlandığından və işə hazır olduğundan əmin olun.
- MATLAB -a ilk ehtiyac olduğu yer budur. Roomba faylları əvvəlcə quraşdırılmalıdır və bu fayllar üçün lazım olan hər şey bu linkdə göstərilən koddur:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Addım 3: İlkin Roomba Testi
Roombanın işlədiyinə əmin olmaq üçün bir çox ilkin yoxlamalar aparılmalıdır.
1. Roomba ilə eyni WiFi şəbəkəsinə qoşulduğunuzdan əmin olun. Bu olmadan, heç vaxt MATLAB vasitəsilə əlaqə qurmayacaqsınız.
2. Seçdiyiniz roomba -ya xüsusi olaraq qoşula bilmək üçün otaq nömrənizin hansı nömrəyə verildiyini öyrənin. Məsələn, otaq otağınızın nömrəsi 30 olarsa, ona MATLAB -dakı komanda pəncərəsinə roomba (30) yazaraq qoşulacaqsınız.
3. Roomba MATLAB -dakı strukturlar vasitəsilə idarə oluna bilər. Məsələn, Roomba (30) kodunuzu 'r' dəyişəninə təyin etsəniz, robot r.moveDistance (0.2, 0.1) əmri ilə irəliləyə bilər.
4. Roomba'ya çatdırıla bilən bir çox fərqli əmr var və bunları komanda pəncərəsinə 'doc roomba' yazaraq görmək olar.
5. İşıq, qabar və uçurum oxunuşları üçün sensorlar hamısı 'doc roomba' da görünən əmrlərdən istifadə etməklə oxuna bilər, ancaq 'r.testSensors' istifadə edərək sensor məlumatlarını görmək üçün daimi, səliqəli bir menyuya sahib olmağın bir yolu. '.
6. Bütün bunları sınadıqdan sonra, robotun şəkil toplama proqramından istifadə edərək çəkilmiş şəkilləri oxumaq və görmək mümkündür. Bunun üçün əsas kod img = r.getImage və imshow (img);.
7. Şəklin RGB dəyərləri red_mean = orta (orta (img (:,,, 1))) kodları ilə tapıla bilər;
green_mean = orta (orta (img (:,,:, 2)))); və blue_mean = orta (orta (img (:,,: 3))));.
Addım 4: Nümunə MATLAB Kodu
Bu nöqtədə, sensorlar və şəkil çəkmə proqramından istifadə edərək Mars Rover-in İnsanlara Yardımçı Prototipində öz spininizi yaratmaq üçün hazırsınız. Bizim nümunəmiz, ağ rəngi izləyərək ona doğru hərəkət edərək astronavtı təqib etməkdir. Sensorlar yüksək dəyərlər oxuyursa, robot bip səsi çıxaracaq ki, astronavt ilişib qalsa robotu sıfırlayar və ya gedib uçurumda qalsa onu götürər və sıfırlayar. Ancaq bu səhvləri yalnız ağ gördüyü müddətdə oxuyur. Ağ rəngi görə bilmədən robot səhv rejiminə keçəcək. Gördüklərindən asılı olaraq ev bazasına iki fərqli e -poçt göndərmək üçün proqramlaşdırılmışdır. Astronavtın dərisinin rəngini görürsə, bu açıq -aydın yaxşı deyil, buna görə də kosmonavtın kostyumunun pozulması ilə dərisi varsa ev bazasını xəbərdar edəcək. Digər mesaj, astronavt sadəcə gözdən itərsə hazırlanır. Kameralarda ağ və ya dəri rəngi görünmürsə, robot fırlanaraq başqa, lakin fərqli bir e -poçt göndərəcək. Roombanın astronavtı görə bilmədiyi şəkillər e -poçtdakı mesajla birlikdə göndəriləcək. Layihəmizin kodu aşağıda göstərilmişdir:
i = 1 üçün:.1: 3 img = r.getImage; image (img) red_mean = orta (orta (img (:,,,, 1)))); green_mean = orta (orta (img (:,,:, 2)))); blue_mean = orta (orta (img (:,,: 3))); əgər red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || yüngül.sağFront> 700 || işıq.sağ> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.başqa üçün i = 1: 2 r. Hareket (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stre end end end green_mean <35 && blue_mean <35 %dəri rəngi göstərilirsə (astronavtın dərisinin rənginə görə tənzimlənməlidir) r.beep (); r.bip (); r.bip (); poçt = '[email protected]'; %uyğun kostyum göstərən e -poçt göndərir psswd = 'yes'; host = 'smtp.gmail.com'; liman = '465'; emailto = '[email protected]'; m_subject = 'mövzu'; m_text = 'test'; setpref ('İnternet', 'E_mail', poçt); setpref ('İnternet', 'SMTP_Server', ana); setpref ('İnternet', 'SMTP_Username', poçt); setpref ('İnternet', 'SMTP_Password', psswd); rekvizit = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', poçt); props.setProperty ('mail.smtp.host', host); props.setProperty ('mail.smtp.port', liman); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'doğru'); props.setProperty ('mail.smtp.auth', 'doğru'); props.setProperty ('mail.smtp.socketFactory.port', liman); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'yalan'); sendmail (emailto, 'Yardım!', 'Astronavtların forması qapalıdır!', img); red_mean 135 sona çatsa || green_mean 135 || blue_mean 135 üçün j = 1: 2 %ağ rəng robot r.turnAngle (360) mail = '[email protected]' tərəfindən tapıla bilməzsə; psswd = 'bəli'; host = 'smtp.gmail.com'; liman = '465'; emailto = '[email protected]'; m_subject = 'mövzu'; m_text = 'test'; setpref ('İnternet', 'E_mail', poçt); setpref ('İnternet', 'SMTP_Server', ana); setpref ('İnternet', 'SMTP_Username', poçt); setpref ('İnternet', 'SMTP_Password', psswd); rekvizit = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', poçt); props.setProperty ('mail.smtp.host', host); props.setProperty ('mail.smtp.port', liman); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'doğru'); props.setProperty ('mail.smtp.auth', 'doğru'); props.setProperty ('mail.smtp.socketFactory.port', liman); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'yalan'); sendmail (emailto, 'Yardım!', 'Astronavt tapıla bilməz!', img); r.stop sonu son uca
Aydındır ki, bura qarışıqdır, ancaq kopyalandıqdan sonra silinməlidir. Bunun üçün şifrələr və e -poçtlar bu layihəni edənlər tərəfindən açıq şəkildə təmin edilməlidir.
Ancaq nümunəmiz, hər kəsə uyğun olması üçün bu robotu qarışdırmağın bir çox yollarından biridir. Ediləcək çox fərqli işlər var ki, bunları özünüzə uyğunlaşdıra bilərsiniz.
Tövsiyə:
WLED (ESP8266 -da) + IFTTT + Google köməkçisi: 5 addım
WLED (ESP8266 -da) + IFTTT + Google köməkçisi: Bu təlimat, ELES8266 -da WLED üçün IFTTT və Google köməkçisindən istifadə etməyə başlayacaq. WLED & ESP8266, tynick-də bu bələdçini izləyin: https: //tynick.com/blog/11-03-2019/getting-started…Bu qədər böyük proqram üçün Aircookie-yə səs verin
DIY Hava köməkçisi: 6 addım
DIY Hava Köməkçisi: Keçən dəfə ESP32 -dən indiki havanı yayımlaya biləcək bir hava yayım stansiyası hazırladım. Əgər maraqlanırsınızsa, əvvəlki təlimatı yoxlaya bilərsiniz. İndi təkmilləşdirilmiş bir versiya etmək istəyirəm ki, bizi yoxlamaq üçün bir şəhər təyin edim
Google köməkçisi tərəfindən idarə olunan LED matrisi!: 7 addım (şəkillərlə)
Google köməkçisi tərəfindən idarə olunan LED matrisi!: Bu dərslikdə, hər yerdə bir smartfon istifadə edərək formu idarə edə biləcəyiniz Google köməkçisi ilə idarə olunan LED matrisini necə edə biləcəyinizi sizə göstərəcəyəm, buna görə başlayaq
DIY Ağıllı Qaraj Qapı Açacağı + Ev köməkçisi inteqrasiyası: 5 addım
DIY Ağıllı Qaraj Qapı Açacağı + Ev Köməkçisi İnteqrasiyası: Bu DIY layihəsindən istifadə edərək normal qaraj qapınızı ağıllı çevirin. Evin köməkçisi (MQTT üzərindən) istifadə edərək onu necə quracağınızı və idarə edəcəyinizi və qaraj qapınızı uzaqdan açıb bağlaya biləcəyinizi sizə göstərəcəyəm. Wemos adlı bir ESP8266 lövhəsindən istifadə edəcəm
Bağ Köməkçisi Roomba Bot: 8 addım
Garden Helper Roomba Bot: Kiara Myers, Ahmad Alghadeer və Madison TippetMəqsəd: Bu təlimat, MATLAB-dan istifadə edərək, bir bağda gəzmək, yuvarlaq formalı meyvə/tərəvəzləri seçmək üçün yetişdirmək üçün Roomba Botu necə proqramlaşdırmağı öyrədəcək. əsasən