Ako posúvať riad po kuchyni pomocou robota?

Ak hľadáte spôsob, ako dramaticky zvýšiť čaro a funkčnosť svojej kuchyne, zvážte minimalizáciu ľudského úsilia. Ľudské úsilie možno minimalizovať tým, že si vyrobí domáceho robota, ktorý bude prítomný v kuchyni a ktorý bude niesť špinavý riad smerom k umývadlu a tam sa zastaví. Keď osoba vyloží z robota riad, vráti sa a prinesie ho viac. Niekedy vo veľkých kuchyniach nie je umývadlo tak blízko skriniek, takže robot vezme riad z jedného miesta police smerom na druhé. Na poličke sa pomocou čiernej pásky urobí cesta pre robota. Robot použije na detekciu dráhy dva infračervené senzory priblíženia a na základe vstupu prijatého zo senzorov Arduino nasmeruje motory na pohyb pomocou vodiča motora.



Domáci robot

Ako pripojiť všetky potrebné periférie pri výrobe domáceho robota?

Teraz musíme zhromaždiť potrebné komponenty a začať vyrábať robota.



Krok 1: Použité komponenty

  • Arduino uno
  • IR senzor (x5)
  • Jednosmerné motory
  • Prenasledovanie automobilových kolies
  • Čierna páska
  • Prepojovacie drôty
  • DC batéria
  • Lepiaca pištoľ
  • Sada skrutkovačov

Krok 2: Štúdium komponentov

Pretože sme už vytvorili zoznam komponentov, poďme o krok vpred a urobme si krátku štúdiu fungovania jednotlivých komponentov.



The Arduino UNO je doska mikrokontroléra, ktorá sa skladá z mikročipu ATMega 328P a je vyvinutá spoločnosťou Arduino.cc. Táto doska má sadu digitálnych a analógových dátových pinov, ktoré je možné prepojiť s inými rozširujúcimi doskami alebo obvodmi. Táto doska má 14 digitálnych pinov, 6 analógových pinov a je programovateľná pomocou IDE Arduino (integrované vývojové prostredie) pomocou kábla USB typu B. Na napájanie je potrebných 5V ZAP a a Zákonníka C. prevádzkovať.



Arduino UNO

Driver L298N sa používa na prevádzku jednosmerných motorov. L298N je duálny ovládač motora H-Bridge, ktorý umožňuje riadenie rýchlosti a smeru súčasne dvoch jednosmerných motorov. Modul môže poháňať jednosmerné motory, ktoré majú napätie medzi 5 a 35 V, so špičkovým prúdom do 2A. Závisí to od napätia, ktoré sa používa na svorke motorov VCC. V našom projekte bude 5V pin použitý ako vstup, pretože ho musíme pripojiť k 5V napájaciemu zdroju, aby IC fungoval správne. Schéma zapojenia ovládača motora L298N s pripojenými jednosmernými motormi je uvedený nižšie pre pochopenie mechanizmu budiča motora L298N. Pre demonštráciu je vstup poskytnutý z Logický stav namiesto infračervených senzorov.

Okruhový diagram vyrobený na Proteus 8 Professional



Krok 3: Porozumenie blokového diagramu a princípu práce

Najskôr si prejdeme blokovú schému, pochopíme princíp práce a potom pokračujeme smerom k zostaveniu hardvérových komponentov.

Bloková schéma

Senzory, ktoré použijeme, sú digitálne a môžu poskytovať výstup buď 0 alebo 1. Tieto senzory, ktoré sme kúpili, poskytujú 1 na biele povrchy a 0 na čiernych plochách. Senzory, ktoré kupujeme, dávajú náhodné hodnoty, niekedy dávajú 0 na biele povrchy a 1 na čiernych plochách. V tomto robotovi použijeme päť senzorov. V kóde pre päť senzorov sú štyri podmienky.

  1. Dopredu on-line: Keď je stredný snímač na čiernom povrchu a zvyšok snímačov je na bielom povrchu, vykoná sa stav vpred a robot sa pohne priamo vpred. Ak začneme od Senzor1 a pokračujte do Sensor5, hodnota, ktorú bude dávať každý zo senzorov, je (1 1 0 1 1) .
  2. Ostrá odbočka vpravo: Keď Senzor 1 a Senzor 2 sú na bielom povrchu a zvyšok senzorov je na čiernom povrchu, vykoná sa podmienka ostrého otočenia doprava a robot sa otočí ostro vpravo. Ak začneme od Senzor1 a pokračujte do Sensor5, hodnota, ktorú bude dávať každý zo senzorov, je (1 1 0 0 0).
  3. Ostro doľava: Keď Senzor 4 a Senzor 5 sú na bielom povrchu a zvyšok senzorov je na čiernom povrchu, vykoná sa podmienka ostrej ľavej odbočky a robot sa otočí ostro doľava. Ak začneme od Senzor1 a pokračujte do Sensor5, hodnota, ktorú bude dávať každý zo senzorov, je (0 0 0 1 1) .
  4. Stop: Keď je všetkých päť senzorov na čiernom povrchu, robot sa zastaví a motory sa roztočia VYPNUTÉ. Tento bod s piatimi čiernymi povrchmi bude blízko umývadla, aby umývačka mohla vyložiť z robota dosky na umývanie.

Na kuchynskej poličke urobíme čiernou páskou cestičku a táto cesta bude končiť blízko drezu, takže robot sa zastaví pri dreze a umývačka riadu vyloží taniere a potom sa robot posunie smerom k ceste a bude hľadať pomôcky ešte raz.

Track Of Robot

Krok 4: Začíname s Arduino

Ak predtým Arduino IDE nepoznáte, nebojte sa, pretože nižšie môžete vidieť jasné kroky pri vypaľovaní kódu na doske mikrokontroléra pomocou Arduino IDE. Najnovšiu verziu Arduino IDE si môžete stiahnuť z adresy tu a postupujte podľa nasledujúcich pokynov:

  1. Keď je doska Arduino pripojená k vášmu počítaču, otvorte „Ovládací panel“ a kliknite na „Hardvér a zvuk“. Potom kliknite na „Zariadenia a tlačiarne“. Nájdite názov portu, ku ktorému je pripojená vaša doska Arduino. V mojom prípade je to „COM14“, ale na vašom počítači sa to môže líšiť.

    Hľadá sa prístav

  2. Teraz otvorte Arduino IDE. V ponuke Nástroje nastavte dosku Arduino na Arduino / Genuino UNO.

    Nastavovacia doska

  3. V rovnakej ponuke Nástroj nastavte číslo portu, ktorý ste videli na ovládacom paneli.

    Nastavenie portu

  4. Stiahnite si priložený kód nižšie a skopírujte ho do svojho IDE. Ak chcete nahrať kód, kliknite na tlačidlo nahrať.

Kód si môžete stiahnuť z Tu

Krok 5: Porozumenie Kódexu

Kód je veľmi jednoduchý. Ďalej je to stručne vysvetlené:

  1. Na začiatku kódu sa inicializujú kolíky senzora a spolu s tým sa inicializujú aj kolíky pre budič motora L298N.
    int enable1pin = 10; // Inicializácia pinu PWM pre analógový vstup pre motor 1 int motor1pin1 = 2; // Inicializácia kladného kolíka pre motor 1 int motor1pin2 = 3; // Inicializácia záporného pinu pre motor 1 int enable2pin = 11; // Inicializácia pinu PWM pre analógový vstup pre motor 2 int motor2pin1 = 4; // Inicializácia kladného kolíka pre motor 2 int motor2pin2 = 5; // Inicializácia záporného kolíka pre motor 2 int S1 = 12; // Inicializácia kolíka 12 pre snímač 1 int S2 = 9; // Inicializácia pinu 9 pre senzor 2 int S3 = 8; // Inicializácia kolíka 8 pre snímač 3 int S4 = 7; // Inicializácia pinu 7 pre senzor 4 int S5 = 6; // Inicializácia kolíka 6 pre snímač 5
  2. nastavenie neplatnosti () je funkcia, ktorá sa používa na nastavenie pinov ako INPUT alebo OUTPUT. Nastavuje tiež prenosovú rýchlosť Arduina. Prenosová rýchlosť je rýchlosť, ktorou komunikuje doska mikrokontroléra s ostatnými pripojenými komponentmi.
    {pinMode (enable1pin, OUTPUT); // Povolenie PWM pre motor 1 pinMode (enable2pin, OUTPUT); // Povolenie PWM pre motor 2 pinMode (motor1pin1, OUTPUT); // Nastavenie motora1 pin1 ako výstupného pinMode (motor1pin2, OUTPUT); // Nastavenie motor1 pin2 ako výstupného pinMode (motor2pin1, OUTPUT); // Nastavenie motora2 pin1 ako výstupného pinMode (motor2pin2, OUTPUT); // Nastavenie motora2 pin2 ako výstupného pinMode (S1, INPUT); // Nastavenie senzora1 ako vstupného pinMode (S2, INPUT); // Nastavenie senzora2 ako vstupného pinMode (S3, INPUT); // Nastavenie senzora3 ako vstupného pinMode (S4, INPUT); // Nastavenie sensor4 ako vstupného pinMode (S5, INPUT); // Nastavenie senzora5 ako vstupu Serial.begin (9600); // Nastavenie prenosovej rýchlosti}
  3. neplatná slučka () je funkcia, ktorá beží znova a znova v cykle. V tejto slučke dávame Arduino UNO pokyny, aké operácie majú vykonávať. Plná rýchlosť motorov je 255 a obidva motory majú rozdielne otáčky. Ak teda chceme robotom pohnúť vpred, zatočiť doprava atď., Musíme upraviť rýchlosť motorov. V kóde sme použili analógové piny, pretože chceme meniť rýchlosť oboch motorov v rôznych podmienkach. Otáčky svojich motorov môžete nastaviť sami.
    void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Ďalej riadok {analogWrite (enable1pin, 61); // Motor 1 rýchlosť analogWrite (enable2pin, 63); // Motor 2 speed digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1 nastavený na High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 nastavený na Low digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 nastavený na High digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 nastavený na Low} if (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Ostré odbočenie vpravo {analogWrite (enable1pin, 60); // Motor 1 rýchlosť analogWrite (enable2pin, 80); // Motor 2 speed digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1 nastavený na High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 nastavený na Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 nastavený na Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 nastavený na Low} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Ostré doľava odbočenie {analogWrite (enable1pin, 80); // Motor 1 rýchlosť analogWrite (enable2pin, 65); // Motor 2 rýchlosti digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 nastavený na Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 nastavený na Low digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 nastavený na High digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 nastavený na Low} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin, 0); // Motor 1 rýchlosť analogWrite (enable2pin, 0); // Motor 2 rýchlosti digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 nastavený na Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 nastavený na Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 nastavený na Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 nastavený na Low}}

Aplikácie

  1. Priemyselné aplikácie : Tieto roboty sa dajú použiť ako automatizované nosiče vybavenia v priemysle, ktoré nahrádzajú tradičné dopravné pásy.
  2. Domáce aplikácie : Môžu sa tiež použiť v domácnostiach na domáce účely, ako je čistenie podláh, práce v kuchyni atď.
  3. Poradenské aplikácie : Tieto roboty môžu byť použité na verejných miestach, ako sú nákupné centrá, reštaurácie, múzeá atď., Na zabezpečenie vedenia po trase