Mündəricat:

Roomba Parkı Pal: 6 addım
Roomba Parkı Pal: 6 addım

Video: Roomba Parkı Pal: 6 addım

Video: Roomba Parkı Pal: 6 addım
Video: 2019 TNPSC தேர்வுகளில் கேட்கப்பட்ட நடப்பு நிகழ்வுகள் - குரூப் 4 கண்ணோட்டத்தில் - HELD ON 03.04.19 2024, Iyul
Anonim
Otaq otağı Parkı
Otaq otağı Parkı

Bu layihədə iRobot Create proqramlaşdırıla bilən roomba, MATLAB r2018a və MATLAB mobile istifadə olunur. Bu üç vasitədən və kodlaşdırma biliklərimizdən istifadə edərək, iRobot Create proqramını rəngləri şərh etmək və tapşırıqları yerinə yetirmək üçün göyərtədəki sensorlardan istifadə etmək üçün proqramlaşdırdıq. Bu layihələr bu vəzifələri yerinə yetirmək üçün Raspberry Pi və MATLAB ünsiyyətindən asılıdır.

Addım 1: Materiallar

Materiallar
Materiallar
Materiallar
Materiallar

1. iRobot Robot Yarat

2. MATLAB r2018a

3. Raspberry Pi

4. Kamera Modulu

5. 3-D çaplı Kamera Sabitləyici Stendi

6. MATLAB mobile quraşdırılmış smartfon

7. MATLAB quraşdırılmış Laptop/Kompüter

Addım 2: Bağlantı

Bu addım Raspberry Pi -ni robota bağlamaq, ikincisi robotu kompüterinizə bağlamaq və smartfonu kompüterə bağlamaqdır.

Bu prosesin ən asan hissəsi Raspberry Pi -ni robotunuza bağlamaqdır, çünki Raspberry Pi robotun üstünə quraşdırılmışdır. Robotdan bir şnur var ki, etməniz lazım olan tək şey Raspberry Pi -nin yanına bağlamaqdır.

Növbəti addım robotu kompüterinizə bağlamaqdır ki, robotun yerinə yetirməsi üçün əmrləri işlədə biləsiniz. Etməli olduğunuz ilk şey, kompüterinizi Roombanızın yaratdığı simsiz şəbəkəyə bağlamaqdır. İndi MATLAB -dan Roomba alətlər qutusundakı funksiyaları istifadə etmək üçün yolu təyin etmək üçün MATLAB -da Yol Ayarla simgesini istifadə etməyiniz tövsiyə olunur. Robotla hər dəfə işə başladığınızda və bitirdiyiniz zaman, robotu "iki barmaqla salamlama" sıfırlamalısınız, yəni işıq söndüyünü göstərən işıq sönənə qədər dok və nöqtə düymələrini on saniyə basıb saxlayın. Robotun qısa miqyaslı oynadığını eşitsəniz, bu çətin sıfırlama ilə uğur qazandınız. Sonra "r = roomba (x)" kimi bir kod xətti istifadə edərək roomba -ya qoşulmalısınız, burada 'x', robotunuz üçün təyin olunan rəqəmdir.

Nəhayət, bu layihə üçün istifadə edəcəyiniz hər hansı bir mobil cihaza MATLAB mobile yükləməlisiniz və bu tətbiq həm Android, həm də Apple cihazlarında mövcuddur. Tətbiq quraşdırıldıqdan sonra hesab məlumatlarınızı istifadə edərək daxil olmalısınız. Sonra "Daha çox" etiketli nişanı istifadə edərək bu cihazı kompüterinizə bağlamalısınız -> sonra "ayarlar" -> sonra "Kompüter əlavə et" düyməsini basın, bu yuxarıdakı şəkillərdə göstərilən ekranı açmalıdır. Bunu gördükdən sonra keçməyiniz lazım olan növbəti addım, sadəcə istədiyi məlumatı bağlamaq və yoxlamaqdır. Uğurlu bir şəkildə bağlandıqdan sonra, robotunuzu idarə etmək üçün telefonunuzda kompüterinizdə təyin etdiyiniz funksiyalara zəng edə biləcəksiniz.

Addım 3: Sensorlardan istifadə etmək üçün məntiqi olaraq MATLAB kodu yaratmaq

Sensorlardan istifadə etmək üçün məntiqi olaraq MATLAB kodu yaratmaq
Sensorlardan istifadə etmək üçün məntiqi olaraq MATLAB kodu yaratmaq

Kodun əksəriyyəti döngə içərisində olduqda yaratmaq ən asan olacaq, beləliklə roomba baxdığı etibarlı dəyərləri daim yeniləyə bilər. Bir səhv varsa, MATLAB bir səhv göstərəcək və kodda göründüyü yerdə problemlərin həllini nisbətən asanlaşdıracaq.

R2018a MATLAB -da hazırlanmış bu kod standart alət qutularından, iRobot Create alət qutusundan və MATLAB mobil alət qutusundan istifadə edir. Bu nümunədə istifadə olunan roomba 26 olaraq təyin edilmişdir və r = roomba (26), Roomba ilə tam ünsiyyət qurmaq üçün yalnız bir dəfə işə salınmalıdır.

Kod:

parkassist (x) funksiyası x == 1 olarsa

r = roomba (26) % roombaya bağlanır

doğru olarkən

r.setDriveVelocity (.05,.05) % roombanı daha yavaş sürmə sürətinə təyin edir.

bump = r.getBampers, qabar sensorlarından məlumat alır

cliff = r.getCliffSensors məlumatları uçurum sensorlarından alır

light = r.getLightBampers, işıq zərbəsi sensorlarından məlumat alır

img = r.getImage; robotun kamerasını oxuyur

red_mean = orta (orta (img (:,,, 1))) % qırmızı piksellərin orta miqdarını oxuyur

green_mean = ortalama (ortalama (img (:,,,, 2)))) % yaşıl piksellərin orta miqdarını oxuyur

blue_mean = orta (ortalama (img (:,,, 3))) % mavi piksellərin orta miqdarını oxuyur

əgər bump.front == 1 %ön qabar sensörlərini oxuyur

r.stop %roomba dayandırır

msgbox ('Yol Qaranlıqdır!', 'Park Köməkçisi Mesajı') % yolun qaraldığını bildirən mesajı göstərir % fasilə döngəni bitirir.

elseif green_mean> 150

r.stop %roomba dayandırır

cont = questdlg ('Davam et?', 'Yol Tamamlandı') %davam etmək istəyən sual qutusunu göstərir

əgər davam == 'Bəli'

parkassist (1) %kodu yenidən başlatır

başqa

bitmək

break % döngəni bitirir

elseif red_mean> 140

r.turnAngle (45) %otaq otağını 45 dərəcə çevirir

r.timeStart %vaxt sayğacını işə salır

doğru olarkən

r.setDriveVelocity (.05,.05) %roomba sürətini təyin edir

time = r.timeGet %bir dəyişəni təyin edir

bump = r.getBampers, qabar sensorlarından məlumat alır

cliff = r.getCliffSensors məlumatları uçurum sensorlarından alır

light = r.getLightBampers, işıq zərbəsi sensorlarından məlumat alır

img = r.getImage; robotun kamerasını oxuyur

red_mean = orta (orta (img (:,,, 1))) % qırmızı piksellərin orta miqdarını oxuyur

green_mean = ortalama (ortalama (img (:,,, 2))) %, yaşıl piksellərin orta miqdarını oxuyur

blue_mean = orta (ortalama (img (:,,, 3))) % mavi piksellərin orta miqdarını oxuyur

blue_mean> 120

r.moveDistance (-0.01) % roomba-nı müəyyən bir məsafə mahnısını geriyə keçirPlay (r, 'T400, C, D, E, F, G, A, B, C^', 'doğru') % yüksələn musiqi miqyasını oynayır

msgbox ('Su Tapıldı!', 'Park Yardımcısı Mesajı') % su tapıldığını bildirən bir mesaj göstərir r.turnAngle (-80) % roomba 80 dərəcə döndürür

break % cari döngəni bitir

elseif light.rightFront> 25 || light.leftFront> 25 %-i yüngül zərbə sensorlarını oxuyur

r.moveDistance (-0.01) % roombanı müəyyən bir məsafəyə geriyə doğru hərəkət etdirir

r.turnAngle (-35) % otaqda 35 dərəcə fırlanır

break %cari döngəni bitir

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %hər iki uçurum sensorunu oxuyur

r.moveDistance (-0.1) % roombanı müəyyən bir məsafəyə geriyə doğru hərəkət etdirir

r.turnAngle (-80) %otaqda 80 dərəcə fırlanır

break % cari döngəni bitir

başqa vaxt> = 3

r.stop %roomba dayandırır

contin = questdlg ('Stansiyasız, Davam Edilsin?', 'Park Köməkçisi Mesajı') %, əgər Continba == 'Bəli' olarsa, roombanın davam etməsini soruşur

r.turnAngle (-90) % otağı 90 dərəcə döndürür

parkassist (1) %funksiyanı yenidən başlatır

başqa

r.stop % roomba dayandırır

bitmək

başqa

bitmək

bitmək

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %hər iki uçurum sensorunu oxuyur

r.moveDistance (-0.1) %roombanı müəyyən bir məsafəyə geriyə doğru hərəkət etdirir

r.turnAngle (-90) %roomba 90 dərəcə fırlanır

elseif cliff.rightFront <2500 %doğru uçurum sensorunu oxuyur

r.turnAngle (-5) %roombanı azacıq uçurum sensörünün əksinə çevirir

elseif cliff.leftFront <2500 %sol uçurum sensorunu oxuyur

r.turnAngle (5) %otaq otağını uçurum sensörünün əks istiqamətinə bir az çevirir

başqa

bitmək

bitmək

bitmək

Addım 4: Kodu və Robotu sınayın

Kodu və Robotu sınayın
Kodu və Robotu sınayın
Kodu və Robotu sınayın
Kodu və Robotu sınayın
Kodu və Robotu sınayın
Kodu və Robotu sınayın

Kod hazırlandıqdan sonra növbəti addım kodu və robotu sınamaq idi. Kodda robotun döndüyü bucaq, hərəkət etdiyi sürət və hər rəng üçün eşiklər kimi bir çox fərqli düzəlişlər edilə biləcəyi üçün robotunuz üçün bu dəyərləri anlamağın ən yaxşı yolu test etməkdir. gedin və onları dəyişin. Keçirdiyimiz hər iş günü üçün bu dəyərləri daim dəyişirdik, çünki bəziləri robotunuzun işlədiyi mühitə güvənir. Tapdığımız ən yaxşı yol, otaqbanı izləmək istədiyiniz yola yerləşdirmək idi. kamera istəmədiyiniz rəngləri aşkar edə bilməyəcək qədər yüksək bir maneə. Növbəti addım, tapşırığı yerinə yetirməsini istədiyiniz zaman istədiyiniz rəngləri göstərməsinə icazə verin. Gedərkən, bir problem görürsünüzsə, ən yaxşı şey ön tamponu itələmək, onu dayandırmaqdır, sonra problem yaşadığınız parametri dəyişdirin.

Addım 5: Səhvlərin tanınması

Hər bir layihə tamamlandıqda həmişə səhv mənbələri olur. Bizim üçün, robotun döndüyü bucaqla dəqiq olmadığı sadə bir səhvlə qarşılaşdıq, buna görə 45 dərəcəyə döndüyünü söyləsəniz, dəqiq olmayacaq. Başqa bir səhv mənbəyimiz, bəzən robotun arızalanması və yenidən işləməzdən əvvəl onu yenidən sıfırlamağınız idi. Bizim üçün əsas son səhv mənbəyi eyni kodun fərqli robotlara eyni təsir göstərməməsi idi, buna görə səbirli olmalı və buna uyğun olaraq düzəlişlər etməlisiniz.

Addım 6: Nəticə

İndi otaq otağınızla oynamaq üçün bütün vasitələriniz var, yəni istədiyiniz məqsədlərə çatmaq üçün istədiyiniz halda kodu idarə edə bilərsiniz. Bu gününüzün ən yaxşı hissəsi olmalıdır, buna görə əylənin və təhlükəsiz şəkildə sürün!

Tövsiyə: