Përmbajtje:
- Hapi 1: Pjesët dhe materialet
- Hapi 2: Skedari i bazës së të dhënave Roomba
- Hapi 3: Lidhja me Roomba
- Hapi 4: Kodi
- Hapi 5: Përfundimi
Video: Roomba e kontrolluar MATLAB: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Qëllimi i këtij projekti është të përdorë MATLAB si dhe një robot të programueshëm të modifikuar iRobot. Grupi ynë kombinoi aftësitë tona të kodimit për të krijuar një skenar MATLAB që përdor shumë funksione të iRobot, duke përfshirë sensorët e shkëmbit, sensorët e parakolpit, sensorët e dritës dhe kamerën. Ne i përdorëm këto lexime të sensorit dhe kamerës si hyrje, duke na lejuar të krijojmë disa dalje që duam duke përdorur funksionet dhe sythe të kodit MATLAB. Ne gjithashtu përdorim pajisjen mobile dhe xhiroskopin MATLAB si një mënyrë për t'u lidhur me iRobot dhe për ta kontrolluar atë.
Hapi 1: Pjesët dhe materialet
MATLAB 2018a
-Variacioni 2018 i MATLAB është versioni më i preferuar, kryesisht sepse punon më së miri me kodin që lidhet me pajisjen celulare. Sidoqoftë, shumica e kodit tonë mund të interpretohet në shumicën e versioneve të MATLAB.
iRobot Krijo pajisje
-Kjo pajisje është një pajisje e bërë posaçërisht, qëllimi i vetëm është programimi dhe kodimi. (Nuk është një vakum aktual)
Raspberry Pi (me kamera)
- Ky është një bord kompjuterik jo i shtrenjtë që punon si truri i iRobot. Mund të jetë e vogël, por është e aftë për shumë gjëra. Kamera është një shtesë shtesë. Ai gjithashtu përdor mjedrën pi për të marrë të gjitha funksionet dhe komandat e tij. Kamera e fotografuar më sipër është montuar në një stendë të printuar 3D, krijuar nga departamentet e Bazave Inxhinierike në Universitetin e Tennessee
Hapi 2: Skedari i bazës së të dhënave Roomba
Ekziston një skedar kryesor që do t'ju nevojitet në mënyrë që të përdorni funksionet dhe komandat e duhura për dhomën tuaj. Ky skedar është vendi ku kodi i shkruar ju tërheq funksionet në mënyrë që ta bëni funksionimin e dhomës tuaj më të menaxhueshme.
Ju mund ta shkarkoni skedarin në këtë lidhje ose skedarin e shkarkueshëm më poshtë
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Hapi 3: Lidhja me Roomba
Së pari, duhet të siguroheni që roboti juaj të jetë i lidhur me bordin tuaj të mjedrës pi duke përdorur një prizë mikro USB. Atëherë duhet të lidhni siç duhet kompjuterin dhe robotin tuaj me të njëjtin WiFi. Pasi të jetë bërë kjo, mund të ndizni robotin tuaj dhe të lidheni me të duke përdorur komandën e dhënë në skedarin e bazës së të dhënave robot. (Rivendosni gjithmonë robotin tuaj para dhe pasi ta përdorni). Për shembull, ne përdorim komandën "r.roomba (19)" për t'u lidhur me robotin tonë, duke i caktuar ndryshoren r pajisjes sonë. Kjo i referohet skedarit të bazës së të dhënave, e cila krijon variablin tonë si një strukturë që ne mund t'i referohemi në çdo moment të caktuar.
Hapi 4: Kodi
Ne i kemi bashkangjitur kodin e plotë më poshtë, por këtu është një përmbledhje e shkurtër që nxjerr në pah elementet e rëndësishme në shkrimin tonë. Ne kemi përdorur të gjithë sensorët, si dhe kamerën për të maksimizuar plotësisht potencialin e robotit tonë. Ne gjithashtu përfshinë kodin që na lejoi të lidhim një pajisje celulare me robotin tonë dhe të përdorim gryoskopin e tij për ta kontrolluar me dorë.
Filluam me komandën e thjeshtë "r.setDriveVelocity (.06)" që vendos shpejtësinë e përparuar të robotit në.06 m/s. Kjo është vetëm për ta bërë robotin të lëvizë paraprakisht
Pastaj, skenari ynë kryesor fillon me një lak while që merr të dhënat e robotit të dhënë duke krijuar struktura që ne mund t'i referojmë dhe përdorim në deklaratat e kushtëzuara më poshtë, duke na lejuar kështu që t'i themi robotit të ekzekutojë një komandë të caktuar bazuar në të dhënat e strukturës roboti lexon me sensorët e tij. Ne e vendosëm atë në mënyrë që roboti të lexojë sensorët e tij të shkëmbit dhe të ndjekë një rrugë të zezë
ndërsa % e vërtetë ndërsa lak shkon derisa të ndodhë diçka "false" (në këtë rast vazhdon pafundësisht) të dhëna = r.getCliffSensors; data2 = r.getBumpers; % merr të dhëna vazhdimisht për vlerat e sensorit të shkëmbit dhe i cakton ato në një ndryshore % img = r.getImage; % Merr një fotografi nga kamera e montuar % imazh (img); % Tregon imazhin që është marrë % red_mean = mesatare (mesatarja (img (:,, 1))); % Merr vlerën mesatare për ngjyrën e gjelbër nëse data.rightFront <2000 r.turnAngle (-2); % e kthen Roomba afërsisht.2 gradë CW sapo vlera për sensorët e shkëmbinjve të përparmë të djathtë të bjerë nën 2000 r.setDriveVelocity (.05); elseif data.leftFront data.leftF front && 2000> data.rightF front r.moveDistanca (.1); % i thotë Roomba të vazhdojë përpara me afërsisht.2 m/s nëse të dy vlerat nga sensorët e djathtë të përparmë dhe të majtë para bien nën 2000 % r.turnAngle (0); % i thotë Roomba të mos kthehet nëse kushtet e lartpërmendura janë të vërteta
elseif data2.djathtas == 1 r.moveDistanca (-. 12); r.tornAngle (160); r.setDriveVelocity (.05); elseif data2.left == 1 r.moveDistanca (-. 2); r. ktheseAngle (5); r.setDriveVelocity (.05); elseif data2.front == 1 r.moveDistanca (-. 12); r.tornAngle (160); r.setDriveVelocity (.05);
Pas këtij laku while, ne fusim një lak while tjetër që aktivizon të dhënat e marra përmes kamerës. Dhe ne përdorim një deklaratë if brenda këtij laku while që njeh një imazh duke përdorur një program specifik (alexnet), dhe pasi identifikon imazhin, menjëherë aktivizon telekomandën e pajisjes celulare
anet = alexnet; % Cakton mësimin e thellë alexnet te një ndryshore ndërkohë e vërtetë % Infinite while loop img = r.getImage; img = imresize (img, [227, 227]); etiketë = klasifiko (anet, img); nëse etiketa == "peshqir letre" || etiketë == "frigorifer" label = "ujë"; imazhi i fundit (img); titulli (shenja (etiketa)); tërhiqem;
Cikli while që na lejon të kontrollojmë pajisjen me telefonin tonë i merr ato të dhëna nga xhiroskopi i telefonit dhe i lidhim në një matricë që vazhdimisht i kthen të dhënat përsëri në MATLAB në kompjuter. Ne përdorim një deklaratë if që lexon të dhënat e matricës dhe jep një dalje që lëviz pajisjen bazuar në vlera të caktuara të xhiroskopit të telefonit. Importantshtë e rëndësishme të dini se ne kemi përdorur sensorët e Orientimit të pajisjes celulare. Matrica një nga tre e përmendur më sipër kategorizohet sipas secilit element të sensorëve të orientimit të telefonit, i cili është azimut, katran dhe anë. Deklaratat if krijuan kushte që deklarojnë kur ana tejkalon vlerat 50 ose bie nën -50, atëherë roboti lëviz një distancë të caktuar përpara (pozitive 50) ose prapa (negative 50). Dhe e njëjta gjë vlen edhe për vlerën e katranit. Nëse vlera e katranit tejkalon vlerën 25 të nën -25, roboti kthehet në një kënd prej 1 gradë (pozitiv 25) ose negativ 1 gradë (negativ 25)
ndërsa pauzë e vërtetë (.1) % Pauzë prej.5 sekonda para se të merret secila vlerë Controller = iphone. Orientimi; % Cakton matricën për vlerat e orientimit të iPhone në një ndryshore Azimuthal = Kontrollues (1); % Cakton vlerën e parë të matricës në një ndryshore Pitch = Controller (2); % Cakton vlerën e dytë të matricës në një ndryshore (anojeni përpara dhe mbrapa kur iPhone mbahet anash) Anash = Kontrolluesi (3); % Cakton vlerën e tretë të matricës në një ndryshore (anojeni majtas dhe djathtas kur iPhone mbahet anash) % Shkakton një dalje bazuar në orientimin e telefonit nëse Side> 130 || Ana 25 r.moveDistanca (-. 1) % Zhvendos Roomba mbrapsht përafërsisht.1 metra nëse iPhone është i përkulur prapa së paku 25 zbresë tjetërpas anës 25 r.tornAngle (-1) % Kthen Roomba afërsisht 1 gradë CCW nëse iPhone është i përkulur majtas të paktën 25 gradë elseif Pitch <-25 r.turnAngle (1) % Kthen Roomba afërsisht 1 gradë CW nëse iPhone është i përkulur të paktën 25 gradë në fund
Këto janë vetëm pikat kryesore të pjesëve kryesore të kodit tonë, të cilat i kemi përfshirë nëse keni nevojë të kopjoni dhe ngjisni shpejt një seksion për përfitimin tuaj. Sidoqoftë, i gjithë kodi ynë është i bashkangjitur më poshtë nëse është e nevojshme
Hapi 5: Përfundimi
Ky kod që kemi shkruar është krijuar posaçërisht për robotin tonë, si dhe vizionin tonë të përgjithshëm të projektit. Qëllimi ynë ishte të përdorim të gjitha aftësitë tona të kodimit MATLAB në mënyrë që të krijojmë një skenar të dizajnuar mirë që përdor shumicën e veçorive të robotit. Përdorimi i kontrolluesit të telefonit nuk është aq i vështirë sa mund të mendoni, dhe ne shpresojmë që kodi ynë mund t'ju ndihmojë të kuptoni më mirë konceptin pas kodimit të një iRobot.
Recommended:
Mikrokontrolluesi i kontrolluar MATLAB (Arduino MKR1000): 4 hapa
Mikrokontrolluesi i kontrolluar MATLAB (Arduino MKR1000): Qëllimi i projektit tonë ishte të shfrytëzonim MATLAB si dhe Arduino MKR1000 në maksimumin e aftësive tona. Qëllimi ynë ishte të krijonim një skenar që lejonte veçori të caktuara të arduino të përfundonin një dalje të caktuar bazuar në një hyrje specifike. Ne kemi përdorur shumë
Roboti Roomba i kontrolluar me shfletues me Raspberry Pi Model 3 A+: 6 hapa (me fotografi)
Roboti Roomba i kontrolluar me shfletues me Raspberry Pi Model 3 A+: Përmbledhje Ky udhëzues do të përqëndrohet në atë se si t'i japë një Roomba të vdekur një tru të ri (Raspberry Pi), sy (Webcam) dhe një mënyrë për të kontrolluar gjithçka nga një shfletues uebi. Ka shumë hake të Roomba që lejojnë kontroll përmes ndërfaqes serike. Nuk kam
Roomba MATLAB Projekti: 5 hapa
Projekti Roomba MATLAB: Plani aktual që ka NASA për roverin Mars është që ai të jetë një mbledhës i të dhënave dhe të bredhë rreth Marsit, duke mbledhur mostra të tokës për t'u sjellë përsëri në Tokë, në mënyrë që shkencëtarët të shohin nëse ka pasur forma të mëparshme të jetës në planeti. Shtesë
Si të krijoni një robot të kontrolluar me dorezë të kontrolluar përmes Nrf24l01 Arduino: 3 hapa (me fotografi)
Si të krijoni një robot të kontrolluar me dorezë të kontrolluar përmes Nrf24l01 Arduino: Udhëzimi " Si të ndërtoni krahun shtrëngues të kontrolluar nga një robot i kontrolluar përmes Nrf24l01 Arduino " do të shpjegojë se si të ndërtohet një krah i kapjes së lirisë me tre shkallë të instaluar në një rrotë të gjurmuar të drejtuar nga moduli i motorit të dyfishtë L298N duke përdorur MEG
Roomba Me MATLAB: 4 hapa (me fotografi)
Roomba Me MATLAB: Ky projekt përdor MATLAB dhe një robot të programueshëm iRobot Create2. Duke vënë në provë njohuritë tona për MATLAB, ne jemi në gjendje të programojmë Creat2 për të interpretuar imazhe dhe zbuluar sinjale. Funksionaliteti i robotit varet kryesisht nga