Sisukord:
- Samm: materjalid
- Samm 2: Ühendamine
- 3. samm: loogiline MATLAB -koodi loomine andurite kasutamiseks
- Samm: koodi ja roboti testimine
- Samm: tõrke tuvastamine
- 6. samm: järeldus
Video: Roomba parkimine Pal: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
See projekt kasutab programmeeritavat roomba iRobot Create, MATLAB r2018a ja MATLAB mobile. Kasutades neid kolme meediumit ja oma teadmisi kodeerimisest, programmeerisime iRobot Createi värvide tõlgendamiseks ja ülesannete täitmiseks rongisiseseid andureid. Need projektid sõltuvad nende ülesannete täitmisest Raspberry Pi ja MATLAB suhtlusest.
Samm: materjalid
1. iRobot Loo robot
2. MATLAB r2018a
3. Vaarika Pi
4. Kaamera moodul
5. 3-D trükitud kaamera stabilisaatorialus
6. Nutitelefon, millele on paigaldatud mobiiltelefon MATLAB
7. Sülearvuti/arvuti, kuhu on paigaldatud MATLAB
Samm 2: Ühendamine
See samm hõlmab Raspberry Pi ühendamist robotiga, teiseks roboti ühendamist arvutiga ja nutitelefoni ühendamist arvutiga.
Selle protsessi lihtsaim osa on Raspberry Pi ühendamine teie robotiga, kuna Raspberry Pi on paigaldatud roboti ülaossa. Robotil on juhe, mille peate vaid ühendama Raspberry Pi küljega.
Järgmine samm on roboti ühendamine arvutiga, et saaksite roboti jaoks käske käivitada. Esimene asi, mida peate tegema, on arvuti ühendamine traadita võrguga, mida teie roomba loob. Nüüd on soovitatav tee määramiseks kasutada MATLAB -is ikooni Set Path, et saaksite kasutada MATLAB -i Roomba tööriistakasti funktsioone. Iga kord, kui alustate ja lõpetate roboti kasutamist, peate roboti kõvasti lähtestama "Kahe sõrme tervituseks", mis tähendab, et hoiate doki ja kohapealseid nuppe kümme sekundit all, kuni valgus hakkab vaibuma. Selle kõva lähtestamise korral õnnestus teil kuulda, kuidas robot mängib lühikest skaalat. Järgmisena peate roombaga ühenduse looma, kasutades sellist koodirida nagu "r = roomba (x)", kus "x" on teie robotile määratud number.
Lõpuks peate MATLAB mobiiltelefoni alla laadima mis tahes mobiilseadmest, mida selle projekti jaoks kasutate, ning see rakendus on saadaval nii Androidi kui ka Apple'i seadmetes. Kui rakendus on installitud, peate sisse logima, kasutades oma mandaati. Seejärel peate selle seadme arvutiga ühendama, kasutades vahekaarti "Rohkem" -> seejärel klõpsake "seaded" -> seejärel klõpsake "Lisa arvuti", see peaks avama ülaltoodud piltidel kuvatud ekraani. Pärast seda näete järgmine samm, mille peate läbima, on lihtsalt taotletava teabe ühendamine ja sulgemine. Kui olete edukalt ühenduse loonud, saate oma roboti juhtimiseks helistada funktsioonidele, mille määrate oma arvutis oma telefonis.
3. samm: loogiline MATLAB -koodi loomine andurite kasutamiseks
Koodi on kõige lihtsam luua, kui suurem osa sellest on sisse lülitatud ajal, nii et roomba saab pidevalt vaadata kehtivaid väärtusi, mida ta vaatab. Kui ilmneb tõrge, kuvab MATLAB vea ja selle, kus see koodis kuvatakse, muutes tõrkeotsingu suhteliselt lihtsaks.
See kood, mis on loodud r2018a MATLAB -is, kasutab standardseid tööriistakaste, iRobot Create tööriistakasti ja MATLAB mobiilitööriistakasti. Selles näites kasutatud roomba on tähistatud kui 26 ja r = roomba (26) tuleb roombaga täielikuks suhtlemiseks käivitada ainult üks kord.
Kood:
funktsiooni parkassist (x), kui x == 1
r = roomba (26) % ühendub roombaga
kuigi tõsi
r.setDriveVelocity (.05,.05) % seab roomba aeglasemale sõidukiirusele
bump = r.getBumpers % saab andmed põrkeanduritelt
cliff = r.getCliffSensors % saab andmed kaljuanduritelt
light = r.getLightBumpers % saab andmed valgustugevuse anduritelt
img = r.getImage;% loeb kaamera robotilt välja
red_mean = keskmine (keskmine (img (:,:, 1))) % loeb punaste pikslite keskmist kogust
green_mean = keskmine (keskmine (img (:,:, 2))) % loeb roheliste pikslite keskmist kogust
blue_mean = keskmine (keskmine (img (:,:, 3))) % loeb siniste pikslite keskmist kogust
kui bump.front == 1 %loeb eesmise löögi andureid
r.stop %peatab roomba
msgbox ('Tee on varjatud!', 'Parkimisabilise teade') % kuvab teate, et tee on varjatud, katkesta % lõpetab tsükli
elseif green_mean> 150
r.stop %peatab roomba
cont = questdlg ('Kas jätkata?', 'Tee valmis') %kuvab küsimuste kasti, milles palutakse jätkata
kui jätk == 'jah'
parkassist (1) %taaskäivitab koodi
muidu
lõpp
break % lõpetab tsükli
140
r.turnAngle (45) %pöörab ruumi 45 kraadi
r.timeStart %käivitab ajaloenduri
kuigi tõsi
r.setDriveVelocity (.05,.05) %määrab toa kiiruse
time = r.timeGet %määrab aja muutujale
bump = r.getBumpers % saab andmed põrkeanduritelt
cliff = r.getCliffSensors % saab andmed kaljuanduritelt
light = r.getLightBumpers % saab andmed valgustugevuse anduritelt
img = r.getImage;% loeb kaamera robotilt välja
red_mean = keskmine (keskmine (img (:,:, 1))) % loeb punaste pikslite keskmist kogust
green_mean = keskmine (keskmine (img (:,:, 2))) % loeb roheliste pikslite keskmist kogust
blue_mean = keskmine (keskmine (img (:,:, 3))) % loeb siniste pikslite keskmist kogust
kui blue_mean> 120
r.moveDistance (-0,01) % liigutab roomba tagasi teatud kaugusega laulu Esita (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % mängib muusikaskaala tõusu
msgbox ('Vesi leitud!', 'Parkimisabilise teade') % kuvab teate, et vett on leitud r.turnAngle (-80) % pöörab toa 80 kraadi
murda % lõpetab praeguse tsükli
elseif light.rightFront> 25 || light.leftFront> 25 %loeb valguse löögi andureid
r.moveDistance (-0,01) % nihutab roomba määratud vahemaa tahapoole
r.turnAngle (-35) % pöörab ruumi 35 kraadi
murda %lõpetab praeguse tsükli
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %loeb mõlemat kaljuandurit
r.moveDistance (-0,1) % nihutab roomba määratud vahemaa tahapoole
pöördenurk (-80) %pöörab ruumi 80 kraadi
murda % lõpetab praeguse tsükli
muul ajal> = 3
r.stop %peatab roomba
contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message') %küsib, kas roomba peaks jätkama, kui Contin == 'Jah'
r.turnAngle (-90) % pöörab ruumi 90 kraadi
parkassist (1) %taaskäivitab funktsiooni
muidu
r.stop % peatab roomba
lõpp
muidu
lõpp
lõpp
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %loeb mõlemat kaljuandurit
r.moveDistance (-0,1) %nihutab roomba määratud vahemaa tahapoole
pöörlemisnurk (-90) %pöörab ruumi 90 kraadi
elseif cliff.rightFront <2500 %loeb õiget kaljuandurit
r.turnAngle (-5) %pöörab roomba veidi kaljuanduri vastassuunas
elseif cliff.leftFront <2500 %loeb vasakpoolse kaljuanduri
r.turnAngle (5) %pöörab roomba veidi kaljuanduri vastassuunas
muidu
lõpp
lõpp
lõpp
Samm: koodi ja roboti testimine
Pärast koodi väljatöötamist oli järgmine samm koodi ja roboti testimine. Kuna koodis saab teha palju erinevaid kohandusi, näiteks roboti pöördenurka, liikumiskiirust ja iga värvi künniseid, on parim viis nende väärtuste väljaselgitamiseks teie roboti jaoks testida neid ja muutke teekonnal. Iga tööpäeva puhul muutsime neid väärtusi pidevalt, kuna mõned neist sõltuvad keskkonnast, milles teie robot töötab. Parim viis, mille leidsime, oli paigutada roomba teele, mida soovite, et see järgiks ja piisavalt kõrge tõke, nii et kaamera ei suuda tuvastada värve, mida te ei soovi. Järgmine samm on lasta sellel töötada ja näidata soovitud värve, kui soovite selle ülesande täita. Kui näete probleemi, on kõige parem esilöök sisse lükata ja see seiskuda ning seejärel muuta parameetrit, millega teil probleeme oli.
Samm: tõrke tuvastamine
Iga tehtud projektiga kaasneb alati veaallikaid. Meie jaoks tekkis viga lihtsa tõsiasjaga, et robot ei ole täpne pöördenurgaga, nii et kui käsite tal 45 kraadi pöörata, pole see täpne. Teine vigade allikas oli meie jaoks see, et mõnikord võib robot tõrkuda ja teil tuleb see enne taaskäivitamist kõvasti lähtestada. Peamine viimane vigade allikas oli meie jaoks see, et sama kood ei avalda erinevatele robotitele sama mõju, seega peate võib -olla olema kannatlik ja kohandama vastavalt.
6. samm: järeldus
Nüüd on teil kõik tööriistad oma roombaga mängimiseks, mis tähendab, et saate koodiga manipuleerida igal juhul, kui soovite soovitud eesmärke saavutada. See peaks olema teie päeva parim osa, nii et nautige ja sõitke ohutult!
Soovitan:
Roomba muutmine Mars Roveriks: 5 sammu
Oma Roomba muutmine Mars Roveriks:
IOT -põhine nutikas parkimine: 7 sammu
IOT -põhine nutikas parkimine: Tanmay Pathak ja Utkarsh Mishra. Õpilased @ Rahvusvaheline Infotehnoloogia Instituut, Hyderabad (IIITH) KOKKUVÕTE Rakendasime edukalt IOT -põhise nutika parkimissüsteemi. Üksikute sõlmede (lähedusandurid) abil
Roomba Bot the Bulider: 5 sammu (koos piltidega)
Roomba Bot the Bulider: Bot the Builder on roomba, mis koos " grabbers " esiosa külge kinnitatud saab objekte ringi liigutada. Sellega kood on seatud salvestama esimest liikumist graafilise kasutajaliidese kastiga, mida saate juhtida vaid hiireklõpsuga. Pärast
Arduino nutikas parkimine: 4 sammu
Arduino nutikas parkimine: Bill Blankenship, Willam Bailey, Hannah Hargrove Arduino tahvli abil õnnestus meie rühmal luua süsteem, mis võimaldaks valgusanduritel tuvastada, kas auto hõivab ruumi või kui see ruum on vaba. Pärast kuuskümmend kaheksa rida me
MIDI Pod-Pal: 4 sammu
MIDI Pod-Pal: *** UPDATE 4/22/'21 ****** Ehituse osa sügavusel kavatsesin näidata veel ühte näidet Arduino -põhise MI ehitamisest