Sadržaj:
- Korak 1: Korak 1: Potrebni materijali
- Korak 2: Korak 2: Postavljanje/dobivanje koda za Roombu
- Korak 3: Korak 3: Postavljanje senzora litica/LED svjetala
- Korak 4: Korak 4: Provjeravanje prepreka
- Korak 5: Korak 5: Iscrtavanje
Video: Roomba MATLAB projekt: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Trenutni plan koji NASA ima za Mars rover je da on bude sakupljač podataka i da luta po Marsu, prikupljajući uzorke tla kako bi se vratio na Zemlju, tako da znanstvenici mogu vidjeti postoje li neki prethodni oblici života na planeti. Osim toga, rover šalje naučnicima slike natrag kako bi im pomogli u navigaciji roverom i riješili sve probleme koje bi mogao imati.
Ideja naše grupe za naš projekt je da rover učini isto što i rover NASA -e koji će napustiti Zemlju 2020., ali i da ucrta zemljopis zemlje. Roomba bi mogla osjetiti litice i zaustaviti se prije nego što padne, a zatim se vratiti, okrenuti i promijeniti kurs kako ne bi pala i oštetila se. Naša druga ideja integrirana u naš projekt je da roomba može iscrtati orijentire koje vidi i prikazati zaplet svaki put kada se petlja završi i njezin tijek prođe.
Ovo uputstvo je za svakoga tko bi želio stvoriti istu vrstu koda za svoju roombu.
Korak 1: Korak 1: Potrebni materijali
Trebat će vam:
- Roomba
- MATLAB
- Ova datoteka za pokretanje roombe
- Ravna površina
- Površina stola koja djeluje kao "litica"
Korak 2: Korak 2: Postavljanje/dobivanje koda za Roombu
Vaš zaslon će izgledati ovako nakon što unesete datoteke.
Korak 3: Korak 3: Postavljanje senzora litica/LED svjetala
Ovaj kôd će vašoj roombi točno reći pod kojim kutom treba okrenuti, provjeriti podatke o bateriji, reći vašoj roombi koliko brzo treba ići i provjeriti ima li ljudi kroz kameru roombe. Također će se oglasiti zvučnim signalom ako identificira osobu, te će se zaustaviti prije silaska s litice.
% pokušajte rob.setLEDDigits ('') x = 0; y = 0; theta = 0; prepreka = ; ciklus = 1; AngCorr = @(x) x + 3,059.*X.^0,4205; %Funkcija ispravljanja kutova zavoja tijekom rob.getBatteryInfo.procent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1) %Idi %Provjeri osobu ako AA_checkperson (rob) rob.beep end %Provjeri senzor litice ako je AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') pauza (0,5) prepreka (ciklus) = 2; AA_cliffbeep (rob) %Sigurnosno kopiranje i okretanje rob.moveDistance (-. 15) rob.turnAngle (30) end
Korak 4: Korak 4: Provjeravanje prepreka
Ovaj kôd će roombu provjeriti ima li oko nje stavki, te će provjeriti senzor udara kako bi se uvjerio da se zaustavlja prije nego što se ošteti.
%Provjerite osjetnik svjetla ako je AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Wall') pauza (0,5) prepreka (ciklus) = 1; %Zid AA_wallbeep (rob) %Sigurnosno kopiranje i okretanje rob.moveDistance (-. 15) rob.turnAngle (30) end %Provjerite osjetnik udara ako AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') pauzira (0.5) prepreka (ciklus) = 1; %Zid AA_wallbeep (rob) %Sigurnosno kopiranje i skretanje rob.moveDistance (-. 15) rob.turnAngle (30) end %Ako nema ako je prazna (prepreka) prepreka (ciklus) = 0; inače duljina (prepreka) <prepreka ciklusa (ciklus) = 0; kraj
Korak 5: Korak 5: Iscrtavanje
Ovaj kôd reći će vašoj roombi da isplanira s čime se susreće na svom putovanju. Zavjera poput ove pojavit će se nakon što se roomba zaustavi.
%Dobijte poziciju d = rob.getDistance; ako je ciklus == 1 teta (ciklus) = 0; x (ciklus) = d.*cosd (theta (ciklus)); % ukupnog prijeđenog puta u x y (ciklus) = d.*sind (theta (ciklus)); % ukupne udaljenosti propuštene u y else theta (ciklus) = theta (ciklus-1) + rob.getAngle; x (ciklus) = d.*cosd (theta (ciklus)) + x (ciklus-1); % ukupnog prijeđenog puta u x y (ciklus) = d.*sind (theta (ciklus)).*d + y (ciklus-1); %ukupna udaljenost prijeđena u y kraju %Uvjet prekida ako rob.getButtons.clean break end %Povećanje ciklusa ciklusa = ciklus + 1; kraj rob.stop za i = 1: ciklus ako je prepreka (i) == 1 %Zidna ploha (x (i), y (i), 'Marker', 'kvadrat', 'MarkerEdgeColor', 'r') inače prepreka (i) == 2 %Crtež litice (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') završni tekst (.9, 0.9, sprintf ('Kvadrat = Zid / nCircle = Cliff '),' Units ',' normalized ') držite na kraju % Signal opasnosti dok je istinita rob.beep pauza (3) ako rob.getButtons.clean break end % catch % rob.stop % end
Preporučeni:
MATLAB kontrolirana Roomba: 5 koraka
MATLAB kontrolirana Roomba: Cilj ovog projekta je korištenje MATLAB -a, kao i modificiranog iRobot programabilnog robota. Naša grupa kombinirala je naše vještine kodiranja kako bi stvorila MATLAB skriptu koja koristi mnoge funkcije iRobota, uključujući senzore litice, senzore odbojnika
Mars Roomba projekt UTK: 4 koraka
Projekt Mars Roomba UTK: ODRICANJE OD ODGOVORNOSTI: OVO ĆE RADITI SAMO AKO JE ROOMBA POSTAVLJENA NA JAKO POSEBAN NAČIN, OVO UPUTSTVO JE STVORENO I NAMJERENO KORISTITI SVEUČILIŠTE UČENIKA TENESA I FAKULTET napisano i s
Roomba Roomba upravljani preglednikom s Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba Roomba upravljani preglednikom robot s modelom Raspberry Pi 3 A+: pregledOva instrukcija će se usredotočiti na to kako mrtvoj Roombi dati novi mozak (Raspberry Pi), oči (web kamera) i način da kontrolirate sve iz web preglednika. Postoji mnogo Roomba hakova koji omogućuju kontrolu putem serijskog sučelja. Nisam
Roomba projekt: 5 koraka (sa slikama)
Roomba projekt: Ova instrukcija nastala je u skladu sa zahtjevima projekta Makecoursea na Sveučilištu Južne Floride (www.makecourse.com). Ova instrukcija će obuhvatiti sve potrebne korake i komponente potrebne za sastavljanje moje Roomba projekcije
Roomba s MATLAB -om: 4 koraka (sa slikama)
Roomba s MATLAB -om: Ovaj projekt koristi MATLAB i iRobot Create2 programabilni robot. Iskušavajući svoje znanje o MATLAB -u, možemo programirati Create2 za tumačenje slika i otkrivanje signala. Funkcionalnost robota uglavnom ovisi o