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 fremstille 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.
Sådan forbindes alle nødvendige perifere enheder til at lave en indenlandsk robot?
Nu skal vi samle de krævede komponenter og begynde at fremstille robotten.
Trin 1: Brugte komponenter
Trin 2: Studere komponenterne
Da vi allerede har lavet en liste over komponenter, lad os gå et skridt videre og gennemgå en kort undersøgelse af hver komponents funktion.
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 datapinde, der kan interfaces 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 PÅ og en C-kodeat operere.
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, så 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 tilstandi stedet for IR-sensorer.
Trin 3: Forstå blokdiagrammet og arbejdsprincippet
For det første vil vi gennemgå blokdiagrammet, forstå funktionsprincippet og derefter bevæge os mod at samle hardwarekomponenterne.
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.
- Fremad på linjen: Når den midterste sensor er på den sorte overflade, og resten af sensorerne er på den hvide overflade, udføres tilstanden fremad, 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).
- 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, vil den skarpe højre svingtilstand udføre, og robotten vil dreje 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).
- Skarp drejning til venstre: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).
- 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 redskabet igen.
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å mikrocontrolerkortet ved hjælp af Arduino IDE. Du kan downloade den nyeste version af Arduino IDE herfra og følge nedenstående trin:
- 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.
- Åbn nu Arduino IDE. Fra værktøjer skal du indstille Arduino-kortet til Arduino / Genuino UNO.
- Fra den samme værktøjsmenu skal du indstille det portnummer, du så i kontrolpanelet.
- Download nedenstående kode og kopier den til din IDE. For at uploade koden skal du klikke på upload-knappen.
Du kan downloade koden herfra
Trin 5: Forstå koden
Koden er meget enkel. Det forklares kort nedenfor:
- I starten af koden initialiseres sensorstifterne, og sammen med det initialiseres også stifterne til motordriver L298N.
int aktivere1pin = 10; // Initialisering af PWM-pin til analog indgang til motor 1 int motor1pin1 = 2; // Initialisering af positiv pin til motor 1 int motor1pin2 = 3; // Initialisering af negativ stift 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
- 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}
- ugyldig sløjfe () er en funktion, der kører igen og igen i en cyklus. I denne sløjfe 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 motorhastigheden. 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.
void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Videresend på 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 hastighed 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
- Industrielle applikationer: Disse robotter kan bruges som automatiserede udstyrsbærere i industrier, der udskifter traditionelle transportbånd.
- Indenlandske applikationer: Disse kan også bruges hjemme til husholdningsformål som gulvrengøring, køkkenarbejde osv.
- Vejledning ansøgninger: Disse robotter kan bruges på offentlige steder som indkøbscentre, madbaner, museer osv. Til at give vejvejledning