Sisällysluettelo:
- Vaihe 1: Materiaalit
- Vaihe 2: Yhteys
- Vaihe 3: Luo loogisesti MATLAB -koodi antureiden käyttämiseksi
- Vaihe 4: Koodin ja robotin testaaminen
- Vaihe 5: Virheen tunnistaminen
- Vaihe 6: Johtopäätös
Video: Roomba Parking Pal: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tämä projekti käyttää iRobot Create -ohjelmoitavaa roombaa, MATLAB r2018a ja MATLAB mobile. Käyttämällä näitä kolmea tietovälinettä ja koodaustaitojamme ohjelmoimme iRobot Createin tulkitsemaan värejä ja käyttämään sisäisiä antureita tehtävien suorittamiseen. Nämä projektit riippuvat Raspberry Pi- ja MATLAB -kommunikoinnista näiden tehtävien suorittamiseksi.
Vaihe 1: Materiaalit
1. iRobot Luo robotti
2. MATLAB r2018a
3. Vadelma Pi
4. Kameramoduuli
5. 3-D-painettu kameran vakainjalusta
6. Älypuhelin, johon on asennettu MATLAB -mobiili
7. Kannettava tietokone/tietokone, johon on asennettu MATLAB
Vaihe 2: Yhteys
Tässä vaiheessa Raspberry Pi yhdistetään robottiin, toiseksi robotti yhdistetään tietokoneeseen ja älypuhelin yhdistetään tietokoneeseen.
Helpoin osa tätä prosessia on yhdistää Raspberry Pi robottiisi, koska Raspberry Pi on asennettu robotin yläosaan. Robotissa on johto, joka sinun tarvitsee vain kytkeä Raspberry Pi -laitteen sivulle.
Seuraava vaihe on yhdistää robotti tietokoneeseen, jotta voit suorittaa komentoja robotin suorittamiseksi. Ensimmäinen asia, joka sinun on tehtävä, on liittää tietokoneesi langattomaan verkkoon, jota roomba luo. Nyt on suositeltavaa käyttää polkua Aseta polku MATLABissa polun asettamiseen, jotta voit käyttää MATLABin Roomba -työkalupakin toimintoja. Joka kerta, kun aloitat ja lopetat robotin käytön, sinun on suoritettava "kahden sormen tervehdys" kova nollaus robotille, mikä tarkoittaa, että pidät telakointi- ja kohdepainikkeita painettuna kymmenen sekunnin ajan, kunnes valo himmenee. Olet onnistunut tällä kovalla nollauksella, jos kuulet robotin soivan lyhyen asteikon. Seuraavaksi sinun on muodostettava yhteys roombaan käyttämällä koodiriviä, kuten "r = roomba (x)", jossa "x" on robotillesi määritetty numero.
Lopuksi sinun on ladattava MATLAB mobile mille tahansa mobiililaitteelle, jota käytät tässä projektissa, ja tämä sovellus on saatavilla sekä Android- että Apple -laitteille. Kun sovellus on asennettu, sinun on kirjauduttava sisään tunnuksillasi. Sitten sinun on liitettävä tämä laite tietokoneeseesi käyttämällä "Lisää" -välilehteä -> sitten "asetukset" -> sitten "Lisää tietokone", jolloin esiin tulee yllä olevissa kuvissa näkyvä näyttö. seuraava vaihe, joka sinun on käytävä läpi, on vain sen pyytämien tietojen liittäminen ja chugging.
Vaihe 3: Luo loogisesti MATLAB -koodi antureiden käyttämiseksi
Koodi on helpoin luoda, kun suurin osa siitä on on -loopin sisällä, joten roomba voi päivittää jatkuvasti tarkastamiaan kelvollisia arvoja. Jos tapahtuu virhe, MATLAB näyttää virheen ja sen, missä se näkyy koodissa, mikä tekee vianmäärityksestä suhteellisen helppoa.
Tämä r2018a MATLAB: iin suunniteltu koodi käyttää vakiotyökaluryhmiä, iRobot Create -työkaluryhmää ja MATLAB -mobiilityökalupakettia. Tässä esimerkissä käytetty roomba on merkitty 26: ksi, ja r = roomba (26) täytyy ajaa vain kerran kommunikoidakseen täysin roomban kanssa.
Koodi:
funktio parkassist (x), jos x == 1
r = roomba (26) % muodostaa yhteyden roombaan
vaikka totta
r.setDriveVelocity (.05,.05) % asettaa Roomban hitaammaksi ajonopeudeksi
bump = r.getBumpers % saa tiedot törmäysantureista
cliff = r.getCliffSensors % saa tiedot kallion antureista
light = r.getLightBumpers % saa tiedot valonlyöntianturista
img = r.getImage;% lukee kameran pois robotista
red_mean = keskiarvo (keskiarvo (img (:,:, 1))) % lukee punaisten pikselien keskimääräisen määrän
green_mean = keskiarvo (keskiarvo (img (:,:, 2))) % lukee vihreiden pikselien keskimääräisen määrän
blue_mean = keskiarvo (keskiarvo (img (:,:, 3))) % lukee sinisten pikselien keskimääräisen määrän
jos bump.front == 1 %lukee etupään anturit
r.stop %pysäyttää roomban
msgbox ('Polku peitetty!', 'Pysäköintitutkan viesti') % näyttää viestin, jossa sanotaan, että polku on peitetty tauko % lopettaa silmukan
elseif green_mean> 150
r.stop %pysäyttää roomban
cont = questdlg ('Jatka?', 'Polku suoritettu') %näyttää kysymyskentän, jossa pyydetään jatkamaan
jos jatkuu == 'Kyllä'
parkassist (1) %käynnistää koodin uudelleen
muu
loppuun
tauko % lopettaa silmukan
elseif red_mean> 140
r.turnAngle (45) %kääntää huoneen 45 astetta
r.timeStart %käynnistää aikalaskurin
vaikka totta
r.setDriveVelocity (.05,.05) %asettaa roomban nopeuden
time = r.timeGet %määrittää ajan muuttujalle
bump = r.getBumpers % saa tiedot törmäysantureista
cliff = r.getCliffSensors % saa tiedot kallion antureista
light = r.getLightBumpers % saa tiedot valonlyöntianturista
img = r.getImage;% lukee kameran pois robotista
red_mean = keskiarvo (keskiarvo (img (:,:, 1))) % lukee punaisten pikselien keskimääräisen määrän
green_mean = keskiarvo (keskiarvo (img (:,:, 2))) % lukee vihreiden pikselien keskimääräisen määrän
blue_mean = keskiarvo (keskiarvo (img (:,:, 3))) % lukee sinisten pikselien keskimääräisen määrän
jos blue_mean> 120
r.moveDistance (-0,01) % siirtää roomban taaksepäin tietyn matkan kappaleen Toisto (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % soittaa nousevaa musiikkia
msgbox ('Vesi löytynyt!', 'Pysäköintitutkan viesti') % näyttää viestin, jossa kerrotaan, että vettä on löytynyt. r.turnAngle (-80) % kääntää huoneen 80 astetta
tauko % lopettaa nykyisen silmukan
elseif light.rightFront> 25 || light.leftFront> 25 %lukee valon törmäysanturit
r.moveDistance (-0,01) % siirtää roomban taaksepäin tietyn matkan
r.turnAngle (-35) % kiertää huonetta 35 astetta
tauko %lopettaa nykyisen silmukan
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %lukee molemmat kallioanturit
r.moveDistance (-0,1) % siirtää roomban taaksepäin tietyn matkan
r.turnAngle (-80) %kiertää tilaa 80 astetta
tauko % lopettaa nykyisen silmukan
muu aika> = 3
r.stop %pysäyttää roomban
contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message') %kysyy, pitäisikö roomban jatkaa, jos Contin == 'Kyllä'
r.turnAngle (-90) % kiertää huonetta 90 astetta
parkassist (1) %käynnistää toiminnon uudelleen
muu
r.stop % pysäyttää roomban
loppuun
muu
loppuun
loppuun
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %lukee molemmat kallioanturit
r.moveDistance (-0,1) %siirtää roomban taaksepäin tietyn matkan
r.turnAngle (-90) %kiertää huonetta 90 astetta
elseif cliff.rightFront <2500 %lukee oikean kallioanturin
r.turnAngle (-5) %kääntää roomban hieman kallioanturin vastakkaiseen suuntaan
elseif cliff.leftFront <2500 %lukee vasemman kallion anturin
r.turnAngle (5) %kääntää roomban hieman kallioanturin vastakkaiseen suuntaan
muu
loppuun
loppuun
loppuun
Vaihe 4: Koodin ja robotin testaaminen
Koodin kehittämisen jälkeen seuraava askel oli testata koodi ja robotti. Koska koodissa voidaan tehdä monia erilaisia säätöjä, kuten robotin kääntökulma, nopeus ja kunkin värin kynnysarvot, paras tapa selvittää nämä arvot robotille on testata ne ja muuttuvat edetessäsi. Jokaisen työpäivän aikana muutimme jatkuvasti näitä arvoja, koska jotkut niistä riippuvat robotin toimintaympäristöstä. Paras tapa, jonka löysimme, oli sijoittaa roomba haluamallesi polulle ja saada riittävän korkea este, jotta kamera ei pysty havaitsemaan värejä, joita et halua. Seuraava vaihe on antaa sen toimia ja näyttää sille haluamasi värit, kun haluat sen suorittavan tehtävän. Jos näet ongelman, paras tapa on työntää etupuskuri sisään, pysäyttää se ja muuttaa sitten parametria, jonka kanssa sinulla oli ongelmia.
Vaihe 5: Virheen tunnistaminen
Kun jokainen projekti on valmis, aina löytyy virheitä. Meille tapahtui virhe, koska yksinkertainen tosiasia oli, että robotti ei ole tarkka kulmassa, jolla se kääntyy, joten jos kerrot sen kääntyvän 45 astetta, se ei ole tarkka. Toinen virhelähde meille oli, että joskus robotti toimii väärin, ja sinun on nollattava se ennen kuin se toimii uudelleen. Tärkein viimeinen virhelähde meille oli, että sama koodi ei vaikuta eri robotteihin samalla tavalla, joten sinun on ehkä oltava kärsivällinen sen kanssa ja mukautettava sen mukaan.
Vaihe 6: Johtopäätös
Nyt sinulla on kaikki työkalut huoneesi leikkimiseen, mikä tarkoittaa, että voit manipuloida koodia joka tapauksessa, jos haluat saavuttaa haluamasi tavoitteet. Tämän pitäisi olla päivän paras osa, joten pidä hauskaa ja aja turvallisesti!
Suositeltava:
Roomba Bot the Bulider: 5 vaihetta (kuvilla)
Roomba Bot the Bulider: Bot the Builder on roomba, jossa on " nappaajat " etuosaan kiinnitetty pystyy liikuttamaan esineitä. Sen mukana tuleva koodi on asetettu tallentamaan ensimmäinen liike graafisella käyttöliittymällä, jota voit hallita vain hiiren napsautuksella. Afte
MATLAB -ohjattu Roomba: 5 vaihetta
MATLAB -ohjattu Roomba: Tämän projektin tavoitteena on hyödyntää MATLABia ja muokattua iRobot -ohjelmoitavaa robottia. Ryhmämme yhdisti koodaustaitomme luodaksemme MATLAB -komentosarjan, joka käyttää monia iRobotin toimintoja, mukaan lukien kallioanturit, puskurin tunnistimet
Mars Roomba Project UTK: 4 vaihetta
Mars Roomba -projekti UTK: VASTUUVAPAUSLAUSEKE: TÄMÄ TOIMII VAIN, JOS ROOMBA ON MÄÄRITETTY ERITTÄIN TÄLLÄ, TÄMÄ OHJE on luotu ja sen on tarkoitus käyttää TENNESSEE -YLIOPISTOJEN JA FACULTY -palvelun avulla. Tämän koodin avulla voidaan määrittää kirjoitettu ja s
Arduino Smart Parking: 4 vaihetta
Arduino Smart Parking: Bill Blankenship, Willam Bailey, Hannah Hargrove Ryhmämme onnistui Arduino -levyn avulla luomaan järjestelmän, jonka avulla valotunnistimet voivat havaita, milloin autolla on tilaa tai onko se tyhjä. Kuusikymmentäkahdeksan rivin jälkeen me
MIDI Pod-Pal: 4 vaihetta
MIDI Pod-Pal: *** PÄIVITYS 4/22/21 '' Rakennusosan syvyydessä tarkoitukseni oli näyttää toinen esimerkki Arduino -pohjaisen MI: n rakentamisesta