Obsah:
- Krok 1: Materiály
- Krok 2: Pripojenie
- Krok 3: Logické vytvorenie kódu MATLAB na používanie senzorov
- Krok 4: Testovanie kódu a robota
- Krok 5: Rozpoznanie chyby
- Krok 6: Záver
Video: Parkovanie Roomba Room: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Tento projekt používa iRobot Create programovateľnú roomba, MATLAB r2018a a MATLAB mobile. Pri použití týchto troch médií a našich znalostí kódovania sme naprogramovali iRobot Create tak, aby interpretoval farby a používal palubné snímače na plnenie úloh. Tento projekt závisí od vykonávania týchto úloh od komunikácie Raspberry Pi a MATLAB.
Krok 1: Materiály
1. Robot iRobot Create
2. MATLAB r2018a
3. Raspberry Pi
4. Modul kamery
5. Stojan stabilizátora fotoaparátu s 3D potlačou
6. Smartfón s nainštalovaným mobilom MATLAB
7. Notebook/počítač s nainštalovaným MATLABom
Krok 2: Pripojenie
Tento krok je o spojení Raspberry Pi s robotom, v druhom rade o pripojení robota k vášmu počítaču a o prepojení smartfónu s počítačom.
Najjednoduchšou súčasťou tohto procesu je pripojenie Raspberry Pi k vášmu robotovi, pretože Raspberry Pi je namontovaný na vrchu robota. Od robota je kábel, ktorý stačí zapojiť do boku Raspberry Pi.
Ďalším krokom je pripojenie robota k počítaču, aby ste mohli spúšťať príkazy, ktoré robot môže vykonávať. Prvá vec, ktorú musíte urobiť, je pripojiť počítač k bezdrôtovej sieti, ktorú vytvára váš robot Roomba. Teraz sa odporúča použiť ikonu Nastaviť cestu v MATLABe na nastavenie cesty, aby ste mohli používať funkcie v paneli nástrojov Roomba od MATLABu. Zakaždým, keď začínate a končíte používanie s robotom, musíte robota tvrdo resetovať „dvoma prstami“, čo znamená, že na desať sekúnd podržíte tlačidlá doku a bodu, kým svetlo nezhasne, čo znamená uvoľnenie. S týmto tvrdým resetom ste boli úspešní, ak počujete, ako robot hrá v krátkom meradle. Ďalej sa musíte pripojiť k robotovi Roomba pomocou riadku kódu, ako je tento „r = roomba (x)“, kde „x“je číslo určené robotovi, ktorého máte.
Nakoniec si musíte stiahnuť MATLAB mobile na akékoľvek mobilné zariadenie, ktoré budete na tento projekt používať, a táto aplikácia je k dispozícii na zariadeniach Android aj Apple. Po inštalácii aplikácie sa budete musieť prihlásiť pomocou svojich prihlasovacích údajov. Potom musíte pripojiť toto zariadenie k počítaču pomocou karty označenej „Viac“-> potom kliknite na položku „nastavenia“-> potom kliknutím na položku „Pridať počítač“by sa mala otvoriť obrazovka zobrazená na obrázkoch vyššie. Keď to uvidíte, Ďalším krokom, ktorý musíte prejsť, je zapojenie a získanie požadovaných informácií. Po úspešnom pripojení budete môcť na svojom robote ovládať funkcie, ktoré definujete vo svojom počítači v telefóne.
Krok 3: Logické vytvorenie kódu MATLAB na používanie senzorov
Kód bude najľahšie vytvoriť, keď je väčšina z nich v slučke on while, aby robot Roomba mohol neustále aktualizovať platné hodnoty, na ktoré sa pozerá. Ak dôjde k chybe, MATLAB zobrazí chybu a miesto, kde je v kóde zobrazená, čím je riešenie problémov relatívne jednoduché.
Tento kód, navrhnutý v r2018a MATLAB, využíva štandardné sady nástrojov, sadu nástrojov iRobot Create a mobilnú súpravu nástrojov MATLAB. Roomba použitá v tomto prípade je označená ako 26 a r = roomba (26) musí byť spustený iba raz, aby plne komunikoval s robotom roomba.
Kód:
funkcia parkovací asistent (x), ak x == 1
r = roomba (26) % sa pripája k roomba
kým je to pravda
r.setDriveVelocity (.05,, 05) % nastaví roomba na nižšiu rýchlosť jazdy
bump = r.getBumpers % získava údaje zo senzorov nárazov
cliff = r.getCliffSensors % získava údaje zo senzorov útesu
light = r.getLightBumpers % získava údaje zo senzorov svetelných nárazov
img = r.getImage;% prečíta kameru mimo robota
red_mean = priemer (priemer (img (:,,: 1))) % znamená priemerný počet červených pixelov
green_mean = priemer (priemer (img (:,,: 2))) % znamená priemerné množstvo zelených pixelov
blue_mean = priemer (priemer (img (:,,:, 3))) % číta priemerné množstvo modrých pixelov
ak bump.front == 1 %číta snímače predných nárazov
r.stop %zastaví roomba
msgbox ('Path Obscured!', 'Parking Assistant Message') % zobrazuje správu, že cesta je zakrytá prerušenie % končí slučku
elseif green_mean> 150
r.stop %zastaví roomba
cont = questdlg ('Pokračovať?', 'Cesta dokončená') %zobrazí pole s otázkou, či chcete pokračovať
if cont == 'Yes'
parkassist (1) %reštartuje kód
inak
koniec
break % ukončí slučku
elseif red_mean> 140
r.turnAngle (45) %otočí roombu o 45 stupňov
r.timeStart %spustí počítadlo času
kým je to pravda
r.setDriveVelocity (.05,, 05) %nastavuje rýchlosť robota roomba
time = r.timeGet %priradí čas premennej
bump = r.getBumpers % získava údaje zo senzorov nárazov
cliff = r.getCliffSensors % získava údaje zo senzorov útesu
light = r.getLightBumpers % získava údaje zo senzorov svetelných nárazov
img = r.getImage;% prečíta kameru mimo robota
red_mean = priemer (priemer (img (:,,: 1))) % znamená priemerný počet červených pixelov
green_mean = priemer (priemer (img (:,,: 2))) % znamená priemerné množstvo zelených pixelov
blue_mean = priemer (priemer (img (:,,:, 3))) % číta priemerné množstvo modrých pixelov
ak blue_mean> 120
r.moveDistance (-0,01) % posúva roomba dozadu o nastavenú vzdialenosť piesnePlay (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % hrá stúpajúcu hudobnú škálu
msgbox ('Water Found!', 'Parking Assistant Message') % zobrazuje správu, že bola nájdená voda r.turnAngle (-80) % otočí roomba o 80 stupňov
break % ukončí aktuálnu slučku
elseif svetlo.vpravoVpredu> 25 || light.leftFront> 25 %číta svetelné snímače nárazov
r.moveDistance (-0,01) % presunie robota roomba späť o nastavenú vzdialenosť
r.turnAngle (-35) % otočí roomba o 35 stupňov
break %ukončí aktuálnu slučku
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %číta oba snímače útesu
r.moveDistance (-0,1) % posunie roomba dozadu o nastavenú vzdialenosť
r.turnAngle (-80) %otočí roomba o 80 stupňov
break % ukončí aktuálnu slučku
inokedy>> 3
r.stop %zastaví roomba
contin = questdlg ('Stanica zadarmo, pokračovať?', 'správa parkovacieho asistenta') %sa pýta, či má roomba pokračovať, ak pokračuje == 'Áno'
r.turnAngle (-90) % otočí roomba o 90 stupňov
parkassist (1) %reštartuje funkciu
inak
r.stop % zastaví roomba
koniec
inak
koniec
koniec
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %číta oba snímače útesu
r.moveDistance (-0,1) %posunie roomba dozadu o nastavenú vzdialenosť
r.turnAngle (-90) %otočí roomba o 90 stupňov
elseif cliff.rightFront <2500 %číta pravý snímač útesu
r.turnAngle (-5) %mierne otočí robota Roomba v opačnom smere ako snímač útesu
elseif cliff.leftFront <2500 %číta snímač ľavého útesu
r.turnAngle (5) %mierne otočí robota v opačnom smere ako snímač útesu
inak
koniec
koniec
koniec
Krok 4: Testovanie kódu a robota
Po vývoji kódu bol ďalším krokom test kódu a robota. Pretože je v kóde možné vykonať množstvo rôznych úprav, ako je uhol, ktorým sa robot otáča, rýchlosť, ktorou sa pohybuje, a prahové hodnoty pre každú farbu, najlepší spôsob, ako tieto hodnoty pre svojho robota zistiť, je otestovať zmeníte ich za pochodu. Každý pracovný deň, ktorý sme mali, sme tieto hodnoty neustále menili, pretože niektoré z nich sa spoliehajú na prostredie, v ktorom váš robot pracuje. Najlepším spôsobom, ako sme zistili, bolo umiestniť robot Roomba na cestu, po ktorej chcete, aby nasledovala, a dostatočne vysoká bariéra, aby fotoaparát nerozpoznal farby, ktoré by ste nechceli. Ďalším krokom je nechať ho bežať a ukázať mu požadované farby, keď ho chcete splniť. Pokiaľ vidíte problém, najlepšie je zatlačiť predný nárazník, zastaviť ho a potom zmeniť parameter, s ktorým ste mali problémy.
Krok 5: Rozpoznanie chyby
Pri každom dokončenom projekte vždy existujú zdroje chýb. Pre nás sme zažili chybu s jednoduchým faktom, že robot nie je presný v uhle, v ktorom sa otáča, takže ak mu poviete, aby sa otočil o 45 stupňov, nebude to presné. Ďalším zdrojom chýb pre nás bolo, že niekedy robot zlyhá a vy ho musíte tvrdo resetovať, kým opäť nebude fungovať. Hlavným posledným zdrojom chýb pre nás bolo, že rovnaký kód nebude mať rovnaký vplyv na rôznych robotov, takže s ním budete musieť byť pravdepodobne trpezliví a prispôsobiť sa mu.
Krok 6: Záver
Teraz máte všetky nástroje na hranie si s robotom roomba, čo znamená, že s kódom môžete manipulovať tak, ako chcete, aby ste dosiahli ciele, ktoré si prajete. Toto by mala byť najlepšia časť vášho dňa, takže sa bavte a jazdite bezpečne!
Odporúča:
Systém upozornenia na spätné parkovanie Arduino do auta - Krok za krokom: 4 kroky
Systém upozornenia na spätné parkovanie Arduino do auta | Krok za krokom: V tomto projekte navrhnem jednoduchý obvod spätného parkovacieho senzora Arduino do auta pomocou ultrazvukového senzora Arduino UNO a HC-SR04. Tento výstražný systém Car Reverse na báze systému Arduino je možné použiť na autonómnu navigáciu, určovanie vzdialenosti robota a ďalší rozsah
Inteligentné parkovanie založené na IOT: 7 krokov
Inteligentné parkovanie založené na IOT: Tanmay Pathak a Utkarsh Mishra. Abstrakt: Úspešne sme implementovali inteligentný parkovací systém založený na IOT. S pomocou jednotlivých uzlov (senzorov priblíženia) pri
DIY -- Clap Controlled Room Room: 3 kroky
DIY || Clap Controlled Room Light: Zaujímalo vás niekedy, ako ovládať svoje domáce spotrebiče systémom CLAP? Potom ste na správnom mieste! Tu vám ukážem, ako môžete ovládať akékoľvek domáce zariadenie - izbové svetlá, ventilátor, televíziu alebo audio systém pomocou jednoduchého tlesknutia. Tento projekt je založený na
Diaľkomer pre garážové parkovanie s Arduino: 4 kroky (s obrázkami)
Diaľkomer pre garážové parkovanie s Arduino: Tento jednoduchý projekt vám pomôže zaparkovať auto v garáži zobrazením vzdialenosti od predmetov pred nárazníkom auta. Hlásenie „Stop“vám povie, kedy je potrebné zastaviť. Projekt je založený na bežných HC-SR04 alebo Parallax Ping)))
Inteligentné parkovanie Arduino: 4 kroky
Inteligentné parkovanie Arduino: Bill Blankenship, Willam Bailey, Hannah Hargrove S použitím dosky Arduino sa našej skupine podarilo vytvoriť systém, ktorý by svetelným senzorom umožnil zistiť, kedy auto zaberá priestor alebo či je priestor prázdny. Po šesťdesiatich ôsmich riadkoch sme