Satura rādītājs:
- 1. solis: materiāli
- 2. darbība. Savienojums
- 3. darbība: loģiski izveidojiet MATLAB kodu sensoru izmantošanai
- 4. darbība: koda un robota pārbaude
- 5. darbība. Kļūdas atpazīšana
- 6. darbība. Secinājums
Video: Roomba autostāvvieta Pal: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šis projekts izmanto iRobot Create programmējamo roomba, MATLAB r2018a un MATLAB mobile. Izmantojot šos trīs nesējus un savas zināšanas par kodēšanu, mēs ieprogrammējām iRobot Create, lai interpretētu krāsas un izmantotu iebūvētos sensorus uzdevumu izpildei. Šo projektu veikšanai ir nepieciešami Raspberry Pi un MATLAB sakari.
1. solis: materiāli
1. iRobot Izveidot robotu
2. MATLAB r2018a
3. Aveņu Pi
4. Kameras modulis
5. 3-D drukāts kameras stabilizatora statīvs
6. Viedtālrunis ar instalētu MATLAB mobilo
7. Klēpjdators/dators ar instalētu MATLAB
2. darbība. Savienojums
Šis solis ir saistīts ar Raspberry Pi pievienošanu robotam, otrkārt, robota pievienošanu datoram un viedtālruņa pievienošanu datoram.
Vienkāršākā šī procesa daļa ir Raspberry Pi savienošana ar robotu, jo Raspberry Pi ir uzstādīts robota augšpusē. No robota ir vads, kas jums tikai jāpievieno Raspberry Pi sāniem.
Nākamais solis ir robota savienošana ar datoru, lai jūs varētu izpildīt komandas, lai robots to varētu izpildīt. Pirmā lieta, kas jums jādara, ir savienot datoru ar bezvadu tīklu, ko izveido jūsu Roomba. Tagad ir ieteicams izmantot MATLAB ikonu Iestatīt ceļu, lai iestatītu ceļu, lai varētu izmantot MATLAB Roomba rīkjoslas funkcijas. Katru reizi, kad sākat un beidzat lietot robotu, jums ir jāveic smaga "divu pirkstu sveiciena" atiestatīšana, kas nozīmē, ka desmit sekundes turiet nospiestu dokstacijas un vietas pogas, līdz gaisma kļūst blāva. Jums bija veiksmīga šī cietā atiestatīšana, ja dzirdat, ka robots spēlē īsu skalu. Tālāk jums ir jāizveido savienojums ar roomba, izmantojot šādu koda rindu kā "r = roomba (x)", kur 'x' ir jūsu rīcībā esošajam robotam piešķirtais numurs.
Visbeidzot, jums ir jālejupielādē MATLAB mobile jebkurā mobilajā ierīcē, kuru izmantosit šim projektam, un šī lietojumprogramma ir pieejama gan Android, gan Apple ierīcēs. Kad lietojumprogramma ir instalēta, jums būs jāpiesakās, izmantojot jūsu akreditācijas datus. Pēc tam šī ierīce ir jāpievieno datoram, izmantojot cilni "Vairāk" -> pēc tam noklikšķiniet uz "Iestatījumi" -> pēc tam noklikšķiniet uz "Pievienot datoru", lai tiktu parādīts ekrāns, kas parādīts iepriekš attēlos. Nākamais solis, kas jums jāiziet, ir tikai tās pieprasītās informācijas pievienošana un pārsūtīšana. Kad esat veiksmīgi izveidojis savienojumu, varēsit izsaukt funkcijas, kuras tālrunī definējat savā datorā, lai vadītu savu robotu.
3. darbība: loģiski izveidojiet MATLAB kodu sensoru izmantošanai
Kodu būs visvieglāk izveidot, ja lielākā daļa no tā atrodas ieslēgšanas cikla laikā, lai roomba varētu pastāvīgi atjaunināt apskatītās derīgās vērtības. Ja ir kļūda, MATLAB parādīs kļūdu un to, kur tā parādās kodā, padarot problēmu novēršanu salīdzinoši vienkāršu.
Šis kods, kas izstrādāts r2018a MATLAB, izmanto standarta instrumentu kastes, iRobot Create rīku komplektu, kā arī MATLAB mobilo instrumentu kopumu. Šajā piemērā izmantotā roomba ir apzīmēta kā 26, un r = roomba (26) jāpalaiž tikai vienu reizi, lai pilnībā sazinātos ar roomba.
Kods:
funkcija parkassist (x), ja x == 1
r = roomba (26) % savienojas ar roomba
kamēr taisnība
r.setDriveVelocity (.05,.05) % nosaka Roomba lēnāku braukšanas ātrumu
bump = r.getBumpers % iegūst datus no trieciena sensoriem
cliff = r.getCliffSensors % iegūst datus no klints sensoriem
light = r.getLightBumpers % iegūst datus no gaismas trieciena sensoriem
img = r.getImage;% nolasa kameru no robota
red_mean = vidējais (vidējais (img (:,:, 1))) % nolasa sarkano pikseļu vidējo daudzumu
green_mean = vidējais (vidējais (img (:,:, 2))) % nolasa zaļo pikseļu vidējo daudzumu
blue_mean = vidējais (vidējais (img (:,:, 3))) % nolasa vidējo zilo pikseļu daudzumu
ja bump.front == 1 %nolasa priekšējos trieciena sensorus
r.stop %aptur roomba
msgbox ('Ceļš aizklāts!', 'Parkošanās palīga ziņojums') % parāda ziņojumu, kurā teikts, ka ceļš ir aizsegts pārtraukums % beidz cilpu
elseif green_mean> 150
r.stop %aptur roomba
cont = questdlg ('Turpināt?', 'Ceļš pabeigts') %parāda jautājumu lodziņu ar lūgumu turpināt
ja turpinājums == 'Jā'
parkassist (1) %restartē kodu
citādi
beigas
pārtraukums % beidz cilpu
140
r.turnAngle (45) %pagriež istabu par 45 grādiem
r.timeStart %sāk laika skaitītāju
kamēr taisnība
r.setDriveVelocity (.05,.05) %nosaka roomba ātrumu
time = r.timeGet %piešķir laiku mainīgajam
bump = r.getBumpers % iegūst datus no trieciena sensoriem
cliff = r.getCliffSensors % iegūst datus no klints sensoriem
light = r.getLightBumpers % iegūst datus no gaismas trieciena sensoriem
img = r.getImage;% nolasa kameru no robota
red_mean = vidējais (vidējais (img (:,:, 1))) % nolasa sarkano pikseļu vidējo daudzumu
green_mean = vidējais (vidējais (img (:,:, 2))) % nolasa zaļo pikseļu vidējo daudzumu
blue_mean = vidējais (vidējais (img (:,:, 3))) % nolasa vidējo zilo pikseļu daudzumu
ja blue_mean> 120
r.moveDistance (-0,01) % pārceļ roomba atpakaļ noteiktu attāluma dziesmu Atskaņot (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % atskaņo augošu mūzikas skalu
msgbox ('Atrasts ūdens!', 'Parkošanās palīga ziņojums') % parāda ziņojumu, kurā teikts, ka ir atrasts ūdens r.turnAngle (-80) % pagriež istabu par 80 grādiem
pārtraukums % beidz pašreizējo cilpu
elseif light.rightFront> 25 || light.leftFront> 25 %nolasa gaismas trieciena sensorus
r.moveDistance (-0,01) % pārvieto istabu atpakaļ noteiktā attālumā
r.turnAngle (-35) % pagriež telpu par 35 grādiem
pārtraukums %beidz pašreizējo cilpu
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %nolasa abus klints sensorus
r.moveDistance (-0,1) % pārvieto istabu atpakaļ noteiktā attālumā
r.turnAngle (-80) %rotē istabu par 80 grādiem
pārtraukums % beidz pašreizējo cilpu
cits laiks> = 3
r.stop %aptur roomba
contin = questdlg ('Stacija bezmaksas, turpināt?', 'Parkošanās palīga ziņojums') %jautā, vai roomba ir jāturpina, ja Contin == 'Jā'
r.turnAngle (-90) % pagriež istabu par 90 grādiem
parkassist (1) %restartē funkciju
citādi
r.stop % aptur roomba
beigas
citādi
beigas
beigas
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %nolasa abus klints sensorus
r.moveDistance (-0,1) %pārvieto istabu atpakaļ noteiktā attālumā
r.turnAngle (-90) %rotē istabu par 90 grādiem
elseif cliff.rightFront <2500 %nolasa pareizo klints sensoru
r.turnAngle (-5) %nedaudz pagriež roomba pretējā virzienā no klints sensora
elseif cliff.leftFront <2500 %nolasa kreisās klints sensoru
r.turnAngle (5) %nedaudz pagriež roomba pretējā virzienā no klints sensora
citādi
beigas
beigas
beigas
4. darbība: koda un robota pārbaude
Pēc koda izstrādes nākamais solis bija pārbaudīt kodu un robotu. Tā kā kodā var veikt daudz dažādu pielāgojumu, piemēram, robota pagriešanās leņķi, kustības ātrumu un katras krāsas sliekšņus, labākais veids, kā noteikt šīs vērtības jūsu robotam, ir pārbaudīt tās un mainās, ejot. Katru darba dienu mēs pastāvīgi mainījām šīs vērtības, jo dažas no tām ir atkarīgas no vides, kurā darbojas jūsu robots. Labākais veids, ko mēs atradām, bija novietot roomba uz ceļa, kuru vēlaties, lai tas iet, un pietiekami augsta barjera, lai kamera nevarētu noteikt krāsas, kuras jūs nevēlaties. Nākamais solis ir ļaut tam darboties un parādīt vēlamās krāsas, kad vēlaties, lai tas pabeigtu šo uzdevumu. Ejot uz priekšu, ja redzat problēmu, labākais, kas jādara, ir iebīdīt priekšējo buferi, apturot tā darbību, un pēc tam mainīt parametru, ar kuru radās problēmas.
5. darbība. Kļūdas atpazīšana
Kad katrs projekts ir pabeigts, vienmēr ir kļūdu avoti. Mums radās kļūda ar vienkāršu faktu, ka robots nav precīzs ar leņķi, kādā tas pagriežas, tādēļ, ja jūs sakāt, lai tas pagriežas par 45 grādiem, tas nebūs precīzs. Vēl viens kļūdu avots mums bija tas, ka dažreiz robots darbojas nepareizi, un jums ir grūti to atiestatīt, pirms tas atkal darbojas. Galvenais pēdējais kļūdu avots mums bija tas, ka viens un tas pats kods neietekmēs dažādus robotus, tāpēc jums, iespējams, būs jābūt pacietīgam un attiecīgi jāpielāgojas.
6. darbība. Secinājums
Tagad jums ir visi rīki, lai spēlētu savu roomba, kas nozīmē, ka jūs varat manipulēt ar kodu jebkurā gadījumā, lai sasniegtu vēlamos mērķus. Tam vajadzētu būt jūsu dienas labākajai daļai, tāpēc izklaidējieties un brauciet droši!
Ieteicams:
Uz IoT balstīta viedā autostāvvieta, izmantojot NodeMCU ESP8266: 5 soļi
Uz IoT balstīta viedā autostāvvieta, izmantojot NodeMCU ESP8266: Mūsdienās atrast autostāvvietu aizņemtos rajonos ir ļoti grūti, un nav sistēmas, lai tiešsaistē iegūtu informāciju par stāvvietu pieejamību. Iedomājieties, ja savā tālrunī varat iegūt informāciju par stāvvietu pieejamību un jums nav viesabonēšanas, lai pārbaudītu
IOT balstīta viedā autostāvvieta: 7 soļi
IOT balstīta viedā autostāvvieta: Tanmay Pathak un Utkarsh Mishra. Students @ Starptautiskais informācijas tehnoloģiju institūts, Haidarabāda (IIITH) KONSTRUKCIJA Mēs veiksmīgi ieviesām uz IOT balstītu viedās autostāvvietas sistēmu. Ar atsevišķu mezglu (tuvuma sensoru) palīdzību jebkad
Viedā autostāvvieta, izmantojot Raspberry Pi: 5 soļi
Viedā autostāvvieta, izmantojot Raspberry Pi: Šajā instrukcijā mēs izveidosim pilnībā automātisku autostāvvietas sistēmu, kas savienota ar tīmekļa saskarni. Jūs varēsit redzēt, kāda vieta ir uzņemta, izlemt, kurš ieiet un kurš iziet, un tas ir aprīkots ar automātisku apgaismojuma sistēmu
Attāluma meklētājs garāžas autostāvvietā ar Arduino: 4 soļi (ar attēliem)
Attāluma meklētājs garāžas autostāvvietā ar Arduino: Šis vienkāršais projekts palīdzēs novietot automašīnu garāžā, parādot attālumu no objektiem, kas atrodas jūsu automašīnas bufera priekšā. Ziņojums “Stop” jums pateiks, kad ir pienācis laiks apstāties. Projekts ir balstīts uz parastajiem HC-SR04 vai Parallax Ping)))
Arduino viedā autostāvvieta: 4 soļi
Izmantojot Arduino dēli, mūsu grupai izdevās izveidot sistēmu, kas ļautu gaismas sensoriem noteikt, kad automašīna aizņem vietu vai ir brīva. Pēc sešdesmit astoņām rindām mēs