- Componenta necesară:
- Asamblarea robotului pentru curățarea podelelor:
- Cablare și conexiuni:
- Explicație de programare:
Curățătoarele automate de podea nu sunt nimic nou, dar toate au o problemă comună. Toate sunt prea scumpe pentru ceea ce fac. Astăzi, vom face un robot automat de curățat acasă, care costă doar o mică parte din cele de pe piață. Acest robot poate detecta obstacolele și obiectele din fața sa și poate continua să se miște, evitând obstacolele, până când toată camera este curățată. Are o perie mică atașată la ea pentru a curăța podeaua.
Verificați, de asemenea, robotul nostru inteligent de aspirare folosind Arduino
Componenta necesară:
- Arduino UNO R3.
- Senzor cu ultrasunete.
- Scutul driverului de motor Arduino.
- Șasiu robot cu tracțiune.
- Computer pentru a programa Arduino.
- Baterie pentru motoare.
- O bancă de energie pentru a alimenta Arduino
- O perie de pantofi.
- Un tampon pentru scrub Scotch Brite.
Notă: În loc să folosiți baterii, puteți utiliza și un fir lung cu 4 fire, așa cum am făcut noi. Deși nu este o soluție foarte elegantă sau practică, dar o puteți face dacă nu intenționați să o utilizați în lumea reală în fiecare zi. Asigurați-vă că lungimile cablului sunt suficiente.
Înainte de a intra în detalii, să discutăm mai întâi despre ultrasunete.
Senzor cu ultrasunete HC-SR04:
Senzorul cu ultrasunete este utilizat pentru a măsura distanța cu precizie ridicată și citiri stabile. Poate măsura distanța de la 2cm la 400cm sau de la 1 inch la 13 picioare. Emite o undă cu ultrasunete la frecvența de 40KHz în aer și, dacă obiectul îi va ieși în cale, va reveni la senzor. Folosind timpul necesar pentru a lovi obiectul și a reveni, puteți calcula distanța.
Senzorul cu ultrasunete utilizează o tehnică numită „ECHO”. „ECHO” este pur și simplu o undă sonoră reflectată. Veți avea un ECHO când sunetul se reflectă înapoi după ce ați ajuns într-un impas.
Modulul HCSR04 generează o vibrație sonoră în domeniul ultrasunetelor atunci când facem pinul „Trigger” înalt pentru aproximativ 10us, care va trimite o explozie sonică de 8 cicluri la viteza sunetului și, după ce a lovit obiectul, va fi recepționat de pinul Echo. În funcție de timpul luat de vibrațiile sonore pentru a reveni, acesta oferă o ieșire impuls adecvată. Dacă obiectul este departe, este nevoie de mai mult timp pentru ca ECHO să fie auzit, iar lățimea impulsului de ieșire va fi mare. Și dacă obstacolul este aproape, atunci ECHO va fi auzit mai repede și lățimea impulsului de ieșire va fi mai mică.
Putem calcula distanța obiectului pe baza timpului luat de unda ultrasonică pentru a reveni la senzor. Deoarece timpul și viteza sunetului sunt cunoscute, putem calcula distanța prin următoarele formule.
Distanță = (Timp x Viteza sunetului în aer (343 m / s)) / 2.
Valoarea este împărțită la două, deoarece unda se deplasează înainte și înapoi, acoperind aceeași distanță. Astfel, timpul pentru atingerea obstacolului este doar jumătate din timpul total luat
Deci Distanța în centimetri = 17150 * T
Am făcut anterior multe proiecte utile folosind acest senzor cu ultrasunete și Arduino, verificați-le mai jos:
- Măsurarea distanței pe bază de Arduino utilizând senzor cu ultrasunete
- Alarma ușii cu Arduino și senzor cu ultrasunete
- Monitorizare bazată pe IOT folosind Arduino
Asamblarea robotului pentru curățarea podelelor:
Montați Arduino pe șasiu. Asigurați-vă că nu scurtcircuitați nimic în cazul în care șasiul dvs. este din metal. Este o idee bună să obțineți o cutie pentru Arduino și scutul controlerului motorului. Fixați motoarele cu roțile și șasiul cu șuruburi. Șasiul dvs. ar trebui să aibă opțiuni pentru a face acest lucru din fabrică, dar dacă nu, puteți improviza o altă soluție. Epoxy nu este o idee proastă. Montați peria pentru pantofi pe partea din față a șasiului. Pentru aceasta am folosit o combinație de epoxidice M-Seal și șuruburi găurite, deși puteți utiliza orice altă soluție care ar putea fi mai ușoară pentru dvs. Montați tamponul de scrub Scotch Brite în spatele periei. Am folosit un arbore care traversează șasiul care îl ține în joc, deși acest lucru este și improvizabil. Pentru a-l însoți poate fi folosit un arbore cu arc. Montați bateriile (sau cablurile pe spatele șasiului).Epoxy sau un suport pentru baterii sunt modalități bune de a face acest lucru. Nici lipiciul fierbinte nu este rău.
Cablare și conexiuni:
Circuitul acestui robot automat de curățare a locuinței este foarte simplu. Conectați senzorul cu ultrasunete la Arduino așa cum se menționează mai jos și plasați ecranul driverului motorului pe Arduino ca orice alt ecran.
Pinul Trig al Ultrasonic este conectat la pinul 12 de pe Arduino, pinul Echo este conectat la pinul 13, pinul de tensiune la pinul de 5V și pinul de masă la pinul de masă. Pinul Echo și pinul Trig permit Arduino să comunice cu senzorul. Puterea este livrată senzorului prin pinii de tensiune și masă, iar pinii Trig și Echo îi permit să trimită și să primească date cu Arduino. Aflați mai multe despre interfața senzorului ultrasonic cu Arduino aici.
Ecranul motorului trebuie să aibă cel puțin 2 ieșiri și ar trebui să fie conectate la cele 2 motoare. În mod normal, aceste ieșiri sunt etichetate „M1” și „M2” sau „Motor 1” și „Motor 2”. Conectați-vă bateriile și banca de alimentare până la ecranul motorului și, respectiv, la Arduino. Nu le conectați încrucișat. Scutul motorului dvs. ar trebui să aibă un canal de intrare. Dacă utilizați fire, conectați-le la adaptoare de curent alternativ.
Explicație de programare:
Deschideți IDE-ul Arduino. Lipiți codul Arduino complet, dat la sfârșitul acestui tutorial, în IDE. Conectați-vă Arduino la computer. Selectați portul în Instrumente / Port. Faceți clic pe butonul de încărcare.
Testați robotul. Dacă se transformă prea puțin sau prea mult, experimentează cu întârzierile până când este perfectă.
Înainte de a intra în cod, trebuie să instalăm Adafruit Motor Shield Library pentru a conduce motoarele de curent continuu. Deoarece folosim scutul driverului motorului L293D, trebuie să descărcăm Biblioteca AFmotor de aici. Apoi adăugați-l în dosarul bibliotecii Arduino IDE. Asigurați-vă că îl redenumiți în AFMotor . Aflați mai multe despre instalarea acestei biblioteci.
Codul este ușor și poate fi înțeles cu ușurință, dar aici am explicat câteva părți ale acestuia:
Codul de mai jos configurează robotul. Mai întâi am inclus Biblioteca Adafruit pentru acționarea motoarelor cu scutul driverului motorului. După aceea, am definit pinul Trig și pinul Echo. De asemenea, configurează motoarele. Setează pinul Trig la ieșire și pinul Echo la intrare.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Codul de mai jos îi spune lui Arduino să bucleze următoarele comenzi. După aceea, folosește senzorul pentru a transmite și primi sunete cu ultrasunete. Calculează distanța de la obiect odată ce undele ultrasonice revin, după ce a observat că obiectul se află la distanța stabilită, îi spune lui Arduino să rotească motoarele în consecință.
void loop () {lungă durată, distanță; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanță = (durata / 2) / 29,1; if (distanță <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (BACKWARD); motor2.run (BACKWARD); întârziere (2000); // SCHIMBAȚI ACESTUI ÎN CONFORMITATE CU CUM SE ROTURĂ ROBOTUL.
Acest lucru face ca robotul să se întoarcă prin rotirea unui motor și menținerea celuilalt stagnant.
Codul de mai jos face ca robotul să întoarcă ambele motoare în aceeași direcție pentru a-l face să avanseze până când detectează un obiect în limita menționată mai sus.
else {motor1.setSpeed (160); // SCHIMBAȚI ACESTUI ÎN CONFORMITATE CU CÂT DE RAPID AR TREBUIE SĂ MERGĂ. motor2.setSpeed (160); // SCHIMBAȚI ACESTA CU ACEEAȘI VALOARE PE CARE PUNEȚI Deasupra. motor1.run (FORWARD); motor2.run (FORWARD); }