Sadržaj:
- Korak 1: Materijali
- Korak 2: Povezivanje
- Korak 3: Logično stvaranje MATLAB koda za korištenje senzora
- Korak 4: Testiranje koda i robota
- Korak 5: Prepoznavanje pogreške
- Korak 6: Zaključak
Video: Roomba Parking Pal: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ovaj projekt koristi iRobot Create programabilnu roombu, MATLAB r2018a i MATLAB mobile. Koristeći ova tri medija i naše znanje o kodiranju, programirali smo iRobot Create za tumačenje boja i korištenje ugrađenih senzora za izvršavanje zadataka. Ovi projekti ovise o komunikaciji Raspberry Pi i MATLAB za izvršavanje ovih zadataka.
Korak 1: Materijali
1. iRobot Create Robot
2. MATLAB r2018a
3. Malina Pi
4. Modul kamere
5. 3-D tiskano postolje za stabilizaciju kamere
6. Pametni telefon s instaliranim MATLAB mobitelom
7. Prijenosno računalo s instaliranim MATLAB -om
Korak 2: Povezivanje
Ovaj korak se odnosi na povezivanje Raspberry Pi s robotom, drugo povezivanje robota s računalom i povezivanje pametnog telefona s računalom.
Najjednostavniji dio ovog procesa je povezivanje Raspberry Pi s robotom, budući da je Raspberry Pi montiran na vrh robota. Robot ima kabel koji samo trebate priključiti na bočnu stranu Raspberry Pi.
Sljedeći korak je povezivanje robota s računalom tako da možete pokrenuti naredbe koje će robot izvesti. Prvo što morate učiniti je povezati računalo s bežičnom mrežom koju stvara vaša roomba. Sada se preporučuje upotreba ikone Postavi put u MATLAB -u za postavljanje puta tako da možete koristiti funkcije u alatnoj paleti Roomba iz MATLAB -a. Svaki put kada započinjete i završavate uporabu s robotom, morate izvršiti hardversko resetiranje robota "Pozdrav s dva prsta", što znači da držite pritisnutu tipku za priključnu stanicu i tipku deset sekundi dok se svjetlo ne priguši što ukazuje na puštanje. Bili ste uspješni u ovom hard reset -u ako čujete da robot svira kratku ljestvicu. Zatim se morate povezati s roombom koristeći redak koda poput ovog "r = roomba (x)" gdje je 'x' broj dodijeljen robotu koji imate.
Na kraju, morate preuzeti MATLAB mobile na bilo koji mobilni uređaj koji ćete koristiti za ovaj projekt, a ova je aplikacija dostupna i na Android i na Apple uređajima. Nakon što se aplikacija instalira, morat ćete se prijaviti koristeći svoje vjerodajnice. Zatim morate povezati ovaj uređaj s računalom, koristeći karticu s oznakom "Više" -> zatim kliknite "postavke" -> zatim kliknite "Dodaj računalo", to bi trebalo otvoriti zaslon prikazan na gornjim slikama. Nakon što vidite ovo, sljedeći korak koji morate proći je samo uključivanje i provjeravanje informacija koje traži. Nakon što se uspješno povežete, moći ćete pozvati funkcije koje definirate na svom računalu na telefonu za upravljanje robotom.
Korak 3: Logično stvaranje MATLAB koda za korištenje senzora
Kôd će biti najlakše stvoriti kada je većina unutar petlje on while, tako da roomba može stalno ažurirati važeće vrijednosti koje gleda. Ako postoji pogreška, MATLAB će prikazati pogrešku i gdje se pojavljuje u kodu, što čini rješavanje problema relativno jednostavnim.
Dizajniran u r2018a MATLAB -u, ovaj kôd koristi standardne alate, iRobot Create toolbox, kao i MATLAB mobile toolbox. Roomba korištena u ovom primjeru označena je kao 26, a r = roomba (26) je potrebno pokrenuti samo jednom kako bi u potpunosti komunicirao s roombom.
Kodirati:
funkcija parkassist (x) ako je x == 1
r = roomba (26) % se povezuje s roombom
dok je istina
r.setDriveVelocity (.05,.05) % postavlja roombu na sporiju brzinu vožnje
bump = r.getBumpers % dobiva podatke od senzora udara
cliff = r.getCliffSensors % dobiva podatke od senzora litice
light = r.getLightBumpers % dobiva podatke od senzora svjetla
img = r.getImage;% čita kameru s robota
red_mean = mean (mean (img (:,:, 1))) % čita srednju količinu crvenih piksela
green_mean = mean (mean (img (:,:, 2))) % čita srednju količinu zelenih piksela
blue_mean = mean (mean (img (:,:, 3))) % čita srednju količinu plavih piksela
ako bump.front == 1 %čita prednje senzore udara
r.stop %zaustavlja roomba
msgbox ('Put zaklonjen!', 'Poruka pomoćnika pri parkiranju') % prikazuje poruku u kojoj se kaže da je put zaklonjen prekid % završava petlju
inače ako zeleno_znači> 150
r.stop %zaustavlja roomba
cont = questdlg ('Continue?', 'Path Completed') %prikazuje okvir s pitanjem u kojem se traži nastavak
if cont == 'Da'
parkassist (1) %ponovno pokreće kôd
drugo
kraj
break % završava petlju
inače ako crveno_znači> 140
r.turnAngle (45) %okreće roombu za 45 stupnjeva
r.timeStart %pokreće brojač vremena
dok je istina
r.setDriveVelocity (.05,.05) %postavlja brzinu roombe
time = r.timeGet %dodjeljuje vrijeme varijabli
bump = r.getBumpers % dobiva podatke od senzora udara
cliff = r.getCliffSensors % dobiva podatke od senzora litice
light = r.getLightBumpers % dobiva podatke od senzora svjetla
img = r.getImage;% čita kameru s robota
red_mean = mean (mean (img (:,:, 1))) % čita srednju količinu crvenih piksela
green_mean = mean (mean (img (:,:, 2))) % čita srednju količinu zelenih piksela
blue_mean = mean (mean (img (:,:, 3))) % čita srednju količinu plavih piksela
ako plavo_znači> 120
r.moveDistance (-0.01) % pomiče roombu unatrag na postavljenu udaljenost songPlay (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % svira rastuću glazbenu ljestvicu
msgbox ('Water Found!', 'Poruka pomoćnika pri parkiranju') % prikazuje poruku koja kaže da je voda pronađena r.turnAngle (-80) % rotira roomba 80 stupnjeva
break % završava trenutnu petlju
inače svjetlo.desnoPredaj> 25 || light.leftFront> 25 %očitava senzore svjetla
r.moveDistance (-0.01) % pomiče roombu unatrag na zadanu udaljenost
r.turnAngle (-35) % rotira roombu za 35 stupnjeva
break %završava trenutnu petlju
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %čita oba senzora litice
r.moveDistance (-0.1) % pomiče roombu unatrag na zadanu udaljenost
r.turnAngle (-80) %rotira roombu za 80 stupnjeva
break % završava trenutnu petlju
inače je vrijeme> = 3
r.stop %zaustavlja roomba
contin = questdlg ('Station Free, Continue?', 'Poruka pomoćnika pri parkiranju') %pita treba li roomba nastaviti ako je contin == 'Yes'
r.turnAngle (-90) % rotira roombu za 90 stupnjeva
parkassist (1) %ponovno pokreće funkciju
drugo
r.stop % zaustavlja roombu
kraj
drugo
kraj
kraj
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %čita oba senzora litice
r.moveDistance (-0.1) %pomiče roombu unatrag na zadanu udaljenost
r.turnAngle (-90) %rotira roombu 90 stupnjeva
elseif cliff.rightFront <2500 %čita desni senzor litice
r.turnAngle (-5) %blago okreće roombu u suprotnom smjeru od senzora litice
elseif cliff.leftFront <2500 %čita senzor lijeve litice
r.turnAngle (5) %blago okreće roombu u suprotnom smjeru od senzora litice
drugo
kraj
kraj
kraj
Korak 4: Testiranje koda i robota
Nakon što je kôd razvijen, sljedeći korak bio je testiranje koda i robota. Budući da se u kodu može napraviti mnogo različitih prilagodbi, kao što su kut koji robot okreće, brzina kretanja i pragovi za svaku boju, najbolji način za utvrđivanje ovih vrijednosti za vašeg robota je testiranje ih i mijenjati u hodu. Za svaki radni dan koji smo imali, stalno smo mijenjali ove vrijednosti jer se neke od njih oslanjaju na okruženje u kojem vaš robot radi. Najbolji način koji smo otkrili bio je postaviti roombu na put kojim želite da slijedi i imati barijera dovoljno visoka da fotoaparat ne može otkriti boje koje ne želite. Sljedeći korak je pustiti ga da radi i pokažite mu boje koje želite, kada želite da dovrši taj zadatak. U tijeku, ako vidite problem, najbolje je ugurati prednji odbojnik i zaustaviti ga, a zatim promijeniti parametar s kojim ste imali problema.
Korak 5: Prepoznavanje pogreške
Sa svakim dovršenim projektom uvijek postoje izvori grešaka. Za nas smo doživjeli pogrešku s jednostavnom činjenicom da robot nije precizan s kutom pod kojim se okreće, pa ako mu kažete da se okrene za 45 stupnjeva to neće biti točno. Drugi izvor pogreške za nas bio je taj što se ponekad robot pokvari, pa ste ga teško resetirali prije nego što ponovno radi. Glavni posljednji izvor pogreške za nas je bio taj što isti kôd neće imati isti učinak na različite robote, pa ćete morati biti strpljivi s njim i prilagoditi se u skladu s tim.
Korak 6: Zaključak
Sada imate sve alate za igranje sa svojom roombom, što znači da možete manipulirati kodom na bilo koji način kojim želite postići ciljeve koje želite. Ovo bi trebao biti najbolji dio vašeg dana, stoga se zabavite i vozite sigurno!
Preporučeni:
Parking senzor: Uvod: 23 koraka
Senzor za parkiranje: Uvod: Ovaj krug senzora za parkiranje automobila koji koristi IC primopredajnik i pomoćnik LM324 može zaštititi vaš automobil od bilo kakvih oštećenja tijekom parkiranja unatrag. Pokazuje udaljenost automobila od bilo kojeg objekta i aktivira alarm kada dođe blizu zida ili objekta
Roomba Bot Bulider: 5 koraka (sa slikama)
Roomba Bot the Bulider: Bot the Builder je roomba koja sa " grabilicama " pričvršćen sprijeda moći će pomicati objekte. Kôd s njim postavljen je tako da bilježi prvi pomak s grafičkim okvirom koji možete kontrolirati samo jednim klikom miša. Afte
MATLAB kontrolirana Roomba: 5 koraka
MATLAB kontrolirana Roomba: Cilj ovog projekta je korištenje MATLAB -a, kao i modificiranog iRobot programabilnog robota. Naša grupa kombinirala je naše vještine kodiranja kako bi stvorila MATLAB skriptu koja koristi mnoge funkcije iRobota, uključujući senzore litice, senzore odbojnika
MIDI Pod-Pal: 4 koraka
MIDI Pod-Pal: *** UPDATE 22/22/'21 ****** Dodao sam potpunu shemu koja prikazuje sve ožičenje za pomoć u izgradnji. *** Neću ulaziti u smiješnu količinu dubine ovdje na dijelu izgradnje, namjera mi je bila pokazati još jedan primjer izgradnje MI -a zasnovanog na Arduinu
Roomba Roomba upravljani preglednikom s Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba Roomba upravljani preglednikom robot s modelom Raspberry Pi 3 A+: pregledOva instrukcija će se usredotočiti na to kako mrtvoj Roombi dati novi mozak (Raspberry Pi), oči (web kamera) i način da kontrolirate sve iz web preglednika. Postoji mnogo Roomba hakova koji omogućuju kontrolu putem serijskog sučelja. Nisam