Taula de continguts:
- Pas 1: materials
- Pas 2: connexió
- Pas 3: Creació lògica d'un codi MATLAB per utilitzar els sensors
- Pas 4: provar el codi i el robot
- Pas 5: reconeixement d'error
- Pas 6: Conclusió
Vídeo: Roomba Parking Pal: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Aquest projecte utilitza un roomba programable iRobot Create, MATLAB r2018a i MATLAB mobile. En utilitzar aquests tres suports i el nostre coneixement de codificació, vam programar l’iRobot Create per interpretar els colors i utilitzar sensors integrats per completar tasques. Aquest projecte depèn de la comunicació Raspberry Pi i MATLAB per realitzar aquestes tasques.
Pas 1: materials
1. iRobot Create Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Mòdul de càmera
5. Suport estabilitzador de càmera imprès en 3D
6. Smartphone amb MATLAB mòbil instal·lat
7. Ordinador portàtil / ordinador amb MATLAB instal·lat
Pas 2: connexió
Aquest pas consisteix en connectar el Raspberry Pi al robot, en segon lloc connectar el robot a l’ordinador i connectar el telèfon intel·ligent a l’ordinador.
La part més senzilla d’aquest procés és connectar el Raspberry Pi al robot, ja que el Raspberry Pi està muntat a la part superior del robot. Hi ha un cable del robot que només cal que connecteu al lateral del Raspberry Pi.
El següent pas és connectar el robot a l'ordinador perquè pugueu executar ordres perquè el robot les faci. El primer que heu de fer és connectar l’ordinador a la xarxa sense fils que està creant roomba. Ara, es recomana que utilitzeu la icona Estableix ruta a MATLAB per establir el camí de manera que pugueu utilitzar les funcions de la caixa d'eines Roomba de MATLAB. Cada vegada que comenceu i finalitzeu l'ús amb el robot, heu de fer una "Salutació amb dos dits" per restablir el robot, cosa que significa que manteniu premuts els botons del moll i del punt durant deu segons fins que la llum disminueixi indicant que s'alliberi. Heu tingut èxit amb aquest restabliment complet si sentiu el robot jugar a una escala petita. A continuació, heu de connectar-vos a roomba mitjançant una línia de codi com aquesta "r = roomba (x)" on 'x' és el número designat per al robot que teniu.
Per últim, heu de descarregar el mòbil MATLAB en qualsevol dispositiu mòbil que utilitzeu per a aquest projecte i aquesta aplicació està disponible tant en dispositius Android com Apple. Un cop instal·lada l'aplicació, haureu d'iniciar la sessió amb les vostres credencials. A continuació, heu de connectar aquest dispositiu a l'ordinador mitjançant la pestanya etiquetada com a "Més" -> després feu clic a "Configuració" -> i després feu clic a "Afegeix un ordinador". S'obrirà la pantalla que es mostra a les imatges anteriors. El següent pas que heu de fer és connectar i escopir la informació que us demana. Quan estigueu connectat amb èxit, podreu trucar a les funcions que definiu al vostre ordinador al telèfon per controlar el robot.
Pas 3: Creació lògica d'un codi MATLAB per utilitzar els sensors
El codi serà més fàcil de crear quan la majoria estigui dins del bucle while, de manera que roomba pugui actualitzar constantment els valors vàlids que està mirant. Si hi ha un error, MATLAB mostrarà un error i on apareix al codi, cosa que facilita la resolució de problemes.
Dissenyat a r2018a MATLAB, aquest codi fa ús de les caixes d’eines estàndard, la caixa d’eines iRobot Create i la caixa d’eines mòbil de MATLAB. El roomba utilitzat en aquest exemple es designa com a 26, i el r = roomba (26) només s'ha d'executar una vegada per comunicar-se completament amb el roomba.
Codi:
funció parkassist (x) si x == 1
r = roomba (26)% es connecta a roomba
tot i que és cert
r.setDriveVelocity (.05,.05)% estableix roomba a una velocitat de conducció més baixa
bump = r.getBumpers% obté les dades dels sensors de cops
cliff = r.getCliffSensors% obté les dades dels sensors del penya-segat
light = r.getLightBumpers% obté les dades dels sensors de cops de llum
img = r.getImage;% llegeix la càmera del robot
red_mean = mean (mean (img (:,:, 1))))% llegeix la quantitat mitjana de píxels vermells
green_mean = mean (mitjana (img (:,:, 2)))% llegeix la quantitat mitjana de píxels verds
blue_mean = mean (mean (img (:,:, 3)))% llegeix la quantitat mitjana de píxels blaus
si bump.front == 1% llegeix els sensors de cops frontals
r.stop% para roomba
msgbox ('Path Obscured!', 'Parking Assistant Message')% mostra el missatge que diu que el camí està enfosquit break% acaba el bucle
elseif green_mean> 150
r.stop% para roomba
cont = questdlg ('Continuar?', 'Camí completat')% mostra el quadre de preguntes que demana continuar
si cont == "Sí"
parkassist (1)% reinicia el codi
en cas contrari
final
break% acaba el bucle
elseif vermell> 140
r.turnAngle (45)% gira el roomba 45 graus
r.timeStart% inicia un comptador de temps
tot i que és cert
r.setDriveVelocity (.05,.05)% estableix la velocitat del roomba
time = r.timeGet% assigna el temps a una variable
bump = r.getBumpers% obté les dades dels sensors de cops
cliff = r.getCliffSensors% obté les dades dels sensors del penya-segat
light = r.getLightBumpers% obté les dades dels sensors de cops de llum
img = r.getImage;% llegeix la càmera del robot
red_mean = mean (mean (img (:,:, 1))))% llegeix la quantitat mitjana de píxels vermells
green_mean = mean (mitjana (img (:,:, 2)))% llegeix la quantitat mitjana de píxels verds
blue_mean = mean (mean (img (:,:, 3)))% llegeix la quantitat mitjana de píxels blaus
si significa_blau> 120
r.moveDistance (-0,01)% mou la sala cap enrere una cançó de distància fixa Reprodueix (r, 'T400, C, D, E, F, G, A, B, C ^', 'true')% reprodueix una escala musical ascendent
msgbox ('Water Found!', 'Parking Assistant Message')% mostra un missatge que diu que s'ha trobat aigua r.turnAngle (-80)% gira roomba 80 graus
break% remata el bucle actual
elseif light.rightFront> 25 || light.leftFront> el 25% llegeix els sensors de cops de llum
r.moveDistance (-0,01)% mou la sala cap enrere a una distància establerta
r.turnAngle (-35)% gira la sala de 35 graus
break% remata el bucle actual
elseif cliff.rightFront <2500 && cliff.leftFront <2500% llegeix els dos sensors del penya-segat
r.moveDistance (-0,1)% mou roomba cap enrere una distància establerta
r.turnAngle (-80)% gira roomba 80 graus
break% remata el bucle actual
elseif time> = 3
r.stop% para roomba
contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message')% pregunta si el roomba hauria de continuar si contin == 'Sí'
r.turnAngle (-90)% gira la sala de 90 graus
parkassist (1)% reinicia la funció
en cas contrari
r.stop% atura el roomba
final
en cas contrari
final
final
elseif cliff.rightFront <2500 && cliff.leftFront <2500% llegeix els dos sensors del penya-segat
r.moveDistance (-0,1)% mou roomba cap enrere una distància establerta
r.turnAngle (-90)% gira roomba 90 graus
elseif cliff.rightFront <2500% llegeix el sensor de penya-segat dret
r.turnAngle (-5)% gira lleugerament el roomba en la direcció oposada del sensor del penya-segat
elseif cliff.leftFront <2500% llegeix el sensor de penya-segat esquerre
r.turnAngle (5)% gira lleugerament el roomba en la direcció oposada del sensor del penya-segat
en cas contrari
final
final
final
Pas 4: provar el codi i el robot
Després de desenvolupar el codi, el següent pas va ser provar el codi i el robot. Com que es poden fer molts ajustos diferents al codi, com ara l’angle que gira el robot, la velocitat en què es mou i els llindars de cada color, la millor manera d’esbrinar aquests valors per al vostre robot és provar ells i canvia a mesura que vagis. Per a cada jornada laboral que teníem, vam canviar aquests valors constantment, ja que alguns d’ells depenen de l’entorn on opera el vostre robot. La millor manera que vam trobar va ser situar el roomba en el camí que voleu que segueixi i tenir una barrera prou alta perquè la càmera no pugui detectar els colors que no voleu. El següent pas és deixar-lo córrer i mostrar-li els colors que vulgueu quan vulgueu que completi aquesta tasca. Segons vagi, si veieu un problema, el millor que podeu fer és empènyer el para-xocs davanter, fent que s’aturi, i canvieu el paràmetre amb el qual heu tingut problemes.
Pas 5: reconeixement d'error
Amb cada projecte finalitzat, sempre hi ha fonts d'error. Per a nosaltres, hem experimentat un error pel simple fet que el robot no és precís amb l’angle en què gira, de manera que si li dieu que giri 45 graus no serà exacta. Una altra font d'error per a nosaltres va ser que de vegades el robot funciona malament i que l'heu restablert abans de tornar a funcionar. L’última font principal d’error per a nosaltres va ser que el mateix codi no tindrà el mateix efecte en diferents robots, de manera que és possible que hagueu de tenir paciència i ajustar-lo en conseqüència.
Pas 6: Conclusió
Ara teniu totes les eines per jugar amb el vostre roomba, cosa que significa que podeu manipular el codi de qualsevol manera que vulgueu assolir els objectius que desitgeu. Aquesta hauria de ser la millor part del dia, així que divertiu-vos i conduïu amb seguretat.
Recomanat:
MIDI Pod-Pal: 4 passos
MIDI Pod-Pal: *** ACTUALITZACIÓ 22/04/21 ****** He afegit un esquema complet que mostra tot el cablejat per ajudar a la construcció. *** No entraré en una quantitat ridícula de aquí a la part de construcció, la meva intenció era mostrar un altre exemple de construir un MI basat en Arduino
Us presentem "Deodorino": l'Arduino controlat per infrarojos en un pal desodorant buit. Feu clic a 1a fotografia: 7 passos
Us presentem "Deodorino": l'Arduino controlat per infrarojos en un pal desodorant buit. Feu clic a la 1a foto: ara aneu al detall
Marc de pal de paletes LED: 9 passos (amb imatges)
Marc de fotos LED Stick Popsicle: recentment, els meus projectes han estat acusats de formar part d'alguns moviments d'art i artesania hipster. Voleu fer manualitats? Llavors obtindreu arts i oficis. Aquí teniu el meu marc per a palets de palets de llum LED. Just a temps per al
Feu el vostre propi pal d’ambre: 5 passos
Feu el vostre propi pal d’ambre!: Aquest instructiu es basa en el producte que s’ofereix aquí, anomenat pal d’ambre al lloc oficial d’alerta d’ambre. És una unitat flaix que conté tota la informació que la policia necessitaria per presentar un informe de persones desaparegudes, tot encriptat i protegit amb contrasenya
Com fer una llanterna LED ràpida i econòmica amb un pal de desodorant !: 8 passos
Com fer una llanterna LED ràpida i ràpida amb un pal de desodorant !: En aquest manual, us mostraré com fer una llanterna LED ràpida i econòmica amb un pal de desodorant. (i algunes parts més)