Turinys:
- 1 žingsnis: dalys ir medžiagos
- 2 žingsnis: konfigūravimas
- 3 žingsnis: „MATLAB Logic“
- 4 žingsnis: Išvada
Video: „Roomba“su MATLAB: 4 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Šiame projekte naudojamas MATLAB ir programuojamas robotas „iRobot Create2“. Išbandę savo žinias apie MATLAB, mes galime užprogramuoti „Create2“, kad jis interpretuotų vaizdus ir aptiktų signalus. Roboto funkcionalumas daugiausia priklauso nuo mobiliosios programos MATLAB ir „Raspberry Pi“kameros modulio.
1 žingsnis: dalys ir medžiagos
1. „iRobot Create“, 2 versija
- Tai programuojamas robotas, kuris atrodo kaip „Roomba“. Atminkite, kad šis „iRobot“produktas nėra vakuumas. Jis skirtas vartotojo individualiam programavimui.
2. MATLAB 2017a
- Dauguma senesnių versijų bus suderinamos su kodu, kurį naudojome toliau. MATLAB nustatys komandą, kuri nesuderinama su jūsų turima versija, ir pasiūlys geriausiai tinkančią komandą.
3. Raspberry Pi 3 B modelis, 1.2 versija
- Patikrinkite, kuris „Raspberry Pi“yra suderinamas su jūsų „iRobot“. Norėdami gauti daugiau pagalbos, žiūrėkite šią nuorodą: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ši instrukcija daro prielaidą, kad dirbate su iš anksto užprogramuotu „Raspberry Pi“. Atminkite, kad jums reikės dirbti su iš anksto užprogramuotu Pi, kad šie veiksmai veiktų. Naudodami iš anksto užprogramuotą Pi galėsite visą kodavimą atlikti tik MATLAB.
4. Fotoaparato modulis V2 (skirtas „Raspberry Pi“)
- Galite nustebti; nepaisant savo dydžio, „Raspberry Pi“fotoaparato modulis yra labai geros kokybės. Tai pigiausias ir labiausiai suderinamas šio projekto variantas.
Neprivaloma: 3D atspausdintas stovas. Jis naudojamas fotoaparatui stabilizuoti. Tai neturi įtakos roboto funkcionalumui, tačiau padės koduoti, jei norite naudoti vaizdo duomenis spalvų ir (arba) objektų atpažinimui.
2 žingsnis: konfigūravimas
1. Raspberry Pi ir fotoaparato modulio prijungimas (aparatinė įranga)
- Norėdami įjungti „Raspberry Pi“, turėsite paleisti mikro USB jungtį prie mikrovaldiklio moteriško maitinimo prievado. Neprivaloma: įtampos reguliatorius gali būti naudojamas siekiant užtikrinti, kad įtampa neviršytų 5 V. Įjungę „Raspberry Pi“, galite prijungti jį prie savo roboto, paleisdami USB galą iš pagrindinės plokštės į mikrovaldiklio USB prievadą A.
- Prijungus „Pi“prie „Roomba“, fotoaparatas paruoštas montuoti. Kameros modulis bus daug mažesnis nei tikitės. Atminkite, kad objektyvas yra pritvirtintas prie jutiklio, o nuo fotoaparato tęsiasi balta juostelė. NEGALIMA juostelės nuimti ar suplėšyti! Tai yra kabelis, kurį reikia prijungti prie „Raspberry Pi“. Pirmiausia laikykite juostelės galą ir raskite sidabrines jungtis bei mėlyną kabelį. Jie yra priešingose pusėse. Tada raskite lizdą tarp „Raspberry Pi“eterneto ir HDMI prievadų. Atkreipkite dėmesį, kad jį dengia maža, balta spyna. Lėtai pakelkite užraktą, bet neišimkite iš lizdo, nes jis užsifiksuos ir bus visam laikui pažeistas. Pakėlę užraktą, patraukite juostelę ir nukreipkite sidabrines jungtis prie HDMI prievado. Mėlyna pusė bus nukreipta į Ethernet prievadą. Lėtai įstumkite juostelę į angą, kol ji vis dar yra atrakinta. Jūs neprivalote jo įstumti į lizdą. Įdėję, paspauskite užraktą atgal žemyn. Jei jūsų fotoaparatas yra tinkamai pritvirtintas, turėtumėte (švelniai) patraukti juostelę ir jausti įtampą. Juostelė neturėtų būti laisva. Prijungę fotoaparatą prie „Pi“, galite pastebėti, koks jis laisvas. Štai kodėl mes naudojome 3D spausdintą laikiklį, kad jį stabilizuotume. Jūs galite nuspręsti, kokias medžiagas norite naudoti, kad fotoaparatas nejudėtų, kad būtų užtikrintas aukštos kokybės vaizdas.
2. Tinkamų failų diegimas ir „Roomba“prijungimas prie kompiuterio Kai visa jūsų aparatinė įranga yra sukonfigūruota, dabar galite pereiti prie MATLAB diegimo kartu su susijusiais m-failais, leidžiančiais bendrauti su robotu. Norėdami tai padaryti, atidarykite MATLAB ir sukurkite naują aplanką, kad visi susiję failai būtų kartu. Naudokite šį scenarijų norimiems failams įdiegti/atnaujinti:
- Dabar visi failai turėtų būti rodomi jūsų sukurtame aplanke. Dešiniuoju pelės mygtuku spustelėkite langą Dabartinis aplankas ir pasirinkite „Pridėti prie kelio“, kad įtrauktumėte tą kelią į katalogų, kuriuose MATLAB ieško failų, sąrašą. Įsitikinkite, kad visi failai yra teisingame kelyje.
3. Įdiegę failus, dabar galite pradėti prisijungti prie savo roboto. Pradėkite įjungdami robotą ir iš naujo jį iš naujo nustatę iškart po paleidimo (nepamirškite iš naujo nustatyti roboto kiekvieną kartą prieš ir po naudojimo). Antra, prijunkite savo robotą ir nešiojamąjį kompiuterį prie to paties „Wi -Fi“tinklo. Po to mes kalbėsime su iš anksto užprogramuotu „Raspberry Pi“per MATLAB, paskambindami „Roomba“naudodami jos pavadinimą ir funkciją „roomba“. Pavyzdžiui, prisijungčiau prie roboto 28 naudodamas šią eilutę: R = roomba (28).
- Atkreipkite dėmesį, kaip aš priskyriau objektą kintamajam R. Dabar galiu pasiekti susijusias „Roomba“funkcijas iš diegimo failo, kintamąjį R laikydamas struktūra.
- R.turnAngle (90) Jei viskas klostėsi gerai, turėtų skambėti muzikinis tonas, patvirtinantis ryšį.
3 žingsnis: „MATLAB Logic“
Šio dokumento apačioje esantis PDF dokumentas yra išsami mūsų kodavimo proceso loginė schema MATLAB. Mes suaktyvinome skardžio, šviesos ir šviesos smūgio jutiklius, kad robotas galėtų su mumis bendrauti, kai jis aptinka arti esantį objektą. Pavyzdžiui, kai robotas juda į priekį, jo šviesos jutikliai nuskaito jo kelyje esančius objektus pagal vektorių, kuriuo jis keliauja. Mes pasirinkome roboto atstumo slenkstį, kad priartėjus prie objekto jis apsisuktų, o ne susidurtų su juo. Mūsų robotas taip pat sukonfigūruotas naudojant „Twitter“, kurį nurodėme kodavimo procese (tai bus parodyta žemiau).
Siekdami pagerinti patirtį, mobiliuosiuose įrenginiuose panaudojome programą MATLAB, kad galėtume valdyti roboto judesius tiesiog pakreipę telefonus. Tai neprivaloma veikla, nes tikrai galite priversti robotą judėti naudodami MATLAB kodo segmento komandą „moveDistance“. Atminkite, kad norint valdyti robotą, geriausia naudoti MATLAB komandas. Jei norite nukreipti robotą taip, kad fotoaparatas fotografuotų tam tikroje vietoje, gali būti geriau koduoti roboto judesius MATLAB. Nors pramogauti, norint valdyti robotą MATLAB programa nėra pageidautina.
Kodas nurodo „Roomba“atlikti pagrindinę sąranką, o tada tęsti nepertraukiamą ciklą. Iš pradžių nešiojamasis kompiuteris nustatys ryšį su „Roomba“naudodami komandą „Roomba“(). Taip pat nustatomas „Twitter“ryšys naudojant „WebWrite“() komandą MATLAB. Ciklas apima penkis pagrindinius loginius srautus, priklausomai nuo „Roomba“supančios aplinkos. Pirmiausia „Roomba“patikrina, ar nėra kliūčių, ir nustato, kad tai trukdo atgal. Į tą ciklą įterptas yra antrasis kelias, įspėjantis vartotojus, jei „Roomba“yra išvežamas. Svarbi priemonė atšiaurioje Marso karo zonoje. „Roomba“nustatęs, kad jo padėtis yra saugi, jis žiūri į mobilųjį įrenginį, kad nustatytų kitą jo judesį. Jei mobilusis prietaisas yra pakreiptas į priekį, jis apskaičiuoja bazinį greitį, atsižvelgdamas į ritinio matavimo sunkumą, nei sureguliuoja atskirų ratų greitį, kad apsisuktų pagal žingsnio laipsnį. Telefonas taip pat gali perkelti „Roomba“atvirkščiai. Neutrali mobiliojo prietaiso būsena atveria paskutinius du kelius. Poilsio metu „Roomba“ieškos ateivių vėliavos ir atitinkamai įspės vartotoją.
Žemiau yra mūsų kodas (užpildytas MATLAB 2017a)
%įėjimų: orientaciniai duomenys iš „Wi -Fi“prijungto įrenginio, fotoaparato
%informacijos, jutiklių duomenys
%išėjimų: judesį valdo „Wi -Fi“prijungtas įrenginys ir judesys
% saugumas tikrinamas skaitant jutiklių duomenis. Jei fotoaparatas aptinka
% svetima vėliava, tada „roomba“atsako tviteryje priešo vėliavą
% pastebėta.
tikslas: mūsų prietaisas gyvena be jokio tikslo, išskyrus apsaugoti tuos, kurie
% ją sukūrė, ji tarnauja jos kūrėjui ir daro
% tiksliai tai, kas pasakyta.
Naudojimas: iš esmės programa veiks savaime.
išvalyti viską, uždaryti viską, clc
%Objektų ir kintamųjų inicijavimas
r = roomba (28);
m = mobiledev;
%use response = webwrite (pagrindinio kompiuterio pavadinimas, duomenys)
pagrindinio kompiuterio pavadinimas = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop veikia … laukia komandos';
duomenys = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (pagrindinio kompiuterio pavadinimas, duomenys);
%nuolat veikianti kilpa
o 1 == 1
%Struktūrų, kuriose yra svarbių duomenų
o = m.orientacija; %mobiliojo įrenginio orientacijos
šviesa = r.getLightBumpers (); %Lengvos buferio vertės
a = r.getCliffSensors (); %CLiff jutiklio vertės
guzas = r.getBumpers (); Buferio jutikliai %
%patikrintų buferių
jei guzas. dešinė == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%patikrinti lemputės jutikliai
elseif light. kairė> 60 || light.leftFront> 60 || light.leftCenter> 60 || šviesa.dešinė> 60 || šviesa.priekyje> 60 || šviesa. dešinysis centras> 60
r.moveDistance (-. 2,.2);
%patikrinkite uolų jutiklius
Apsaugos nuo vagystės signalas ir pranešimas
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r. pypsėjimas ();
tweet = 'RoboCop buvo pašalintas!'
duomenys = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (pagrindinio kompiuterio pavadinimas, duomenys);
%Įprasta uolų vengimo operacija
elseif a.kairė <300 || a. teisingai <300 || a.leftFront <300 || a.priekyje <300
r.moveDistance (-. 2,.2);
%Roomba išlaikė patikrinimus ir dabar veiks normaliai.
%Iš pradžių matuojamas prietaiso ritinys ir jis tampa pagrindu
greičio %, kuris naudojamas rato greičiui apskaičiuoti
%Judėjimas pirmyn
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
jei o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
kitaip r.stop
galas
%Judėjimas atgal
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r. pypsėjimas ();
r. pypsėjimas ();
%resting roomba ieškos svetimos vėliavos, pažymėtos kaip fluorescencinė
%žalias popieriaus gabalas
Kitas
r.stop
img = r.getImage (); %fotografuoja
slenkstis = graythresh (img (200: 383,:, 2))+. 1; %apskaičiuotas žalias lygis
jei slenkstis>.42
tweet = 'Pastebėtas priešas !!'
duomenys = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (pagrindinio kompiuterio pavadinimas, duomenys);
Kitas
r.stop
galas
galas
galas
4 žingsnis: Išvada
Atminkite, kad galite naudoti aukščiau parašytą scenarijų, tačiau visada galite jį pakeisti, kad atitiktų jūsų poreikius. Jis neturi būti valdomas jūsų telefonu! (Tačiau tai daro jį linksmesnį.) Pasirinkite, kurį metodą norite naudoti savo robotui valdyti. Važiuokite su savo robotu ir mėgaukitės!
Rekomenduojamas:
„Roomba Bot the Bulider“: 5 žingsniai (su nuotraukomis)
„Roomba Bot the Bulider“: „Bot the Builder“yra „roomba“, kurioje yra " grabers " pritvirtintas prie priekio, galės perkelti objektus. Kodas su juo nustatytas įrašyti pirmąjį judesį naudojant GUI dėžutę, kurią galite valdyti tik pelės paspaudimu. Po to
„MATLAB“valdoma „Roomba“: 5 žingsniai
„MATLAB“valdoma „Roomba“: Šio projekto tikslas yra panaudoti MATLAB ir modifikuotą programuojamą robotą „iRobot“. Mūsų grupė sujungė mūsų kodavimo įgūdžius, kad sukurtume MATLAB scenarijų, kuris naudoja daugybę „iRobot“funkcijų, įskaitant uolų jutiklius, buferio jutiklį
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: 6 žingsniai (su nuotraukomis)
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: apžvalga Šioje instrukcijoje pagrindinis dėmesys bus skiriamas mirusiai Roombai suteikti naujas smegenis („Raspberry Pi“), akis (žiniatinklio kamera) ir būdą, kaip viską valdyti naudojant žiniatinklio naršyklę. Yra daug „Roomba“įsilaužimų, kuriuos galima valdyti naudojant serijinę sąsają. Aš neturiu
„Roomba MATLAB“projektas: 5 žingsniai
„Roomba MATLAB“projektas: Dabartinis NASA planas, skirtas roveriui „Mars“, yra tai, kad jis bus duomenų rinkėjas ir klaidžioja aplink Marsą, renka dirvožemio mėginius, kad juos sugrąžintų į Žemę, kad mokslininkai galėtų pamatyti, ar egzistavo ankstesnės gyvybės formos. planeta. Papildomas
„Roomblock“: platforma mokytis ROS navigacijos su „Roomba“, „Raspberry Pi“ir „RPLIDAR“: 9 žingsniai (su nuotraukomis)
„Roomblock“: platforma mokytis ROS navigacijos su „Roomba“, „Raspberry Pi“ir „RPLIDAR“: kas tai yra? &Quot; Roomblock " yra roboto platforma, kurią sudaro „Roomba“, „Raspberry Pi 2“, lazerinis jutiklis (RPLIDAR) ir mobilioji baterija. Montavimo rėmas gali būti pagamintas naudojant 3D spausdintuvus. ROS navigacijos sistema leidžia sudaryti kambarių žemėlapį ir naudoti