Jak přesouvat nádobí kolem vaší kuchyňské police pomocí robota?

Pokud hledáte způsob, jak dramaticky zvýšit kouzlo a funkčnost vaší kuchyně, zvažte minimalizaci lidského úsilí. Lidské úsilí lze minimalizovat vyrobením domácího robota, který bude přítomen v kuchyni a který bude nosit špinavé nádobí směrem k dřezu a tam se zastaví. Když osoba vyloží nádobí z robota, vrátí se a přinese více z nich. Někdy ve velkých kuchyních není umyvadlo tak blízko skříněk, takže robot vezme nádobí z jednoho místa police směrem k druhému. Na polici se pomocí černé pásky vytvoří cesta pro robota. Robot použije k detekci dráhy dva infračervené senzory přiblížení a na základě vstupu přijatého od senzorů Arduino nasměruje motory k pohybu pomocí ovladače motoru.



Domácí robot

Jak propojit všechna nezbytná periferní zařízení při výrobě domácího robota?

Nyní musíme shromáždit požadované součásti a začít vyrábět robota.



Krok 1: Použité komponenty

  • Arduino uno
  • IR senzor (x5)
  • Stejnosměrné motory
  • Pronásledování automobilových kol
  • Černá páska
  • Propojovací dráty
  • DC baterie
  • Tavná pistole
  • Sada šroubováků

Krok 2: Studium komponent

Jelikož jsme již vytvořili seznam komponent, pojďme se posunout o krok vpřed a projdeme si krátkou studii fungování jednotlivých komponent.



The Arduino UNO je deska mikrokontroléru, která se skládá z mikročipu ATMega 328P a je vyvinut společností Arduino.cc. Tato deska má sadu digitálních a analogových datových pinů, které lze propojit s jinými rozšiřujícími deskami nebo obvody. Tato deska má 14 digitálních pinů, 6 analogových pinů a je programovatelná pomocí Arduino IDE (Integrated Development Environment) pomocí kabelu USB typu B. K napájení vyžaduje 5V NA a a C kód provozovat.



Arduino UNO

Ovladač motoru L298N se používá k ovládání stejnosměrných motorů. L298N je duální ovladač motoru H-Bridge, který umožňuje ovládání rychlosti a směru dvou stejnosměrných motorů současně. Modul může řídit stejnosměrné motory, které mají napětí mezi 5 a 35 V, se špičkovým proudem až 2A. Závisí to na napětí, které se používá na svorce VCC motorů. V našem projektu bude 5V pin použit jako vstup, protože jej musíme připojit k 5V napájecímu zdroji, aby IC fungoval správně. Schéma zapojení ovladače motoru L298N s připojenými stejnosměrnými motory níže je zobrazen pro pochopení mechanismu ovladače motoru L298N. Pro demonstraci je vstup uveden z Logický stav místo infračervených senzorů.

Schéma zapojení vyrobené na Proteus 8 Professional



Krok 3: Porozumění blokovému diagramu a principu práce

Nejprve projdeme blokovým diagramem, pochopíme princip fungování a poté přejdeme k sestavení hardwarových komponent.

Blokové schéma

Senzory, které použijeme, jsou digitální a mohou poskytnout výstup buď 0 nebo 1. Tyto senzory, které jsme zakoupili, dávají 1 na bílých površích a 0 na černé povrchy. Senzory, které kupujeme, dávají náhodné hodnoty, někdy dávají 0 na bílých plochách a 1 na černé povrchy. V tomto robotu použijeme pět senzorů. V kódu pro pět senzorů jsou čtyři podmínky.

  1. Dopředu na lince: Když je prostřední senzor na černém povrchu a zbytek senzorů na bílém povrchu, provede se podmínka vpřed a robot se bude pohybovat rovně vpřed. Pokud začneme od Senzor 1 a pokračujte do Sensor5, hodnota, kterou bude každý ze senzorů dávat, je (1 1 0 1 1) .
  2. Ostrá zatáčka vpravo: Když Senzor 1 a Senzor 2 jsou na bílém povrchu a ostatní senzory jsou na černém povrchu, provede se podmínka ostré pravé zatáčky a robot se zahne ostře doprava. Pokud začneme od Senzor 1 a pokračujte do Sensor5, hodnota, kterou bude každý ze senzorů dávat, je (1 1 0 0 0).
  3. Ostrá odbočka doleva: Když Senzor 4 a Senzor 5 jsou na bílém povrchu a ostatní senzory jsou na černém povrchu, provede se podmínka ostré levé zatáčky a robot zahne ostře doleva. Pokud začneme od Senzor 1 a pokračujte do Sensor5, hodnota, kterou bude každý ze senzorů dávat, je (0 0 0 1 1) .
  4. Stop: Když je všech pět senzorů na černém povrchu, robot se zastaví a motory se roztočí VYPNUTO. Tento bod s pěti černými povrchy bude poblíž dřezu, aby mohla myčka nádobí vyložit talíře z robota na mytí.

Na kuchyňské poličce uděláme cestu pomocí černé pásky a ta cesta skončí blízko dřezu, takže robot se zastaví u dřezu a myčka nádobí vyloží talíře a pak se robot posune směrem k cestě a hledá nádobí znovu.

Track of Robot

Krok 4: Začínáme s Arduino

Pokud nejste obeznámeni s Arduino IDE, nebojte se, protože níže můžete vidět jasné kroky vypalování kódu na desce mikrokontroléru pomocí Arduino IDE. Nejnovější verzi IDE Arduino si můžete stáhnout z tady a postupujte podle následujících kroků:

  1. Když je deska Arduino připojena k vašemu PC, otevřete „Ovládací panel“ a klikněte na „Hardware a zvuk“. Poté klikněte na „Zařízení a tiskárny“. Najděte název portu, ke kterému je vaše deska Arduino připojena. V mém případě je to „COM14“, ale na vašem PC se to může lišit.

    Hledání přístavu

  2. Nyní otevřete IDE Arduino. V nabídce Nástroje nastavte desku Arduino na Arduino / Genuino UNO.

    Nastavovací deska

  3. Ze stejné nabídky nástrojů nastavte číslo portu, které jste viděli na ovládacím panelu.

    Nastavení portu

  4. Stáhněte si níže přiložený kód a zkopírujte jej do svého IDE. Chcete-li nahrát kód, klikněte na tlačítko nahrát.

Kód si můžete stáhnout z Tady

Krok 5: Porozumění Kodexu

Kód je velmi jednoduchý. Níže je stručně vysvětleno:

  1. Na začátku kódu se inicializují piny snímače a spolu s tím se inicializují také piny pro motorový ovladač L298N.
    int enable1pin = 10; // Inicializace PWM pinu pro analogový vstup pro motor 1 int motor1pin1 = 2; // Inicializace kladného kolíku pro motor 1 int motor1pin2 = 3; // Inicializace záporného kolíku pro motor 1 int enable2pin = 11; // Inicializace PWM pinu pro analogový vstup pro motor 2 int motor2pin1 = 4; // Inicializace kladného kolíku pro motor 2 int motor2pin2 = 5; // Inicializace záporného kolíku pro motor 2 int S1 = 12; // Inicializace pinu 12 pro senzor 1 int S2 = 9; // Inicializace pinu 9 pro senzor 2 int S3 = 8; // Inicializace kolíku 8 pro senzor 3 int S4 = 7; // Inicializace pinu 7 pro senzor 4 int S5 = 6; // Inicializace pinu 6 pro senzor 5
  2. neplatné nastavení () je funkce, která se používá k nastavení pinů jako VSTUP nebo VÝSTUP. Také nastavuje přenosovou rychlost Arduina. Přenosová rychlost je rychlost, jakou deska mikrokontroléru komunikuje s ostatními připojenými součástmi.
    {pinMode (enable1pin, OUTPUT); // Povolení PWM pro motor 1 pinMode (enable2pin, OUTPUT); // Povolení PWM pro motor 2 pinMode (motor1pin1, OUTPUT); // Nastavení motoru1 pin1 jako výstupního pinMode (motor1pin2, OUTPUT); // Nastavení motoru1 pin2 jako výstupního pinMode (motor2pin1, OUTPUT); // Nastavení motoru2 pin1 jako výstupního pinMode (motor2pin2, OUTPUT); // Nastavení motoru2 pin2 jako výstupního pinMode (S1, INPUT); // Nastavení senzoru 1 jako vstupního pinMode (S2, INPUT); // Nastavení senzoru2 jako vstupního pinMode (S3, INPUT); // Nastavení senzoru3 jako vstupního pinMode (S4, INPUT); // Nastavení senzoru4 jako vstupního pinMode (S5, INPUT); // Nastavení senzoru5 jako vstupu Serial.begin (9600); // Nastavení přenosové rychlosti}
  3. neplatná smyčka () je funkce, která běží znovu a znovu v cyklu. V této smyčce dáváme Arduino UNO pokyny, jaké operace mají provádět. Plná rychlost motorů je 255 a oba motory mají různé otáčky. Pokud tedy chceme robotem pohnout dopředu, zatočit doprava atd., Musíme upravit rychlost motorů. V kódu jsme použili analogové piny, protože chceme měnit rychlost obou motorů za různých podmínek. Rychlost svých motorů můžete upravit sami.
    void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Přeposlat dále řádek {analogWrite (enable1pin, 61); // Motor 1 rychlost 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))) / / Sharp Right Turn {analogWrite (enable1pin, 60); // Motor 1 rychlost 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))) / / Sharp Left Turn {analogWrite (enable1pin, 80); // Motor 1 rychlost analogWrite (enable2pin, 65); // Motor 2 speed 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 rychlost analogWrite (enable2pin, 0); // Motor 2 speed 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}}

Aplikace

  1. Průmyslové aplikace : Tyto roboty lze použít jako automatizované nosiče vybavení v průmyslových odvětvích, které nahrazují tradiční dopravní pásy.
  2. Domácí aplikace : Mohou být také použity v domácnostech pro domácí účely, jako je čištění podlah, kuchyňské práce atd.
  3. Naváděcí aplikace : Tyto roboty lze použít na veřejných místech, jako jsou nákupní střediska, kurty s jídlem, muzea atd., Jako vodítko po trase