INHOUDSOPGAWE:
- Stap 1: Voorrade
- Stap 2: Die probleemstelling
- Stap 3: Bluetooth -afstandsbediening
- Stap 4: Impakherkenning
- Stap 5: Lewensherkenning
- Stap 6: Begin dit
Video: Mars Roomba: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie instruksie sal u lei in die aanwysings vir die gebruik van 'n Raspberry Pi -beheerde Roomba -vakuumbot. Die bedryfstelsel wat ons gaan gebruik, is deur MATLAB.
Stap 1: Voorrade
Wat u moet versamel om hierdie projek uit te voer:
- iRobot's Create2 Roomba stofsuier bot
- Framboos Pi
- Framboos Pi kamera
- Die nuutste weergawe van MATLAB
- Die Roomba -gereedskapskis vir MATLAB
- MATLAB -toepassing vir 'n mobiele toestel
Stap 2: Die probleemstelling
Ons het die taak gekry om MATLAB te gebruik om 'n rover te ontwikkel wat op Mars gebruik kan word om wetenskaplikes te help om planeetdata te versamel. Die funksies wat ons in ons projek aangespreek het, was afstandsbediening, objek -impakherkenning, waterherkenning, lewensherkenning en beeldverwerking. Om hierdie prestasies te behaal, het ons gekodeer met behulp van die Roomba -gereedskapskisopdragte om die vele funksies van iRobot's Create2 Roomba te manipuleer.
Stap 3: Bluetooth -afstandsbediening
Hierdie skyfie gaan deur die kode om die beweging van Roomba te beheer met behulp van die Bluetooth-funksies van u slimfoon. Laai die MATLAB -toepassing op u slimfoon af en meld by u Mathworks -rekening aan. Nadat u aangemeld het, gaan na "meer", "instellings" en maak verbinding met u rekenaar met behulp van sy IP -adres. Sodra dit gekoppel is, gaan terug na "meer" en kies "sensors". Tik op die derde sensor in die boonste werkbalk van die skerm en tik op Start. Nou, u slimfoon is 'n afstandsbediening!
Die kode is soos volg:
terwyl 0 == 0
pouse (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Kant = PhoneData (3);
stampe = r.getBumpers;
as kant> 80 || Sy <-80
r.stop
r.biep ('C, E, G, C^, G, E, C')
breek
andersif Kant> 20 && Kant <40
r.turnAngle (-5);
anders kant> 40
r.turnAngle (-25);
anders as Side-40
r.turnAngle (5);
anders kant <-40
r.turnAngle (25);
einde
as Pitch> 10 && Pitch <35
r.moveDistance (.03)
anders as Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
einde
einde
Stap 4: Impakherkenning
'N Ander funksie wat ons geïmplementeer het, was om die impak van die Roomba op 'n voorwerp op te spoor en dan die huidige pad daarvan reg te stel. Om dit te kan doen, moes ons voorwaardes met die lesings van die buffersensors gebruik om te bepaal of 'n voorwerp getref word. As die robot 'n voorwerp raak, sal hy 'n rugsteun van 0,2 meter maak en draai teen 'n hoek wat bepaal word deur watter buffer getref is. Sodra 'n item getref is, verskyn 'n spyskaart met die woord "oof".
Die kode word hieronder getoon:
terwyl 0 == 0
stampe = r.getBumpers;
r.setDriveVelocity (.1)
as bults.links == 1
msgbox ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
einde
einde
Stap 5: Lewensherkenning
Ons het 'n lewensherkenningstelsel gekodeer om die kleure van voorwerpe voor dit te lees. Die drie soorte lewens waarvoor ons gekodeer het, is plante, water en vreemdelinge. Om dit te doen, het ons die sensors gekodeer om die gemiddelde waardes van rooi, blou, groen of wit te bereken. Hierdie waardes is vergelyk met die drempels wat met die hand gestel is om die kleur te bepaal waarna die kamera kyk. Die kode sal ook die pad na die voorwerp teken en 'n kaart skep.
Die kode is soos volg:
t = 10;
ek = 0;
terwyl t == 10
img = r.getImage; wys (img)
pouse (0.167)
i = i + 1;
red_mean = gemiddelde (gemiddelde (img (:,:, 1)));
blue_mean = gemiddelde (gemiddelde (img (:,:, 3))));
green_mean = gemiddelde (gemiddelde (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %wil hierdie waarde ongeveer 100 hê
nege_plus_ten = 21;
groen_drempel = 125;
blou_drempel = 130;
wit_drempel = 124;
rooi_drempel = 115;
terwyl nine_plus_ten == 21 %groen - lewe
as green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('moontlike lewensbron gevind, ligging geteken');
pouse (2)
skrap (a)
[y2, Fs2] = oudiolees ('z_speak2.wav');
klank (y2, Fs2)
pouse (2)
%plant = r.getImage; %imshow (plant);
%bespaar ('plant_img.mat', plant ');
%plot plek in groen
ek = 5;
breek
anders
nege_plus_ten = 19;
einde
einde
nege_plus_ten = 21;
terwyl nine_plus_ten == 21 %blou - woder
as blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox (''n bron van water is gevind, ligging is geteken');
pouse (2)
skrap (a)
[y3, Fs3] = oudiolees ('z_speak3.wav');
klank (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%bespaar ('water_img.mat', woder)
%plot plek in blou
ek = 5;
breek
anders
nege_plus_ten = 19;
einde
einde
nege_plus_ten = 21;
terwyl nine_plus_ten == 21 %wit - aliens monkaS
as white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = oudiolees ('z_speak5.wav');
klank (y5, Fs5);
pouse (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = oudiolees ('z_scream.mp3');
klank (ys, Fss);
pouse (3)
r.stop
% uitheemse = r.getImage; %imshow (uitheemse);
% save ('alien_img.mat', alien);
ek = 5;
breek
anders
nege_plus_ten = 19;
einde
einde
as ek == 5
a = 1; %draai hoek
t = 9; %beëindig groot lus
ek = 0;
einde
einde
Stap 6: Begin dit
Nadat al die kode geskryf is, kombineer dit alles in een lêer en voila! Jou Roomba -bot sal nou volledig funksioneer en werk soos geadverteer! Die Bluetooth -beheer moet egter in 'n aparte lêer wees of geskei word van die res van die kode met %%.
Geniet die gebruik van u robot !!
Aanbeveel:
Verander jou Roomba in 'n Mars Rover: 5 stappe
Omskep jou Roomba in 'n Mars Rover:
Mars Rover met Raspberry Pi: 5 stappe
Mars Rover met behulp van Raspberry Pi: Beste almal, ek is altyd nuuskierig om te weet oor Mars Rover, met 6 wiele wat die hele oppervlak van Mars kan verken en dinge van die aarde kan verken. Ek wil ook iets verken deur op my skootrekenaar te sit. So ek dink dit is die regte tyd om dit te maak en
Raspberry Pi - Outonome Mars Rover Met OpenCV -voorwerpopsporing: 7 stappe (met foto's)
Raspberry Pi - Outonome Mars Rover Met OpenCV -voorwerpopsporing: Aangedryf deur 'n Raspberry Pi 3, Open CV -objekherkenning, Ultrasoniese sensors en gemotoriseerde GS -motors. Hierdie rover kan enige voorwerp waarvoor hy opgelei is, opspoor en op enige terrein beweeg
Mars Roomba -projek UTK: 4 stappe
Mars Roomba -projek UTK: DISCLAIMER: DIT SAL SLEGS WERK AS DIE ROOMBA OP 'N SPESIFIEKE manier ingerig word, is hierdie instruksie geskep en bedoel om gebruik te word deur die Universiteit van TENNSEE STUDENTE EN FAKULTEIT Hierdie kode word gebruik om plaaslik op te stel geskryf en s
Mars -verkenningsrobot: 4 stappe
Mars Reconnaissance Robot: This Instructable is 'n stap-vir-stap gids vir die programmering en bevel van die Mars Reconnaissance Robot.Om te begin, moet u die lys van die volgende materiaal verkry: 'n gelaaide iRobot-ontwerp wat aangepas is deur die Tickle College of Eningeering University of Ten