Cuprins:
- Pasul 1: Piese necesare
- Pasul 2: Configurarea fișierelor și a camerei
- Pasul 3: Testarea inițială Roomba
- Pasul 4: Exemplu de cod MATLAB
Video: Roomba de asistență pentru astronauți: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Acest proiect este realizat utilizând Raspberry Pi 3 la bordul iRobot Create Version 2. MATLAB este folosit pentru a programa robotul să urmeze instrucțiuni specifice folosind senzorii și camera sa. Senzorii și camerele sunt utilizate pentru a îndeplini sarcini specifice care ar urma un astronaut și îi vor oferi capacitatea de a comunica cu baza sa de origine dacă ceva nu merge bine.
Pasul 1: Piese necesare
1. iRobot Creați versiunea 2
IRobot Create este cea mai esențială parte a acestui proiect, deoarece este programabil și poate fi o reprezentare excelentă pentru un rover real care îi urmărește pe astronauți și îi asistă în viitor
2. Raspberry Pi 3
Raspberry Pi a fost programabil utilizat pentru acest proiect. Codul este conceput pentru Pi, iar versiunea Pi atașată este cea 3 (modelul B). Sunt utilizate alte plăci programabile, cum ar fi arduino, cu toate acestea, arduino și majoritatea celorlalte plăci vor necesita codificare diferită decât cea descrisă într-un alt pas
3. Modulul Raspberry Pi Camera
Singura conexiune străină la Raspberry Pi necesară pentru acest proiect este Camera Module. Modulul camerei este parte integrantă a acestui proiect, deoarece roomba va efectua sarcini numai pe baza a ceea ce vede în cameră
4. MATLAB 2018a
A doua versiune cea mai recentă a MATLAB, 2018a, a fost utilizată pentru codificarea implicată în această configurare. Este probabil ca multe alte versiuni ale MATLAB să funcționeze cu acest lucru, deoarece programarea roomba a existat de ceva timp
Pasul 2: Configurarea fișierelor și a camerei
1. Conexiunile Raspberry Pi și Camera la roomba
- Pi se poate conecta la iRobot direct cu un micro USB. Asta este tot ce trebuie să fie gata de utilizare. Cu toate acestea, este recomandat să fie așezat în siguranță pe cameră, așa cum se arată în imagini pe parcursul prezentării până acum.
- Camera are o conexiune directă cu Raspberry Pi și este foarte recomandat să cumpărați sau să faceți ceva pentru a ține camera direct sus. Camera nu are niciun rost real dacă camera nu poate fi ținută pe loc pentru a arăta ce vede roomba.
2. Fișiere
- După ce ați configurat și conectat totul, asigurați-vă că robotul este resetat și gata de utilizare ținând butoanele „Spot” și „Dock” timp de 10 secunde împreună.
- Aici este nevoie de MATLAB. Fișierele pentru roomba trebuie să fie instalate mai întâi și tot ce este necesar pentru aceste fișiere este să ruleze este codul furnizat pe acest link:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Pasul 3: Testarea inițială Roomba
Există multe verificări inițiale care trebuie efectuate pe roomba pentru a vă asigura că funcționează.
1. Asigurați-vă că sunteți conectat la aceeași rețea WiFi ca roomba. Fără aceasta, nu vă veți conecta niciodată prin MATLAB.
2. Aflați la ce număr este atribuit roomba dvs., astfel încât să vă puteți conecta în mod specific la roomba pe care ați ales-o. De exemplu, dacă numărul roomba dvs. este 30, vă veți conecta la acesta tastând roomba (30) în fereastra de comandă din MATLAB.
3. Roomba poate fi controlată prin structuri în MATLAB. De exemplu, dacă setați codul pentru roomba (30) la variabila „r”, robotul poate fi mutat înainte cu comanda r.moveDistance (0.2, 0.1).
4. Există multe comenzi diferite care pot fi comunicate către roomba și acestea pot fi văzute tastând „doc roomba” în fereastra de comandă.
5. Senzorii pentru citirea luminii, a loviturilor și a stâncilor pot fi citiți cu ajutorul comenzilor din „doc roomba”, dar o modalitate de a avea un meniu constant și îngrijit pentru a vedea datele senzorului poate fi văzută folosind „r.testSensors '.
6. După ce ați testat toate acestea, software-ul de colectare a imaginii robotului poate fi utilizat pentru a citi și a vedea fotografiile făcute. Codul de bază pentru aceasta ar fi img = r.getImage și imshow (img);.
7. Valorile RGB ale imaginii pot fi găsite cu codurile red_mean = mean (medie (img (:,:, 1)));
green_mean = medie (medie (img (:,:, 2))); și blue_mean = mean (mean (img (:,:, 3)));.
Pasul 4: Exemplu de cod MATLAB
În acest moment, sunteți acum gata să utilizați senzorii și software-ul de captare a imaginilor pentru a vă crea propriul spin pe un prototip Mars-Rover de asistență umană. Exemplul nostru este să urmărim astronautul urmărind culoarea albă și deplasându-ne spre ea. Robotul va emite un semnal sonor dacă senzorii citesc valori mari, astfel încât astronautul să poată reseta robotul dacă este blocat sau să-l ridice și să-l reseteze dacă este blocat pe o stâncă. Cu toate acestea, citește aceste erori numai atât timp cât vede alb. Fără a putea vedea culoarea albă, robotul va intra în modul de eroare. Este programat să trimită două tipuri diferite de e-mailuri înapoi la baza de domiciliu, în funcție de ceea ce vede. Dacă vede culoarea pielii astronautului, evident că nu este bine, așa că va alerta baza de domiciliu în cazul în care astronautul are pielea care prezintă o disfuncționalitate a costumului. Celălalt mesaj este pregătit dacă astronautul dispare pur și simplu din vedere. Dacă nu se afișează culoarea albului sau a pielii pentru camere, robotul se va întoarce și va trimite un alt e-mail, dar diferit. Imaginile în care roomba nu poate vedea astronautul vor fi trimise împreună cu mesajul din e-mailuri. Codul proiectului nostru este prezentat mai jos:
pentru i = 1:.1: 3 img = r.getImage; imagine (img) red_mean = medie (medie (img (:,:, 1))); green_mean = medie (medie (img (:,:, 2))); blue_mean = medie (medie (img (:,:, 3)))); dacă red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.stânga> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.stânga <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else for i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end if green_mean <35 && blue_mean <35% afișarea culorii pielii (trebuie ajustată pe baza culorii pielii astronautului) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; % trimite e-mail care arată că costul este dezactivat psswd = 'da'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'subiect'; m_text = 'test'; setpref ('Internet', 'E-mail', mail); setpref ('Internet', 'SMTP_Server', gazdă); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', gazdă); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, „Ajutor!”, „Uniforma astronauților este dezactivată!”, img); end if red_mean 135 || green_mean 135 || blue_mean 135 pentru j = 1: 2% dacă albul nu poate fi găsit de robotul r.turnAngle (360) mail = '[email protected]'; psswd = 'da'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'subiect'; m_text = 'test'; setpref ('Internet', 'E-mail', mail); setpref ('Internet', 'SMTP_Server', gazdă); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', gazdă); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Ajutor!', 'Astronautul nu poate fi găsit!', img); r.stop end end end
Evident, este dezordonat aici, dar ar trebui să fie eliminat odată copiat. Parolele și e-mailurile pentru acest lucru trebuie furnizate de cei care fac acest proiect în mod evident.
Cu toate acestea, exemplul nostru este doar una dintre numeroasele modalități de a vă încurca cu acest robot pentru a-l face să se potrivească tuturor. Există multe lucruri diferite de făcut, pe care vi le puteți adapta.
Recomandat:
Boton De Asistență Pentru Iphone: 6 Pași
Botón De Asistencia Para Iphones: Aceasta este o formă simplă de a nu avea care să utilizeze butonul de HOME de la tu Iphone, ya care este foarte propens la da ñ ass (pierde sensibilitatea) la utilizarea în exces
ESP8266 - Senzori de ușă și fereastră - ESP8266. Asistență pentru vârstnici (uitare): 5 pași
ESP8266 - Senzori de ușă și fereastră - ESP8266. Asistență pentru vârstnici (uitare): ESP8266 - Senzori de ușă / fereastră folosind GPIO 0 și GPIO 2 (IOT). Poate fi vizualizat pe web sau în rețeaua locală cu browsere. Vizibil și prin „HelpIdoso Vxapp” cerere. Folosește o sursă de 110/220 VCA pentru 5Vdc, 1 releu / tensiune
Tehnologie de asistență pentru dificultățile vorbirii folosind MakeyMakey W / Scratch: 4 pași
Tehnologie de asistență pentru dificultăți de vorbire Utilizarea MakeyMakey W / Scratch: Dispozitivul meu de tehnologie de asistență este utilizat pentru a ajuta cu dizabilități de vorbire sau cu vorbire limitată. Este. menit să ajute în procesul de învățare
Asistență pentru telefonul mobil Parkinson: 7 pași
Asistență pentru telefonul mobil Parkinson: cineva care suferă de Parkinson sau doar are un impuls rău, are de obicei probleme serioase la vizualizarea unei imagini statice pe telefonul ei. Ei bine, această problemă este rezolvată acum, cu acest gadget toată lumea își poate lăsa telefoanele în majoritatea locurilor, cu poziția th
D4E1 - DIY - Tehnologie de asistență: Tavă reglabilă pentru scaune cu rotile: 7 pași (cu imagini)
D4E1 - DIY - Tehnologie de asistență: Tavă reglabilă pentru scaun cu rotile: Kjell are un handicap congenital: cvadripareză diskinetică și nu poate mânca singur. El are nevoie de ajutorul unui monitor, un terapeut ocupațional, care îl hrănește. Aceasta vine cu două probleme: 1) Terapeutul ocupațional stă la volan