Sådan flyttes retter rundt i køkkenhylden ved hjælp af en robot?

Hvis du leder efter en måde til dramatisk at øge dit køkkens charme og funktionalitet, kan du overveje at minimere den menneskelige indsats der. Den menneskelige indsats kan minimeres ved at lave en husholdningsrobot, der vil være til stede i køkkenet, og den vil bære beskidte redskaber mod vasken og stoppe der. Når personen aflæsser redskaber fra robotten, vender den tilbage og bringer mere af dem. Undertiden i store køkkener er vasken ikke så tæt på kabinetterne, så robotten tager opvasken fra det ene sted på hylden mod det andet. En sti til robotten vil blive lavet på hylden ved hjælp af det sorte tape. Robotten vil bruge to infrarøde nærhedssensorer til at registrere stien og baseret på input modtaget fra sensorerne, vil Arduino lede motorerne til at bevæge sig ved hjælp af en motordriver.



Indenlandsk robot

Sådan forbindes alt det nødvendige perifere udstyr til fremstilling af en indenlandsk robot?

Nu skal vi samle de nødvendige komponenter og begynde at fremstille robotten.



Trin 1: Brugte komponenter

  • Arduino uno
  • IR-sensor (x5)
  • DC-motorer
  • Bilhjul jagter
  • Sort tape
  • Jumper Wires
  • DC-batteri
  • Limpistol
  • Skruetrækker sæt

Trin 2: Studere komponenterne

Da vi allerede har lavet en liste over komponenter, lad os gå et skridt fremad og gennemgå en kort undersøgelse af hver komponents funktionsmåde.



Det Arduino UNO er et mikrocontrollerkort, der består af et mikrochip ATMega 328P og er udviklet af Arduino.cc. Dette kort har et sæt digitale og analoge datatappe, der kan grænseflade med andre udvidelseskort eller kredsløb. Dette kort har 14 digitale stifter, 6 analoge stifter og programmerbare med Arduino IDE (integreret udviklingsmiljø) via et type B USB-kabel. Det kræver 5V til strøm og en C-kode at operere.



Arduino UNO

L298N-motordriver bruges til at betjene DC-motorer. L298N er en dobbelt H-Bridge-motordriver, der tillader hastighed og retningskontrol af to DC-motorer på samme tid. Modulet kan drive jævnstrømsmotorer, der har spændinger mellem 5 og 35V, med spidsstrøm op til 2A. Det afhænger af spændingen, der bruges på motorerne VCC terminal. I vores projekt vil 5V-stiften blive brugt som input, da vi har brug for at forbinde den til en 5V strømforsyning, for at IC'en fungerer korrekt. Kredsløbsdiagrammet for motoren L298N med DC-motorer tilsluttet er vist nedenfor for at forstå mekanismen til L298N-motorføreren. Til demonstrationen gives input fra Logisk tilstand i stedet for IR-sensorer.

Kredsløbsdiagram lavet på Proteus 8 Professional



Trin 3: Forståelse af blokdiagrammet og arbejdsprincippet

For det første vil vi gennemgå blokdiagrammet, forstå funktionsprincippet og derefter bevæge os hen imod samling af hardwarekomponenterne.

Blokdiagram

De sensorer, som vi vil bruge, er digitale, og de kan give output enten 0 eller 1. Disse sensorer, som vi har købt, giver 1 på hvide overflader og 0 på de sorte overflader. De sensorer, vi køber, giver tilfældige værdier, nogle gange giver de 0 på de hvide overflader og 1 på de sorte overflader. Vi bruger fem sensorer i denne robot. Der er fire betingelser i koden for fem sensorer.

  1. Fremad på linjen: Når den midterste sensor er på den sorte overflade, og resten af ​​sensorerne er på den hvide overflade, udføres den fremadgående tilstand, og robotten bevæger sig lige fremad. Hvis vi starter fra Sensor 1 og fortsæt til Sensor5, den værdi, som hver af sensorerne giver henholdsvis, er (1 1 0 1 1) .
  2. Skarp højre drejning: Når Sensor 1 og Sensor 2 er på den hvide overflade, og resten af ​​sensorerne er på den sorte overflade, udføres den skarpe højre svingtilstand, og robotten drejer skarpt til højre. Hvis vi starter fra Sensor 1 og fortsæt til Sensor5, den værdi, som hver af sensorerne giver henholdsvis, er (1 1 0 0 0).
  3. Skarp venstresving: Når Sensor 4 og Sensor 5 er på den hvide overflade, og resten af ​​sensorerne er på den sorte overflade, udføres den skarpe venstre svingtilstand, og robotten drejer skarpt til venstre. Hvis vi starter fra Sensor 1 og fortsæt til Sensor5, den værdi, som hver af sensorerne giver henholdsvis, er (0 0 0 1 1) .
  4. Hold op: Når alle de fem sensorer er på den sorte overflade, stopper robotten, og motorerne drejer AF. Dette punkt med fem sorte overflader vil være tæt på vasken, så opvaskemaskinen kan aflade pladerne fra robotten til vask.

Vi laver en sti på køkkenhylden ved hjælp af sort tape, og den sti slutter nær vasken, så robotten stopper nær vasken, og opvaskemaskinen aflader pladerne, og derefter bevæger robotten sig mod stien og søger efter redskaber igen.

Track Of Robot

Trin 4: Kom godt i gang med Arduino

Hvis du ikke er bekendt med Arduino IDE før, skal du ikke bekymre dig, for nedenfor kan du se klare trin til at brænde kode på mikrocontrollerkortet ved hjælp af Arduino IDE. Du kan downloade den nyeste version af Arduino IDE fra her og følg nedenstående trin:

  1. Når Arduino-kortet er tilsluttet din pc, skal du åbne 'Kontrolpanel' og klikke på 'Hardware og lyd'. Klik derefter på “Enheder og printere”. Find navnet på den port, som dit Arduino-kort er tilsluttet. I mit tilfælde er det 'COM14', men det kan være anderledes på din pc.

    Find port

  2. Åbn nu Arduino IDE. Fra værktøjer skal du indstille Arduino-kortet til Arduino / Genuino UNO.

    Indstillingsbræt

  3. Fra den samme værktøjsmenu skal du indstille det portnummer, du så i kontrolpanelet.

    Indstilling af port

  4. Download koden nedenfor, og kopier den til din IDE. Klik på uploadknappen for at uploade koden.

Du kan downloade koden fra Her

Trin 5: Forstå koden

Koden er meget enkel. Det forklares kort nedenfor:

  1. Ved starten af ​​koden initialiseres sensorstifterne, og sammen med det initialiseres også stifterne til motordriver L298N.
    int aktivere1pin = 10; // Initialisering af PWM-stift til analog indgang til motor 1 int motor1pin1 = 2; // Initialisering af positiv pin til motor 1 int motor1pin2 = 3; // Initialisering af negativ pin til motor 1 int enable2pin = 11; // Initialisering af PWM-stift til analog indgang til motor 2 int motor2pin1 = 4; // Initialisering af positiv pin til motor 2 int motor2pin2 = 5; // Initialisering af negativ stift til motor 2 int S1 = 12; // Initialisering af pin 12 til sensor 1 int S2 = 9; // Initialisering af pin 9 til sensor 2 int S3 = 8; // Initialisering af pin 8 til sensor 3 int S4 = 7; // Initialisering af pin 7 til sensor 4 int S5 = 6; // Initialisering af pin 6 til sensor 5
  2. ugyldig opsætning () er en funktion, der bruges til at indstille stifterne som INPUT eller OUTPUT. Det indstiller også Arduino's baudrate. Baudrate er den hastighed, hvormed mikrocontrolkortet kommunikerer med de andre tilsluttede komponenter.
    {pinMode (aktiver1pin, OUTPUT); // Aktivering af PWM til motor 1 pinMode (enable2pin, OUTPUT); // Aktivering af PWM til motor 2 pinMode (motor1pin1, OUTPUT); // Indstilling af motor1 pin1 som output pinMode (motor1pin2, OUTPUT); // Indstilling af motor1 pin2 som output pinMode (motor2pin1, OUTPUT); // Indstilling af motor2 pin1 som output pinMode (motor2pin2, OUTPUT); // Indstilling af motor2 pin2 som output pinMode (S1, INPUT); // Indstilling af sensor1 som input pinMode (S2, INPUT); // Indstilling af sensor2 som input pinMode (S3, INPUT); // Indstilling af sensor3 som input pinMode (S4, INPUT); // Indstilling af sensor4 som input pinMode (S5, INPUT); // Indstilling af sensor5 som input Serial.begin (9600); // Indstilling af baudrate}
  3. ugyldig sløjfe () er en funktion, der kører igen og igen i en cyklus. I denne løkke giver vi instruktioner til Arduino UNO, hvilke operationer der skal udføres. Motorernes fulde hastighed er 255, og begge motorer har forskellig hastighed. Så hvis vi vil bevæge robotten fremad, drej til højre osv., Er vi nødt til at justere motorernes hastighed. Vi har brugt analoge ben i koden, fordi vi vil variere hastigheden på de to motorer under forskellige forhold. Du kan justere hastigheden på dine motorer alene.
    ugyldig loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Videresend linjen {analogWrite (enable1pin, 61); // Motor 1 hastighed analogWrite (enable2pin, 63); // Motor 2-speed digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1 indstillet til High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 indstillet til Low digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 indstillet til High digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 indstillet til Lav} hvis (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Skarp drej til højre {analogWrite (enable1pin, 60); // Motor 1 hastigheds analogWrite (enable2pin, 80); // Motor 2-speed digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1 indstillet til High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 indstillet til Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 indstillet til Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 indstillet til Lav} hvis ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Skarp venstresving {analogWrite (enable1pin, 80); // Motor 1 hastigheds analogWrite (enable2pin, 65); // Motor 2-speed digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 indstillet til Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 indstillet til Low digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 indstillet til High digitalWrite (motor2pin2, LOW); // Motor 2 ben 2 indstillet til Lav} hvis ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin, 0); // Motor 1 hastighed analogWrite (enable2pin, 0); // Motor 2-speed digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 indstillet til Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 indstillet til Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 indstillet til Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 indstillet til Low}}

Ansøgninger

  1. Industrielle applikationer : Disse robotter kan bruges som automatiserede udstyrsbærere i industrier, der udskifter traditionelle transportbånd.
  2. Indenlandske applikationer : Disse kan også bruges hjemme til husholdningsformål som gulvrengøring, køkkenarbejde osv.
  3. Vejledning ansøgninger : Disse robotter kan bruges på offentlige steder som indkøbscentre, madbaner, museer osv. Til at give vejvejledning