Turinys:
- 1 žingsnis: medžiagos
- 2 žingsnis: prijungimas
- 3 žingsnis: logiškai sukurkite MATLAB kodą jutikliams naudoti
- 4 žingsnis: išbandykite kodą ir robotą
- 5 žingsnis: Klaidos atpažinimas
- 6 žingsnis: Išvada
Video: „Roomba“automobilių stovėjimo aikštelė: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šiame projekte naudojama „iRobot Create“programuojama „roomba“, „MATLAB r2018a“ir „MATLAB mobile“. Naudodamiesi šiomis trimis laikmenomis ir savo žiniomis apie kodavimą, mes užprogramavome „iRobot Create“interpretuoti spalvas ir naudoti borto jutiklius užduotims atlikti. Šie projektai priklauso nuo Raspberry Pi ir MATLAB ryšio, kad būtų galima atlikti šias užduotis.
1 žingsnis: medžiagos
1. „iRobot Create Robot“
2. MATLAB r2018a
3. Raspberry Pi
4. Kameros modulis
5. 3D spausdintas fotoaparato stabilizatoriaus stovas
6. Išmanusis telefonas su įdiegtu „MATLAB mobile“
7. Nešiojamasis kompiuteris/kompiuteris su įdiegtu MATLAB
2 žingsnis: prijungimas
Šis žingsnis skirtas prijungti „Raspberry Pi“prie roboto, antra - prijungti robotą prie kompiuterio ir prijungti išmanųjį telefoną prie kompiuterio.
Lengviausia šio proceso dalis yra „Raspberry Pi“prijungimas prie jūsų roboto, nes „Raspberry Pi“yra sumontuotas roboto viršuje. Iš roboto yra laidas, kurį tereikia prijungti prie „Raspberry Pi“šono.
Kitas žingsnis yra prijungti robotą prie kompiuterio, kad galėtumėte paleisti komandas, kad robotas galėtų atlikti. Pirmas dalykas, kurį turite padaryti, yra prijungti kompiuterį prie belaidžio tinklo, kurį kuria jūsų „roomba“. Dabar rekomenduojama naudoti MATLAB piktogramą Nustatyti kelią, kad nustatytumėte kelią, kad galėtumėte naudotis MATLAB „Roomba“įrankių rinkinio funkcijomis. Kiekvieną kartą, kai pradedate ir baigiate naudoti robotą, turite iš naujo nustatyti „dviejų pirštų pasveikinimą“, o tai reiškia, kad dešimt sekundžių laikysite nuspaudę doko ir taškinius mygtukus, kol šviesa pritems. Sėkmingai atlikote šį sunkų atstatymą, jei girdite, kaip robotas žaidžia trumpą skalę. Tada turite prisijungti prie „roomba“naudodami kodo eilutę, tokią kaip „r = roomba (x)“, kur „x“yra jūsų turimam robotui skirtas numeris.
Galiausiai turite atsisiųsti „MATLAB mobile“į bet kurį mobilųjį įrenginį, kurį naudosite šiam projektui, ir ši programa yra prieinama tiek „Android“, tiek „Apple“įrenginiuose. Kai programa bus įdiegta, turėsite prisijungti naudodami savo kredencialus. Tada turite prijungti šį įrenginį prie kompiuterio naudodami skirtuką „Daugiau“-> tada spustelėkite „Nustatymai“-> tada spustelėkite „Pridėti kompiuterį“, tai turėtų parodyti aukščiau esančiose nuotraukose rodomą ekraną. Kitas žingsnis, kurį turite atlikti, yra tiesiog prijungti ir nuskaityti informaciją, kurios ji prašo. Sėkmingai prisijungę galėsite skambinti funkcijomis, kurias nustatėte savo kompiuteryje telefone, kad galėtumėte valdyti savo robotą.
3 žingsnis: logiškai sukurkite MATLAB kodą jutikliams naudoti
Lengviausia sukurti kodą, kai didžioji jo dalis yra įjungimo ciklo metu, kad „roomba“galėtų nuolat atnaujinti galiojančias vertes. Jei yra klaida, MATLAB parodys klaidą ir ten, kur ji rodoma kode, todėl trikčių šalinimas bus gana paprastas.
Sukurtas r2018a MATLAB, šis kodas naudoja standartines įrankių dėžes, „iRobot Create“įrankių rinkinį ir „MATLAB“įrankių rinkinį mobiliesiems. Šiame pavyzdyje naudojama „roomba“yra pažymėta kaip 26, o r = roomba (26) reikia paleisti tik vieną kartą, kad būtų galima visiškai susisiekti su „roomba“.
Kodas:
funkcija parkasist (x), jei x == 1
r = roomba (26) % jungiasi prie roomba
kol tiesa
r.setDriveVelocity (.05,.05) % nustato „Roomba“lėtesnį važiavimo greitį
bump = r.getBumpers % gauna duomenis iš smūgio jutiklių
cliff = r.getCliffSensors % gauna duomenis iš uolos jutiklių
light = r.getLightBumpers % gauna duomenis iš šviesos smūgio jutiklių
img = r.getImage;% nuskaito fotoaparatą nuo roboto
red_mean = vidurkis (vidurkis (img (:,:, 1))) % nuskaito vidutinį raudonų pikselių kiekį
green_mean = vidurkis (vidurkis (img (:,:, 2))) % nuskaito vidutinį žaliųjų pikselių kiekį
blue_mean = vidurkis (vidurkis (img (:,:, 3))) % nuskaito vidutinį mėlynų pikselių kiekį
jei bump.front == 1 %skaito priekinius smūgio jutiklius
r.stop %sustabdo roomba
„msgbox“(„Kelias užtemdytas!“, „Automobilio stovėjimo padėjėjo pranešimas“) % rodo pranešimą, kuriame nurodoma, kad kelias yra užtemdytas, pertrauka % baigia ciklą
elseif green_mean> 150
r.stop %sustabdo roomba
cont = questdlg ('Tęsti?', 'Kelias baigtas') %rodo klausimo langelį, kuriame prašoma tęsti
jei tęsinys == 'Taip'
parkassist (1) %iš naujo paleidžia kodą
Kitas
galas
break % baigia ciklą
140
r.turnAngle (45) %pasuka kambarį 45 laipsnių kampu
r.timeStart %paleidžia laiko skaitiklį
kol tiesa
r.setDriveVelocity (.05,.05) %nustato roomba greitį
time = r.timeGet %priskiria laiką kintamajam
bump = r.getBumpers % gauna duomenis iš smūgio jutiklių
cliff = r.getCliffSensors % gauna duomenis iš uolos jutiklių
light = r.getLightBumpers % gauna duomenis iš šviesos smūgio jutiklių
img = r.getImage;% nuskaito fotoaparatą nuo roboto
red_mean = vidurkis (vidurkis (img (:,:, 1))) % nuskaito vidutinį raudonų pikselių kiekį
žalia_prasmė = vidurkis (vidurkis (img (:,:, 2))) % nuskaito vidutinį žaliųjų pikselių kiekį
blue_mean = vidurkis (vidurkis (img (:,:, 3))) % nuskaito vidutinį mėlynų pikselių kiekį
jei blue_mean> 120
r.moveDistance (-0,01) % perkelia „roomba“atgal nustatyto atstumo dainą „Play“(r, „T400, C, D, E, F, G, A, B, C^“, „true“) % groja kylanti muzikinė skalė
msgbox ('Vanduo rastas!', 'Automobilio stovėjimo padėjėjo pranešimas') % rodo pranešimą, kad vanduo rastas r.turnAngle (-80) % pasuka kambarį 80 laipsnių kampu
pertrauka % baigia dabartinę kilpą
elseif light.rightFront> 25 || light.leftFront> 25 %nuskaito šviesos smūgio jutiklius
r.moveDistance (-0,01) % perkelia „roomba“atgal nustatytu atstumu
r.turnAngle (-35) % pasuka kambarį 35 laipsniais
pertrauka %baigia dabartinę kilpą
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %nuskaito abu uolos jutiklius
r.moveDistance (-0,1) % perkelia roomba atgal nustatytu atstumu
r.turnAngle (-80) %pasuka kambarį 80 laipsnių kampu
pertrauka % baigia dabartinę kilpą
kitas laikas> = 3
r.stop %sustabdo roomba
contin = questdlg ('Stotis nemokama, ar tęsti?', 'Automobilio stovėjimo padėjėjo pranešimas') %klausia, ar roomba turėtų tęsti, jei contin == 'Taip'
r.turnAngle (-90) % pasuka kambarį 90 laipsnių kampu
parkassist (1) %iš naujo paleidžia funkciją
Kitas
r.stop % sustabdo roomba
galas
Kitas
galas
galas
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %nuskaito abu uolos jutiklius
r.moveDistance (-0,1) %perkelia roomba atgal nustatytu atstumu
r.turnAngle (-90) %pasuka kambarį 90 laipsnių kampu
elseif cliff.rightFront <2500 %nuskaito tinkamą uolos jutiklį
r.turnAngle (-5) %šiek tiek pasuka roomba priešinga uolos jutiklio kryptimi
elseif cliff.leftFront <2500 %nuskaito kairiojo uolos jutiklį
r.turnAngle (5) %šiek tiek pasuka roomba priešinga uolos jutiklio kryptimi
Kitas
galas
galas
galas
4 žingsnis: išbandykite kodą ir robotą
Sukūrus kodą, kitas žingsnis buvo išbandyti kodą ir robotą. Kadangi kode galima atlikti daug įvairių koregavimų, pvz., Kampas, kuriuo robotas pasisuka, jo judėjimo greitis ir kiekvienos spalvos slenksčiai, geriausias būdas nustatyti šias roboto vertes yra išbandyti juos ir keičiasi eidami. Kiekvieną darbo dieną mes nuolat keisdavome šias vertybes, nes kai kurios iš jų priklauso nuo aplinkos, kurioje veikia jūsų robotas. Geriausias būdas, kurį radome, buvo patalpinti „roomba“į kelią, kuriuo norite eiti, ir pakankamai aukštą barjerą, kad fotoaparatas negalėtų aptikti spalvų, kurių nenorite. Kitas žingsnis yra leisti jam veikti ir parodyti norimas spalvas, kai norite, kad jis atliktų šią užduotį. Jei matote problemą, geriausia tai padaryti - stumti priekinį buferį, kad jis sustotų, tada pakeisti parametrą, dėl kurio kilo problemų.
5 žingsnis: Klaidos atpažinimas
Užbaigus kiekvieną projektą, visada yra klaidų šaltinių. Mes patyrėme klaidą vien dėl to, kad robotas nėra tikslus kampo, kuriuo jis sukasi, taigi, jei liepsite pasukti 45 laipsnius, jis nebus tikslus. Kitas klaidų šaltinis mums buvo tas, kad kartais robotas sugenda, ir jūs turite jį iš naujo nustatyti, kol jis vėl pradės veikti. Pagrindinis paskutinis mūsų klaidų šaltinis buvo tas, kad tas pats kodas neturės vienodo poveikio skirtingiems robotams, todėl gali tekti būti kantriems ir atitinkamai koreguoti.
6 žingsnis: Išvada
Dabar jūs turite visus įrankius, kad galėtumėte žaisti su savo „roomba“, o tai reiškia, kad galite bet kokiu būdu manipuliuoti kodu, norėdami pasiekti norimų tikslų. Tai turėtų būti geriausia jūsų dienos dalis, todėl linksminkitės ir vairuokite saugiai!
Rekomenduojamas:
IOT pagrįsta išmanioji automobilių stovėjimo aikštelė: 7 žingsniai
IOT pagrįsta išmanioji automobilių stovėjimo aikštelė: pateikė Tanmay Pathak ir Utkarsh Mishra. Studentai @ Tarptautinis informacinių technologijų institutas, Haidarabadas (IIITH) SANTRAUKA Sėkmingai įdiegėme IOT pagrįstą išmaniąją automobilių stovėjimo sistemą. Naudojant atskirus mazgus (artumo jutiklius) bet kada
Išmaniosios automobilių stovėjimo ir eismo kontrolės kibernetinė ir fizinė sauga: 6 žingsniai
Kibernetinė ir fizinė išmaniosios automobilių stovėjimo ir eismo kontrolės sauga: internetas auga milijardais prietaisų, įskaitant automobilius, jutiklius, kompiuterius, serverius, šaldytuvus, mobiliuosius įrenginius ir dar daugiau. Tai kelia daugybę rizikos ir pažeidžiamumų infrastruktūroje, eksploatuojant
Universiteto miestelio studentų automobilių stovėjimo aikštelė: 7 žingsniai (su nuotraukomis)
Universiteto miestelio studentų automobilių stovėjimo aikštelė: daugeliui studentų įdomu, kur galima pastatyti automobilį universiteto miestelyje. Norėdami išspręsti šią problemą, sukūriau šviečiantį Jutos valstijos universiteto miestelio pagrindinės teritorijos automobilių stovėjimo žemėlapį. Žemėlapis skirtas studentams greitai pažvelgti į tai, kokios yra automobilių stovėjimo vietos
Išmanioji automobilių stovėjimo aikštelė naudojant „Raspberry Pi“: 5 žingsniai
Išmanioji automobilių stovėjimo aikštelė naudojant „Raspberry Pi“: Šioje instrukcijoje mes sukursime visiškai automatinę automobilių stovėjimo sistemą, prijungtą prie žiniatinklio sąsajos. Galėsite pamatyti, kokia vieta užimta, nuspręsti, kas įeina ir kas išeina, ir ji aprūpinta automatine apšvietimo sistema
Atvirkštinė inžinerija ir automobilių stovėjimo jutiklių atnaujinimas: 7 žingsniai
Atvirkštinė inžinerija ir automobilių parkavimo jutiklių atnaujinimas: ši instrukcija parodo, kaip suprasti atvirkštinę inžineriją, analizuoti duomenis ir kurti naują produktą naudojant šią informaciją