Obsah:
Video: Roomba With MATLAB: 4 Steps (with Pictures)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
Tento projekt využívá MATLAB a programovatelného robota iRobot Create2. Tím, že testujeme naše znalosti o MATLABu, jsme schopni naprogramovat Create2 tak, aby interpretoval obrázky a detekoval signály. Funkčnost robota závisí především na mobilní aplikaci MATLAB a kamerovém modulu Raspberry Pi.
Krok 1: Díly a materiály
1. iRobot Create, verze 2
- Toto je programovatelný robot, který vypadá jako Roomba. Uvědomte si, že tento produkt od iRobot není vakuum. Je určen pro vlastní programování uživatelem.
2. MATLAB 2017a
- Většina starších verzí bude kompatibilní s kódem, který jsme použili níže. MATLAB identifikuje příkaz, který není kompatibilní s vaší verzí, a navrhne nejvhodnější příkaz.
3. Raspberry Pi 3 Model B, verze 1.2
- Zkontrolujte, zda je Raspberry Pi kompatibilní s vaším iRobotem. Další pomoc najdete na tomto odkazu: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Tento návod předpokládá, že pracujete s předprogramovaným Raspberry Pi. Aby následující kroky fungovaly, budete muset pracovat s předprogramovaným Pi. Použití předprogramovaného Pi vám umožní provádět veškeré vaše kódování pouze v MATLABu.
4. Kamerový modul V2 (pro Raspberry Pi)
- Možná budete překvapeni; navzdory své velikosti je modul Raspberry Pi Camera velmi dobré kvality. Je to nejlevnější a nejkompatibilnější možnost pro tento projekt.
Volitelně: 3D vytištěný stojan. Toto slouží ke stabilizaci kamery. Nemá vliv na funkčnost robota, ale pomůže vám při kódování, pokud si přejete použít obrazová data pro rozpoznávání barev a/nebo objektů.
Krok 2: Konfigurace
1. Propojení Raspberry Pi a modulu kamery (Hardware)
- Pro napájení Raspberry Pi budete muset zapojit zástrčku micro USB do zásuvky napájení na mikrokontroléru. Volitelné: K zajištění toho, aby napětí nepřekročilo 5V, lze použít regulátor napětí. Po napájení Raspberry Pi jej můžete připojit k vašemu robotu spuštěním konektoru USB a ze základní desky do USB portu A na mikrokontroléru.
- Po připojení Pi k robotu Roomba je kamera připravena k instalaci. Modul fotoaparátu bude mnohem menší, než byste čekali. Objektiv je připevněn ke snímači a z fotoaparátu se rozprostírá bílá stuha. NEODSTRAŇUJTE ani netrhejte pásku! Toto je kabel, který potřebujete k připojení k Raspberry Pi. Nejprve podržte konec pásky a najděte stříbrné konektory a modrý kabel. Ty jsou na opačných stranách. Dále najděte slot mezi porty ethernet a HDMI na vašem Raspberry Pi. Všimněte si, že je zakryt malý bílý zámek. Pomalu zvedněte zámek, ale nevyjímejte jej ze slotu, protože by praskl a byl by trvale poškozen. Jakmile zdvihnete zámek, uchopte pásku a otočte stříbrné konektory k portu HDMI. Modrá strana bude směřovat k ethernetovému portu. Pomalu zasuňte pásku do slotu, dokud je stále odemčená. Do slotu jej nemusíte tlačit silou. Po vložení zatlačte zámek zpět dolů. Pokud je váš fotoaparát řádně zajištěn, měli byste být schopni (jemně) zatáhnout za pásku a cítit napětí. Stuha by neměla být uvolněná. Po připojení fotoaparátu k Pi si můžete všimnout, jak je uvolněný. Proto jsme k ustálení použili držák vytištěný 3D. Je na vás, abyste určili, jaké materiály byste chtěli použít, aby byl váš fotoaparát v klidu pro vysoce kvalitní snímky.
2. Instalace správných souborů a připojení robota Roomba k počítači Poté, co je nakonfigurován veškerý váš hardware, můžete nyní přejít k instalaci programu MATLAB spolu s přidruženými soubory m, které vám umožní komunikovat s robotem. Chcete -li to provést, otevřete MATLAB a vytvořte novou složku, abyste udrželi všechny související soubory pohromadě. Pomocí tohoto skriptu nainstalujte/aktualizujte požadované soubory:
- Všechny soubory by se nyní měly zobrazit ve vaší vytvořené složce. Klikněte pravým tlačítkem v okně Aktuální složka a vyberte „Přidat do cesty“, abyste tuto cestu přidali do seznamu adresářů, kde MATLAB hledá soubory. Zajistěte, aby všechny vaše soubory byly na správné cestě.
3. Jakmile jsou soubory nainstalovány, můžete se nyní začít připojovat k robotovi. Začněte tím, že zapnete robota a poté jej tvrdě resetujete hned po spuštění (nezapomeňte robota tvrdě resetovat pokaždé před a po použití). Za druhé, připojte robota i notebook ke stejné síti Wi -Fi. Poté budeme hovořit s předprogramovaným Raspberry Pi přes MATLAB zavoláním Roomby pomocí jejího křestního jména a funkce roomba. Například bych se připojil k robotu 28 pomocí následujícího řádku: R = roomba (28).
- Všimněte si, jak jsem přiřadil objekt proměnné R. Nyní mohu přistupovat k přidruženým funkcím Roomba z instalačního souboru, když s proměnnou R zacházím jako se strukturou.
- R.turnAngle (90) Pokud vše proběhlo dobře, měl by hrát hudební tón potvrzující spojení.
Krok 3: Logika MATLABu
Dokument PDF v dolní části tohoto kroku je podrobný logický vývojový diagram pro náš proces kódování v MATLABu. Aktivovali jsme senzory útesu, světla a světelných nárazů, aby robot s námi mohl komunikovat, když detekuje předmět v jeho bezprostřední blízkosti. Například když se robot pohybuje vpřed, jeho světelné senzory skenují objekty v jeho dráze podle vektoru, ve kterém cestuje. Pro robota jsme vybrali práh vzdálenosti, takže když se přiblíží k objektu, obrátí se místo toho, aby s ním narazil. Náš robot je také nakonfigurován pomocí Twitteru, který jsme specifikovali v našem procesu kódování (to bude ukázáno níže).
Abychom vylepšili zážitek, využili jsme na našich mobilních zařízeních aplikaci MATLAB, abychom mohli ovládat pohyby robota pouhým nakláněním telefonů. Jedná se o volitelnou aktivitu, protože určitě můžete robota přesunout pomocí příkazu moveDistance v segmentu kódu MATLAB. Mějte na paměti, že pokud je vaším cílem být přesný, je upřednostňováno používat příkazy MATLAB k ovládání vašeho robota. Pokud si přejete zaměřit svého robota tak, aby kamera pořídila snímek na určitém místě, může být lepší kódovat pohyby robota v MATLABu. I když je zábava, použití aplikace MATLAB k ovládání vašeho robota není pro přesnost žádoucí.
Kód přikazuje robotovi Roomba provést základní nastavení a poté pokračovat souvislou smyčkou. Zpočátku notebook nastaví propojení s robotem Roomba pomocí příkazu Roomba (). Nastavuje také twitterové připojení pomocí příkazu webwrite () v MATLABu. Smyčka obsahuje pět hlavních logických toků v závislosti na prostředí obklopujícím robot Roomba. Roomba nejprve kontroluje, zda neobsahuje překážky, a pokud zjistí, že jí překáží, upraví se zpět. Do této smyčky je vložena druhá cesta, která uživatele upozorní, pokud bude robot Roomba unesen. Důležitý nástroj v drsné marťanské Warzone. Poté, co robot Roomba zjistí, že je jeho poloha bezpečná, vyhledá mobilní zařízení, aby určilo jeho další pohyb. Pokud je mobilní zařízení nakloněno dopředu, vypočítá základní rychlost v závislosti na závažnosti měření náklonu, než upraví otáčky jednotlivých kol podle stupně sklonu. Telefon může Roombu pohybovat i opačně. Stav neutrálních mobilních zařízení uzavírá poslední dvě cesty. Odpočívající Roomba vyhledá vlajku mimozemšťana a uživatele na to upozorní.
Níže je náš kód (dokončen v MATLABu 2017a)
%vstupů: Orientační data ze zařízení připojeného k wifi, kamery
%informací, data ze senzorů
%výstupů: pohyb je řízen připojeným zařízením wifi a pohyb
% je bezpečnost zkontrolována čtením dat senzoru. Pokud kamera detekuje
% vlajka mimozemšťana, poté Roomba odpoví tweetováním vlajky nepřítele
% bylo spatřeno.
%účel: naše zařízení žije bez účelu, kromě ochrany těch, kteří
% vytvořil, slouží svému tvůrci a dělá
% přesně to, co bylo řečeno.
%Využití: v podstatě program poběží sám.
vymazat vše, zavřít vše, clc
%Inicializace objektů a proměnných
r = roomba (28);
m = mobiledev;
%use response = webwrite (název hostitele, data)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop funguje … Čeká na příkaz';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (název hostitele, data);
%neustále běžící smyčky
zatímco 1 == 1
%Struktury obsahující relaventní data
o = m. orientace; %orientace mobilního zařízení
light = r.getLightBumpers (); %Hodnoty světelného nárazníku
a = r.getCliffSensors (); %CLiff Hodnoty snímače
bump = r.getBumpers (); %Senzory nárazníku
%zkontrolovat nárazníky
pokud bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%zkontrolujte světelné senzory
elseif light.left> 60 || light.leftFront> 60 || light.leftCenter> 60 || light.right> 60 || light.rightPřední> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
%zkontrolujte Cliff Sensors
%Signál a upozornění proti krádeži
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'RoboCop byl zrušen!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (název hostitele, data);
%Normální operace vyhýbání se útesu
elseif a.left <300 || a.right <300 || a.leftFront <300 || a. vpředu <300
r.moveDistance (-. 2,.2);
%Roomba prošla kontrolami a nyní poběží s normálním provozem.
%Zpočátku se měří role zařízení a stává se základnou
%rychlosti, která se pak použije k výpočtu rychlosti kola
%Pohyb vpřed
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
pokud o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
jinak r.stop
konec
%Zpětný pohyb
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%odpočívající roomba bude hledat vlajku mimozemšťanů označenou jako fluorescenční
%zeleně Kus papíru
jiný
r.stop
img = r.getImage (); %pořídit obrázek
práh = greythresh (obr. (200: 383,:, 2))+. 1; %výpočet zelené úrovně
je -li práh> 0,42
tweet = 'Nepřítel spatřen !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (název hostitele, data);
jiný
r.stop
konec
konec
konec
Krok 4: Závěr
Pamatujte, že můžete použít skript, který jsme napsali výše, ale můžete jej kdykoli upravit tak, aby vyhovoval vašim potřebám. Nemusí být ovládán vaším telefonem! (Je to však zábavnější.) Vyberte si metodu, kterou chcete k ovládání svého robota používat. Jezděte se svým robotem a užívejte si!
Doporučuje:
DIY 37 Leds Arduino Roulette Game: 3 Steps (with Pictures)
DIY 37 Leds Arduino Roulette Game: Roulette je kasinová hra pojmenovaná podle francouzského slova, které znamená malé kolečko
Romeo: Una Placa De Control Arduino Para Robótica Con Driver Incluidos - Robot Seguidor De Luz: 26 Steps (with Pictures)
Romeo: Una Placa De Control Arduino Para Robótica Con Driver Incluidos - Robot Seguidor De Luz: Que tal amigos, siguiendo con la revizees de placas y sensores, con el aporte de la empresa DFRobot, hoy veremos una placa con prestaciones muy interesante, y es ideální pro ovládání motorů a ovládání motorů a serv
Living Pixels - Imagine Technology has Life: 4 Steps (with Pictures)
Living Pixels - Imagine Technology Has Life: Když jsem viděl, že produkty inteligentní domácnosti jsou v našich životech běžnější, začal jsem přemýšlet o vztahu mezi lidmi a těmito produkty. Pokud se jednoho dne produkty chytré domácnosti stanou nepostradatelnou součástí života každého z nás, jaké postoje bychom měli zaujmout
MATLAB Controlled Roomba: 5 kroků
MATLAB Controlled Roomba: Cílem tohoto projektu je využít MATLAB i upravený programovatelný robot iRobot. Naše skupina spojila naše kódovací schopnosti, aby vytvořila skript MATLAB, který využívá mnoho funkcí iRobot, včetně snímačů útesu, senzoru nárazníku
Roomba MATLAB Project: 5 kroků
Roomba MATLAB Project: Současný plán, který má NASA pro Mars rover, je, že bude sběratelem dat a bude se toulat po Marsu a sbírat vzorky půdy, které by se daly přivést zpět na Zemi, aby vědci mohli zjistit, zda na ní byly nějaké předchozí formy života planetu. Další