Hvordan man forhindrer robot ved at bruge Arduino?

Verden bevæger sig hurtigt, og teknologien bevæger sig også med det inden for robotteknologi. Anvendelserne af robotteknologi kan ses overalt i verden. Konceptet med mobile eller autonome robotter, der bevæger sig uden ekstern hjælp, er det mest dybtgående forskningsfelt. Der er så mange typer mobile robotter, for eksempel, SLAM-tolke (Self Localization and Mapping), Line following, Sumo Bots osv. En hindring, der undgår robot, er en af ​​dem. Det bruger en teknik til at ændre stien, hvis den opdager nogen hindring i vejen.



(Billede med tilladelse: Circuit digest)

I dette projekt er der designet en Arduino-baseret forhindringsrobot, der bruger en ultralydssensor til at opdage alle forhindringer i vejen.



Sådan undgår du forhindringer ved hjælp af ultralydssensor?

Som vi kender abstraktet af vores projekt, lad os gå et skridt foran og samle noget til information for at starte projektet.



Trin 1: Samling af komponenterne

Den bedste metode til at starte ethvert projekt er at lave en liste over komplette komponenter i starten og gennemgå en kort undersøgelse af hver komponent. Dette hjælper os med at undgå generne midt i projektet. En komplet liste over alle komponenter anvendt i dette projekt er angivet nedenfor.



  • Bilchassis
  • Batteri

Trin 2: At studere komponenterne

Nu, da vi har en komplet liste over alle komponenterne, lad os gå et skridt fremad og gennemgå en kort undersøgelse af, hvordan hver komponent fungerer.

Arduino nano er et brødbrætvenligt mikrokontrolkort, der bruges til at styre eller udføre forskellige opgaver i et kredsløb. Vi brænder en C-kode på Arduino Nano for at fortælle mikrocontrolbrættet, hvordan og hvilke operationer der skal udføres. Arduino Nano har nøjagtig den samme funktionalitet som Arduino Uno, men i en ganske lille størrelse. Mikrocontrolleren på Arduino Nano-kortet er ATmega328p.

Arduino Nano



L298N er et integreret kredsløb med høj strøm og høj spænding. Det er en dobbelt fuldbro designet til at acceptere standard TTL-logik. Den har to aktiveringsindgange, der gør det muligt for enheden at fungere uafhængigt. To motorer kan tilsluttes og betjenes på samme tid. Motorens hastighed varieres gennem PWM-benene. Pulse Width Modulation (PWM) er en teknik, hvor strømmen af ​​spænding i enhver elektronisk komponent kan styres. Dette modul har en H-bro, som er ansvarlig for styringen af ​​rotationsretningen i motorerne ved at vende strømens retning. Enable pin A og Enable Pin B bruges til at ændre hastigheden på begge motorer. Dette modul kan fungere mellem 5 og 35V og spidsstrøm op til 2A. Input Pin1 og Input Pin2 og for første motor og Input Pin3 og Input Pin4 er til den anden motor.

L298N-motordriver

HC-SR04-kort er en ultralydssensor, der bruges til at bestemme afstanden mellem to objekter. Den består af en sender og en modtager. Senderen konverterer det elektriske signal til et ultralydssignal, og modtageren konverterer ultralydssignalet tilbage til det elektriske signal. Når senderen sender en ultralydsbølge, reflekteres den efter kollision med en bestemt genstand. Afstanden beregnes ved hjælp af den tid, det tager ultralydssignal at gå fra senderen og komme tilbage til modtageren.

Ultralydssensor

Trin 3: Samling af komponenterne

Nu, som vi nu ved, hvordan de fleste af de anvendte komponenter fungerer, skal vi begynde at samle alle komponenterne og producere en hindring, der undgår robot.

  1. Tag et bilhjul chasses og sæt et brødbræt på toppen. Monter ultralydssensoren foran chasserne og et batteridæksel bag chassene.
  2. Fastgør Arduino Nano-tavlen på brødbrættet, og fastgør motordriveren lige bag brødbrættet på chasserne. Forbind Aktiver stifter på begge motorer til Pin6 og Pin9 i Arduino nano. In1-, In2-, In3- og In4-stifterne på motordrivermodulet er tilsluttet henholdsvis pin2, pin3, pin4 og pin5 i Arduino nano.
  3. Ultralydssensorens trig og ekko-pin er forbundet til henholdsvis pin11 og in10 i Arduino nano. Ultralydssensorens Vcc og jordstift er forbundet til 5V og jord på Arduino Nano.
  4. Motorstyringsmodulet får strøm fra batteriet. Arduino Nano-kortet får strøm fra 5V-porten på motordrivermodulet, og ultralydssensoren får sin strøm fra Arduino nano-kortet. batteriets vægt og energi kan blive den afgørende faktor for dets ydeevne.
  5. Sørg for, at dine forbindelser er de samme som vist nedenfor i kredsløbsdiagrammet.

    Kredsløbsdiagram

Trin 4: Kom godt i gang med Arduino

Hvis du ikke allerede er fortrolig med Arduino IDE, skal du ikke bekymre dig, fordi en trinvis procedure til opsætning og brug af Arduino IDE med et mikrocontrollerkort forklares nedenfor.

  1. Download den nyeste version af Arduino IDE fra Arduino.
  2. Tilslut dit Arduino Nano-kort til din bærbare computer, og åbn kontrolpanelet. i kontrolpanelet skal du klikke på Hardware og lyd . Klik nu på Enheder og printere. Her finder du den port, som dit mikrocontrollerkort er tilsluttet. I mit tilfælde er det COM14 men det er anderledes på forskellige computere.

    Find port

  3. Klik på værktøjsmenuen. og sæt tavlen til Arduino Nano fra rullemenuen.

    Indstillingsbræt

  4. I den samme værktøjsmenu skal du indstille porten til det portnummer, du tidligere har observeret i Enheder og printere .

    Indstilling af port

  5. I samme værktøjsmenu skal du indstille processoren til ATmega328P (gammel bootloader).

    Processor

  6. Download koden nedenfor, og indsæt den i din Arduino IDE. Klik på upload knap for at brænde koden på dit mikrocontrollerkort.

    Upload

For at downloade koden, Klik her.

Trin 5: Forståelse af koden

Koden er godt kommenteret og selvforklarende. Men alligevel forklares det nedenfor

1. I starten af ​​koden initialiseres alle benene på Arduino Nano-kortet, der er forbundet til ultralydssensoren og motordrivermodulet. Pin6 og Pin9 er PWM-ben, der kan variere strømmen af ​​spænding for at variere hastigheden på robotten. To variabler, varighed, og afstand initialiseres til at gemme data, der senere vil blive brugt til at beregne ultralydssensorens afstand og forhindringen.

int aktivere1pin = 6; // Pins til First Motor int motor1pin1 = 2; int motor1pin2 = 3; int aktivere2pin = 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 lang varighed; // variabler til at beregne afstandens flydeafstand;

2. ugyldig opsætning () er en funktion, der bruges til at indstille alle benyttede ben, som INDGANG og PRODUKTION. Baudrate er defineret i denne funktion. Baudrate er den kommunikationshastighed, hvormed mikrocontrolkortet kommunikerer med de sensorer, der er integreret med det.

ugyldig opsætning () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (aktiver1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. ugyldig sløjfe () er en funktion, der kører gentagne gange i en cyklus. I denne funktion fortæller vi mikrocontroller-kortet, hvordan og hvilke operationer der skal udføres. Her er først udløsertappen indstillet til at sende et signal, som detekteres af ekkotappen. Derefter beregnes og gemmes den tid, som det tager af ultralydssignalet at rejse fra og tilbage til sensoren, i variablen varighed. Derefter bruges denne tid i en formel til at beregne afstanden mellem forhindringen og ultralydssensoren. Derefter anvendes en betingelse om, at hvis afstanden er mere end 5ocm, vil robotten bevæge sig fremad i en lige linje, og hvis afstanden er mindre end 50cm, vil robotten tage en skarp højresving.

void loop () {digitalWrite (trigPin, LOW); // Afsendelse og registrering af ultralydssignal forsinkelse Mikrosekunder (2); digitalWrite (trigPin, HIGH); forsinkelseMikrosekunder (10); digitalWrite (trigPin, LOW); varighed = pulseIn (echoPin, HIGH); // Kalulering af timme taget af ultralydsbølgen for at reflektere tilbage afstand = 0,034 * (varighed / 2); // Beregning af afstanden mellem ugens robot og forhindringen. hvis (afstand> 50) // Gå fremad, hvis afstanden er større end 50 cm {digitalWrite (aktiv1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } ellers hvis (afstand<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); }

Ansøgninger

Så her var proceduren for at lave en hindring, der undgår robot Denne hindring, der undgår teknologi, kan også sagsøges i andre applikationer. Nogle af disse applikationer er som følger.

  1. Sporingssystem.
  2. Fjernmåling Formål.
  3. Dette kan bruges i automatiske støvsugerobotter.
  4. Dette kan bruges i Sticks til blinde mennesker.