Orodha ya maudhui:
- Hatua ya 1: Uanzishaji na sensorer
- Hatua ya 2: Kupata Takwimu
- Hatua ya 3: Kumaliza Ujumbe
- Hatua ya 4: Hitimisho
Video: Roomba Explorer: 4 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Kwa kutumia MATLAB na iRobot's Create2 Robot, mradi huu utachunguza maeneo tofauti ya eneo lisilojulikana. Tulitumia sensorer kwenye Robot kusaidia kuendesha eneo lenye hatari. Kwa kupata picha na malisho ya video kutoka kwa Raspberry Pi ambayo imeambatishwa, tuliweza kubaini vizuizi ambavyo Robot atakabiliwa, na vitaainishwa.
Sehemu na Vifaa
Kwa mradi huu, utahitaji
-kompyuta
Toleo jipya zaidi la MATLAB (MATLAB R2018b ilitumika kwa mradi huu)
- sanduku la zana la roombaSanikisha
Kuunda2 Robot
-Raspberry Pi na Kamera
Hatua ya 1: Uanzishaji na sensorer
Kabla ya kuanza programu yoyote, tulipakua sanduku la zana la roombaInstall, ambalo liliruhusu ufikiaji wa vifaa anuwai vya Robot.
Hapo awali, tuliunda GUI ili kuanzisha Robot yoyote. Ili kufanya hivyo, unahitaji kuchapa idadi ya Robot kama pembejeo. Hii itaruhusu ufikiaji wa kuendesha programu yetu kwa Robot Tulifanya kazi kupata Robot kuendesha kupitia maeneo mengi ambayo ingekutana nayo. Tulitekeleza Sensorer za Cliff, sensorer Bump Light, na Sensors Bump Physical, kwa kutumia matokeo yao kusafiri Robot ili kubadilisha kasi na au mwelekeo. Wakati yoyote ya Sensorer sita za Bump Light zinapogundua kitu, thamani inayotolewa itapungua, na kusababisha kasi ya Robot kupungua ili kuzuia mgongano wa kasi kamili. Wakati Robot hatimaye inagongana na kikwazo, sensorer za Bump Physical zitaripoti thamani kubwa kuliko sifuri; kwa sababu ya hii, Robot itaacha, kwa hivyo hakutakuwa na migongano zaidi na kazi zaidi zinaweza kufanywa. Kwa Sensorer za Cliff, watasoma mwangaza wa eneo karibu nao. Ikiwa thamani ni kubwa kuliko 2800, tuliamua kuwa Robot itakuwa kwenye uwanja thabiti na salama. Lakini, ikiwa thamani ni chini ya 800, Sensorer za Cliff zitakuwa zikigundua mwamba, zikisimama mara moja ili zisianguke. Thamani yoyote katikati iliamuliwa kuwakilisha maji na itasababisha Robot kuacha hatua yake. Kwa kutumia sensorer hapo juu, kasi ya Robot inabadilishwa kuturuhusu kuamua vizuri ikiwa kuna hatari yoyote.
Chini ni nambari (kutoka MATLAB R2018b)
Uanzishaji wa %%
dlgPrompts = {'Nambari ya Roomba'};
dlgTitle = 'Chagua Roomba Yako';
dlgDefaults = {"";
punguza. Resize = 'on';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts)% Unda dirisha ambayo inamshawishi mtumiaji kuingiza nambari ya roomba
n = str2double (dlgout {1});
r = roomba (n); % Inazindua uamuzi maalum wa Roomba %% wa kasi kutoka kwa Sensorer za Nuru wakati wa kweli s = r.getLightBumpers; % hupata sensorer za mapema
lbumpout_1 = uwanja wa dondoo (s, 'kushoto'); % inachukua nambari za sensorer na kuzifanya zitumike zaidi lbumpout_2 = uwanja wa dondoo, 'kushotoFront');
lbumpout_3 = uwanja wa dondoo (s, 'leftCenter');
lbumpout_4 = uwanja wa dondoo (s, 'rightCenter');
lbumpout_5 = uwanja wa dondoo (s, 'rightFront');
lbumpout_6 = uwanja wa dondoo (s, 'kulia');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6]% hubadilisha maadili kuwa matrix
sLbump = aina (lbout); Aina ya tumbo kwa thamani ya chini kabisa inaweza kutolewa
chiniLbump = sBump (1); kasi =.05 + (lowLbump) *. 005% ikitumia thamani ya chini kabisa, ambayo inawakilisha vizuizi vya karibu, kuamua kasi, kasi kubwa wakati hakuna kitu kiligunduliwa
r.setDriveVelocity (kasi, kasi)
mwisho
Bumpers wa Kimwili
b = r.getBumpers; Pato ni kweli, uwongo
bsen_1 = uwanja wa dondoo (b, 'kushoto')
bsen_2 = uwanja wa dondoo (b, 'kulia')
bsen_3 = uwanja wa dondoo (b, 'mbele')
bsen_4 = uwanja wa dondoo (b, 'leftWheelDrop')
bsen_5 = uwanja wa dondoo (b, 'rightWheelDrop')
matuta = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = jumla (bums)
ikiwa tbump> 0 r.setDriveVelocity (0, 0)
mwisho
Sensorer za Mwamba
c = r.getCliffSensors %% 2800 salama, maji mengine
csen_1 = uwanja wa dondoo (c, 'kushoto')
csen_2 = uwanja wa dondoo (c, 'kulia')
csen_3 = uwanja wa dondoo (c, 'kushotoFront')
csen_4 = uwanja wa dondoo (c, 'rightFront')
miamba = [csen_1, csen_2, csen_3, csen_4]
ordcliff = aina (maporomoko)
ikiwa ordcliff (1) <2750
r.setDriveVelocity (0, 0)
ikiwa mwamba <800
'mwamba'
mwingine
disp 'maji'
mwisho
r. TurnAngle (45)
mwisho
Hatua ya 2: Kupata Takwimu
Baada ya sensorer za Bump za Kimwili kukwama, Robot itatekeleza yake kwenye bodi ya Raspberry Pi kuchukua picha ya kikwazo. Baada ya kupiga picha, kwa kutumia utambuzi wa maandishi ikiwa kuna maandishi kwenye picha, Roboti ataamua kikwazo ni nini na kikwazo kinasema nini.
img = r.getImage; imshow (img);
kuandika (img, 'imgfromcamera.jpg')
picha = imread ('imgfromcamera.jpg')
Matokeo = ocr (picha)
knownText = matokeo ya ocr. Text;
takwimu;
imshow (picha) maandishi (220, 0, Nakala inayotambuliwa, 'BackgroundColor', [1 1 1]);
Hatua ya 3: Kumaliza Ujumbe
Wakati Robot inapoamua kuwa kikwazo ni NYUMBANI, itakamilisha dhamira yake na kukaa nyumbani. Baada ya kumaliza utume, Robot atatuma arifa ya barua-pepe kuwa imerudi nyumbani, na itatuma picha ambazo zilichukua wakati wa safari yake.
Kutuma Barua pepe
setpref ('Mtandao', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Mtandao', 'E_mail', '[email protected]'); Akaunti ya barua ya kutuma kutoka setpref ('Mtandao', 'SMTP_Username', 'ingiza barua pepe ya mtumaji'); % setpref ya watumaji ('Mtandao', 'SMTP_Password', 'ingiza nenosiri la mtumaji'); Nenosiri la watumaji
props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'kweli'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); prop.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('Ingiza kupokea barua pepe', 'Roomba', 'Roomba amerudi nyumbani !!', 'imgfromcamera.jpg')% akaunti ya kutuma kutuma kwa
Robot imekamilika.
Hatua ya 4: Hitimisho
Programu ya MATLAB iliyojumuishwa imetengwa kutoka kwa hati yote iliyotumiwa na Robot. Katika rasimu ya mwisho, hakikisha kuweka nambari yote, isipokuwa hatua ya uanzishaji, kwenye kitanzi cha muda ili kuhakikisha kuwa bumpers wanaendesha kila wakati. Programu hii inaweza kuhaririwa kukidhi mahitaji ya mtumiaji. Usanidi wa Robot yetu umeonyeshwa.
* Mawaidha: Usisahau kwamba sanduku la zana la roombaInstall linahitajika kwa MATLAB kuingiliana na Robot na kwenye bodi ya Raspberry Pi.
Ilipendekeza:
Kugeuza Roomba Yako Kuwa Rover ya Mars: Hatua 5
Kubadilisha Roomba Yako Kuwa Rover ya Mars:
Njia za mkato za kibodi za Internet Explorer !!: 4 Hatua
Njia za mkato za kibodi za Internet Explorer
Roomba Scout Explorer: Hatua 8
Roomba Scout Explorer: Kama moja ya miradi ya Amerika inayotarajiwa na kutafitiwa sana, miradi ya rover ya Mars imekuwa mafanikio ya kibinadamu katika utengenezaji wa maendeleo ya mifumo ya teknolojia ya hali ya juu kwa lengo moja tu la uchunguzi na inte
Kutoka Roomba hadi Rover kwa Hatua 5 tu !: Hatua 5
Kutoka Roomba hadi Rover katika Hatua 5 tu!: Roboti za Roomba ni njia ya kufurahisha na rahisi kutumbukiza vidole vyako katika ulimwengu wa roboti. Katika Agizo hili, tutafafanua jinsi ya kubadilisha Roomba rahisi kuwa rover inayodhibitiwa ambayo wakati huo huo inachambua mazingira yake. Orodha ya Sehemu 1.) MATLAB2.) Roomb
Basi la Pirate 3EEPROM Explorer Board: 5 Hatua
Bus Pirate 3EEPROM Explorer Board: Ikiwa unayo moja ya maharamia wa basi la siku, unafanya nini nayo? Jifunze juu ya waya-1, I2C, na SPI EEPROMs na bodi ya 3EEPROM ya wachunguzi (tunaiita THR-EE-PROM) .EEPROM ni aina ya chip ya kumbukumbu inayohifadhi data bila nguvu endelevu