Obsah:
- Krok 1: Materiály a zásoby:
- Krok 2:
- Krok 3: Zostavenie „záhrady“
- Krok 4: Napíšte kód
- Krok 5: Skopírujte kód
Video: Záhradný pomocník Roomba Bot: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Kiara Myers, Ahmad Alghadeer a Madison Tippet
Účel:
Tento návod vás naučí, ako naprogramovať robota Roomba pomocou systému MATLAB na prechádzanie záhradou a zisťovať ovocie/zeleninu v kruhovom tvare, ktoré sú dostatočne zrelé na zber podľa ich veľkosti. Tento robot vám tiež pošle e -mail s upozornením, koľko ovocia je pripravených na zber a cesta, po ktorej cestoval.
Vlastnosti:
- Na detekciu stien používa mierne svetelné snímače a mierne sa otáča, aby do nich nenarazil
- Používa nárazové senzory, aby prerušil program, keď narazí na skalu na konci záhrady
- Využíva spracovanie obrazu na detekciu kruhu v záhrade a potom na určenie jeho polomeru
- Na detekciu farebnej pásky, ktorá indikuje prítomnosť ovocia, používa snímače útesu
Krok 1: Materiály a zásoby:
- Jeden notebook
- MATLAB 2017
- Vysávač Roomba
- Malinový koláč
- Drevené bloky
- Biely papier
- Čierny papier
- Farebná páska/tenký pásik farebného papiera
- Veľká skala
Krok 2:
Krok 3: Zostavenie „záhrady“
- Vezmite si čierny papier a nastrihajte kruhy rôznych veľkostí
-
Prilepte tieto čierne kruhy na veľký biely papier
Tento kontrast bude potrebný pri detekcii ovocia
-
Vytvorte zo svojich drevených blokov záhradnú cestu podobnú bludisku, ktorou sa bude váš robot pohybovať
Vybrali sme si cestu v tvare U ako na obrázku vyššie
- Na konci svojej záhrady pridajte skalu alebo dvere alebo iný predmet, aby váš robot vedel, že je hotový
-
Prilepte biely papier kruhom na steny v záhrade
Na lepenie sme použili vedrá, pretože naše steny boli na fotoaparát príliš krátke
- Farebnú pásku/tenký pásik farebného papiera položte na zem pred ovocie
Krok 4: Napíšte kód
Navigácia v záhrade
Použitie nárazových senzorov: Na spustenie programu vložíme kódovanie do príkazu while, ktorý prechádza rôznymi príkazmi if, kým nie je kód zlomený. Ak dôjde k zásahu ktoréhokoľvek z mikrospotov, bude to mať za následok, že ich hodnota sa bude rovnať true (čo v logickej hodnote je hodnota 1). Príkaz if sa používa na prelomenie kódu, ak sa jedna z ich hodnôt rovná 1.
Používanie útesových senzorov: V príkaze while používame príkaz if, aby sme robotovi Roomba oznámili, kedy dorazil na miesto závodu. Roomba detekuje farebnú pásku na podlahe skúmaním prahu červenej, ktorý zachytia senzory útesu. Ak ľavý alebo pravý snímač útesu detekuje farbu s vyšším prahom, než je úroveň zeme, zastaví robota na 2 sekundy (pomocou príkazu pozastavenia). Počas týchto 2 sekúnd Roomba nasníma a zobrazí obrázok ovocia. Pomocou zabudovaného príkazu imfindcircles nastavte rozsah polomerov kruhov a robot Roomba nájde vaše takzvané ovocie.
Použitie spracovania obrazu: Do príkazu if vložíme ďalší príkaz if, ktorý hovorí: ak je zistený polomer, polomery3, väčší alebo rovný našej minimálnej požiadavke na zrelé ovocie, r1 (o tom rozhodnete vy), potom počítajte a zobrazte na Roomba, koľko ovocia je pripravených, a otočte sa, aby ste pokračovali záhradou. Ak nie, odbočte a pokračujte záhradou. Poznámka: Možno budete musieť nastaviť uhol, ktorý otočíte, pretože každá Roomba je iná
Použitie svetelných nárazníkov: V inom prípade, ak sú svetelné nárazníky analyzované, aby sa zaistilo, že žiaden z nich nebude vyšší ako náš určený prah. Ak ľavý, pravý, ľavý stred, pravý stred, ľavý predný alebo pravý predný nárazník svetla prekročí prahovú hodnotu, potom sa Roomba otočí mierne v príslušnom uhle, aby nedošlo k nárazu na stenu. Preto navigácia v bludisku.
Zvyšok kódu sa použije na vykreslenie cesty vykonanej robotom Roomba a potom odošle výsledky na váš e -mail
Krok 5: Skopírujte kód
Účel: Na základe svojich rozmerov prejde roomba záhradou a rozlíši zeleninu/ovocie, ktoré sú pripravené na zber. % Vstupy: Senzory Lightbump, Senzory útesu, Senzory nárazu, obraz z kamery % Výstupy: Kedykoľvek sú svetelné senzory vyššie ako prah, robot Roomba sa otočí a nasníma obrázok, pípne, ak je polomer % zeleniny/ovocia medzi konkrétnym rozsahom. Kód sa rozbije, keď robot Roomba narazí na % objekt, pošle astronautovi e -mail s informáciami o tom, koľko ovocia je pripravených na vyzdvihnutie, a mapovanie pohybu robota. % Použitie: Príkazy if a while, vykresľovanie príkazov, e -mailový kód z MATLABu
k = 0
tic
timerVal = tic
kým je to pravda
v = 0,2; % velocity r.setDriveVelocity (v, v);% roomba ísť dopredu L = r.getLightBumpers; LC = L.leftCenter; Rr = L. vpravo; Lf = L.vľavo; RC = L.rightCenter; LF = L.vľavo vpredu; RF = L.rightFront; Q = 75; % prah. RTH = 30; %Vysoký červený prah RTL = 10; %Nízky červený prah B = r.getBumpers S = r.getCliffSensors; r1 = 24; r3 = 10; PL1 = 1800; ak S.leftFront> PL1 || S.rightFront> PL1 % detekuje, či je farba na zemi nad prahom r.stop pauza (2) elapsedTime = toc (timerVal-2) tic timerVal = tic % pauza na 2 sekundy img = r.getImage; %take image imshow (img)%display image [center3, radii3] = imfindcircles (img, [30 50], 'ObjectPolarity', 'dark', 'Sensitivity', 0,9); h = viscircles (center3, radius3); %vyhľadajte kruhy polomerov so špecifikovaným rozsahom na obrázku, ak polomery3> = r1 T = 1 k = k+1 dist1 = 0,2.*elapsedTime %ak je zistený polomer väčší alebo rovný minimálnej %požiadavke na zrelé ovocie, potom Roomba počíta toto ovocie, inak polomery3 <= r3 T = 0 inak T = 0 dist2 = 0,2.*elapsedTime %Ak nie, potom nepočíta koniec ovocia
ak T == 1 r.setLEDDigits (num2str (k)) r.beep r.beep r.beep r.turnAngle (78) %Ak bolo zistené ovocie, zobrazte číslo na robote Roomba, %urobte hluk a otočte elseif T == 2 r.turnAngle (78) %Ak sú zistené 2 plody, potom otočením pokračujte cez %garden else r.turnAngle (78) %Ak nie sú zistené žiadne plody, potom otočením pokračujte cez koniec konca %záhrady ak LC> Q r.stop r.turnAngle (-7) elseif RC> Q r.stop r.turnAngle (7) elseif LF> Q r.stop r.turnAngle (-7) elseif RF> Q r.stop r. turnAngle (7) elseif Lf> Q r.stop r.turnAngle (-7) elseif Rr> Q r.stop r.turnAngle (7) end %Ak niektorá z hodnôt svetelných nárazníkov prekročí prahovú hodnotu, potom %Roomba sa mierne otočí príslušným smerom, aby sa zabránilo %nárazu na stenu
ak B.right == 1 || B.vľavo == 1 || B.front == 1 dist3 = 0,2.*Uplynul Uplynulý čas r.stop r.beep ('F#*2, F#*2, c, F#*2, F#*2') r.turnAngle (360) %Ak niektorý z udrú sa bumbery, potom roomba prehrá zvuk, roztočí sa, %a prelomí kód
zlomový koniec
end scatter (0,533, 0, '^') hold on scatter (0,533, dist1, '<') hold on scatter (-dist2, dist1, 'v') hold on scatter (-dist2, 0, 'd') savea (gcf, 'Movement.png')
kmsg = num2str (k) mail = '[email protected]' heslo = 'Srsora123#' host = 'smtp.gmail.com' port = '465'
setpref ('Internet', 'E_mail', pošta); setpref ('Internet', 'SMTP_Server', hostiteľ) props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', hostiteľ); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (mail: „Ahoj, astronaut! V záhrade je toľko ovocia“, kmsg, {'movement.png'})
Odporúča:
Automatizovaný záhradný systém postavený na Raspberry Pi pre vonkajšie alebo vnútorné použitie - MudPi: 16 krokov (s obrázkami)
Automatizovaný záhradný systém postavený na Raspberry Pi pre vonkajšie alebo vnútorné použitie - MudPi: Máte radi záhradníctvo, ale nemôžete si nájsť čas na jeho údržbu? Možno máte izbové rastliny, ktoré vyzerajú trochu smädne alebo hľadáte spôsob, ako automatizovať hydropóniu? V tomto projekte vyriešime tieto problémy a naučíme sa základy
Záhradný monitor: 3 kroky
Záhradný monitor: Toto je najnovšia a najkompletnejšia verzia mojich záhradných monitorov, vyrobil som predchádzajúce verzie s rôznym použitím, napríklad jednu s LCD a druhú s ESP8266. Túto verziu som však zdokumentoval lepšie, a preto som sa rozhodol ju nahrať. Keď
DIY záhradný dron na kontrolu rastlín (skladací trikoptéra s rozpočtom): 20 krokov (s obrázkami)
DIY záhradný dron na kontrolu rastlín (skladací trikoptéra s rozpočtom): V našom víkendovom dome máme peknú malú záhradu s množstvom ovocia a zeleniny, ale niekedy je ťažké udržať krok s tým, ako sa rastliny menia. Potrebujú neustály dohľad a sú veľmi zraniteľní voči počasiu, infekciám, chybám atď.
Automatizovaný záhradný systém Intel: 16 krokov (s obrázkami)
Automatizovaný záhradný systém Intel: [Play Video] Ahoj všetci !!! Toto je môj prvý návod na Intel Edison. Tento návod je návodom na výrobu automatizovaného zavlažovacieho systému (kvapkovej závlahy) pre malé črepníkové rastliny alebo bylinky pomocou systému Intel Edison a ďalších lacných elektronických
Bezdrôtový záhradný systém: 7 krokov
Bezdrôtový záhradný systém: Tento projekt je založený na Arduine a používa " moduly " aby vám pomohol zalievať vaše rastliny a zaznamenávať teplotu, pôdu a dážď. Systém je bezdrôtový cez 2,4 GHz a na odosielanie a prijímanie údajov používa moduly NRF24L01. Dovoľte mi trochu vysvetliť, ako