Hur man gör hinder för att undvika robot med Arduino?

Världen rör sig snabbt, och tekniken rör sig också med det inom robotikområdet. Tillämpningarna av robotik kan ses överallt i världen. Begreppet mobila eller autonoma robotar som rör sig utan någon extern hjälp är det mest fördjupade forskningsfältet. Det finns så många typer av mobila robotar, till exempel SLAM-tolkar (Self Localization and Mapping), Linjeföljande, Sumo Bots etc. Ett hinder som undviker robot är en av dem. Den använder en teknik för att ändra väg om den upptäcker något hinder i dess väg.



(Bild med tillstånd: Circuit digest)

I det här projektet är en Arduino-baserad hinderundvikande robot utformad som använder en ultraljudssensor för att upptäcka alla hinder i dess väg.



Hur undviker jag hinder med ultraljudssensor?

Som vi känner till sammandraget av vårt projekt, låt oss gå ett steg framåt och samla lite för information för att starta projektet.



Steg 1: Samla in komponenterna

Det bästa sättet att starta något projekt är att göra en lista över kompletta komponenter i början och genomgå en kort studie av varje komponent. Detta hjälper oss att undvika besvären mitt i projektet. En fullständig lista över alla komponenter som används i detta projekt ges nedan.



  • Bilhjulchassi
  • Batteri

Steg 2: Studera komponenterna

Nu när vi har en fullständig lista över alla komponenter, låt oss gå ett steg framåt och gå igenom en kort studie av hur varje komponent fungerar.

Arduino nano är ett brödbrädsvänligt mikrokontrollkort som används för att styra eller utföra olika uppgifter i en krets. Vi bränner en C-kod på Arduino Nano för att berätta för mikrokontrollerkortet hur och vilka operationer som ska utföras. Arduino Nano har exakt samma funktionalitet som Arduino Uno men i ganska liten storlek. Mikrokontrollern på Arduino Nano-kortet är ATmega328p.

Arduino Nano



L298N är en integrerad krets med hög ström och hög spänning. Det är en dubbel helbro som är utformad för att acceptera standard TTL-logik. Den har två aktiveringsingångar som gör att enheten kan fungera självständigt. Två motorer kan anslutas och drivas samtidigt. Motorns hastighet varieras genom PWM-stiften. Pulse Width Modulation (PWM) är en teknik där spänningsflödet i vilken elektronisk komponent som helst kan regleras. Denna modul har en H-Bridge som är ansvarig för styrningen av rotationsriktningen i motorerna genom att invertera strömriktningen. Aktivera stift A och Aktivera stift B används för att ändra hastigheten på båda motorerna. Denna modul kan fungera mellan 5 och 35V och toppström upp till 2A. Ingångsstift1 och ingångsstift2 och för första motorn och ingångsstift3 och ingångsstift4 är för den andra motorn.

L298N Motor Driver

HC-SR04-kortet är en ultraljudssensor som används för att bestämma avståndet mellan två objekt. Den består av en sändare och en mottagare. Sändaren omvandlar den elektriska signalen till en ultraljudssignal och mottagaren konverterar ultraljudssignalen tillbaka till den elektriska signalen. När sändaren skickar en ultraljudsvåg reflekteras den efter kollision med ett visst föremål. Avståndet beräknas med hjälp av den tid det tar för ultraljudssignalen att gå från sändaren och komma tillbaka till mottagaren.

Ultraljudsensor

Steg 3: Montering av komponenterna

Nu som vi nu vet hur de flesta komponenter används, låt oss börja montera alla komponenter och skapa ett hinder som undviker robot.

  1. Ta en bilhjul chasses och stick ett brödbräda på toppen. Montera ultraljudssensorn på framsidan av chasserna och ett batterilock bakom chasserna.
  2. Fäst Arduino Nano-brädet på brödbrädan och fäst motorföraren precis bakom brädbrädan, på chasserna. Anslut Aktivera stift på båda motorerna till Pin6 och Pin9 i Arduino nano. In1-, In2-, In3- och In4-stiften på motordrivmodulen är anslutna till pin2, pin3, pin4 och pin5 på Arduino nano.
  3. Ultraljudssensorns trig och echo är ansluten till pin11 respektive in10 i Arduino nano. Ultraljudsgivarens Vcc och jordstift är anslutna till 5V och jord på Arduino Nano.
  4. Motorstyrmodulen drivs av batteriet. Arduino Nano-kortet får ström från 5V-porten på motordrivmodulen och ultraljudssensorn kommer att få sin effekt från Arduino nano-kortet. batteriets vikt och energi kan bli den avgörande faktorn för dess prestanda.
  5. Se till att dina anslutningar är desamma som visas nedan i kretsschemat.

    Kretsschema

Steg 4: Komma igång med Arduino

Om du inte redan är bekant med Arduino IDE, oroa dig inte eftersom en steg för steg-procedur för att ställa in och använda Arduino IDE med ett mikrokontrollkort förklaras nedan.

  1. Ladda ner den senaste versionen av Arduino IDE från Arduino.
  2. Anslut ditt Arduino Nano-kort till din bärbara dator och öppna kontrollpanelen. Klicka på på kontrollpanelen Hårdvara och ljud . Klicka nu på Enheter och skrivare. Här hittar du porten som ditt mikrokontrollkort är anslutet till. I mitt fall är det COM14 men det är annorlunda på olika datorer.

    Hitta port

  3. Klicka på Verktyg-menyn. och ställ in styrelsen till Arduino Nano från rullgardinsmenyn.

    Inställningsbräda

  4. I samma verktygsmeny ställer du in porten till det portnummer som du observerade tidigare i Enheter och skrivare .

    Ställ in port

  5. I samma verktygsmeny ställer du in processorn på ATmega328P (Old Bootloader).

    Processor

  6. Ladda ner koden som bifogas nedan och klistra in den i din Arduino IDE. Klicka på ladda upp -knappen för att bränna koden på ditt mikrokontrollerkort.

    Ladda upp

För att ladda ner koden, Klicka här.

Steg 5: Förstå koden

Koden är väl kommenterad och självförklarande. Men ändå förklaras det nedan

1. I början av koden initialiseras alla stift på Arduino Nano-kortet som är anslutna till ultraljudssensorn och motordrivenhetsmodulen. Pin6 och Pin9 är PWM-stift som kan variera spänningsflödet för att variera hastigheten på roboten. Två variabler, varaktighet, och distans initialiseras för att lagra data som senare kommer att användas för att beräkna avståndet för ultraljudssensorn och hindret.

int aktivera1pin = 6; // Pins för First Motor int motor1pin1 = 2; int motor1pin2 = 3; int aktivera2pin = 9; // Pins för andra motorns int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor lång varaktighet; // variabler för att beräkna avståndets flytavstånd;

2. ogiltig installation () är en funktion som används för att ställa in alla stift som används, som INMATNING och PRODUKTION. Baud Rate definieras i denna funktion. Baud Rate är kommunikationshastigheten med vilken mikrokontrollkortet kommunicerar med de sensorer som är integrerade med det.

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

3. ogiltig slinga () är en funktion som körs upprepade gånger i en cykel. I den här funktionen berättar vi för mikrokontrollkortet hur och vilka operationer som ska utföras. Här är först utlösningsstiftet inställt för att sända en signal som kommer att detekteras av ekostiftet. Då beräknas och sparas den tid som ultraljudssignalen tar för att resa från och tillbaka till sensorn och sparas i variabeln varaktighet. Då används den här tiden i en formel för att beräkna hindret och ultraljudssensorn. Då gäller ett villkor att om avståndet är mer än 5 cm kommer roboten att röra sig framåt i en rak linje och om avståndet är mindre än 50 cm tar roboten en skarp högervarv.

void loop () {digitalWrite (trigPin, LOW); // Skicka och upptäcka ultraljudssignalfördröjning Mikrosekunder (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varaktighet = pulseIn (echoPin, HIGH); // Beräkna timmen som tagits av ultraljudsvågen för att reflektera tillbaka avstånd = 0,034 * (varaktighet / 2); // Beräkna avståndet mellan veckan och roboten och hindret. if (avstånd> 50) // Gå framåt om avståndet är större än 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } annars om (avstånd<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); }

Applikationer

Så här var proceduren för att göra ett hinder som undviker robot. Detta hinder som undviker teknik kan också stämmas i andra applikationer. Några av dessa applikationer är som följer.

  1. Spårningssystem.
  2. Avståndsmätningsändamål.
  3. Detta kan användas i automatiska dammsugningsrobotar.
  4. Detta kan användas i Sticks för blinda människor.