Automatska sredstva za čišćenje poda nisu novost, ali svi dijele zajednički problem. Svi su preskupi za ono što rade. Danas ćemo izraditi Automatski robot za čišćenje doma koji košta samo mali dio onih na tržištu. Ovaj robot može otkriti prepreke i predmete ispred sebe i može se nastaviti kretati, izbjegavajući prepreke, sve dok se cijela soba ne očisti. Na nju je pričvršćena mala četka za čišćenje poda.
Također provjerite našeg pametnog robota za usisavanje pomoću Arduina
Potrebna komponenta:
- Arduino UNO R3.
- Ultrazvučni senzor.
- Štit vozača motora Arduino.
- Šasija robota s pogonom na kotače.
- Računalo za programiranje Arduina.
- Baterija za motore.
- Banka napajanja za napajanje Arduina
- Četka za cipele.
- Scotch Brite jastučić za piling.
Napomena: Umjesto da koristite baterije, možete upotrijebiti i dugu četverožičnu žicu kao što smo to učinili. Iako ovo nije vrlo elegantno ili praktično rješenje, ali možete to učiniti ako ga ne planirate svakodnevno koristiti u stvarnom svijetu. Provjerite jesu li duljine kabela dovoljne.
Prije nego što krenemo u detalje, porazgovarajmo prvo o ultrazvuku.
HC-SR04 ultrazvučni senzor:
Ultrazvučni senzor koristi se za mjerenje udaljenosti velikom preciznošću i stabilnim očitanjem. Može mjeriti udaljenost od 2 cm do 400 cm ili od 1 inča do 13 stopa. Emitira ultrazvučni val na frekvenciji od 40KHz u zraku i ako će objekt naići na njegov put, odbit će se natrag do senzora. Koristeći vrijeme potrebno za udaranje predmeta i povratak, možete izračunati udaljenost.

Ultrazvučni senzor koristi tehniku koja se naziva "ECHO". "ECHO" je jednostavno odbijeni zvučni val. Imat ćete ECHO kada se zvuk odbije nakon povratka u slijepu ulicu.
HCSR04 modul generira zvučne vibracije u ultrazvučnom opsegu kada postavimo pin "Trigger" visok za oko 10us koji će poslati zvučni rafal od 8 ciklusa brzinom zvuka i nakon udara u objekt primit će ga Echo pin. Ovisno o vremenu koje je potrebno zvučnim vibracijama da se vrate, on daje odgovarajući impulsni izlaz. Ako je objekt daleko, potrebno je više vremena da se ECHO začuje i širina izlaznog impulsa bit će velika. A ako je prepreka blizu, tada će se brže čuti ECHO i širina izlaznog impulsa bit će manja.
Možemo izračunati udaljenost objekta na temelju vremena koje je ultrazvučnom valu trebalo za povratak na senzor. Budući da su vrijeme i brzina zvuka poznati, udaljenost možemo izračunati prema sljedećim formulama.
Udaljenost = (Vrijeme x Brzina zvuka u zraku (343 m / s)) / 2.
Vrijednost se dijeli s dva jer val putuje naprijed i natrag pokrivajući istu udaljenost. Stoga je vrijeme za dosezanje prepreke samo polovica ukupnog vremena koje je potrebno
Dakle Udaljenost u centimetru = 17150 * T
Već smo napravili mnoge korisne projekte koristeći ovaj ultrazvučni senzor i Arduino, provjerite ih u nastavku:
- Mjerenje udaljenosti temeljeno na Arduinu pomoću ultrazvučnog senzora
- Alarm na vratima pomoću Arduina i ultrazvučnog senzora
- Nadzor smeća na temelju IOT-a pomoću Arduina
Montaža robota za čišćenje poda:
Montirajte Arduino na šasiju. Pazite da ništa ne kratite u slučaju da je vaše kućište izrađeno od metala. Dobra je ideja nabaviti kutiju za Arduino i štitnik upravljačkog sklopa motora. Osigurajte motore kotačima i šasijom pomoću vijaka. Vaša bi šasija trebala imati mogućnosti to učiniti tvornički, ali ako nema, možete improvizirati drugo rješenje. Epoksid nije loša ideja. Postavite četku za cipele na prednju stranu kućišta. Za to smo koristili kombinaciju epoksida M-Seal i izbušenih vijaka, iako možete koristiti bilo koje drugo rješenje koje bi vam moglo biti lakše. Montirajte Scotch Brite jastučić za ribanje iza četke. Koristili smo osovinu koja prolazi preko šasije koja je drži u igri, iako je i ovo improvizirano. Uz nju se može koristiti osovina s oprugom. Postavite baterije (ili kabele na stražnju stranu kućišta).Epoksid ili držač baterije dobri su načini za to. Ni vruće ljepilo nije loše.



Ožičenje i veze:
Krug za ovog automatskog robota za čišćenje kuće vrlo je jednostavan. Spojite ultrazvučni senzor na Arduino kako je spomenuto u nastavku i postavite štit motornog vozača na Arduino kao bilo koji drugi štit.

Trig pin ultrazvuka spojen je na 12. pin na Arduinu, Echo pin spojen je na 13. pin, naponski pin na 5V pin i uzemljeni pin na uzemljeni pin. Echo i Trig pin omogućavaju Arduinu da komunicira sa senzorom. Snaga se senzoru isporučuje kroz naponske i uzemljene igle, a Trig i Echo pinovi omogućuju mu slanje i primanje podataka s Arduinom. Ovdje saznajte više o povezivanju ultrazvučnog senzora s Arduinom.
Štit motora trebao bi imati najmanje 2 izlaza i trebao bi biti povezan s vaša 2 motora. Ti su izlazi obično označeni s “M1” i “M2” ili “Motor 1” i “Motor 2”. Priključite baterije i napajanje na štit motora, odnosno na Arduino. Nemojte ih unakrsno povezivati. Štit vašeg motora trebao bi imati ulazni kanal. Ako koristite žice, spojite ih na ispravljače za izmjeničnu struju.
Objašnjenje programiranja:
Otvorite Arduino IDE. Zalijepite kompletni Arduino kôd, dat na kraju ovog vodiča, u IDE. Spojite svoj Arduino na računalo. Odaberite port u Tools / Port. Kliknite gumb za prijenos.
Testirajte robota. Ako se okrene premalo ili previše, eksperimentirajte s odgodama dok ne postanete savršeni.
Prije ulaska u kod, moramo instalirati biblioteku Adafruit Motor Shield za pogon istosmjernih motora. Budući da koristimo štit vozača motora L293D, odavde moramo preuzeti biblioteku AFmotor. Zatim ga dodajte u svoju mapu Arduino IDE biblioteke. Obavezno ga preimenujte u AFMotor . Saznajte više o instaliranju ove knjižnice.
Kôd je jednostavan i lako se može razumjeti, ali ovdje smo objasnili nekoliko njegovih dijelova:
Ispod koda postavlja robota. Prvo smo uključili biblioteku Adafruit za pogon motora s motorom. Nakon toga definirali smo Trig pin i Echo pin. Također postavlja motore. Postavlja Trig pin na izlaz i Echo pin na ulaz.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotorski motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, IZLAZ); pinMode (echoPin, INPUT); }
Ispod koda govori Arduinu da petlja sljedeće naredbe. Nakon toga koristi senzor za prijenos i primanje ultrazvučnih zvukova. Izračunava udaljenost od objekta nakon što se ultrazvučni valovi odbiju, nakon što primijeti da je objekt unutar zadane udaljenosti, govori Arduinu da u skladu s tim okreće motore.
void loop () {dugo trajanje, udaljenost; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); trajanje = pulsIn (echoPin, HIGH); udaljenost = (trajanje / 2) / 29,1; if (udaljenost <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (NAZAD); motor2.run (NAZAD); kašnjenje (2000); // PROMIJENI OVO PREMA KAKO SE OBRATITI ROBOT.
To čini da se robot okreće okrećući jedan motor i držeći drugi da miruje.
Ispod koda čini da robot okreće oba motora u istom smjeru kako bi se kretao naprijed dok ne otkrije objekt u gore spomenutoj granici.
else {motor1.setSpeed (160); // PROMIJENI OVO PREMA KAKO BI TREBALO IĆI VAŠ ROBOT. motor2.setSpeed (160); // PROMIJENITE OVO NA ISTU VRIJEDNOST KAKO STO STAVITE GORE. motor1.run (NAPRIJED); motor2.run (NAPRIJED); }
