Kazalo:
- 1. korak: Materiali
- 2. korak: Povezava
- 3. korak: Logično ustvarjanje kode MATLAB za uporabo senzorjev
- 4. korak: Preizkusite kodo in robota
- 5. korak: Prepoznavanje napake
- 6. korak: Zaključek
Video: Roomba Park Pal: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta projekt uporablja iRobot Create programabilno roombo, MATLAB r2018a in MATLAB mobile. Z uporabo teh treh medijev in znanja o kodiranju smo programirali iRobot Create za razlago barv in uporabo vgrajenih senzorjev za dokončanje nalog. Za izvedbo teh nalog so ti projekti odvisni od komunikacije Raspberry Pi in MATLAB.
1. korak: Materiali
1. iRobot Ustvari robota
2. MATLAB r2018a
3. Malina Pi
4. Modul kamere
5. 3-D tiskano stojalo za stabilizacijo kamere
6. Pametni telefon z nameščenim mobilnim telefonom MATLAB
7. Prenosni računalnik/računalnik z nameščenim MATLAB -om
2. korak: Povezava
Ta korak je namenjen povezovanju Raspberry Pi z robotom, drugič povezovanju robota z računalnikom in povezovanju pametnega telefona z računalnikom.
Najlažji del tega procesa je povezovanje Raspberry Pi z vašim robotom, saj je Raspberry Pi nameščen na vrh robota. Od robota je kabel, ki ga morate le priklopiti na rob Raspberry Pi.
Naslednji korak je povezovanje robota z računalnikom, tako da lahko zaženete ukaze za izvajanje robota. Najprej morate povezati računalnik z brezžičnim omrežjem, ki ga ustvarja roomba. Zdaj je priporočljivo, da z ikono Set Path v MATLAB nastavite pot, tako da lahko uporabite funkcije v orodjarni Roomba iz MATLAB -a. Vsakič, ko začnete in končate uporabo z robotom, morate robot ponastaviti s pritiskom na "Pozdrav z dvema prstoma", kar pomeni, da držite gumbe priklopne postaje in tipke za deset sekund, dokler lučka ne zatemni, kar kaže, da se sprosti. S to ponastavitvijo ste bili uspešni, če ste slišali, da je robot igral kratko lestvico. Nato se morate povezati z roombo z vrstico kode, kot je ta "r = roomba (x)", kjer je "x" številka, določena za robota, ki ga imate.
Nazadnje morate prenesti MATLAB mobile na katero koli mobilno napravo, ki jo boste uporabljali za ta projekt, in ta aplikacija je na voljo v napravah Android in Apple. Ko je aplikacija nameščena, se boste morali prijaviti s svojimi poverilnicami. Nato morate to napravo povezati z računalnikom na zavihku z oznako »Več« -> nato kliknite »nastavitve« -> nato kliknite »Dodaj računalnik«, to bi moralo prikazati zaslon, prikazan na zgornjih slikah. Ko vidite to Naslednji korak, ki ga morate opraviti, je samo priklop in preverjanje podatkov, ki jih zahteva.
3. korak: Logično ustvarjanje kode MATLAB za uporabo senzorjev
Kodo bo najlažje ustvariti, ko je večina znotraj zanke while, tako da lahko roomba nenehno posodablja veljavne vrednosti, ki jih išče. Če pride do napake, bo MATLAB prikazal napako in kjer se pojavi v kodi, zaradi česar je odpravljanje težav relativno preprosto.
Ta koda, zasnovana v r2018a MATLAB, uporablja standardne nabore orodij, nabor orodij iRobot Create in mobilno orodje MATLAB. Roomba, uporabljena v tem primeru, je označena kot 26, r = roomba (26) pa je treba zagnati le enkrat za popolno komunikacijo z roombo.
Koda:
funkcija parkassist (x), če je x == 1
r = roomba (26) % se poveže z roombo
medtem ko je res
r.setDriveVelocity (.05,.05) % nastavi roombo na počasnejšo hitrost vožnje
bump = r.getBumpers % dobi podatke od senzorjev udarcev
cliff = r.getCliffSensors % dobi podatke od senzorjev pečine
light = r.getLightBumpers % dobi podatke iz senzorjev svetlobnih udarcev
img = r.getImage;% prebere kamero z robota
red_mean = mean (mean (img (:,:, 1))) % bere povprečno količino rdečih slikovnih pik
green_mean = mean (mean (img (:,:, 2))) % bere povprečno količino zelenih slikovnih pik
blue_mean = mean (mean (img (:,:, 3))) % bere povprečno količino modrih slikovnih pik
če bump.front == 1 %bere sprednja senzorja udarcev
r.stop %ustavi roombo
msgbox ('Pot zatemnjena!', 'Sporočilo pomočnika pri parkiranju') % prikaže sporočilo, da je pot zakrita, prelom % konča zanko
drugače če zeleno_pomeni> 150
r.stop %ustavi roombo
cont = questdlg ('Nadaljuj?', 'Pot dokončana') %prikaže polje z vprašanjem, ki zahteva nadaljevanje
if cont == 'Da'
parkassist (1) %znova zažene kodo
drugače
konec
break % konča zanko
drugače če rdeče_pomeni> 140
r.turnAngle (45) %obrne roombo za 45 stopinj
r.timeStart %zažene števec časa
medtem ko je res
r.setDriveVelocity (.05,.05) %nastavi hitrost roombe
time = r.timeGet %dodeli čas spremenljivki
bump = r.getBumpers % dobi podatke od senzorjev udarcev
cliff = r.getCliffSensors % dobi podatke od senzorjev pečine
light = r.getLightBumpers % dobi podatke iz senzorjev svetlobnih udarcev
img = r.getImage;% prebere kamero z robota
red_mean = mean (mean (img (:,:, 1))) % bere povprečno količino rdečih slikovnih pik
green_mean = mean (mean (img (:,:, 2))) % bere povprečno količino zelenih slikovnih pik
blue_mean = mean (mean (img (:,:, 3))) % bere povprečno količino modrih slikovnih pik
če je modro_pomeni> 120
r.moveDistance (-0.01) % premakne roombo nazaj za določeno razdaljo skladba Play (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % predvaja naraščajočo glasbeno lestvico
msgbox ('Voda je najdena!', 'Sporočilo pomočnika pri parkiranju') % prikaže sporočilo, da je voda najdena r.turnAngle (-80) % vrti roombo 80 stopinj
break % konča trenutno zanko
elseif light.rightFront> 25 || light.leftFront> 25 %bere svetlobne senzorje
r.moveDistance (-0.01) % premakne roombo nazaj za nastavljeno razdaljo
r.turnAngle (-35) % vrti roombo za 35 stopinj
break %konča trenutno zanko
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %bere oba senzorja pečine
r.moveDistance (-0.1) % premakne roombo nazaj za nastavljeno razdaljo
r.turnAngle (-80) %vrti roombo za 80 stopinj
break % konča trenutno zanko
sicer če je čas> = 3
r.stop %ustavi roombo
contin = questdlg ('Station Free, Continue?', 'Message Assistant Message') %vpraša, ali naj se roomba nadaljuje, če je contin == 'Da'
r.turnAngle (-90) % vrti roombo za 90 stopinj
parkassist (1) %znova zažene funkcijo
drugače
r.stop % ustavi roombo
konec
drugače
konec
konec
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %bere oba senzorja pečine
r.moveDistance (-0.1) %premakne roombo nazaj za nastavljeno razdaljo
r.turnAngle (-90) %vrti roombo za 90 stopinj
elseif cliff.rightFront <2500 %bere desni senzor pečine
r.turnAngle (-5) %rahlo obrne roombo v nasprotni smeri senzorja pečine
elseif cliff.leftFront <2500 %bere senzor leve pečine
r.turnAngle (5) %rahlo obrne roombo v nasprotni smeri senzorja pečine
drugače
konec
konec
konec
4. korak: Preizkusite kodo in robota
Po razvoju kode je bil naslednji korak preizkus kode in robota. Ker je v kodi mogoče narediti veliko različnih prilagoditev, kot so kot, ki ga robot obrača, hitrost premikanja in pragovi za vsako barvo, je najboljši način, da te vrednosti ugotovite za svojega robota, da preizkusite jih spremenite. Za vsak delovnik, ki smo ga imeli, smo te vrednosti nenehno spreminjali, saj se nekatere od njih opirajo na okolje, v katerem vaš robot deluje. Najboljši način, ki smo ga našli, je bil postaviti roombo na pot, ki ji želite slediti, in imeti pregrado dovolj visoko, da fotoaparat ne zazna barv, ki jih ne želite. Naslednji korak je, da se zažene in mu pokažete želene barve, ko želite, da dokonča to nalogo. Če opazite težavo, je najbolje, da sprednji odbijač potisnete in ustavite, nato pa spremenite parameter, s katerim ste imeli težave.
5. korak: Prepoznavanje napake
Ko je vsak projekt dokončan, vedno obstajajo viri napak. Pri nas smo doživeli napako pri preprostem dejstvu, da robot ni natančen s kotom, pod katerim se obrača, zato če mu poveš, da se obrne za 45 stopinj, ne bo natančen. Drug vir napak za nas je bil, da včasih pride do okvare robota, zato ga morate težko ponastaviti, preden spet deluje. Glavni zadnji vir napak za nas je bil, da ista koda ne bo imela enakega učinka na različne robote, zato boste morda morali biti potrpežljivi in se temu ustrezno prilagoditi.
6. korak: Zaključek
Zdaj imate vsa orodja za igranje s svojo roombo, kar pomeni, da lahko s kodo manipulirate tako, da želite doseči želene cilje. To bi moral biti najboljši del vašega dneva, zato se zabavajte in varno vozite!
Priporočena:
Park s kodami Tinkercad: 9 korakov
Park z bloki kode Tinkercad: Pozdravljeni vsi! Danes sem naredil park/sosesko! To je moj prvi poskus s kodami Tinkercad Code Blocks, zato je bilo potrebno veliko vračanja in popravkov, ko stvari niso uspele. (Kar je bilo veliko: P) Upam, da boste uživali in uspeli
Roomba Bot Bulider: 5 korakov (s slikami)
Roomba Bot the Bulider: Bot the Builder je roomba, ki z " grabberji " pritrjen spredaj bo lahko premikal predmete. Koda z njo je nastavljena tako, da zabeleži prvi premik z grafičnim vmesnikom, ki ga lahko upravljate samo s klikom miške. Afte
MIDI Pod-Pal: 4 koraki
MIDI Pod-Pal: *** UPDATE 22/22/'21 ****** Dodal sem celotno shemo, ki prikazuje vse ožičenje za pomoč pri gradnji. *** Ne bom šel v smešno količino globino tukaj na gradbenem delu je bil moj namen pokazati še en primer izgradnje MI, ki temelji na Arduinu
Sistem SafeT-Park: 6 korakov (s slikami)
SafeT-Park System: Ta naprava bo pomagala zaščititi parkirne konstrukcije z implementacijo treh varnostnih konceptov v napravo IOT. Samodejni sistem za odzivanje v sili v primeru požarov na parkirni konstrukciji Vgrajen senzor temperature in nadmorske višine za natančno določitev lokacije
Senzor Raspberry Pi Park: 3 koraki (s slikami)
Raspberry Pi Park Sensor: V tem navodilu bomo zgradili parkirni senzor. Zamisel tega senzorja za parkiranje je prikazana zeleno, ko imate dovolj prostora za vlečenje avtomobila naprej na parkirišču, nato pa porumeni, ko se približate položaju v celoti naprej, nato pa