- Komponent påkrevd:
- Montering av gulvrengjøringsrobot:
- Ledninger og tilkoblinger:
- Programmering Forklaring:
Automatiske gulvrengjøringsmidler er ikke noe nytt, men de har alle et felles problem. De er alle for dyre for det de gjør. I dag skal vi lage en automatisk rengjøringsrobot for hjemmet som bare koster en liten brøkdel av de i markedet. Denne roboten kan oppdage hindringene og gjenstandene foran den og kan fortsette å bevege seg, unngå hindringene til hele rommet er renset. Den har en liten børste festet for å rengjøre gulvet.
Sjekk også vår Smart Vacuum Cleaning Robot ved hjelp av Arduino
Komponent påkrevd:
- Arduino UNO R3.
- Ultralydssensor.
- Arduino Motor Driver skjold.
- Wheel Drive Robot Chassis.
- Datamaskin for å programmere Arduino.
- Batteri til motorene.
- En kraftbank som driver Arduino
- En skobørste.
- En Scotch Brite Scrub Pad.
Merk: I stedet for å bruke batterier, kan du også bruke en lang 4-strenget ledning som vi gjorde. Selv om dette ikke er en veldig elegant eller praktisk løsning, men du kan gjøre hvis du ikke planlegger å bruke den i den virkelige verden hver dag. Forsikre deg om at kabellengdene er nok.
Før du går i detalj, kan vi først diskutere om ultralyd.
HC-SR04 Ultralydssensor:
Ultralydssensoren brukes til å måle avstanden med høy nøyaktighet og stabile målinger. Den kan måle avstand fra 2 cm til 400 cm eller fra 1 tomme til 13 fot. Den avgir en ultralydbølge med frekvensen 40KHz i luften, og hvis objektet kommer i veien, vil den sprette tilbake til sensoren. Ved å bruke den tiden det tar å slå objektet og kommer tilbake, kan du beregne avstanden.
Ultralydssensoren bruker en teknikk kalt “ECHO”. “ECHO” er ganske enkelt en reflektert lydbølge. Du vil få ECHO når lyden reflekteres tilbake etter å ha nådd en blindvei.
HCSR04-modulen genererer en lydvibrasjon i ultralydområdet når vi gjør 'Trigger' -pinnen høy i omtrent 10us, noe som vil sende en 8-syklus sonisk utbrudd med lydhastigheten, og etter å ha truffet objektet vil den bli mottatt av Echo-pinnen. Avhengig av tid det tar av lydvibrasjoner å komme tilbake, gir den passende pulsutgang. Hvis objektet er langt borte, tar det mer tid før ECHO høres og utgangspulsbredden vil være stor. Og hvis hindringen er i nærheten, vil ECHO bli hørt raskere og utgangspulsbredden blir mindre.
Vi kan beregne avstanden til objektet basert på tiden det tar av ultralydbølgen å komme tilbake til sensoren. Siden lydens tid og hastighet er kjent, kan vi beregne avstanden ved hjelp av følgende formler.
Avstand = (Tid x Lydhastighet i luft (343 m / s)) / 2.
Verdien er delt på to siden bølgen beveger seg fremover og bakover og dekker samme avstand. Dermed er tiden for å nå hindringen bare halvparten av den totale tiden det tar
Så Avstand i centimeter = 17150 * T
Vi har tidligere laget mange nyttige prosjekter ved hjelp av denne ultralydsensoren og Arduino, sjekk dem nedenfor:
- Arduino-basert avstandsmåling ved bruk av ultralydssensor
- Døralarm ved hjelp av Arduino og ultralydssensor
- IOT-basert dumperovervåking ved hjelp av Arduino
Montering av gulvrengjøringsrobot:
Monter Arduino på understellet. Forsikre deg om at du ikke kortslutter noe i tilfelle chassiset ditt er laget av metall. Det er en god ide å skaffe en boks til Arduino og motorstyringsskjoldet. Fest motorene med hjul og chassis ved hjelp av skruer. Chassiset ditt bør ha muligheter til å gjøre dette fra fabrikken, men hvis det ikke gjør det, kan du improvisere en annen løsning. Epoxy er ikke en dårlig idé. Monter skobørsten foran på understellet. Vi brukte en kombinasjon av M-Seal epoxy og borede skruer for dette, selv om du kan bruke en hvilken som helst annen løsning som kan være enklere for deg. Monter Scotch Brite skrubbepute bak børsten. Vi brukte en aksel som gikk over understellet som holder den i spill, selv om dette også er improvisert. En fjærbelastet aksel kan brukes til å følge den. Monter batteriene (eller kablene på baksiden av kabinettet).Epoxy eller en batteriholder er gode måter å gjøre dette på. Varmt lim er heller ikke dårlig.
Ledninger og tilkoblinger:
Krets for denne automatiske hjemmevaskroboten er veldig enkel. Koble ultralydssensoren til Arduino som nevnt nedenfor og plasser motordriverskjoldet på Arduino som ethvert annet skjold.
Trig pin av Ultrasonic er koblet til den 12. pin på Arduino, Echo pin er koblet til den 13. pin, spenning pin til 5V pin og Ground pin til bakken pin. Echo pin og Trig pin lar Arduino kommunisere med sensoren. Strøm leveres til sensoren gjennom spenningen og jordpinnene, og Trig- og Echo-pinnene lar den sende og motta data med Arduino. Lær mer om interfacing ultralydssensor med Arduino her.
Motorskjoldet skal ha minst to utganger, og de skal være koblet til dine 2 motorer. Normalt er disse utgangene merket “M1” og “M2” eller “Motor 1” og “Motor 2”. Koble batteriene og strømbanken til henholdsvis motorskjoldet og Arduino. Ikke krysskoble dem. Motorskjoldet skal ha en inngangskanal. Hvis du bruker ledninger, må du koble dem til strømadaptere.
Programmering Forklaring:
Åpne Arduino IDE. Lim inn den komplette Arduino-koden, gitt på slutten av denne opplæringen, i IDE. Koble Arduino til datamaskinen. Velg porten i Verktøy / Port. Klikk på opplastingsknappen.
Test roboten. Hvis det blir for lite eller for mye, kan du eksperimentere med forsinkelsene til det er perfekt.
Før vi går inn i koden, må vi installere Adafruit Motor Shield Library for å kjøre DC-motorene. Siden vi bruker L293D-motordriverskjoldet, må vi laste ned AFmotor-biblioteket herfra. Deretter legger du den til Arduino IDE-bibliotekmappen. Forsikre deg om å gi den nytt navn til AFMotor . Lær mer om installering av dette biblioteket.
Koden er enkel og kan lett forstås, men her har vi forklart noen få deler av den:
Koden nedenfor setter opp roboten. Først har vi tatt med Adafruit-biblioteket for å kjøre motorene med Motor driver shield. Etter det definerte vi Trig pin og Echo pin. Det setter også opp motorene. Den setter Trig pin til utgang og Echo pin til input.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); ugyldig oppsett () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Nedenfor koden forteller Arduino å løkke følgende kommandoer. Etter det bruker den sensoren til å overføre og motta ultralydlyder. Den beregner avstanden det er fra objektet når ultralydbølger spretter tilbake, etter å ha lagt merke til at objektet er innenfor den angitte avstanden, forteller det Arduino å rotere motorene tilsvarende.
void loop () {lang varighet, avstand; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varighet = pulseIn (echoPin, HIGH); avstand = (varighet / 2) / 29,1; hvis (avstand <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (BACKWARD); motor2.run (BACKWARD); forsinkelse (2000); // ENDRE DETTE I HENHOLD TIL HVORDAN ROBOTEN SLÅR.
Dette får roboten til å snu ved å rotere den ene motoren og holde den andre stillestående.
Nedenfor koden får roboten til å vri begge motorene i samme retning for å få den til å bevege seg fremover til den oppdager et objekt i den nevnte grensen.
annet {motor1.setSpeed (160); // ENDRE DETTE I HENHOLD TIL HUR RASKT ROBOTEN DIN SKAL GÅ. motor2.setSpeed (160); // ENDRE DETTE TIL SAMME VERDI NÅR DU SITTER OVER. motor1.run (FORWARD); motor2.run (FORWARD); }