Cum se face un robot de curățare a podelei cu ajutorul senzorului cu ultrasunete?

Un robot automat pentru curățarea podelei nu este un concept nou. Dar acești roboți au o problemă majoră. Sunt foarte scumpe. Ce se întâmplă dacă putem realiza un robot de curățare a podelei la un cost redus, la fel de eficient ca robotul disponibil pe piață. Acest robot va folosi un senzor cu ultrasunete și va evita orice obstacol în calea sa. Procedând astfel, va curăța întreaga cameră.



(Această imagine este preluată din Circuit Digest)

Cum se folosește senzorul cu ultrasunete pentru a realiza un robot automat de curățare a podelei?

După cum știm acum rezumatul proiectului nostru. Să adunăm câteva informații suplimentare pentru a începe să lucrăm.



Pasul 1: Colectarea componentelor

Cea mai bună abordare pentru a începe orice proiect este de a face o listă de componente complete la început și de a parcurge un scurt studiu al fiecărei componente. Acest lucru ne ajută să evităm inconvenientele din mijlocul proiectului. O listă completă a tuturor componentelor utilizate în acest proiect este prezentată mai jos.



  • Șasiu roată auto
  • Baterie
  • Arată pensula

Pasul 2: Studierea componentelor

Acum, având o listă completă a tuturor componentelor, să mergem cu un pas înainte și să studiem pe scurt funcționarea fiecărei componente.



Arduino nano este o placă de microcontroler care este utilizată pentru a controla sau realiza diferite sarcini într-un circuit. Ardem un Codul C pe Arduino Nano pentru a spune plăcii microcontrolerului cum și ce operațiuni să efectueze. Arduino Nano are exact aceeași funcționalitate ca Arduino Uno, dar într-o dimensiune destul de mică. Microcontrolerul de pe placa Arduino Nano este ATmega328p.

Arduino Nano

L298N este un circuit integrat de înaltă tensiune și curent ridicat. Este un full-bridge dual conceput pentru a accepta logica TTL standard. Are două intrări de activare care permit dispozitivului să funcționeze independent. Două motoare pot fi conectate și acționate în același timp. Viteza motoarelor este variată prin intermediul pinilor PWM.



Driver motor L298N

Placa HC-SR04 este un senzor cu ultrasunete care este utilizat pentru a determina distanța dintre două obiecte. Se compune dintr-un emițător și un receptor. Transmițătorul convertește semnalul electric într-un semnal ultrasonic, iar receptorul convertește semnalul ultrasonic înapoi în semnal electric. Când emițătorul trimite o undă cu ultrasunete, acesta se reflectă după ce se ciocnește cu un anumit obiect. Distanța este calculată utilizând timpul, pe care semnalul ultrasonic îl ia pentru a trece de la transmițător și a reveni la receptor.

Senzor cu ultrasunete

Pasul 3: Asamblarea componentelor

După cum știm acum cum funcționează toate componentele, să asamblăm toate componentele și să începem să realizăm un robot.

Luați un șasiu de roată auto și montați o perie de spectacol în fața urmăririlor. Montați Scotch Brite sub robot. Asigurați-vă că este chiar în spatele periei pentru pantofi. Acum atașați o mică placă de sus în partea de sus a urmăririlor și în spatele acesteia, atașați driverul motorului. Efectuați conexiuni adecvate ale motoarelor la driverul motorului și conectați cu grijă pinii driverului motorului la Arduino. Montați o baterie în spatele șasiului. Bateria va alimenta driverul motorului care va alimenta motoarele. Arduino va prelua, de asemenea, puterea de la driverul motorului. Pinul Vcc și pământul senzorului cu ultrasunete vor fi conectate la 5V și la pământ al Arduino.

Diagrama circuitului

Pasul 4: Noțiuni introductive despre Arduino

Dacă nu sunteți deja familiarizați cu Arduino IDE, nu vă faceți griji, deoarece o procedură pas cu pas pentru a configura și utiliza Arduino IDE cu o placă de microcontroler este explicată mai jos.

  1. Descărcați cea mai recentă versiune a Arduino IDE de la Arduino.
  2. Conectați placa Arduino Nano la laptop și deschideți panoul de control. în panoul de control, faceți clic pe Hardware și sunet . Acum faceți clic pe Dispozitive și imprimante. Aici găsiți portul la care este conectată placa de microcontroler. În cazul meu este COM14 dar este diferit pe diferite computere.

    Găsirea portului

  3. Faceți clic pe meniul Instrument și setați placa la Arduino Nano.

    Placă de setare

  4. În același meniu Tool, setați portul la numărul de port pe care l-ați observat anterior în Dispozitive și imprimante .

    Setarea portului

  5. În același meniu Instrument, setați procesorul la ATmega328P (Bootloader vechi).

    Procesor

  6. Descărcați codul atașat mai jos și lipiți-l în ID-ul dvs. Arduino. Faceți clic pe încărcați butonul pentru a arde codul de pe placa de microcontroler.

    Încărcare

Clic aici pentru a descărca codul.

Pasul 5: Înțelegerea codului

Codul este destul de bine comentat și se explică de la sine. Dar totuși, este explicat pe scurt mai jos.

1. La început, sunt inițializați toți pinii Arduino pe care o vom folosi.

int enable1pin = 8; // Pinii pentru primul motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pinii pentru al doilea motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pinii pentru senzorul cu ultrasunete const int echoPin = 10; const int buzzPin = 6; durata lunga; // Variabile pentru distanța de plutire a senzorului cu ultrasunete;

2. configurare nulă () este o funcție în care setăm toți pinii pentru a fi folosiți ca INPUT sau OUTPUT. Baud Rate este, de asemenea, setat în această funcție. Rata de transmisie este viteza cu care placa microcontrolerului comunică cu senzorii atașați.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. bucla nulă () este o funcție care rulează continuu într-o buclă. În această buclă, i-am spus microcontrolerului când trebuie să avanseze dacă nu se găsește niciun obstacol în 50cm. Robotul va lua un viraj puternic la dreapta atunci când se găsește un obstacol.

bucla void () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanță = 0,034 * (durata / 2); if (distanță> 50) // Mutați înainte dacă nu a fost găsit niciun obstacol {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (distanță<50) // Sharp Right Turn if an obstacle found { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); // delay }

Acum, așa cum am discutat despre tot ce aveți nevoie pentru a crea un robot automat de curățare a podelei, bucurați-vă de a vă crea propriul robot de curățare a podelelor cu un cost redus și eficient.