Kā padarīt šķēršļus, izvairoties no robota, izmantojot Arduino?

Pasaule pārvietojas ātri, un tehnoloģija ar to pārvietojas arī robotikas jomā. Robotikas pielietojumu var redzēt visur pasaulē. Mobilo vai autonomo robotu koncepcija, kas pārvietojas bez jebkādas ārējas palīdzības, ir visplašākā pētījumu joma. Ir tik daudz mobilo robotu veidu, piemēram, pašlokalizācijas un kartēšanas (SLAM) tulki, līnijas sekošana, Sumo roboti utt. Viens no tiem ir šķērslis, kas ļauj izvairīties no robota. Tā izmanto tehniku, lai mainītu ceļu, ja tā atklāj kādu šķērsli savā ceļā.



(Attēla pieklājība: ķēdes īssavilkums)

Šajā projektā ir izstrādāts Arduino balstīts šķēršļu novēršanas robots, kas izmantos ultraskaņas sensoru, lai atklātu visus šķēršļus savā ceļā.



Kā izvairīties no šķēršļiem, izmantojot ultraskaņas sensoru?

Kā mēs zinām sava projekta kopsavilkumu, virzīsimies soli uz priekšu un apkoposim informāciju, lai sāktu projektu.



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

2. solis: Komponentu izpēte

Tagad, kad mums ir pilns visu komponentu saraksts, virzīsimies vienu soli uz priekšu un veiksim īsu pētījumu par katra komponenta darbību.

Arduino nano ir mikroviļņu krāsnim piemērota mikrokontrolleru plate, kas tiek izmantota dažādu uzdevumu kontrolei vai izpildei ķē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. Pulsa platuma modulācija (PWM) ir paņēmiens, kurā var kontrolēt sprieguma plūsmu jebkurā elektroniskajā komponentā. Šim modulim ir H tilts, kas ir atbildīgs par rotācijas virziena kontroli motoros, apgriežot strāvas virzienu. Iespējot tapu A un iespējot tapu B izmanto, lai mainītu abu motoru ātrumu. Šis modulis var darboties no 5 līdz 35 V un maksimālo strāvu līdz 2A. Ievades tapa1 un Ievades tapa2 un pirmajam motoram, bet Ievades tapa 3 un Ievades tapa 4 ir paredzēta otrajam motoram.

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 salikšana

Tagad, kad mēs tagad zinām, kā darbojas lielākā daļa izmantoto komponentu, sāksim montēt visas sastāvdaļas un radīsim šķērsli, izvairoties no robota.

  1. Paņemiet automašīnas riteņu šasijas un uzlīmējiet tās augšdaļu. Uzmontējiet ultraskaņas sensoru lāpstiņu priekšā un akumulatora vāciņu aiz līstēm.
  2. Piestipriniet Arduino Nano dēli uz maizes dēļa un piestipriniet motora vadītāju tieši aiz maizes dēļa, uz līstēm. Savienojiet abu motoru iespējošanas tapas ar Arduino nano Pin6 un Pin9. Motora draivera moduļa tapas In1, In2, In3 un In4 ir savienotas ar Arduino nano attiecīgi pin2, pin3, pin4 un pin5.
  3. Ultraskaņas sensora trigeris un atbalss tapa ir pievienoti attiecīgi Arduino nano tapām11 un in10. Ultraskaņas sensora Vcc un iezemētā tapa ir savienota ar Arduino Nano 5V un zemējumu.
  4. Motora kontrollera moduli darbina akumulators. Arduino Nano dēlis enerģiju saņem no motora draivera moduļa 5V porta, un ultraskaņas sensors to saņems no Arduino nano plates. bateriju svars un enerģija var kļūt par noteicošo tās darbības faktoru.
  5. Pārliecinieties, ka savienojumi ir tādi paši kā parādīts ķēdes shēmā.

    Ķē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 dēli uz Arduino Nano no nolaižamās izvēlnes.

    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

Lai lejupielādētu kodu, noklikšķiniet šeit.

5. solis: izpratne par kodu

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

1. Koda sākumā tiek inicializēti visi Arduino Nano dēļa tapas, kas savienoti ar ultraskaņas sensoru un motora draivera moduli. Pin6 un Pin9 ir PWM tapas, kas var mainīt sprieguma plūsmu, lai mainītu robota ātrumu. Divi mainīgie, ilgums, un attālums tiek inicializēti, lai saglabātu datus, kurus vēlāk izmantos, lai aprēķinātu ultraskaņas sensora un šķēršļa attālumu.

int iespējot1pin = 6; // tapas pirmajam motoram int motor1pin1 = 2; int motor1pin2 = 3; int iespējot2pin = 9; // Otrā motora tapas int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Ultraskaņas Sesnora palaišanas tapa Pin int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor ilgtermiņa; // mainīgie, lai aprēķinātu attālumu pludiņa attālums;

2. anulēt iestatīšanu () ir funkcija, ko izmanto, lai iestatītu visus izmantotos tapas kā IEVADE un IZVADE. Šajā funkcijā ir noteikts pārraides ātrums. Bauda ātrums ir komunikācijas ātrums, ar kuru mikrokontrolleru plate sazinās ar tajā integrētajiem sensoriem.

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

3. void loop () ir funkcija, kas ciklā darbojas atkārtoti. Šajā funkcijā mēs pastāstām mikrokontrolleru panelim, kā un kādas darbības veikt. Šeit vispirms ir iestatīts sprūda tapa, lai nosūtītu signālu, kuru noteiks atbalss tapa. Pēc tam tiek aprēķināts un mainīgajā tiek saglabāts laiks, kas nepieciešams ultraskaņas signālam, lai pārvietotos no sensora un atpakaļ uz sensoru ilgums. Tad šis laiks tiek izmantots formulā, lai aprēķinātu šķēršļa un ultraskaņas sensora attālumu. Tad tiek piemērots nosacījums, ka, ja attālums ir lielāks par 5 cm, robots virzīsies uz priekšu taisnā līnijā un, ja attālums ir mazāks par 50 cm, robots veiks strauju labo pagriezienu.

void loop () {digitalWrite (trigPin, LOW); // Ultraskaņas signāla kavēšanās nosūtīšana un noteikšanaMikrosekundes (2); digitalWrite (trigPin, HIGH); kavēšanāsMikrosekundes (10); digitalWrite (trigPin, LOW); ilgums = pulseIn (echoPin, HIGH); // Ultraskaņas viļņa uzņemtā laika aprēķināšana, lai atspoguļotu aizmugures attālumu = 0,034 * (ilgums / 2); // Aprēķinot attālumu starp laupījumu un šķērsli. if (attālums> 50) // Virzīties uz priekšu, ja attālums ir lielāks par 50 cm {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 the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Pieteikumi

Tātad šeit bija procedūra, kā padarīt šķērsli, izvairoties no robota. Šo šķēršļa novēršanas tehnoloģiju var iesūdzēt arī citās lietojumprogrammās. Daži no šiem lietojumiem ir šādi.

  1. Izsekošanas sistēma.
  2. Attāluma mērīšanas mērķi.
  3. To var izmantot automātiskajos putekļu tīrīšanas robotos.
  4. To var izmantot Sticks neredzīgiem cilvēkiem.