Orodha ya maudhui:

Pal Roomba Parking: 6 Hatua
Pal Roomba Parking: 6 Hatua

Video: Pal Roomba Parking: 6 Hatua

Video: Pal Roomba Parking: 6 Hatua
Video: Skrillex - First Of The Year (Equinox) [Official Music Video] 2024, Novemba
Anonim
Sehemu ya Maegesho ya Roomba
Sehemu ya Maegesho ya Roomba

Mradi huu unatumia iRobot Tengeneza roomba inayoweza kupangwa, MATLAB r2018a, na rununu ya MATLAB. Kwa kutumia hizi mediums tatu na maarifa yetu ya kuweka coding, tuliweka iRobot Create kutafsiri rangi na kutumia sensorer za bodi kumaliza kazi. Miradi hii inategemea mawasiliano ya Raspberry Pi na MATLAB kutekeleza majukumu haya.

Hatua ya 1: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa

1. Robot Unda Robot

2. MATLAB r2018a

3. Raspberry Pi

4. Moduli ya Kamera

5. 3-D iliyochapishwa Stabilizer Camera

6. Smartphone na MATLAB ya rununu imewekwa

7. Laptop / Kompyuta iliyo na MATLAB imewekwa

Hatua ya 2: Uunganisho

Hatua hii ni juu ya kuunganisha Raspberry Pi na roboti, pili unganisha roboti kwenye kompyuta yako, na unganisha smartphone na kompyuta.

Sehemu rahisi ya mchakato huu ni kuunganisha Raspberry Pi na robot yako, kwani Raspberry Pi imewekwa juu ya roboti. Kuna kamba kutoka kwa roboti ambayo inabidi ufanye ni kuziba upande wa Raspberry Pi.

Hatua inayofuata ni kuunganisha roboti kwenye kompyuta yako ili uweze kuendesha maagizo ya roboti kutekeleza. Jambo la kwanza ambalo lazima ufanye ni kuunganisha kompyuta yako kwenye mtandao wa waya ambao roomba yako inaunda. Sasa, inashauriwa utumie ikoni ya Kuweka Njia kwenye MATLAB kuweka njia ili uweze kutumia kazi kwenye kisanduku cha zana cha Roomba kutoka MATLAB. Kila wakati unapoanza na kumaliza kutumia na roboti, lazima ufanye "Salamu ya Vidole Mbili" kuweka upya roboti, ambayo inamaanisha kuwa unashikilia kizimbani na vifungo vya doa kwa sekunde kumi hadi taa itakapopungua inayoonyesha kutolewa. Umefanikiwa kwa kuweka upya hii ngumu ikiwa utasikia roboti ikicheza kiwango kidogo. Ifuatayo lazima uunganishe na roomba ukitumia laini ya nambari kama hii "r = roomba (x)" ambapo 'x' ni nambari iliyotengwa kwa roboti uliyonayo.

Mwishowe, unahitaji kupakua rununu ya MATLAB kwenye kifaa chochote cha rununu ambacho utatumia kwa mradi huu, na programu tumizi hii inapatikana kwenye vifaa vyote vya Android na Apple. Mara baada ya programu kusakinishwa, itabidi uingie kwa kutumia vitambulisho. Kisha lazima uunganishe kifaa hiki kwenye kompyuta yako, ukitumia kichupo kilichoandikwa "Zaidi" -> kisha bonyeza "mipangilio '-> kisha bonyeza" Ongeza kompyuta "hii inapaswa kuleta skrini iliyoonyeshwa kwenye picha hapo juu. Baada ya kuona hii hatua inayofuata ambayo lazima upitie ni kuziba tu na kuburudisha habari ambayo inauliza. Ukisha unganishwa vizuri, utaweza kupiga kazi ambazo hufafanua kwenye kompyuta yako kwenye simu yako kudhibiti robot yako.

Hatua ya 3: Kwa mantiki Kuunda Nambari ya MATLAB Kutumia Sensorer

Kwa mantiki Kuunda Nambari ya MATLAB Kutumia Sensorer
Kwa mantiki Kuunda Nambari ya MATLAB Kutumia Sensorer

Nambari hiyo itakuwa rahisi kuunda wakati nyingi iko ndani kwa kitanzi, ili roomba iweze kusasisha maadili halali ambayo inaangalia. Ikiwa kuna hitilafu, MATLAB itaonyesha kosa na mahali inapoonekana kwenye nambari, na kufanya utatuzi kuwa rahisi.

Iliyoundwa katika r2018a MATLAB, nambari hii hutumia visanduku vya kawaida, iRobot Unda kisanduku cha zana, pamoja na sanduku la vifaa vya rununu la MATLAB. Roomba iliyotumiwa katika mfano huu imeteuliwa kama 26, na r = roomba (26) inahitaji kuendeshwa mara moja tu ili kuwasiliana kikamilifu na roomba.

Nambari:

kazi parkassist (x) ikiwa x == 1

r = roomba (26)% inaunganisha na roomba

wakati ni kweli

r.setDriveVelocity (.05,.05)% huweka roomba kwa kasi ndogo ya kuendesha gari.

bump = r.getBumpers% hupata data kutoka kwa sensorer za mapema

mwamba = r.getCliffSensors% hupata data kutoka kwa sensorer za mwamba

light = r.getLightBumpers% hupata data kutoka kwa sensorer za mapema

img = r.getImage;% inasoma kamera mbali ya roboti

red_mean = maana (maana (img (:,:, 1)))% inasoma wastani wa saizi nyekundu

green_mean = maana (maana (img (:,:, 2)))% inasoma kiwango cha wastani cha saizi za kijani

blue_mean = maana (maana (img (:,:, 3)))% inasoma kiasi cha wastani cha saizi za bluu

ikiwa bump.front == 1% inasoma sensorer za mbele mapema

r.stop% huacha roomba

msgbox ('Njia Iliyofichwa!', 'Ujumbe wa Msaidizi wa Maegesho')% huonyesha ujumbe ukisema njia imefichwa mapumziko% inakamilisha kitanzi

kingine ikiwa kijani_maana> 150

r.stop% inaacha roomba

cont = questdlg ('Endelea?', 'Njia iliyokamilika')% huonyesha sanduku la maswali linalouliza kuendelea

ikiwa cont == 'Ndio'

parkassist (1)% anaanzisha tena nambari hiyo

mwingine

mwisho

kuvunja% kunamaliza kitanzi

kingine ikiwa red_mean> 140

r. TurnAngle (45)% inageuka roomba digrii 45

r.timeStart% inaanza kaunta ya wakati

wakati ni kweli

r.setDriveVelocity (.05,.05)% huweka kasi ya roomba

time = r.timeGet% inapeana wakati wa kutofautisha

bump = r.getBumpers% hupata data kutoka kwa sensorer za mapema

mwamba = r.getCliffSensors% hupata data kutoka kwa sensorer za mwamba

light = r.getLightBumpers% hupata data kutoka kwa sensorer za mapema

img = r.getImage;% inasoma kamera mbali ya roboti

red_mean = maana (maana (img (:,:, 1)))% inasoma wastani wa saizi nyekundu

green_mean = maana (maana (img (:,:, 2)))% inasoma wastani wa saizi za kijani

blue_mean = maana (maana (img (:,:, 3)))% inasoma wastani wa saizi za bluu

ikiwa bluu_maana> 120

r.veveDistance (-0.01)% inasongesha roomba nyuma wimbo uliowekwa uliowekwa Play (r, 'T400, C, D, E, F, G, A, B, C ^', 'kweli')% hucheza kiwango cha muziki kinachoongezeka

msgbox ('Maji yamepatikana!', 'Ujumbe wa Msaidizi wa Maegesho')% inaonyesha ujumbe unaosema maji yamepatikana r. TurnAngle (-80)% huzunguka digrii roomba 80

kuvunja% kunamaliza kitanzi cha sasa

mwanga mwingine mbele ya kulia> 25 || light.leftFront> 25% husoma sensorer za mapema

r.moveDistance (-0.01)% inasababisha roomba kurudi nyuma umbali uliowekwa

r. TurnAngle (-35)% huzungusha digrii 35 za roomba

kuvunja% kunamaliza kitanzi cha sasa

mwamba mwingine. kuliaFront <2500 && cliff. kushotoFront <2500% inasoma sensorer zote za mwamba

r.moveDistance (-0.1)% inasababisha roomba kurudi nyuma umbali uliowekwa

r. TurnAngle (-80)% huzunguka digrii roomba 80

kuvunja% kunamaliza kitanzi cha sasa

wakati mwingine> = 3

r.stop% huacha roomba

Contin = questdlg ('Bure Kituo, Endelea?', 'Ujumbe wa Msaidizi wa Maegesho')% inauliza ikiwa roomba inapaswa kuendelea ikiwa contin == 'Ndio'

r. TurnAngle (-90)% huzungusha digrii 90 za roomba

parkassist (1)% anaanzisha tena kazi

mwingine

r.stop% husimamisha roomba

mwisho

mwingine

mwisho

mwisho

mwamba mwingine. kuliaFront <2500 && cliff. kushotoFront <2500% inasoma sensorer zote za mwamba

r.moveDistance (-0.1)% inasababisha roomba kurudi nyuma umbali uliowekwa

r. TurnAngle (-90)% huzunguka digrii 90 za roomba

mwamba mwingine. kuliaFront <2500% inasoma sensor ya mwamba wa kulia

r. TurnAngle (-5)% inageuza roomba kidogo kwa mwelekeo tofauti wa sensorer ya mwamba

mwamba mwingine. kushotoFront <2500% inasoma sensor ya mwamba wa kushoto

r. TurnAngle (5)% inageuza roomba kidogo kwa mwelekeo tofauti wa sensor ya mwamba

mwingine

mwisho

mwisho

mwisho

Hatua ya 4: Kupima Nambari na Robot

Kupima Kanuni na Robot
Kupima Kanuni na Robot
Kupima Kanuni na Robot
Kupima Kanuni na Robot
Kupima Kanuni na Robot
Kupima Kanuni na Robot

Baada ya nambari hiyo kutengenezwa, hatua inayofuata ilikuwa kujaribu nambari na roboti. Kwa kuwa kuna marekebisho mengi tofauti ambayo yanaweza kufanywa katika nambari, kama vile pembe inayogeukia roboti, kasi inayotembea, na vizingiti vya kila rangi, njia bora ya kujua maadili haya kwa roboti yako ni kujaribu na ubadilike unapoenda. Kwa kila siku ya kazi tuliyokuwa nayo, tulikuwa tukibadilisha maadili haya kila wakati kwani zingine zinategemea mazingira ambayo roboti yako inafanya kazi. Njia bora ambayo tumepata ilikuwa kuweka roomba kwenye njia unayotaka ifuate, na kuwa na kizuizi cha juu vya kutosha ili kamera isiweze kugundua rangi ambazo hutaki. Hatua inayofuata ni wacha iendeshe na uionyeshe rangi unayotaka, wakati unataka kuitimiza kazi hiyo. Unapoenda, ukiona shida jambo bora kufanya ni kushinikiza bumper ya mbele, kuifanya isimamishe, kisha ubadilishe parameter ambayo ulikuwa na shida nayo.

Hatua ya 5: Kutambua Kosa

Kwa kila mradi umekamilika, kila wakati kuna vyanzo vya makosa. Kwa sisi, tulipata hitilafu na ukweli rahisi kwamba roboti sio sahihi na pembe ambayo inageuka, kwa hivyo ikiwa utaiambia igeuze digrii 45 haitakuwa sawa. Chanzo kingine cha kosa kwetu ni kwamba wakati mwingine malfunctions ya roboti, na unayo ngumu kuiweka tena kabla ya kufanya kazi tena. Chanzo kikuu cha mwisho cha hitilafu kwetu ni kwamba nambari hiyo hiyo haitakuwa na athari sawa kwa roboti tofauti, kwa hivyo italazimika kuwa na subira nayo na urekebishe ipasavyo.

Hatua ya 6: Hitimisho

Sasa una zana zote za kucheza karibu na roomba yako, ambayo inamaanisha kuwa unaweza kudhibiti nambari kwa vyovyote vile unataka kufikia malengo unayotaka. Hii inapaswa kuwa sehemu bora ya siku yako, kwa hivyo furahiya na endesha salama!

Ilipendekeza: