Obsah:
- Krok 1: Materiály a zásoby:
- Krok 2:
- Krok 3: Sestavení „zahrady“
- Krok 4: Psaní kódu
- Krok 5: Zkopírujte kód
Video: Garden Helper Roomba Bot: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Kiara Myers, Ahmad Alghadeer a Madison Tippet
Účel:
Tento instruktážní program vás naučí, jak pomocí robota Roomba Bot pomocí MATLABu procházet zahradou a detekovat ovoce/zeleninu kruhového tvaru, které jsou dostatečně zralé na sběr podle jejich velikosti. Tento robot vám také pošle e -mail s upozorněním, kolik ovoce je připraveno k vyzvednutí a cestu, po které cestoval.
Funkce:
- Používá světelné senzory k detekci stěn a mírnému otočení, aby se zabránilo jejich nárazu
- Používá čidla nárazu, aby přerušila program, když narazí na skálu na konci zahrady
- Pomocí zpracování obrazu detekuje kruh v zahradě a poté určuje jeho poloměr
- Používá senzory útesu k detekci barevné pásky, která indikuje přítomnost ovoce
Krok 1: Materiály a zásoby:
- Jeden notebook
- MATLAB 2017
- Vysavač Roomba
- Raspberry Pi
- Dřevěné bloky
- Bílý papír
- Černý papír
- Barevná páska/tenký proužek barevného papíru
- Velká skála
Krok 2:
Krok 3: Sestavení „zahrady“
- Vezměte si černý papír a vystřihněte kruhy různých velikostí
-
Tyto černé kruhy nalepte na velký bílý papír
Tento kontrast bude nezbytný při detekci ovoce
-
Vytvořte ze svých dřevěných bloků zahradní cestu podobnou bludišti, kterou bude váš robot navigovat
Vybrali jsme cestu ve tvaru písmene U, jak je znázorněno výše
- Na konci vaší zahrady přidejte kámen nebo dveře nebo jiný předmět, aby váš robot věděl, že je hotovo
-
Přilepte bílý papír s kruhem na stěny zahrady
K lepení jsme použili kbelíky, protože naše stěny byly pro kameru příliš krátké
- Před ovoce dejte na zem barevnou pásku/tenký proužek barevného papíru
Krok 4: Psaní kódu
Navigace v zahradě
Použití snímačů nárazu: Ke spuštění programu vložíme kódování do příkazu while, který prochází různými příkazy if, dokud není kód rozbit. Pokud dojde k zásahu některého z nárazníků, bude to mít za následek jejich hodnotu rovnající se true (což je v Boolean hodnota 1). Příkaz if se používá k prolomení kódu, když se jedna z jejich hodnot rovná 1.
Používání snímačů útesu: V příkazu while používáme příkaz if, abychom Roombě řekli, kdy dorazil na místo závodu. Roomba detekuje barevnou pásku na podlaze tím, že zkoumá práh červené, který snímají senzory útesu. Pokud levý nebo pravý snímač útesu detekuje barvu s vyšším prahem, než je u země, zastaví robota na 2 sekundy (pomocí příkazu pauza). Během těchto 2 sekund Roomba pořídí a zobrazí obrázek ovoce. Pomocí zabudovaného příkazu imfindcircles nastavte rozsah poloměrů kruhů a robot Roomba najde vaše takzvané ovoce.
Použití zpracování obrazu: Do příkazu if vložíme další příkaz if, který říká: pokud je zjištěný poloměr, poloměry3, větší nebo roven našemu minimálnímu požadavku na zralé ovoce, r1 (o tom rozhodnete vy), pak počítejte a zobrazte na Roomba, kolik ovoce je připraveno a otočte se, abyste pokračovali zahradou. Pokud ne, odbočte a pokračujte zahradou. Poznámka: Možná budete muset upravit úhel, který otočíte, protože každá Roomba je jiná
Použití světelných nárazníků: V jiném příkazu if jsou světelné nárazníky analyzovány, aby se zajistilo, že žádný z nich nebude větší než náš určený práh. Pokud se levý, pravý, levý střed, pravý střed, levý přední nebo pravý přední světelný nárazník dostane nad prahovou hodnotu, pak se Roomba mírně otočí v příslušném úhlu, aby se vyhnula nárazu do zdi. Proto navigace bludištěm.
Zbytek kódu se použije k vykreslení cesty, kterou prošel robot Roomba, a poté odešlete výsledky na váš e -mail
Krok 5: Zkopírujte kód
% Účel: Na základě svých velikostí projde roomba zahradou a rozlišuje zeleninu/ovoce, které jsou připraveny k vyzvednutí. % Vstupy: Senzory Lightbump, Cliff senzory, Bump senzory, obraz z kamery % Výstupy: Kdykoli jsou světelné senzory větší než prahová hodnota, robot Roomba se otočí a pořídí obrázek, pípne, pokud je poloměr % zeleniny/ovoce mezi konkrétním rozsahem. Kód se rozbije, když roomba narazí na % objekt, pošle astronautovi e -mail o tom, kolik ovoce je připraveno k % vyzvednutí a mapování pohybu roomba. % Použití: Příkazy if and while, vykreslování příkazů, e -mailový kód z MATLABu
k = 0
tic
timerVal = tic
zatímco pravda
v = 0,2; % velocity r.setDriveVelocity (v, v);% roomba jít vpřed L = r.getLightBumpers; LC = L.leftCenter; Rr = L. vpravo; Lf = L. vlevo; RC = L.rightCenter; LF = L.leftFront; RF = L.rightFront; Q = 75; % práh. RTH = 30; %Vysoký červený práh RTL = 10; %Nízký červený práh B = r.getBumpers S = r.getCliffSensors; r1 = 24; r3 = 10; PL1 = 1800; pokud S.leftFront> PL1 || S.rightFront> PL1 % detekuje, zda je barva na zemi nad prahem 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); %hledejte kruhy poloměrů v uvedeném rozsahu na obrázku, pokud poloměry3> = r1 T = 1 k = k+1 dist1 = 0,2.*elapsedTime %Pokud je detekovaný poloměr větší nebo roven minimálnímu %požadavku zralého ovoce, pak Roomba počítá toto ovoce jinak rádius3 <= r3 T = 0 jinak T = 0 dist2 = 0,2.*elapsedTime %Pokud ne, pak nepočítá konec ovoce
pokud T == 1 r.setLEDDigits (num2str (k)) r.beep r.beep r.beep r.turnAngle (78) %Pokud bylo zjištěno ovoce, zobrazte číslo na Roomba, %vydejte zvuk a otočte elseif T == 2 r.turnAngle (78) %Pokud jsou detekovány 2 plody, pak otočením pokračujte skrz %garden else r.turnAngle (78) %Pokud není detekováno žádné ovoce, pak otočením pokračujte přes konec konce zahrady % pokud 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 %Pokud některá z hodnot světelných nárazníků překročí prahovou hodnotu, pak %Roomba se mírně otočí příslušným směrem, aby se zabránilo %nárazu na zeď
pokud B.right == 1 || B.left == 1 || B.front == 1 dist3 = 0,2.*Uplynulý čas r.stop r.beep ('F#*2, F#*2, c, F#*2, F#*2') r.turnAngle (360) %Pokud některý z jsou zasaženy bumbery, pak roomba přehraje zvuk, otočí se, %a rozbije kód
konec konce
end scatter (0,533, 0, '^') hold on scatter (0,533, dist1, '<') hold on scatter (-dist2, dist1, 'v') hold on scatter (-dist2, 0, 'd') saveas (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', hostitel) props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', hostitel); 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! Na zahradě je tolik ovoce“, kmsg, {'movement.png'})
Doporučuje:
The Werewolves of Miller's Hollow (狼人 殺) Circuit Helper: 4 Steps
The Werewolves of Miller's Hollow (狼人 殺) Circuit Helper: This project is made for people who like to play the Werewolves of Miller's Hollow, and this box is used to play with 8 people, with three wwolves, two vesničanů, and three special roles (Věštec, čarodějnice a lovec). Tento box je určen k nahrazení
Breadboard Wire Helper: 10 kroků (s obrázky)
Breadboard Wire Helper: Tento návod ukazuje, jak vytvořit nástroj, který pomůže usnadnit a upravit prototypy prkénka. Říkám tomu Breadboard Wire Helper
Ultimate Electronics Helper -- Variabilní napájecí zdroj s pomocnými rukama: 12 kroků (s obrázky)
Ultimate Electronics Helper || Variabilní napájecí zdroj s pomocnými rukama: Při práci s elektronikou jsou téměř vždy potřeba dva nástroje. Dnes budeme vytvářet tyto dvě základní věci. A také to posuneme o krok dále a spojíme je dohromady v konečného elektronického pomocníka! Samozřejmě mluvím
Shrimping Helper: 6 kroků
Shrimping Helper: Shrimping, také známý jako 釣 蝦 v čínštině, je jedním z nejunikátnějších a nejoblíbenějších koníčků pro Tchajwance. Spousta Tchajwanců chodí o víkendech na krevety. Krevety, ať už si užíváte boj s krevetami nebo ježíte, jsou rozhodně jedním z
Roomba Bot Bulider: 5 kroků (s obrázky)
Roomba Bot Bulider: Bot the Builder je roomba, která s " grabbery " připevněné na přední straně budou moci pohybovat předměty kolem. Kód s ním je nastaven tak, aby zaznamenával první pohyb pomocí pole GUI, které můžete ovládat pouhým kliknutím myši. Po