INHOUDSOPGAWE:
Video: Roomba With MATLAB: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Hierdie projek maak gebruik van MATLAB en 'n programmeerbare robot van iRobot Create2. Deur ons kennis van MATLAB op die proef te stel, kan ons die Create2 programmeer om beelde te interpreteer en seine op te spoor. Die funksionaliteit van die robot hang hoofsaaklik af van die MATLAB -mobiele app en 'n Raspberry Pi -kameramodule.
Stap 1: Onderdele en materiaal
1. iRobot Create, Weergawe 2
- Dit is 'n programmeerbare robot wat soos 'n Roomba lyk. Hou in gedagte dat hierdie produk van iRobot nie 'n vakuum is nie. Dit is bedoel vir persoonlike programmering deur die gebruiker.
2. MATLAB 2017a
- Die meeste ouer weergawes sal versoenbaar wees met die kode wat ons hieronder gebruik het. MATLAB sal 'n opdrag identifiseer wat nie versoenbaar is met die weergawe wat u het nie en 'n opdrag wat die beste pas, voorstel.
3. Framboos Pi 3 Model B, weergawe 1.2
- Kyk of die Raspberry Pi versoenbaar is met u iRobot. Sien hierdie skakel vir verdere hulp: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Hierdie instruksie neem aan dat u met 'n vooraf geprogrammeerde Raspberry Pi werk. Hou in gedagte dat u met 'n vooraf geprogrammeerde Pi moet werk om die volgende stappe te laat werk. As u 'n vooraf geprogrammeerde Pi gebruik, kan u al u kodering alleen in MATLAB uitvoeren.
4. Kameramodule V2 (vir Raspberry Pi)
- U sal miskien verbaas wees; ten spyte van die grootte, is die Raspberry Pi -kameramodule van baie goeie gehalte. Dit is die goedkoopste en mees versoenbare opsie vir hierdie projek.
Opsioneel: 3D-gedrukte staander. Dit word gebruik om die kamera te stabiliseer. Dit beïnvloed nie die funksionaliteit van die robot nie, maar dit sal u kodering help as u beelddata vir kleur- en/of voorwerpherkenning wil gebruik.
Stap 2: Konfigurasie
1. Koppel Raspberry Pi en kameramodule (hardeware)
- Om die Raspberry Pi aan te dryf, moet u 'n manlike uiteinde -mikro -USB na die vroulike kragpoort van die mikrobeheerder stuur. Opsioneel: 'n Spanningsreguleerder kan gebruik word om te verseker dat die spanning nie 5V oorskry nie. Nadat u die Raspberry Pi aangeskakel het, kan u dit aan u robot koppel deur 'n USB -poort van die moederbord na die USB -poort A op die mikrobeheerder te stuur.
- Nadat die Pi aan die Roomba gekoppel is, is die kamera gereed om geïnstalleer te word. Die kameramodule sal baie kleiner wees as wat u verwag. Let daarop dat die lens op 'n sensor gemonteer is en dat 'n wit lint van die kamera af strek. Moenie die lint verwyder of skeur nie! Dit is die kabel wat u nodig het om dit aan die Raspberry Pi te koppel. Hou eers die einde van die lint vas en vind die silwer verbindings en die blou kabel. Dit is aan weerskante. Soek vervolgens die gleuf tussen die ethernet- en HDMI -poorte op u Raspberry Pi. Let op dat daar 'n klein, wit slot is wat dit bedek. Lig die slot stadig op, maar moenie dit uit die gleuf haal nie, want dit sal klap en permanent beskadig word. Sodra u die slot opgetel het, gryp u die lint en kyk na die silwer verbindings na die HDMI -poort. Die blou kant wys na die Ethernet -poort. Skuif die lint stadig in die gleuf terwyl dit nog oopgesluit is. U hoef dit nie in die gleuf te dwing nie. Na die insetting, druk die slot terug. As u kamera behoorlik vasgemaak is, moet u die lint (saggies) kan trek en spanning kan voel. Die lint moet nie los wees nie. Nadat u u kamera aan die Pi gekoppel het, kan u agterkom hoe los dit is. Daarom het ons 'n 3D-gedrukte houer gebruik om dit te stabiliseer. Dit is u keuse om te bepaal watter materiaal u wil gebruik om u kamera stil te hou vir hoë kwaliteit beeldvorming.
2. Behoorlike lêers installeer en Roomba aan u rekenaar koppel Nadat al u hardeware gekonfigureer is, kan u nou voortgaan met die installering van MATLAB saam met die gepaardgaande m-lêers waarmee u met die robot kan kommunikeer. Om dit te doen, maak MATLAB oop en skep 'n nuwe gids om alle verwante lêers bymekaar te hou. Gebruik hierdie script om die vereiste lêers te installeer/op te dateer:
- Alle lêers moet nou in u geskepte gids verskyn. Klik met die rechtermuisknop in die venster Huidige gids en kies 'Voeg by pad' om die pad by te voeg tot die lys gidse waar MATLAB lêers soek. Maak seker dat al u lêers op die regte pad is.
3. Sodra die lêers geïnstalleer is, kan u nou aan u robot koppel. Begin deur u robot aan te skakel en herstel dit dan onmiddellik na die aanvang (moenie vergeet om u robot elke keer voor en na gebruik te herstel nie). Koppel tweedens u robot en skootrekenaar aan dieselfde wifi -netwerk. Hierna praat ons met die vooraf geprogrammeerde Raspberry Pi via MATLAB deur die Roomba te bel met die voornaam en die funksie roomba. Ek sou byvoorbeeld met robot 28 konnekteer deur die volgende reël te gebruik: R = roomba (28).
- Let op hoe ek die voorwerp aan 'n veranderlike R. toegewys het. Ek het nou toegang tot die gepaardgaande Roomba -funksies vanaf die installeringslêer deur die veranderlike R soos 'n struktuur te behandel.
- R.turnAngle (90) As alles goed verloop, moet 'n musikale toon speel wat die verband bevestig.
Stap 3: MATLAB Logic
Die PDF -dokument onderaan hierdie stap is 'n gedetailleerde logika -vloeidiagram vir ons koderingsproses in MATLAB. Ons het die krans-, lig- en ligstampsensors geaktiveer om die robot in staat te stel om met ons te kommunikeer wanneer hy 'n voorwerp in sy onmiddellike omgewing opspoor. As die robot byvoorbeeld vorentoe beweeg, soek sy ligsensors na voorwerpe in sy pad volgens die vektor waarteen hy beweeg. Ons het 'n afstanddrempel vir die robot gekies, sodat wanneer dit 'n voorwerp nader, dit omdraai in plaas daarvan om daarmee te bots. Ons robot is ook gekonfigureer met Twitter, wat ons in ons koderingsproses gespesifiseer het (dit sal hieronder getoon word).
Om die ervaring te verbeter, het ons die MATLAB -toepassing op ons mobiele toestelle gebruik, sodat ons die bewegings van die robot kan beheer deur net ons telefone te kantel. Dit is 'n opsionele aktiwiteit, aangesien u die robot beslis kan laat beweeg deur die opdrag moveDistance in die MATLAB -kodesegment te gebruik. Hou in gedagte dat die gebruik van MATLAB -opdragte om u robot te beheer die voorkeur geniet as u doel presies wil wees. As u u robot wil rig sodat die kamera op 'n spesifieke plek 'n foto neem, is dit beter om die bewegings van die robot in MATLAB te kodeer. Terwyl dit vermaaklik is, is die gebruik van die MATLAB -toepassing om u robot te beheer nie wenslik vir akkuraatheid nie.
Die kode beveel die Roomba om 'n basiese opstelling uit te voer en dan deur 'n deurlopende lus te gaan. Aanvanklik sal die skootrekenaar 'n skakel met die Roomba opstel met behulp van die opdrag Roomba (). Dit stel ook die twitter -verbinding op met die opdrag webwrite () in MATLAB. Die lus bevat vyf hoof logiese vloei, afhangende van die omgewing rondom die Roomba. Eerstens kyk die Roomba na hindernisse en pas agteruit as hy agterkom dat dit belemmer word. In die lus is die tweede pad wat gebruikers in kennis stel as die Roomba weggevoer word. 'N Belangrike hulpmiddel in die harde Mars -oorlogsone. Nadat die Roomba vasgestel het dat sy posisie veilig is, kyk hy na die mobiele toestel om die volgende beweging daarvan te bepaal. As die mobiele toestel vorentoe gekantel word, sal dit 'n basissnelheid bereken, afhangende van die erns van die rolmeting, as om die individuele wielsnelhede aan te pas op grond van die toonhoogte. Die telefoon kan die Roomba ook agteruit skuif. 'N Neutrale toestand vir mobiele toestelle maak die laaste twee paaie oop. 'N Rustende Roomba sal na 'n vreemde vlag soek en die gebruiker dienooreenkomstig waarsku.
Hieronder is ons kode (voltooi in MATLAB 2017a)
%insette: oriëntasiedata van 'n wifi -gekoppelde toestel, kamera
%inligting, sensordata
%uitsette: beweging word beheer deur die wifi -gekoppelde toestel en die beweging
% word veiligheid nagegaan deur sensordata te lees. As die kamera opspoor
'n uitheemse vlag, dan reageer die roomba deur die vyandelike vlag te tweet
% is opgemerk.
doel: ons toestel het geen doel nie, behalwe om diegene te beskerm wat
% dit geskep het, dit dien sy skepper en doen dit
% presies wat dit gesê is.
%Gebruik: in wese loop die program op sy eie.
maak alles skoon, sluit almal, clc
%Initialiseer voorwerpe en veranderlikes
r = roomba (28);
m = mobiledev;
%gebruik reaksie = webskryf (gasheernaam, data)
gasheernaam = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop is operasioneel … wag op bevel';
data = strcat ('api_key =', API, '& status =', tweet);
antwoord = webskryf (gasheernaam, data);
%loop voortdurend lus
terwyl 1 == 1
%Strukture wat herhalende data bevat
o = m.oriëntasie; %oriëntasie van mobiele toestel
lig = r.getLightBumpers (); %Ligte bufferwaardes
a = r.getCliffSensors (); %CLiff Sensor Waardes
stamp = r.getBumpers (); %Bumpersensors
kontroleer buffers
as bump.right == 1 || stamp.links == 1 || stamp.front == 1
r.moveDistance (-. 2,.2);
%kontroleer ligsensors
andersif lig.links> 60 || lig.linksVoor> 60 || lig.sentrum> 60 || lig.reg> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
kyk na Cliff Sensors
%Anti-diefstal sein en kennisgewing
elseif a.links <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.biep ();
tweet = 'RoboCop is opgehef!'
data = strcat ('api_key =', API, '& status =', tweet);
antwoord = webskryf (gasheernaam, data);
%Normale kransvermyding
anders as a.links <300 || a.reg <300 || a.linksVoor <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
%Roomba het die tjeks geslaag en sal nou met normale werking werk.
%Die rol van die toestel word aanvanklik gemeet en word 'n basis
%snelheid wat dan gebruik word om die wiel spoed te bereken
%Beweging vorentoe
andersif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
as o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
anders as o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
anders r.stop
einde
Terugwaartse beweging
anders as o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.biep ();
r.biep ();
%rustende roomba sal soek na die uitheemse vlag wat as 'n bloeisel gemerk is
%groen stuk papier
anders
r.stop
img = r.getImage (); %neem beeld
drumpel = grys (img (200: 383,:, 2))+. 1; %calc groen vlak
as drempel>.42
tweet = 'Vyand raakgesien !!'
data = strcat ('api_key =', API, '& status =', tweet);
antwoord = webskryf (gasheernaam, data);
anders
r.stop
einde
einde
einde
Stap 4: Gevolgtrekking
Onthou, u kan die skrif wat ons hierbo geskryf het, gebruik, maar u kan dit altyd aanpas volgens u behoeftes. Dit hoef nie deur u telefoon beheer te word nie! (Dit maak dit egter lekkerder.) Kies watter metode u verkies om u robot te beheer. Ry rond met jou robot en geniet!
Aanbeveel:
MATLAB -beheerde Roomba: 5 stappe
MATLAB -beheerde Roomba: Die doel van hierdie projek is om MATLAB sowel as 'n aangepaste iRobot -programmeerbare robot te gebruik. Ons groep het ons koderingsvaardighede gekombineer om 'n MATLAB -script te skep wat baie funksies van die iRobot gebruik, insluitend die kransensors, bumper sens
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
Browser -beheerde Roomba -robot met die Raspberry Pi Model 3 A+: 6 stappe (met foto's)
Browser -beheerde Roomba -robot Met die Raspberry Pi Model 3 A+: Oorsig Hierdie instruksie fokus op hoe om 'n dooie Roomba 'n nuwe brein (Framboos Pi), oë (Webcam) en 'n manier te gee om alles vanuit 'n webblaaier te beheer. Daar is baie Roomba -hacks wat beheer moontlik maak via die seriële koppelvlak. Ek het nie
Roomba MATLAB -projek: 5 stappe
Roomba MATLAB -projek: Die huidige plan wat NASA vir die Mars -rover het, is dat dit 'n data -insamelaar moet wees en om Mars kan rondbeweeg en monsters van die grond kan versamel om na die aarde terug te bring, sodat wetenskaplikes kan sien of daar vorige lewensvorme bestaan die planeet. Bykomende
Roomblock: 'n platform om ROS -navigasie te leer met Roomba, Raspberry Pi en RPLIDAR: 9 stappe (met foto's)
Roomblock: 'n platform om ROS -navigasie te leer met Roomba, Raspberry Pi en RPLIDAR: Wat is dit? &Quot; Roomblock " is 'n robotplatform wat bestaan uit 'n Roomba, 'n Raspberry Pi 2, 'n lasersensor (RPLIDAR) en 'n mobiele battery. Die monteerraam kan deur 3D -drukkers gemaak word. Met die ROS -navigasiestelsel kan u 'n kaart van die kamers maak en