Kā padarīt robotu grīdas tīrīšanai, izmantojot ultraskaņas sensoru?

Automātisks grīdas tīrīšanas robots nav jauns jēdziens. Bet šiem robotiem ir galvenā problēma. Tie ir ļoti dārgi. Ko darīt, ja mēs varam izgatavot lētu grīdas tīrīšanas robotu, kas ir tikpat efektīvs kā tirgū pieejamais robots. Šis robots izmantos ultraskaņas sensoru un novērsīs jebkādus šķēršļus. To darot, tas iztīrīs visu istabu.



(Šis attēls ir ņemts no Circuit Digest)

Kā izmantot ultraskaņas sensoru, lai izveidotu automātisku grīdas tīrīšanas robotu?

Kā mēs tagad zinām sava projekta kopsavilkumu. Apkoposim vēl kādu informāciju, lai sāktu strādāt.



1. darbība: komponentu savākšana

Vislabākā pieeja jebkura projekta uzsākšanai ir sākumā izveidot visu sastāvdaļu sarakstu un veikt īsu katra komponenta izpēti. Tas mums palīdz izvairīties no neērtībām projekta vidū. Pilns visu šajā projektā izmantoto komponentu saraksts ir sniegts zemāk.



  • Automašīnas riteņu šasija
  • Akumulators
  • Parādīt otu

2. solis: Komponentu izpēte

Tagad, kad mums ir pilns visu komponentu saraksts, virzīsimies soli uz priekšu un īsi izpētīsim katra komponenta darbību.



Arduino nano ir mikrokontrolleru plate, kas tiek izmantota dažādu uzdevumu kontrolei vai veikšanai ķēdē. Mēs sadedzinām a C kods uz Arduino Nano pateikt mikrokontrolleru panelim, kā un kādas darbības veikt. Arduino Nano ir tieši tāda pati funkcionalitāte kā Arduino Uno, bet diezgan mazā izmērā. Arduino Nano dēļa mikrokontrolleris ir ATmega328p.

Arduino Nano

L298N ir augstas strāvas un augstsprieguma integrētā shēma. Tas ir divkāršs pilna tilta tilpums, kas paredzēts standarta TTL loģikas pieņemšanai. Tam ir divas iespējošanas ieejas, kas ļauj ierīcei darboties neatkarīgi. Vienlaicīgi var savienot un darbināt divus motorus. Motoru ātrums tiek mainīts caur PWM tapām.



L298N motora draiveris

HC-SR04 dēlis ir ultraskaņas sensors, ko izmanto, lai noteiktu attālumu starp diviem objektiem. Tas sastāv no raidītāja un uztvērēja. Raidītājs pārveido elektrisko signālu par ultraskaņas signālu, un uztvērējs pārveido ultraskaņas signālu atpakaļ par elektrisko signālu. Kad raidītājs sūta ultraskaņas viļņu, tas atstaro pēc sadursmes ar noteiktu objektu. Attālumu aprēķina, izmantojot laiku, kas nepieciešams ultraskaņas signālam, lai pārietu no raidītāja un atgrieztos pie uztvērēja.

Ultraskaņas sensors

3. solis: komponentu montāža

Tā kā mēs tagad zinām, kā darbojas visi komponenti, saliksim visus komponentus un sāksim izgatavot robotu.

Paņemiet automašīnas riteņu šasiju un uzstādiet šovu priekšā šasijas. Uzstādiet Scotch Brite zem robota. Pārliecinieties, ka tas atrodas tieši aiz apavu sukas. Tagad piestipriniet nelielu maizes dēli lāpstiņu augšpusē un aiz tā - motora vadītāju. Veiciet pareizu motoru savienojumu ar motora vadītāju un uzmanīgi pievienojiet motora draivera tapas ar Arduino. Uzstādiet akumulatoru aiz šasijas. Baterija darbina motora vadītāju, kas darbina motorus. Arduino arī pārņems jaudu no Motor vadītāja. Vcc tapa un ultraskaņas sensora zeme tiks savienota ar Arduino 5 V un zemējumu.

Ķēdes shēma

4. solis: darba sākšana ar Arduino

Ja vēl neesat pazīstams ar Arduino IDE, neuztraucieties, jo tālāk ir paskaidrota pakāpeniska procedūra, kā iestatīt un izmantot Arduino IDE ar mikrokontrolleru paneli.

  1. Lejupielādējiet jaunāko Arduino IDE versiju no Arduino.
  2. Pievienojiet savu Arduino Nano dēli klēpjdatoram un atveriet vadības paneli. vadības panelī noklikšķiniet uz Aparatūra un skaņa . Tagad noklikšķiniet uz Ierīces un printeri. Šeit atrodiet portu, kuram ir pievienota jūsu mikrokontrolleru plate. Manā gadījumā tā ir COM14 bet dažādos datoros tas ir atšķirīgs.

    Ostas atrašana

  3. Noklikšķiniet uz izvēlnes Rīks un iestatiet tāfeli uz Arduino Nano.

    Dēļu iestatīšana

  4. Tajā pašā izvēlnē Rīks iestatiet portu uz porta numuru, kuru iepriekš novērojāt Ierīces un printeri .

    Portas iestatīšana

  5. Tajā pašā izvēlnē Rīks iestatiet Procesors uz ATmega328P (Old Bootloader).

    Procesors

  6. Lejupielādējiet zemāk pievienoto kodu un ielīmējiet to savā Arduino IDE. Noklikšķiniet uz augšupielādēt pogu, lai ierakstītu kodu mikrokontrolleru dēlī.

    Augšupielādēt

Klikšķis šeit lai lejupielādētu kodu.

5. solis: izpratne par kodeksu

Kods ir diezgan labi komentēts un pats par sevi saprotams. Bet tomēr tas ir īsumā paskaidrots zemāk.

1. Sākumā tiek inicializētas visas Arduino tapas, kuras mēs izmantosim.

int iespējot1pin = 8; // tapas pirmajam Motor int motor1pin1 = 2; int motor1pin2 = 3; int iespējot2pin = 9; // Piespraudes otrajam Motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Ultraskaņas sensora tapas const int echoPin = 10; const int buzzPin = 6; ilgs ilgums; // Ultraskaņas sensora pludiņa attāluma mainīgie;

2. anulēt iestatīšanu () ir funkcija, kurā mēs iestatām visas tapas, kas jāizmanto kā INPUT vai OUTPUT. Šajā funkcijā ir iestatīts arī pārraides ātrums. Bauda ātrums ir ātrums, ar kādu mikrokontrolleru plate sazinās ar pievienotajiem sensoriem.

void setup () {Sērijas.sākt (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motors1pin1, OUTPUT); pinMode (motors1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. void loop () ir funkcija, kas nepārtraukti darbojas lokā. Šajā cilpā mēs esam teikuši mikrokontrollerim, kad iet uz priekšu, ja 50 cm attālumā nav atrasts šķērslis. Robots veiks strauju labo pagriezienu, kad tiks atrasts šķērslis.

void loop () {digitalWrite (trigPin, LOW); kavēšanāsMikrosekundes (2); digitalWrite (trigPin, HIGH); kavēšanāsMikrosekundes (10); digitalWrite (trigPin, LOW); ilgums = pulseIn (echoPin, HIGH); attālums = 0,034 * (ilgums / 2); if (attālums> 50) // Virzīties uz priekšu, ja nav atrasts šķērslis {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } cits, ja (attālums<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 }

Tā kā mēs esam apsprieduši visu, kas jums nepieciešams, lai izveidotu automātisku grīdas tīrīšanas robotu, izbaudiet savu zemu izmaksu un efektīvu grīdas tīrīšanas robotu.