Obstakel te vermijden Robot V2 (4 / 5 stap)

Stap 4: programmeren


Het basisconcept van de code is voor de robot te worden voortdurend voor objecten voor het terwijl het bewegen. Dit wordt gedaan door de PING))) sensor waar het stuurt een 40 kHz Tjilpen die niet hoorbaar, en haalt de echo. Het programma krijgt dan de duur duurt voor de pols om terug te gaan en zet dit om in afstand. Zodra de robot een object waar de afstand naar voren groter is dan de drempel van gevaar - het pad is duidelijk ontdekt dus ons programma vertelt de robot om vooruit te gaan. Anders zal de robot stoppen dan pan links en rechts. Afhankelijk van welke weg is "beter", zal de robot draaien om die duidelijker weg en beginnen in die richting. De code wordt alleen op deze manier. Dat is eigenlijk de "theorie" achter de code. Als u van eventuele verbeteringen die kunnen worden gedaan om de code weet, zou ik graag uw feedback te horen! Doorgaan naar de laatste stap voor extra foto's en de sluiting.

DE CODE:

/*
> Ontwerp obstakel te vermijden robot met behulp van een Arduino NANO en Parallax PING))) ultrasone afstandssensor
> Versie 2
> Zoran M.
*/

#include //include servo bibliotheek

Const int RForward = 0;
Const int RBackward = 180;
Const int LForward = RBackward;
Const int LBackward = RForward;
Const int RNeutral = 90;
Const int LNeutral = 90; constanten voor de motorsnelheid
Const int pingPin = 7;
Const int dangerThresh = 10; drempel voor obstakels (in cm)
int leftDistance, rightDistance; afstanden aan weerszijden
Servo panMotor;
Servo leftMotor;
Servo rightMotor; verklaren van motoren
lange duur; de tijd het neemt om te ontvangen van PING))) signaal

VOID Setup
{
rightMotor.attach(11);
leftMotor.attach(10);
panMotor.attach(6); motoren koppelen aan de juiste pinnen
panMotor.write(90); set PING))) pan om te centreren
}

void loop
{
int distanceFwd = ping();
Als (distanceFwd > dangerThresh) //if pad is duidelijk
{
leftMotor.write(LForward);
rightMotor.write(RForward); vooruit
delay(100);
}
anders //if pad is geblokkeerd
{
leftMotor.write(LNeutral);
rightMotor.write(RNeutral);
panMotor.write(0);
delay(500);
rightDistance = ping(); scannen naar rechts
delay(500);
panMotor.write(180);
delay(700);
leftDistance = ping(); scannen naar links
delay(500);
panMotor.write(90); terug naar centrum
delay(100);
compareDistance();
}
}

VOID compareDistance()
{
Als (leftDistance > rightDistance) //if links minder wordt belemmerd
{
leftMotor.write(LBackward);
rightMotor.write(RForward); Sla linksaf
delay(500);
}
anders als (rightDistance > leftDistance) //if recht minder wordt belemmerd
{
leftMotor.write(LForward);
rightMotor.write(RBackward); Sla rechtsaf
delay(500);
}
anders //if die ze even zijn geblokkeerd
{
leftMotor.write(LForward);
rightMotor.write(RBackward); 180 graden draaien
delay(1000);
}
}

lange ping()
{
Sturen PING))) signaal pulse
pinMode (pingPin, OUTPUT);
digitalWrite (pingPin, laag);
delayMicroseconds(2);
digitalWrite (pingPin, hoge);
delayMicroseconds(5);
digitalWrite (pingPin, laag);

Krijgen van de duur die nodig is om te ontvangen van echo
pinMode (pingPin, INPUT);
duur = pulseIn (pingPin, hoge);

Duur converteren naar afstand
retourneren van duur / 29 / 2;
}

Voort voor extra foto's en de sluiting.

Gerelateerde Artikelen

Hoe maak je een obstakel te vermijden Robot

Hoe maak je een obstakel te vermijden Robot

obstakel te vermijden robot is een eenvoudige robot die wordt beheerd door een arduino en wat het doet is dat het gewoon zwerft rond en vermijdt obstakels. Het detecteert de belemmeringen met een ultrasone sensor van HC-SR04 met andere woorden als de
Obstakel te vermijden Robot met arduino

Obstakel te vermijden Robot met arduino

OBSTAKEL - VERMIJDEN ROBOTEen obstakel te vermijden ROBOT is een die kan een obstakel te vermijden met behulp van ultrasone sensor en navigeren in haar eigen pad. Met een breadboard gekoppeld aan de robot kunt u plezier spelen binnen een korte period
Obstakel te vermijden Robot

Obstakel te vermijden Robot

Dit instructable is de schriftelijke versie van mijn "Arduino: hoe te bouwen een obstakel te vermijden Robot" Youtube-video die ik onlangs heb geĆ¼pload. Ik raden u om het te controleren.Dus, zonder dralen, laten we beginnen!Stap 1: Een chassis!
Arduino obstakel te vermijden Robot

Arduino obstakel te vermijden Robot

In dit instructable ik zal u tonen hoe te maken van uw eigen obstakel te vermijden robot!We zullen de Arduino uno board en een ultrasone sensor gebruiken. Als de robot een object voor, met de hulp van een kleine servomotor, detecteert scant het het g
Obstakel te vermijden Robot - Motor Shield

Obstakel te vermijden Robot - Motor Shield

Hallo jongens! Dit is een eenvoudige en elementaire tutorial voor het maken van een obstakel te vermijden Robot... Lees verder...Stap 1: Benodigde materialen Het obstakel te vermijden Robot u nodig te bouwen-Arduino Uno R3 (aangeraden Arduino Uno r3
Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

In deze Intructable zal u worden kunnen te maken een obstakel vermijden Robot met behulp van IR module met L293D en Mediatek Linkit een boord.Stap 1: vereisten L293D Motor Driver IC.2 IR Sensor Modules.Chassi voor Bot.Mediatek LinkItOne-Board2 100 RP
Obstakel te vermijden Robot met IR-sensoren zonder Microcontroller

Obstakel te vermijden Robot met IR-sensoren zonder Microcontroller

Nou dit project is een ouder project, maakte ik het in 2014 in de maand juli of augustus, dacht dat het met jullie te delen. Zijn een eenvoudige belemmering vermijden robot die maakt gebruik van IR-sensoren en werkt zonder microcontroller. De IR-sens
Zelf obstakel te vermijden Robot

Zelf obstakel te vermijden Robot

Dit is een zelf hinderpaal vermijden robot. Het maakt gebruik van twee ping sensoren voor detectie van de hindernis. Het maakt gebruik van een Adafruit L293D Motor Shield voor het aandrijven van vier hoog koppel 12 volt motoren. Het ook feawtures een
DIY autonome Line Tracking met obstakel te vermijden Robot (Rover)

DIY autonome Line Tracking met obstakel te vermijden Robot (Rover)

WAARSCHUWING: MAAK UW COMPUTER HELDERHEID LAAG, OMDAT DIT PROJECT STRAALT EEN HOOG NIVEAU VAN AWESOMENESS DIE SCHADELIJK KAN ZIJN VOOR JE OGEN :D 3:)Dit project deelgenomen aan RoboCup 2015 Egypte lokale competitie en won "Best Design Award" met
Een Arduino Infrared Controlled en het obstakel te vermijden Robot

Een Arduino Infrared Controlled en het obstakel te vermijden Robot

Hallo iedereen,Deze Instructables is verdeeld in twee fasen, waardoor het geschikt is voor zowel de beginner als de tussenliggende robot ontwerpers.De eerste fase omvat het gebruik van de arduino nano bord alleen als de controller. Met dit gaan wij o
Arduino L293D obstakel te vermijden Robot

Arduino L293D obstakel te vermijden Robot

Wat je nodig hebt om het te maken is.1. de Arduino uno.2. chassis kit of iets dergelijks.3. L293D-Motor rijden chip.4. vermogen soepel gebruikte ik 0,5 mah li-po batterij bij 7.4V5. veel draden6. de ultra sonic afstandssensor7. potentiometerWanneer j
Obstakel te vermijden met behulp van Arduino Robot

Obstakel te vermijden met behulp van Arduino Robot

Hey kerels in dit instructable zullen we zien hoe maak je een autonome obstakel te vermijden Robot.This robot is ontworpen en geprogrammeerd op een zodanige wijze dat het voorkomt botsing. De robot in principe in een voorwaartse richting beweegt en w
Ultrasone obstakel-vermijden Robot

Ultrasone obstakel-vermijden Robot

Dit is mijn poging om het ontwerpen en bouwen van een obstakel te vermijden robot! RekaBot (vernoemd naar een fee (:) kan detecteren obstakels met een ultrasone sensor die met hulp van een servo kunt verplaatsen. Op basis van de metingen die ze neemt
How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

Deze Tutorial is voor iedereen aan de slag met arduino. Wij zullen bouwen obstakel te vermijden robot die gebruikmaakt van een ultrasone sensor voor HC SR-04 om objecten en 2 continu (360 graden) servo's aangesloten op een externe batterijvoeding te