Satura rādītājs:

Roomba, kas palīdz astronautam: 4 soļi
Roomba, kas palīdz astronautam: 4 soļi

Video: Roomba, kas palīdz astronautam: 4 soļi

Video: Roomba, kas palīdz astronautam: 4 soļi
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Jūlijs
Anonim
Astronauta palīga Roomba
Astronauta palīga Roomba

Šis projekts ir veidots, izmantojot Raspberry Pi 3 uz iRobot Create 2. versijas. MATLAB tiek izmantots, lai ieprogrammētu robotu ievērot īpašus norādījumus, izmantojot tā sensorus un kameru. Sensori un kameras tiek izmantoti, lai veiktu īpašus uzdevumus, kas sekotu astronautam un sniegtu viņam iespēju sazināties ar savu mājas bāzi, ja kaut kas noiet greizi.

1. darbība: nepieciešamās detaļas

Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas
Nepieciešamās detaļas

1. iRobot Izveidot 2. versiju

IRobot Create ir šī projekta vissvarīgākā daļa, jo tas ir programmējams un var būt lielisks priekšstats par faktisko roveri, kurš seko astronautiem un palīdz viņiem nākotnē

2. Aveņu Pi 3

Raspberry Pi bija programmējamais, ko izmantoja šim projektam. Kods ir paredzēts Pi, un pievienotā Pi versija ir 3 (modelis B). Var izmantot arī citas programmējamas plates, piemēram, arduino, tomēr arduino un lielākajai daļai citu dēļu būs nepieciešama atšķirīga kodēšana, nekā aprakstīts citā solī

3. Raspberry Pi kameras modulis

Vienīgais svešais savienojums ar Raspberry Pi, kas nepieciešams šim projektam, ir kameras modulis. Kameras modulis ir šī projekta neatņemama sastāvdaļa, jo roomba veiks tikai uzdevumus, pamatojoties uz to, ko tā redz kamerā

4. MATLAB 2018a

Šajā iestatīšanā izmantotajai kodēšanai tika izmantota MATLAB otrā jaunākā versija, 2018a. Iespējams, ka ar to darbosies daudzas citas MATLAB versijas, jo roomba programmēšana ir bijusi jau kādu laiku

2. darbība: faili un kameras konfigurācija

Faili un kameras konfigurācija
Faili un kameras konfigurācija

1. Raspberry Pi un kameras savienojumi ar istabu

  • Pi var izveidot savienojumu ar iRobot tieši, izmantojot mikro USB. Tas ir viss, kas nepieciešams, lai būtu gatavs lietošanai. Tomēr ir ieteicams to droši novietot uz istabas, piemēram, kā parādīts attēlos visā prezentācijā līdz šim.
  • Kamerai ir tiešs savienojums ar Raspberry Pi, un ir ļoti ieteicams kaut ko iegādāties vai izgatavot, lai turētu kameru tieši uz augšu. Kamerai nav nekādas jēgas, ja to nevar turēt vietā, lai parādītu, ko istabiņa redz.

2. Faili

  • Kad viss ir iestatīts un pievienots, pārliecinieties, vai robots ir atiestatīts un gatavs darbam, turot kopā 10 sekundes pogas "Spot" un "Dock".
  • Šeit vispirms ir nepieciešams MATLAB. Roomba faili vispirms ir jāinstalē, un šiem failiem ir nepieciešams tikai palaist kodu, kas norādīts šajā saitē:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

3. darbība: sākotnējā Roomba pārbaude

Roomba ir jāveic daudzas sākotnējās pārbaudes, lai pārliecinātos, ka tā darbojas.

1. Pārliecinieties, vai esat izveidojis savienojumu ar to pašu WiFi tīklu kā roomba. Bez tā jūs nekad neizveidosit savienojumu, izmantojot MATLAB.

2. Uzziniet, kādam numuram jūsu roomba ir piešķirts, lai jūs varētu īpaši izveidot savienojumu ar izvēlēto roomba. Piemēram, ja jūsu roomba numurs ir 30, jūs izveidosit savienojumu ar to, MATLAB komandu logā ierakstot roomba (30).

3. Roomba var kontrolēt, izmantojot MATLAB struktūras. Piemēram, ja iestatāt roomba (30) kodu uz mainīgo “r”, robotu var pavirzīt uz priekšu ar komandu r.moveDistance (0,2, 0,1).

4. Ir daudz dažādu komandu, kuras var paziņot roomba, un tās var redzēt, komandu logā ierakstot “doc roomba”.

5. Gaismas, triecienu un klints rādījumu sensorus var nolasīt, izmantojot komandas, kas redzamas dokumentā “doc roomba”, bet veidu, kā izveidot nemainīgu, glītu izvēlni, lai redzētu sensora datus, var redzēt, izmantojot “r.testSensors.

6. Pēc tam, kad tas viss ir pārbaudīts, robota attēlu savākšanas programmatūru var izmantot uzņemto attēlu lasīšanai un skatīšanai. Pamatkods tam būtu img = r.getImage un imshow (img);.

7. Attēla RGB vērtības var atrast ar kodiem red_mean = mean (vidējais (img (:,:, 1)));

green_mean = vidējais (vidējais (img (:,:, 2))); un blue_mean = vidējais (vidējais (img (:,:, 3)));.

4. darbība. MATLAB koda piemērs

MATLAB koda piemērs
MATLAB koda piemērs

Šobrīd jūs esat gatavs izmantot sensorus un attēlu uzņemšanas programmatūru, lai izveidotu savu spin uz cilvēka asistenta prototipa Mars Rover. Mūsu piemērs ir sekot astronautam, izsekojot balto krāsu un virzoties uz to. Robots pīkstēs, ja tā sensori nolasa lielas vērtības, lai astronauts varētu atiestatīt robotu, ja tas ir iestrēdzis, vai iet, pacelt un atiestatīt, ja tas ir iestrēdzis klintī. Tomēr tas nolasa šīs kļūdas tikai tik ilgi, kamēr redz baltu. Nespējot redzēt balto krāsu, robots ieslēgsies kļūdu režīmā. Tas ir ieprogrammēts, lai nosūtītu divu veidu e -pastus atpakaļ uz mājas bāzi atkarībā no tā, ko tā redz. Ja tas redz astronauta ādas krāsu, tas acīmredzami nav labi, tāpēc tas brīdinās mājas bāzi, ja astronautam ir redzama āda ar uzvalka darbības traucējumiem. Otrs ziņojums ir sagatavots, ja astronauts vienkārši pazūd no redzesloka. Ja kamerām nav redzama balta vai ādas krāsa, robots griezīsies apkārt un nosūtīs citu, bet atšķirīgu e -pastu. Attēli, kuros Roomba neredz astronautu, tiks nosūtīti kopā ar ziņojumu e -pasta ziņojumos. Mūsu projekta kods ir parādīts zemāk:

jo i = 1:.1: 3 img = r.getImage; attēls (img) red_mean = vidējais (vidējais (img (:,:, 1))); green_mean = vidējais (vidējais (img (:,:, 2))); blue_mean = vidējais (vidējais (img (:,:, 3))); ja red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || trieciens.pa kreisi> 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 || viegls.gaiss> 700 r.pīkstiens () r.pīkstiens () r.pīkstiens () r.pīkstiens () r.pīkstiens () r.stop cits, ja i = 1: 2 r.moveDistance (0,2, 0,1) r. setDriveVelocity (.3,.2) r.apstājas beigas beigas, ja zaļā_nozīme <35 && blue_mean <35 %tiek parādīta ādas krāsa (jāpielāgo, ņemot vērā astronauta ādas krāsu) r.beep (); r.pīkstiens (); r.pīkstiens (); pasts = '[email protected]'; %nosūta e -pastu, norādot, ka uzvalks ir izslēgts psswd = 'jā'; saimnieks = 'smtp.gmail.com'; osta = '465'; emailto = '[email protected]'; m_subject = 'priekšmets'; m_text = 'tests'; setpref ('Internets', 'E -pasts', pasts); setpref ('Internets', 'SMTP_Server', resursdators); setpref ('Internets', 'SMTP_Lietotājvārds', pasts); setpref ('Internets', 'SMTP_Password', psswd); rekvizīti = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pasts); props.setProperty ('mail.smtp.host', resursdators); props.setProperty ('mail.smtp.port', osta); 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', ports); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Palīdzība!', 'Astronautu formas tērps ir izslēgts!', img); beigas, ja red_mean 135 || green_mean 135 || blue_mean 135, ja j = 1: 2 %, ja robots nevar atrast balto r.turnAngle (360) mail = '[email protected]'; psswd = 'jā'; saimnieks = 'smtp.gmail.com'; osta = '465'; emailto = '[email protected]'; m_subject = 'priekšmets'; m_text = 'tests'; setpref ('Internets', 'E -pasts', pasts); setpref ('Internets', 'SMTP_Server', resursdators); setpref ('Internets', 'SMTP_Lietotājvārds', pasts); setpref ('Internets', 'SMTP_Password', psswd); rekvizīti = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pasts); props.setProperty ('mail.smtp.host', resursdators); props.setProperty ('mail.smtp.port', osta); 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', ports); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Palīdzība!', 'Astronautu nevar atrast!', img); r.apstājas gala beigas beigas

Acīmredzot šeit ir netīrs, bet pēc kopēšanas tam vajadzētu izbalēt. Acīmredzot tiem, kas veic šo projektu, ir jāsniedz paroles un e -pasta ziņojumi.

Tomēr mūsu piemērs ir tikai viens no daudziem veidiem, kā izjaukt šo robotu, lai tas būtu piemērots ikvienam. Ir jādara daudz dažādu lietu, kuras varat pielāgot sev.

Ieteicams: