Orodha ya maudhui:
Video: Roomba Na MATLAB: Hatua 4 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
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
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
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:
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) na Rpi-picha na Picha: Hatua 7 (na Picha)
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) Na picha ya Rpi na Picha: Ninapanga kutumia Rapsberry PI hii kwenye rundo la miradi ya kufurahisha nyuma kwenye blogi yangu. Jisikie huru kuiangalia. Nilitaka kurudi kutumia Raspberry PI yangu lakini sikuwa na Kinanda au Panya katika eneo langu jipya. Ilikuwa ni muda tangu nilipoweka Raspberry
Uso wa Kujua Picha ya Picha ya OSD: Hatua 11 (na Picha)
Uso wa Kujua Picha ya Picha ya OSD: Maagizo haya yanaonyesha jinsi ya kutengeneza fremu ya picha na utambuzi wa uso kwenye Onyesho la Skrini (OSD). OSD inaweza kuonyesha wakati, hali ya hewa au habari nyingine ya mtandao unayotaka
Utengenezaji wa Picha / Picha ya Picha: 4 Hatua
Picha-based Modeling / Photogrammetry Portraiture: Halo kila mtu, Katika hii inayoweza kuelekezwa, nitakuonyesha mchakato wa jinsi ya kuunda vielelezo vya 3D kwa kutumia picha za dijiti. Mchakato huo unaitwa Photogrammetry, pia inajulikana kama Modeling-Image Modeling (IBM). Hasa, aina ya mchakato huu hutumiwa
MATLAB Kudhibitiwa Roomba: Hatua 5
MATLAB Iliyodhibitiwa Roomba: Lengo la mradi huu ni kutumia MATLAB na vile vile robot iliyobadilishwa inayopangwa iRobot. Kikundi chetu kiliunganisha ujuzi wetu wa usimbuaji ili kuunda hati ya MATLAB inayotumia kazi nyingi za iRobot, pamoja na sensorer za mwamba, hisia kubwa
Mradi wa Roomba MATLAB: Hatua 5
Mradi wa Roomba MATLAB: Mpango wa sasa ambao NASA inao juu ya rover ya Mars ni kuwa mkusanyaji wa data na kuzunguka karibu na Mars, kukusanya sampuli za mchanga ili kurudisha Duniani ili wanasayansi waweze kuona ikiwa kulikuwa na aina zozote za maisha ya awali kwenye sayari. Ziada