Orodha ya maudhui:

Roomba Na MATLAB: Hatua 4 (na Picha)
Roomba Na MATLAB: Hatua 4 (na Picha)

Video: Roomba Na MATLAB: Hatua 4 (na Picha)

Video: Roomba Na MATLAB: Hatua 4 (na Picha)
Video: TAKI TAKI SPIDER-MAN 🔥❤🔪| 2024, Novemba
Anonim
Roomba Na MATLAB
Roomba Na MATLAB

Mradi huu unatumia MATLAB na robot ya iRobot Create2 inayoweza kupangiliwa. Kwa kuweka ujuzi wetu wa MATLAB kwenye jaribio, tunaweza kupanga programu ya Create2 kutafsiri picha na kugundua ishara. Utendaji wa roboti inategemea hasa programu ya rununu ya MATLAB na moduli ya kamera ya Raspberry Pi.

Hatua ya 1: Sehemu na Vifaa

Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa

1. iRobot Unda, Toleo la 2

- Hii ni robot inayoweza kupangwa ambayo inaonekana kama Roomba. Jihadharini kuwa bidhaa hii kutoka iRobot sio ombwe. Imekusudiwa programu maalum na mtumiaji.

2. MATLAB 2017a

- Matoleo mengi ya zamani yatatumika na nambari tuliyotumia hapa chini. MATLAB itatambua amri ambayo haiendani na toleo ulilonalo na itapendekeza amri bora inayofaa.

3. Raspberry Pi 3 Mfano B, Toleo la 1.2

- Angalia kuona ni Raspberry Pi ipi inayoambatana na iRobot yako. Tazama kiungo hiki kwa usaidizi zaidi: Tafadhali fahamu kuwa utahitaji kufanya kazi na Pi iliyotayarishwa mapema ili hatua zifuatazo zifanye kazi. Kutumia Pi iliyopangwa mapema itakuruhusu kufanya usimbuaji wako wote kwenye MATLAB peke yako.

Moduli ya Kamera V2 (ya Raspberry Pi)

- Unaweza kushangaa; licha ya saizi yake, Moduli ya Kamera ya Raspberry Pi ni bora sana. Ni chaguo cha bei rahisi na kinachofaa zaidi kwa mradi huu.

Hiari: stendi iliyochapishwa na 3D. Hii hutumiwa kutuliza kamera. Haiathiri utendaji wa roboti, lakini itasaidia kusaidia usimbuaji wako ikiwa unataka kutumia data ya kupiga picha kwa utambuzi wa rangi na / au kitu.

Hatua ya 2: Usanidi

Usanidi
Usanidi
Usanidi
Usanidi

1. Kuunganisha Raspberry Pi na moduli ya kamera (Vifaa)

- Ili kuwezesha Raspberry Pi, utahitaji kuendesha USB ndogo ya kiume kwenye bandari ya nguvu ya kike kwenye microcontroller. Hiari: Mdhibiti wa voltage inaweza kutumika kuhakikisha kuwa voltage haizidi 5V. Baada ya kuwezesha Raspberry Pi, unaweza kuiunganisha na roboti yako kwa kuendesha mwisho wa kiume USB kutoka kwa ubao wa mama hadi bandari ya USB A kwenye microcontroller.

- Baada ya kuunganisha Pi na Roomba, kamera iko tayari kusanikishwa. Moduli ya Kamera itakuwa ndogo sana kuliko unavyotarajia. Kumbuka kuwa lensi imewekwa kwenye sensa, na utepe mweupe unatoka kwa kamera. Usiondoe au kubomoa utepe! Hii ndio kebo unayohitaji kuiunganisha kwenye Raspberry Pi. Kwanza, shikilia mwisho wa Ribbon na upate viunganisho vya fedha na kebo ya samawati. Hizi ziko pande tofauti. Ifuatayo, pata eneo kati ya ethernet na bandari za HDMI kwenye Raspberry Pi yako. Angalia kuna kitako kidogo cheupe kinachofunika. Polepole inua kufuli, lakini usiondoe kwenye yanayopangwa, kwani itapiga na kuharibika kabisa. Mara baada ya kuinua kufuli, shika utepe na uso viunganishi vya fedha kwenye bandari ya HDMI. Upande wa bluu utakabiliana na bandari ya Ethernet. Punguza pole pole utepe ndani ya nafasi wakati bado haujafunguliwa. Sio lazima uilazimishe kwenye slot. Baada ya kuingizwa, bonyeza kitufe nyuma chini. Ikiwa kamera yako imehifadhiwa vizuri, unapaswa (kwa upole) kuvuta utepe na kuhisi mvutano. Ribbon haipaswi kuwa huru. Baada ya kuunganisha kamera yako na Pi, unaweza kuona jinsi ilivyo huru. Hii ndio sababu tulitumia mlima uliochapishwa na 3D kuutuliza. Ni chaguo lako kuamua ni vifaa gani ungependa kutumia kuweka kamera yako bado kwa picha ya hali ya juu.

2. Kuweka Faili Sawa na Kuunganisha Roomba kwenye Kompyuta yako Baada ya vifaa vyako vyote kusanidiwa, sasa unaweza kuendelea kusakinisha MATLAB pamoja na faili m zinazohusiana ambazo zinakuruhusu kuwasiliana na roboti. Ili kufanya hivyo, fungua MATLAB na unda folda mpya ili kuweka faili zote zinazohusiana pamoja. Tumia hati hii kusanikisha / kusasisha faili zinazohitajika:

- Faili zote zinapaswa sasa kuonekana kwenye folda yako iliyoundwa. Bonyeza kulia kwenye dirisha la Sasa la Folda na uchague 'Ongeza kwa Njia' ili kuongeza njia hiyo kwenye orodha ya saraka ambapo MATLAB inatafuta faili. Hakikisha faili zako zote ziko kwenye njia sahihi.

3. Mara faili zikiwa zimewekwa, sasa unaweza kuanza kuungana na roboti yako. Anza kwa kuwasha roboti yako na kisha kuiweka upya ngumu moja kwa moja baada ya kuanza (usisahau kuweka upya roboti yako kila wakati kabla na baada ya matumizi). Pili, unganisha roboti yako na kompyuta ndogo kwa mtandao huo wa wifi. Baada ya haya, tutazungumza na Raspberry Pi iliyopangwa tayari kupitia MATLAB kwa kuita Roomba kwa kutumia jina lake na kazi roomba. Kwa mfano, ningeunganisha robot 28 kwa kutumia laini ifuatayo: R = roomba (28).

- Tazama jinsi nilivyoweka kitu kwa kutofautisha R. Sasa ninaweza kupata kazi zinazohusiana za Roomba kutoka kwa faili ya kusakinisha kwa kutibu R inayobadilika kama muundo.

- R. TurnAngle (90) Ikiwa kila kitu kilienda sawa, sauti ya muziki inapaswa kucheza, ikithibitisha unganisho.

Hatua ya 3: Mantiki ya MATLAB

Hati ya PDF chini ya hatua hii ni chati ya kina ya mtiririko wa mantiki kwa mchakato wetu wa usimbuaji katika MATLAB. Tuliwasha sensorer za mwamba, mwangaza, na mwanga ili kuruhusu roboti kuwasiliana nasi inapogundua kitu karibu na eneo lake. Kwa mfano, wakati roboti inasonga mbele, sensorer zake nyepesi hutafuta vitu vilivyo kwenye njia yake kulingana na vector ambayo inasafiri. Tulichukua kizingiti cha mbali cha roboti ili inapokaribia kitu, ibadilike badala ya kugongana nayo. Roboti yetu pia imeundwa na Twitter, ambayo tulibainisha katika mchakato wetu wa usimbuaji (hii itaonyeshwa hapa chini).

Ili kuongeza uzoefu, tulitumia matumizi ya MATLAB kwenye vifaa vyetu vya rununu ili tuweze kudhibiti nyendo za roboti kwa kutega tu simu zetu. Hii ni shughuli ya hiari, kwani unaweza kuwa na hoja ya roboti kwa kutumia amri ya kusongaDistance katika sehemu ya nambari ya MATLAB badala yake. Kumbuka kwamba kutumia amri za MATLAB kudhibiti robot yako kunapendekezwa ikiwa lengo lako ni kuwa sahihi. Ikiwa unataka kulenga roboti ili kamera ichukue picha katika eneo fulani, inaweza kuwa bora kuweka alama za harakati za roboti hiyo kwenye MATLAB. Wakati wa kuburudisha, kutumia matumizi ya MATLAB kudhibiti robot yako haifai kwa usahihi.

Kanuni inaamuru Roomba kutekeleza usanidi wa msingi kisha kuendelea kupitia kitanzi kinachoendelea. Hapo awali kompyuta ndogo itaweka kiunga na Roomba kwa kutumia amri ya Roomba (). Pia inaweka unganisho la twitter kwa kutumia amri ya wavuti () katika MATLAB. Kitanzi kina mtiririko mkuu tano wa kimantiki kulingana na mazingira yanayozunguka Roomba. Kwanza Roomba huangalia vizuizi, na hurekebisha nyuma ikiwa inazuiliwa. Iliyoingia ndani ya kitanzi hicho ni njia ya pili ambayo huwaonya watumiaji ikiwa Roomba inachukuliwa. Huduma muhimu katika Martian Warzone kali. Baada ya Roomba kuamua msimamo wake uko salama, inatafuta kifaa cha rununu kuamua mwendo wake unaofuata. Ikiwa kifaa cha rununu kinaelekezwa mbele kitahesabu kasi ya msingi kulingana na ukali wa kipimo cha roll kuliko kurekebisha kasi ya gurudumu ya mtu binafsi kugeuka kulingana na kiwango cha lami. Simu inaweza pia kuhamisha Roomba kwa nyuma. Kifaa kisicho na upande kima milango ya serikali njia mbili za mwisho. Roomba anayepumzika atatafuta bendera ya Mgeni na atahadharisha mtumiaji ipasavyo.

Chini ni nambari yetu (iliyokamilishwa katika MATLAB 2017a)

Pembejeo%: data ya mwelekeo kutoka kwa kifaa kilichounganishwa na wifi, kamera

Habari, data ya sensa

Matokeo%: mwendo unadhibitiwa na kifaa kilichounganishwa na wifi na mwendo

Usalama unakaguliwa kwa kusoma data ya sensorer. Ikiwa kamera hugundua

bendera ya mgeni basi roomba hujibu kwa kutuma tweet kwa bendera ya adui

% imeonekana.

% kusudi: kifaa chetu kinaishi bila kusudi isipokuwa kulinda wale ambao

% aliiunda, inamtumikia muumbaji wake na hufanya

% haswa kile alichoambiwa.

Matumizi: kimsingi mpango utaendesha peke yake.

futa yote, funga yote, clc

Kuanzisha Vitu na Vigeuzi

r = roomba (28);

m = mobilesev;

% tumia majibu = maandishi ya wavuti (jina la mwenyeji, data)

jina la mwenyeji = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';

API = 'SGZCTNQXCWAHRCT5';

tweet = 'RoboCop is Operational… Inasubiri Amri';

data = strcat ('api_key =', API, '& status =', tweet);

majibu = webwrite (jina la mwenyeji, data);

% inayoendesha kitanzi kila wakati

wakati 1 == 1

Miundo iliyo na Takwimu za Kupumzika

o = m.orientation; Mwelekeo% ya Kifaa cha Mkononi

mwanga = r.getLightBumpers (); Maadili ya Bumper nyepesi

a = r.getCliffSensors (); Maadili ya sensorer ya Cliff

mapema = r.getBumpers (); Sensorer za Bumper

% angalia bumpers

ikiwa bump.right == 1 || bump.left == 1 || bump.front == 1

r.soveDistance (-. 2,.2);

Angalia Sensorer nyepesi

mwingine ikiwa mwanga.kushoto> 60 || mwangaza kushoto mbele> 60 || light.leftCenter> 60 || mwanga.kulia> 60 || Nuru mbele kulia> 60 || 60. Mwanga

r.soveDistance (-. 2,.2);

angalia Sensorer za Cliff

Ishara ya Kupambana na Wizi na arifa

mwingine ikiwa kushoto <300 && a kulia <300 && a kushoto mbele Mbele <300 && a mbele Mbele <300

r.acha ();

r.beep ();

tweet = 'RoboCop imeinuliwa!'

data = strcat ('api_key =', API, '& status =', tweet);

majibu = webwrite (jina la mwenyeji, data);

Kawaida Operesheni ya Kuepuka Mwamba

vinginevyo ikiwa kushoto <300 || haki <300 || Mbele ya kushoto <300 || Mbele mbele <300

r.soveDistance (-. 2,.2);

Roomba alipitisha hundi na sasa ataendesha na operesheni ya kawaida.

Hapo awali roll ya vifaa hupimwa na kuwa msingi

% kasi ambayo hutumiwa kuhesabu kasi ya gurudumu

Mbele ya Mwendo

kingineif o (3)> = 0 && o (3) <= 60

msingiVel = (-. 5/60) * (o (3) -60);

ikiwa o (2)> = - 70 && o (2) <0

r.setDriveVelocity (baseVel + (. 3/50) * abs (o (2)), baseVel - (. 3/50) * abs (o (2)));

kingineif o (2) = 0

r.setDriveVelocity (baseVel - (. 3/50) * abs (o (2)), baseVel + (. 3/50) * abs (o (2)));

mwingine r.acha

mwisho

Mwendo wa Nyuma

mwingineif o (3)> 100 && o (3) <150

r.setDriveVelocity (-. 2, -.2)

r.beep ();

r.beep ();

Roomba anayepumzika atatafuta Bendera ya Mgeni iliyotiwa alama kama maua

% kipande cha karatasi

mwingine

r.acha

img = r.getImage (); % chukua picha

kizingiti = kijivu (img (200: 383,:, 2)) + 1. Kiwango cha kijani cha calc

ikiwa kizingiti>.42

tweet = 'Adui ameonekana !!'

data = strcat ('api_key =', API, '& status =', tweet);

majibu = webwrite (jina la mwenyeji, data);

mwingine

r.acha

mwisho

mwisho

mwisho

Hatua ya 4: Hitimisho

Kumbuka, unaweza kutumia hati tuliyoandika hapo juu, lakini unaweza kuibadilisha kila wakati ili kukidhi mahitaji yako. Haipaswi kudhibitiwa na simu yako! (Walakini, inafanya kuwa ya kufurahisha zaidi.) Chagua njia gani unapendelea kutumia kudhibiti robot yako. Endesha karibu na robot yako na ufurahie!

Ilipendekeza: