Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi at Materyales
- Hakbang 2: Pag-configure
- Hakbang 3: Logic ng MATLAB
- Hakbang 4: Konklusyon
Video: Roomba With MATLAB: 4 Hakbang (may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Ginagamit ng proyektong ito ang MATLAB at isang iRobot Create2 na maaaring mai-program na robot. Sa pamamagitan ng paglalagay ng aming kaalaman sa MATLAB sa pagsubok, nagagawa naming i-program ang Lumikha2 upang bigyang kahulugan ang mga imahe at makita ang mga signal. Ang pagpapaandar ng robot ay higit na nakasalalay sa MATLAB mobile app at isang module ng camera ng Raspberry Pi.
Hakbang 1: Mga Bahagi at Materyales
1. Lumikha ng iRobot, Bersyon 2
- Ito ay isang programmable robot na mukhang isang Roomba. Magkaroon ng kamalayan na ang produktong ito mula sa iRobot ay hindi isang vacuum. Ito ay inilaan para sa pasadyang programa ng gumagamit.
2. MATLAB 2017a
- Karamihan sa mas matandang mga bersyon ay magiging tugma sa code na ginamit namin sa ibaba. Makikilala ng MATLAB ang isang utos na hindi tugma sa bersyon na mayroon ka at magmumungkahi ng isang pinakamahusay na magkasya na utos.
3. Raspberry Pi 3 Model B, Bersyon 1.2
- Suriin upang makita kung aling Raspberry Pi ang katugma sa iyong iRobot. Tingnan ang link na ito para sa karagdagang tulong: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ang itinuturo na ito ay ipinapalagay na nagtatrabaho ka sa isang naka-preprogram na Raspberry Pi. Mangyaring magkaroon ng kamalayan na kakailanganin mong gumana sa isang naka-preprogram na Pi upang gumana ang mga sumusunod na hakbang. Ang paggamit ng isang naka-preprogram na Pi ay magbibigay-daan sa iyo upang maisagawa ang lahat ng iyong pag-coding sa MATLAB lamang.
4. Camera Module V2 (para sa Raspberry Pi)
- Maaari kang mabigla; sa kabila ng laki nito, ang Raspberry Pi Camera Module ay napakahusay na kalidad. Ito ang pinakamura at pinaka katugmang pagpipilian para sa proyektong ito.
Opsyonal: 3D-print na stand. Ginagamit ito upang patatagin ang camera. Hindi ito nakakaapekto sa pagpapaandar ng robot, ngunit makakatulong ito na tulungan ang iyong pag-cod kung nais mong gumamit ng data ng imaging para sa kulay at / o pagkilala sa bagay.
Hakbang 2: Pag-configure
1. Pagkonekta sa module ng Raspberry Pi at camera (Hardware)
- Upang mapagana ang Raspberry Pi, kakailanganin mong magpatakbo ng isang male end micro USB sa babaeng power port sa microcontroller. Opsyonal: Maaaring magamit ang isang regulator ng boltahe upang matiyak na ang boltahe ay hindi lalampas sa 5V. Matapos mapagana ang Raspberry Pi, maaari mo itong ikonekta sa iyong robot sa pamamagitan ng pagpapatakbo ng male end USB a mula sa motherboard hanggang sa USB port A sa microcontroller.
- Matapos ikonekta ang Pi sa Roomba, handa nang mai-install ang camera. Ang Module ng Camera ay magiging mas maliit kaysa sa inaasahan mo. Tandaan na ang lens ay naka-mount sa isang sensor, at isang puting laso ang umaabot mula sa camera. HUWAG alisin o punitin ang laso! Ito ang cable na kailangan mo upang ikonekta ito sa Raspberry Pi. Una, hawakan ang dulo ng laso at hanapin ang mga konektor ng pilak at ang asul na cable. Ito ay nasa magkabilang panig. Susunod, hanapin ang puwang sa pagitan ng ethernet at HDMI port sa iyong Raspberry Pi. Pansinin mayroong isang maliit, puting kandado na tumatakip dito. Dahan-dahang iangat ang lock, ngunit huwag alisin ito mula sa puwang, dahil ito ay mag-snap at permanenteng nasisira. Kapag naangat mo na ang lock, kunin ang laso at harapin ang mga konektor ng pilak sa HDMI port. Ang asul na bahagi ay haharap sa port ng Ethernet. Dahan-dahang i-slide ang laso sa puwang habang naka-unlock pa rin ito. Hindi mo ito pipilitin sa puwang. Pagkatapos ng pagpapasok, itulak ang lock pabalik. Kung ang iyong camera ay na-secure nang maayos, dapat mong (marahan) hilahin ang laso at makaramdam ng pag-igting. Ang laso ay hindi dapat maluwag. Matapos ikonekta ang iyong camera sa Pi, maaari mong mapansin kung gaano ito kalaya. Ito ang dahilan kung bakit ginamit namin ang isang naka-print na 3D upang mai-steady ito. Ito ang iyong pagpipilian upang matukoy kung anong mga materyales ang nais mong gamitin upang mapanatili ang iyong camera para sa mataas na kalidad na imaging.
2. Pag-install ng Wastong Mga File at Pagkonekta ng Roomba sa iyong Computer Matapos ang lahat ng iyong hardware ay na-configure, maaari mo na ngayong magpatuloy sa pag-install ng MATLAB kasama ang mga nauugnay na m-file na nagpapahintulot sa iyo na makipag-usap sa robot. Upang magawa ito, buksan ang MATLAB at lumikha ng isang bagong folder upang mapanatiling magkasama ang lahat ng mga nauugnay na file. Gamitin ang script na ito upang mai-install / i-update ang kinakailangang mga file:
- Ang lahat ng mga file ay dapat na magpakita sa iyong nilikha folder. Mag-right click sa window ng Kasalukuyang Folder at piliin ang 'Idagdag sa Path' upang idagdag ang landas na iyon sa listahan ng mga direktoryo kung saan naghahanap ang mga MATLAB ng mga file. Tiyaking ang lahat ng iyong mga file ay nasa tamang landas.
3. Kapag na-install na ang mga file, maaari mo na ngayong simulang kumonekta sa iyong robot. Magsimula sa pamamagitan ng pag-on ng iyong robot at pagkatapos ay mahirap i-reset ito nang direkta pagkatapos magsimula (huwag kalimutang i-reset nang husto ang iyong robot tuwing bago at pagkatapos ng paggamit). Pangalawa, ikonekta ang parehong iyong robot at laptop sa parehong network ng wifi. Pagkatapos nito, magsasalita kami sa naka-preprogram na Raspberry Pi sa pamamagitan ng MATLAB sa pamamagitan ng pagtawag sa Roomba gamit ang ibinigay na pangalan nito at ang function roomba. Halimbawa, kumokonekta ako sa robot 28 sa pamamagitan ng paggamit ng sumusunod na linya: R = roomba (28).
- Pansinin kung paano ko itinalaga ang bagay sa isang variable R. Maaari ko na ngayong ma-access ang nauugnay na mga pagpapaandar ng Roomba mula sa pag-install ng file sa pamamagitan ng paggamot sa variable R tulad ng isang istraktura.
- R.turnAngle (90) Kung naging maayos ang lahat, dapat na tumugtog ang isang musikal na tono, na kinukumpirma ang koneksyon.
Hakbang 3: Logic ng MATLAB
Ang dokumentong PDF sa ilalim ng hakbang na ito ay isang detalyadong tsart ng daloy ng lohika para sa aming proseso ng pag-coding sa MATLAB. Pinapagana namin ang mga sensor ng cliff, light, at light bump upang payagan ang robot na makipag-usap sa amin kapag nakakita ito ng isang bagay sa agarang paligid nito. Halimbawa, kapag ang robot ay sumusulong, ang mga light sensor nito ay nag-scan ng mga bagay sa daanan nito ayon sa vector kung saan ito naglalakbay. Pumili kami ng isang threshold ng distansya para sa robot upang kapag lumapit ito sa isang bagay, tatalikod ito sa halip na mabangga ito. Ang aming robot ay naka-configure din sa Twitter, na tinukoy namin sa aming proseso ng pag-coding (ipapakita ito sa ibaba).
Upang mapahusay ang karanasan, gumawa kami ng application ng MATLAB sa aming mga mobile device upang makontrol namin ang paggalaw ng robot sa pamamagitan lamang ng Pagkiling ng aming mga telepono. Ito ay isang opsyonal na aktibidad, dahil tiyak na maaari mong ilipat ang robot sa pamamagitan ng paggamit ng command na moveDistance sa segment ng MATLAB code sa halip. Tandaan na ang paggamit ng mga utos ng MATLAB upang makontrol ang iyong robot ay ginustong kung ang iyong layunin ay maging tumpak. Kung nais mong ituro sa iyo ang robot upang ang camera ay kumuha ng larawan sa isang tukoy na lokasyon, maaaring mas mahusay na i-code ang mga paggalaw ng robot sa MATLAB. Habang nakakaaliw, ang paggamit ng application na MATLAB upang makontrol ang iyong robot ay hindi kanais-nais para sa kawastuhan.
Ang Code ay nag-uutos sa Roomba na magsagawa ng isang pangunahing pag-set up pagkatapos ay magpatuloy sa pamamagitan ng isang tuluy-tuloy na loop. Sa una ang laptop ay magse-set up ng isang link sa Roomba gamit ang Roomba () na utos. Itinatakda rin nito ang koneksyon sa kaba gamit ang utos ng webwrite () sa MATLAB. Naglalaman ang loop ng limang pangunahing lohikal na daloy depende sa kapaligiran na nakapalibot sa Roomba. Una ang mga pagsusuri ng Roomba para sa mga hadlang, at inaayos ang paatras kung nakita nitong ito ay hadlangan. Ang naka-embed sa loop na iyon ay ang pangalawang landas na alerto sa mga gumagamit kung ang Roomba ay nadala. Isang mahalagang utility sa malupit na Martian Warzone. Matapos matukoy ng Roomba na ligtas ang posisyon nito, tumingin ito sa mobile device upang matukoy ang susunod na paggalaw. Kung ang aparato ng mobile ay ikiling pasulong makakalkula nito ang isang bilis ng base depende sa kalubhaan ng pagsukat ng roll kaysa ayusin ang mga bilis ng indibidwal na gulong upang lumiko batay sa antas ng pitch. Maaari ring ilipat ng telepono ang Roomba sa kabaligtaran. Ang isang walang kinikilingan na aparato ng mobile na aparato ay nagpapadala ng pangwakas na dalawang mga landas. Ang isang nagpapahinga Roomba ay maghanap para sa isang Alien flag at alerto ang gumagamit nang naaayon.
Nasa ibaba ang aming code (nakumpleto sa MATLAB 2017a)
% input: Data ng oryentasyon mula sa isang koneksyon sa wifi, camera
% impormasyon, data ng sensor
% outputs: kilos ay kinokontrol ng wifi konektado aparato at ang paggalaw
Ang% ay kaligtasan na nasuri sa pamamagitan ng pagbabasa ng data ng sensor. Kung nakita ng camera
% isang alien flag pagkatapos ang roomba ay tumutugon sa pamamagitan ng pag-tweet sa flag ng kaaway
% ang nakita.
% layunin: ang aming aparato ay nabubuhay na walang layunin maliban upang maprotektahan ang mga na
% ang lumikha nito, nagsisilbi sa tagalikha nito at ginagawa
% eksaktong sinabi nito.
% Paggamit: mahalagang tatakbo ang programa nang mag-isa.
limasin lahat, isara lahat, clc
% Inisyal ang Mga Bagay at Variable
r = roomba (28);
m = mobiledev;
% use response = webwrite (hostname, data)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'Ang RoboCop ay Operational… Naghihintay ng Command';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (hostname, data);
% Patuloy na tumatakbo loop
habang 1 == 1
% Mga Istraktura na Naglalaman ng Relavent Data
o = m.orientation; % orientation ng Mobile Device
ilaw = r.getLightBumpers (); % Mga Halaga ng Banayad na Bumper
a = r.getCliffSensors (); % Mga Halaga ng Sensor ng CLiff
paga = r.getBumpers (); % Mga Sensor ng Bumper
% suriin ang mga bumper
kung maingay.kano == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
% check light Sensors
kung hindi man ilaw.kaliwa> 60 || light.leftFront> 60 || light.leftCenter> 60 || ilaw. tama> 60 || light. RightFront> 60 || ilaw. RightCenter> 60
r.moveDistance (-. 2,.2);
% suriin ang Cliff Sensors
% Anti-Theft Signal at abiso
kung hindi man.kaliwa <300 && a.kanan <300 && a.kaliwaHarap <300 && a.akakaharap <300
r.stop ();
r.beep ();
tweet = 'Ang RoboCop ay naangat!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (hostname, data);
% Karaniwang Operasyon ng Pag-iwas sa Cliff
kung hindi man.kaliwa <300 || a.kano <300 || a.leftFront <300 || a. RightFront <300
r.moveDistance (-. 2,.2);
Nagpasa si% Roomba ng mga tseke at tatakbo na ngayon na may normal na operasyon.
% Sa una ang rolyo ng aparato ay sinusukat at nagiging isang batayan
% bilis na kung saan ay pagkatapos ay ginagamit upang makalkula ang bilis ng gulong
% Forward Motion
kung hindi man (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60) * (o (3) -60);
kung o (2)> = - 70 && o (2) <0
r.setDriveVelocity (baseVel + (. 3/50) * abs (o (2)), baseVel - (. 3/50) * abs (o (2)));
kung hindi man (2) = 0
r.setDriveVelocity (baseVel - (. 3/50) * abs (o (2)), baseVel + (. 3/50) * abs (o (2)));
kung hindi man r.stop
magtapos
% Paatras na Paggalaw
kung hindi man (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
% resting roomba ay maghanap para sa Alien Flag na minarkahan bilang isang flourescent
% berdeng Piraso ng papel
iba pa
r.stop
img = r.getImage (); % kumuha ng imahe
threshold = greystesh (img (200: 383,:, 2)) +. 1; % antas ng berde ng calc
kung threshold>.42
tweet = 'Nakita ang Kaaway !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (hostname, data);
iba pa
r.stop
magtapos
magtapos
magtapos
Hakbang 4: Konklusyon
Tandaan, maaari mong gamitin ang script na isinulat namin sa itaas, ngunit maaari mo itong palaging baguhin upang umangkop sa iyong mga pangangailangan. Hindi ito kailangang kontrolin ng iyong telepono! (Gayunpaman, ginagawa itong mas masaya.) Piliin kung aling pamamaraan ang mas gusto mong gamitin upang makontrol ang iyong robot. Magmaneho sa iyong robot at mag-enjoy!
Inirerekumendang:
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Pasadyang Arduino upang Panatilihing MAAARI ang Mga Pindutan sa Mga Manibela na May Bagong Car Stereo: 9 Mga Hakbang (na may Mga Larawan)
Pasadyang Arduino upang Panatilihin ang CAN Steering Wheel Buttons Sa Bagong Car Stereo: Napagpasyahan kong palitan ang orihinal na stereo ng kotse sa aking Volvo V70 -02 ng isang bagong stereo upang masisiyahan ako sa mga bagay tulad ng mp3, bluetooth at handsfree. Ang aking kotse ay may ilang mga kontrol sa manibela para sa stereo na nais kong magamit pa rin.
Album ng Mga Litrato ng Mga Bata Na May Komersyal ng Flashcard: 8 Mga Hakbang (na may Mga Larawan)
Kids Photo Album With Flashcard Commercial: Ipinapakita ng mga itinuturo na ito kung paano gumawa ng isang awtomatikong pag-update ng photo album ng WiFi bilang karagdagan sa mga tampok sa komersyal na flash card