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 extern hjälp är det mest fördjupade forskningsområdet. 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.

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 vårt projekts sammandrag, låt oss gå ett steg framåt och samla lite information för att starta projektet.

Steg 1: Samla in komponenterna

Det bästa sättet att starta ett 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.

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ädevänligt mikrokontrollerkort 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.

L298N är en integrerad krets med hög ström och hög spänning. Det är en dubbel fullbro 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. Pulsbreddsmodulering (PWM) är en teknik där spänningsflödet i vilken elektronisk komponent som helst kan regleras. Denna modul har en H-Bridge som ansvarar för styrningen av rotationsriktningen i motorerna genom att invertera strömriktningen. Enable pin A och Enable Pin 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.

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.

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 chassi för bilhjul 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ädet 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-stift ä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 kraft 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.

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å kontrollpanelenHå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 COM14men det är annorlunda på olika datorer.
  3. Klicka på Verktyg-menyn. och sätt styrelsen till Arduino Nano från rullgardinsmenyn.
  4. I samma verktygsmeny ställer du in porten till det portnummer som du observerade tidigare i Enheter och skrivare.
  5. I samma verktygsmeny ställer du in processorn på ATmega328P (Old Bootloader).
  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.

Klicka här för att ladda ner koden.

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 robotens hastighet. Två variabler, varaktighet, och distansinitialiseras 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 For Second Motor 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 integrerade sensorerna.

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 att sända en signal som kommer att detekteras av ekstiftet. Sedan beräknas och sparas den tid som ultraljudssignalen tar för att resa från och tillbaka till sensorn i variabeln varaktighet. Då används den här tiden i en formel för att beräkna hindret och ultraljudssensorn. Därefter tillämpas ett villkor att om avståndet är mer än 5 centimeter 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 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 om avståndet är mindre än 50 cm {digitalWrite (aktivera1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, LOW); digitalWrite (motor2pin2, LOW); } fördröjning (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.
Facebook Twitter Google Plus Pinterest