Taula de continguts:
- Pas 1: peces necessàries
- Pas 2: Configuració de fitxers i càmera
- Pas 3: proves inicials de Roomba
- Pas 4: Exemple de codi MATLAB
Vídeo: Roomba que ajuda als astronautes: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Aquest projecte es fa utilitzant el Raspberry Pi 3 a bord de l’iRobot Create Version 2. MATLAB s’utilitza per programar el robot per seguir instruccions específiques mitjançant els seus sensors i la seva càmera. Els sensors i les càmeres s’utilitzen per realitzar tasques específiques que seguirien un astronauta i li proporcionarien la possibilitat de comunicar-se amb la seva base natal si alguna cosa surt malament.
Pas 1: peces necessàries
1. iRobot Crea la versió 2
L'iRobot Create és la part més essencial d'aquest projecte, ja que és programable i pot ser una gran representació per a un rover real que segueix els astronautes i els ajudi en el futur
2. Raspberry Pi 3
El Raspberry Pi va ser el programable utilitzat per a aquest projecte. El codi està dissenyat per al Pi i la versió del Pi adjunta és la 3 (model B). Es poden utilitzar altres plaques programables com ara arduino, no obstant això, arduino i la majoria de les altres plaques requeriran una codificació diferent a la descrita en un altre pas
3. Mòdul de càmera Raspberry Pi
L'única connexió externa al Raspberry Pi necessària per a aquest projecte és el mòdul de càmera. El mòdul de càmera és la part integral d’aquest projecte, ja que roomba només realitzarà tasques en funció del que vegi a la càmera
4. MATLAB 2018a
La segona versió més recent de MATLAB, 2018a, es va utilitzar per a la codificació implicada en aquesta configuració. És probable que moltes altres versions de MATLAB funcionin amb això, ja que la programació roomba existeix des de fa un temps
Pas 2: Configuració de fitxers i càmera
1. Raspberry Pi i connexions de càmera a roomba
- El Pi es pot connectar a l'iRobot directament amb un micro USB. Això és tot el que necessita per estar a punt per utilitzar-se. Tanmateix, es recomana col·locar-lo de manera segura a la sala, tal com es mostra fins ara a la presentació.
- La càmera té una connexió directa amb el Raspberry Pi i es recomana comprar o fabricar alguna cosa per mantenir la càmera directament cap amunt. La càmera no té cap punt real si no es pot mantenir al seu lloc per mostrar el que veu la roomba.
2. Fitxers
- Després de configurar i connectar tot, assegureu-vos que el robot es restableixi i estigui a punt mantenint els botons "Spot" i "Dock" durant 10 segons junts.
- Aquí és on primer es necessita MATLAB. Els fitxers de roomba s’han d’instal·lar primer i tot el que es necessita per executar-los és el codi que es proporciona en aquest enllaç:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Pas 3: proves inicials de Roomba
Hi ha moltes comprovacions inicials que cal fer a la sala per assegurar-se que funciona.
1. Assegureu-vos que esteu connectat a la mateixa xarxa WiFi que roomba. Sense això, mai no us connectareu a través de MATLAB.
2. Esbrineu a quin número està assignat el vostre roomba perquè pugueu connectar-vos específicament al roomba que trieu. Per exemple, si el número de roomba és 30, us connectareu escrivint roomba (30) a la finestra d'ordres de MATLAB.
3. El roomba es pot controlar mitjançant estructures a MATLAB. Per exemple, si configureu el codi per roomba (30) a la variable 'r', el robot es pot moure cap endavant amb l'ordre r.moveDistance (0.2, 0.1).
4. Hi ha moltes ordres diferents que es poden comunicar a roomba i es poden veure escrivint "doc roomba" a la finestra d'ordres.
5. Els sensors per a lectures de llum, cops i penya-segats es poden llegir utilitzant les ordres que es veuen a "doc roomba", però es pot veure una manera de tenir un menú constant i ordenat per veure les dades del sensor mitjançant "r.testSensors". '.
6. Després de provar tot això, es pot utilitzar el programari de captura d’imatges del robot per llegir i veure fotografies preses. El codi bàsic per a això seria img = r.getImage i imshow (img);.
7. Els valors RGB de la imatge es poden trobar amb els codis red_mean = mean (mean (img (:,:, 1)));
green_mean = mitjana (mitjana (img (:,:, 2)))); i blue_mean = mean (mitjana (img (:,:, 3))));.
Pas 4: Exemple de codi MATLAB
En aquest moment, ja esteu preparats per utilitzar els sensors i el programari de presa d’imatges per crear el vostre propi gir en un prototip Mars-Rover d’assistència humana. El nostre exemple és seguir l’astronauta rastrejant el color blanc i avançant cap a ell. El robot emetrà un so si els seus sensors estan llegint valors elevats, de manera que l’astronauta pot restablir el robot si està encallat o anar a recollir-lo i restablir-lo si està encallat a un penya-segat. Tot i això, només llegeix aquests errors sempre que vegi blanc. Sense poder veure el color blanc, el robot entrarà en mode d'error. Està programat per enviar dos tipus de missatges de correu electrònic diferents a la base d’origen en funció del que vegi. Si veu el color de la pell de l'astronauta, òbviament no és bo, de manera que avisarà la base de casa si l'astronauta té la pell que mostra un mal funcionament del vestit. L’altre missatge es prepara si l’astronauta simplement desapareix de la vista. Si no apareix cap color blanc o de pell a les càmeres, el robot girarà i enviarà un altre correu electrònic, però diferent. Les imatges on el roomba no pot veure l’astronauta s’enviaran juntament amb el missatge dels correus electrònics. A continuació es mostra el codi del nostre projecte:
per a i = 1:.1: 3 img = r.getImage; imatge (img) red_mean = mitjana (mitjana (img (:,:, 1)))); green_mean = mitjana (mitjana (img (:,:, 2)))); blue_mean = mitjana (mitjana (img (:,:, 3)))); if red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || penya-segat.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% que mostra el color de la pell (cal ajustar-lo en funció del color de la pell de l'astronauta) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; % envia correus electrònics mostrant que el vestit està desactivat psswd = 'sí'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'subjecte'; m_text = 'prova'; setpref ('Internet', 'E-mail', correu); setpref ('Internet', 'SMTP_Server', amfitrió); setpref ('Internet', 'SMTP_Username', correu); setpref ('Internet', 'SMTP_Password', psswd); atrezzo = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', correu); props.setProperty ('mail.smtp.host', amfitrió); 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, 'Help!', 'L'uniforme dels astronautes està apagat!', img); acabar si significa vermell 135 || green_mean 135 || blue_mean 135 per a j = 1: 2% si el robot no el pot trobar de blanc r.turnAngle (360) mail = '[email protected]'; psswd = 'sí'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'subjecte'; m_text = 'prova'; setpref ('Internet', 'E-mail', correu); setpref ('Internet', 'SMTP_Server', amfitrió); setpref ('Internet', 'SMTP_Username', correu); setpref ('Internet', 'SMTP_Password', psswd); atrezzo = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', correu); props.setProperty ('mail.smtp.host', amfitrió); 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, 'Help!', 'No es pot trobar l'astronauta!', img); r.stop extrem final extrem
Viouslybviament, aquí està desordenat, però hauria d’esborrar-se un cop copiat. Les contrasenyes i correus electrònics per a això han de ser proporcionats pels que fan aquest projecte, òbviament.
Tanmateix, el nostre exemple és només una de les moltes maneres de desordenar-se amb aquest robot perquè sigui adequat per a tothom. Hi ha moltes coses diferents per fer, que podeu adaptar-vos a vosaltres mateixos.
Recomanat:
Navegació per veu Raspberry Pi que ajuda a les persones cegues: 7 passos (amb imatges)
Navegació per veu de Raspberry Pi ajudant a les persones cegues: Hola, en aquest instructiu veurem com un raspberry pi pot ajudar les persones cegues mitjançant la instrucció de veu definida per l’usuari. Aquí, amb l’ajut de l’entrada del sensor d’ultrasons per mesurar la distància la veu guia les persones cegues a seguir
AI Aids Eyes (Un sistema de visió per ordinador per recordar als operadors que portin ulleres de seguretat): 4 passos
AI Aids Eyes (Un sistema de visió per ordinador per recordar als operadors que portin ulleres de seguretat): aquí teniu una demostració del sistema. Quan el sistema detecti que es recull un trepant, emetrà automàticament un avís sobre ulleres de seguretat. Per representar la presència dels advertiments sobre ulleres de seguretat, la vora de la imatge RGB es veu de color vermell a la demostració v
ANTiDISTRACTION: el suport per a telèfon intel·ligent que us ajuda a centrar-vos: 7 passos (amb imatges)
ANTiDISTRACTION: el suport per a telèfons intel·ligents que us ajuda a centrar-vos: el nostre dispositiu ANTiDISTRACTION està dirigit a acabar totes les formes de distracció cel·lular durant els períodes d’enfocament intens. La màquina actua com una estació de càrrega sobre la qual es munta un dispositiu mòbil per tal de facilitar un entorn lliure de distraccions
PCB que ajuda a la gestió de cables: 6 passos (amb imatges)
PCB que ajuda a la gestió de cables: fa un temps he fabricat un molí CNC d'escriptori personalitzat. Des de llavors el vaig actualitzar amb nous components. L'última vegada que he afegit un segon Arduino amb pantalla de 4 dígits per controlar les RPM del meu fus mitjançant un bucle PID. Vaig haver de connectar-lo amb el senglar primari Arduino
Una manera realment senzilla / fàcil / no complicada de fer que les persones / humans / animals / robots semblin que tenen una visió de calor realment fresca / brillant (color que trieu) mitjançant GIMP: 4 passos
Una manera realment senzilla / fàcil / no complicada de fer que les persones / els humans / els animals / els robots semblin que tenen una visió de calor realment fresca / brillant (color que trieu) mitjançant GIMP: Llegiu … el … títol