Sisällysluettelo:
- Vaihe 1: Tarvittavat osat
- Vaihe 2: Tiedostot ja kameran määritykset
- Vaihe 3: Roomban ensimmäinen testaus
- Vaihe 4: Esimerkki MATLAB -koodista
Video: Astronautia avustava Roomba: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tämä projekti on tehty hyödyntämällä iRobot Create Version 2: n Raspberry Pi 3: ta. MATLABia käytetään ohjelmoimaan robotti noudattamaan tiettyjä ohjeita sen antureiden ja kameran avulla. Antureita ja kameroita käytetään suorittamaan tiettyjä tehtäviä, jotka seuraavat astronauttia ja antavat hänelle mahdollisuuden kommunikoida kotitukikohtansa kanssa, jos jokin menee pieleen.
Vaihe 1: Tarvittavat osat
1. iRobot Luo versio 2
IRobot Create on tämän projektin tärkein osa, koska se on ohjelmoitava ja voi olla loistava esitys todelliselle roverille, joka seuraa astronautteja ja auttaa heitä tulevaisuudessa
2. Vadelma Pi 3
Raspberry Pi oli ohjelmoitavissa tässä projektissa. Koodi on suunniteltu Pi: lle ja liitteenä oleva Pi -versio on 3 (malli B). Muut ohjelmoitavat levyt, kuten arduino, ovat käyttökelpoisia, mutta arduino ja useimmat muut levyt edellyttävät erilaista koodausta kuin toisessa vaiheessa on kuvattu
3. Raspberry Pi -kameramoduuli
Ainoa vieras yhteys Raspberry Pi: hen, jota tarvitaan tähän projektiin, on kameramoduuli. Kameramoduuli on erottamaton osa tätä projektia, koska roomba suorittaa tehtäviä vain sen perusteella, mitä se näkee kamerassa
4. MATLAB 2018a
MATLABin toiseksi viimeisin versio, 2018a, käytettiin tässä asennuksessa käytettävään koodaukseen. On todennäköistä, että monet muut MATLAB -versiot toimivat tämän kanssa, koska roomba -ohjelmointi on ollut käytössä jonkin aikaa
Vaihe 2: Tiedostot ja kameran määritykset
1. Raspberry Pi- ja Camera -liitännät roombaan
- Pi voi muodostaa yhteyden iRobotiin suoraan mikro -USB: llä. Se on kaikki, mitä sen on oltava käyttövalmis. On kuitenkin suositeltavaa sijoittaa se turvallisesti huoneeseen, kuten kuvissa näkyy koko esityksen ajan.
- Kameralla on suora yhteys Raspberry Pi -laitteeseen, ja on erittäin suositeltavaa ostaa tai tehdä jotain kameran pitämiseksi suoraan ylöspäin. Kamerassa ei ole mitään järkeä, jos sitä ei voida pitää paikallaan näyttääkseen, mitä roomba näkee.
2. Tiedostot
- Kun kaikki on asennettu ja kytketty, varmista, että robotti on nollattu ja käyttövalmis pitämällä "Spot" - ja "Dock" -painikkeita 10 sekunnin ajan yhdessä.
- Tässä tarvitaan ensin MATLABia. Roomban tiedostot on asennettava ensin, ja näiden tiedostojen suorittamiseen tarvitaan vain tämän linkin koodi:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Vaihe 3: Roomban ensimmäinen testaus
Roomban on suoritettava monia alkutarkastuksia sen toimivuuden varmistamiseksi.
1. Varmista, että olet yhteydessä samaan WiFi -verkkoon kuin roomba. Ilman tätä et koskaan muodosta yhteyttä MATLABin kautta.
2. Selvitä, mihin numeroon huoneesi on liitetty, jotta voit muodostaa yhteyden valitsemasi roombaan. Jos esimerkiksi huoneesi numero on 30, voit muodostaa yhteyden siihen kirjoittamalla roomba (30) MATLABin komentoikkunaan.
3. Roombaa voidaan ohjata MATLABin rakenteiden avulla. Jos esimerkiksi asetat roomba -koodisi (30) muuttujaan r, robotti voidaan siirtää eteenpäin komennolla r.moveDistance (0,2, 0,1).
4. Roomballe voidaan välittää monia erilaisia komentoja, jotka voidaan nähdä kirjoittamalla komentoikkunaan 'doc roomba'.
5. Kaikki valo-, törmäys- ja kallionlukemien anturit voidaan lukea käyttämällä "doc roomba" -komentoja, mutta tapa saada vakio, siisti valikko anturitietojen näkemiseksi voidaan nähdä käyttämällä "r.testSensors" ''.
6. Kun kaikki tämä on testattu, robotin kuvankeruuohjelmistoa voidaan käyttää otettujen kuvien lukemiseen ja katseluun. Tämän peruskoodi olisi img = r.getImage ja imshow (img);.
7. Kuvan RGB -arvot löytyvät koodeilla red_mean = mean (keskiarvo (img (:,:, 1)));
green_mean = keskiarvo (keskiarvo (img (:,:, 2))); ja blue_mean = keskiarvo (keskiarvo (img (:,:, 3)));.
Vaihe 4: Esimerkki MATLAB -koodista
Tässä vaiheessa olet nyt valmis hyödyntämään antureita ja kuvan ottamisohjelmistoa luodaksesi oman spinsi ihmisen avustavalle Mars Rover -prototyypille. Esimerkkimme on seurata astronauttia seuraamalla valkoista väriä ja siirtymällä sitä kohti. Robotti piippaa, jos sen anturit lukevat korkeita arvoja, jotta astronautti voi nollata robotin, jos se on jumissa, tai noutaa sen ja nollaa sen, jos se on jumissa kalliolla. Se lukee kuitenkin nämä virheet vain niin kauan kuin se näkee valkoisen. Jos robotti ei näe valkoista väriä, se siirtyy virhetilaan. Se on ohjelmoitu lähettämään kahdenlaisia sähköpostiviestejä takaisin kotitukikohtaan sen mukaan, mitä se näkee. Jos se näkee astronautin ihonvärin, se ei tietenkään ole hyvä, joten se varoittaa kotitukikohtaa, jos astronautilla on iho, joka näyttää puvussa. Toinen viesti valmistellaan, jos astronautti katoaa näkyvistä. Jos kameroissa ei näy valkoista tai ihonväriä, robotti pyörii ympäri ja lähettää toisen, mutta erilaisen sähköpostin. Kuvat, joissa roomba ei näe astronauttia, lähetetään sähköpostin viestin mukana. Projektimme koodi näkyy alla:
i = 1:.1: 3 img = r.getImage; kuva (img) red_mean = keskiarvo (keskiarvo (img (:,:, 1))); green_mean = keskiarvo (keskiarvo (img (:,:, 2))); blue_mean = keskiarvo (keskiarvo (img (:,:, 3))); jos red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || törmäys. vasen> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <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 end if green_mean <35 && blue_mean <35 %ihonväri näkyy (täytyy säätää astronautin ihon värin mukaan) r.beep (); r. piippaus (); r. piippaus (); mail = '[email protected]'; %lähettää sähköpostin, jossa näkyy, että puku on pois päältä psswd = 'yeah'; isäntä = 'smtp.gmail.com'; portti = '465'; emailto = '[email protected]'; m_subject = 'aihe'; m_text = 'testi'; setpref ('Internet', 'Sähköposti', posti); setpref ('Internet', 'SMTP_palvelin', isäntä); setpref ('Internet', 'SMTP_Käyttäjänimi', posti); setpref ('Internet', 'SMTP_Password', psswd); rekvisiitta = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', posti); props.setProperty ('mail.smtp.host', isäntä); props.setProperty ('mail.smtp.port', portti); 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', portti); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'The astronauts uniform is off!', img); loppu, jos red_mean 135 || green_mean 135 || blue_mean 135, jos j = 1: 2 %, jos robotti ei löydä valkoista r.turnAngle (360) mail = '[email protected]'; psswd = 'joo'; isäntä = 'smtp.gmail.com'; portti = '465'; emailto = '[email protected]'; m_subject = 'aihe'; m_text = 'testi'; setpref ('Internet', 'Sähköposti', posti); setpref ('Internet', 'SMTP_palvelin', isäntä); setpref ('Internet', 'SMTP_Käyttäjänimi', posti); setpref ('Internet', 'SMTP_Password', psswd); rekvisiitta = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', posti); props.setProperty ('mail.smtp.host', isäntä); props.setProperty ('mail.smtp.port', portti); 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', portti); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Ohje!', 'Astronauttia ei löydy!', img); r. lopeta päätypää
Ilmeisesti se on sotkuista täällä, mutta sen pitäisi hiipua kopioinnin jälkeen. Salasanat ja sähköpostit tälle projektille on ilmeisesti toimitettava.
Esimerkkimme on kuitenkin vain yksi monista tavoista sekoittaa tämän robotin kanssa, jotta se sopisi kaikille. On tehtävä monia erilaisia asioita, jotka voit sovittaa itsellesi.
Suositeltava:
Yksinkertainen juotos- /avustava käsiasema: 4 vaihetta
Yksinkertainen juotos- /avustava käsiasema: Tässä on paljon. Kävit web -selailussa oppiaksesi tekemään juotos- /auttavan käden aseman. Ja tulit tälle sivustolle. Paras DIY -käyttäjän luoma sivusto planeetan selaimessa. Nyt ehdotan, että etsit juottamista nimenomaan ohjeiden sivustolta
DIY -avustava käsi LED -valoilla ja raudanpitimellä: 3 vaihetta
DIY-avustava käsi LED-valoilla ja raudanpidikkeellä: Normaali 3,5-kertainen auttava käsi maksaa noin 1000 ruplaa (6-7 dollaria) täällä Pakistanissa, ja kaltaisellani opiskelijalla ei ole varaa helposti, joten minulla oli metalliromulevyjä, muttereita ja ruuveja, joitain leikkeitä, usb -kaapeli, ledit jne. joten tein oman.Voit myös lisätä magn
Avustava tekniikka puheongelmiin MakeyMakey W/ Scratchin käytössä: 4 vaihetta
Avustava tekniikka puheongelmiin MakeyMakey W/ Scratchin käytössä: Avustavaa tekniikkalaitettani käytetään apuna puhevammoihin ja/ tai puherajoituksiin. Se on. tarkoitus auttaa oppimisprosessissa
D4E1 - DIY - Avustava tekniikka: Säädettävä pyörätuolialusta: 7 vaihetta (kuvilla)
D4E1 - DIY - Avustava tekniikka: Säädettävä pyörätuolialusta: Kjellillä on synnynnäinen vamma: dyskinetic quadriparesis eikä pysty syömään itse. Hän tarvitsee monitorin, toimintaterapeutin apua, joka ruokkii häntä. Tähän liittyy kaksi ongelmaa: 1) toimintaterapeutti seisoo ratin takana
Avustava TV -kaukosäädin: 7 vaihetta
Avustava TV -kaukosäädin: Nykyiset television kaukosäätimet voivat olla hämmentäviä ja vaikeita käyttää. Pienet painikkeet ja hämmentävä asettelu vaikeuttavat painikkeen fyysistä painamista ja muistaa painikkeita. Tämän hankkeen tarkoituksena oli torjua näitä vaikeita