Arduino robot in 5 minuten (10 / 10 stap)

Stap 10: code


Dit to.arduino en uw goed uploaden naar goooooo

#include
#include

Hieronder zijn de symbolische constanten. In plaats van te typen in een niet-sensical pincode telkens wanneer die we iets willen doen kunnen we schrijven een eenvoudig te begrijpen naam waarmee de pin, de compiler zal vervolgens vervangen door de namen van de nummers
#define LeftMotorForward 8
#define LeftMotorBackward 9
#define RightMotorForward 10
#define RightMotorBackward 11
#define USTrigger 3
#define USEcho 2
#define MaxDistance 100
#define LED 13

Hier hebben we twee 'objecten', één voor de servo en één voor de ultrasone sensor
Servo de servo;
NewPing sonar (USTrigger, USEcho, MaxDistance);

Hieronder creëren we niet-ondertekende integer variabelen die we zullen gebruiken later in de code. Ze zijn niet-ondertekende aangezien zij zal alleen postive waarden
unsigned int de duur;
unsigned int afstand;
unsigned int FrontDistance;
unsigned int LeftDistance;
unsigned int RightDistance;
unsigned int tijd;
unsigned int CollisionCounter;

void setup //This blok gebeurt keer bij het opstarten
{
Serial.begin(9600);                              Ik heb opgenomen van de seriële worden geïnitialiseerd, maar merkte het uit, als u fouten wilt opsporen en afdrukinformatie naar de seriële monitor alleen uncomment

Hier zijn we het instellen van de pin-modi. Zoals we zullen afgeven van signalen van de pins instellen we hen als uitgang
pinMode (LeftMotorForward, uitvoer);
pinMode (LeftMotorBackward, uitvoer);
pinMode (RightMotorForward, uitvoer);
pinMode (RightMotorBackward, uitvoer);
pinMode (LED, uitvoer);
Servo.attach(6);                                    De servo is aangesloten op pin 4
}

void loop //This blok zich herhaalt terwijl de Arduino is ingeschakeld
{
Servo.write(90);                                    De servo om het hoofd van de voorkant te draaien
Scan();                                             Ga naar de scan-functie
FrontDistance = afstand;                           De variabele FrontDistance ingesteld op de waarde van de afstand die zijn teruggekeerd uit de scan-functie
Serial.println ("Front afstand =");
Serial.Print(distance);
Als (FrontDistance > 60 || FrontDistance == 0) //If er is niets infront van de robot binnen 15 cm of de afstand waarde is 0 (die voor de newping-bibliotheek geeft geen ping was geretourneerd) vervolgens...
{
moveForward();                                     Ga naar de moveForward-functie
}
anders //Else (als er iets infront van de robot binnen 40cm) dan...
{
CollisionCounter = CollisionCounter + 1;
moveStop();                                       Ga naar de moveStop-functie
Navigate();
}
}

ongeldig moveForward() //This functie vertelt de robot om vooruit te gaan
{
Serial.println("");
Serial.println ("vooruit");
digitalWrite (LeftMotorBackward, laag);
digitalWrite (LeftMotorForward, hoge);
digitalWrite (RightMotorBackward, laag);
digitalWrite (RightMotorForward, hoge);
}

ongeldig moveBackward() //This functie vertelt de robot naar achteren verplaatsen
{
Serial.println("");
Serial.println ("Moving achteruit");
digitalWrite (LeftMotorForward, laag);
digitalWrite (LeftMotorBackward, hoge);
digitalWrite (RightMotorForward, laag);
digitalWrite (RightMotorBackward, hoge);
}

ongeldig moveLeft() //This functie vertelt de robot linksaf
{
Serial.println("");
Serial.println ("Moving links");
digitalWrite (LeftMotorForward, laag);
digitalWrite (LeftMotorBackward, hoge);
digitalWrite (RightMotorBackward, laag);
digitalWrite (RightMotorForward, hoge);

}

ongeldig moveRight() //This functie vertelt de robot naar rechtsaf
{
Serial.println("");
Serial.println ("Moving rechts");
digitalWrite (LeftMotorBackward, laag);
digitalWrite (LeftMotorForward, hoge);
digitalWrite (RightMotorForward, laag);
digitalWrite (RightMotorBackward, hoge);
}

ongeldig moveStop() //This functie vertelt de robot te stoppen met bewegen
{
Serial.println("");
Serial.println("stopping");
digitalWrite (LeftMotorBackward, laag);
digitalWrite (LeftMotorForward, laag);
digitalWrite (RightMotorForward, laag);
digitalWrite (RightMotorBackward, laag);
}
ongeldig scan() //This functie bepaalt dat de afstand dingen zijn uit de buurt van de ultrasone sensor
{
Serial.println("");
Serial.println("scanning");
Tijd = sonar.ping();
afstand = tijd / US_ROUNDTRIP_CM;
delay(500);
}
VOID navigate()
{
Serial.println ("er is een obstakel!");
Servo.write(167);                                 Verplaats de servo naar de linkerkant (mijn kleine servo's niet graag gaan tot 180 zodat ik speelde rond met de waarde totdat het werkte keurig)
delay(1000);                                       Wacht een halve seconde voor de servo om er te komen
Scan();                                           Ga naar de scan-functie
LeftDistance = afstand;                          De variabele LeftDistance ingesteld op de afstand aan de linkerkant
Serial.println ("links afstand =");
Serial.Print(distance);
Servo.write(0);                                   De servo naar rechts verplaatsen
delay(1000);                                       Wacht een halve seconde voor de servo om er te komen
Scan();                                           Ga naar de scan-functie
RightDistance = afstand;                         De variabele RightDistance ingesteld op de afstand aan de rechterkant
Serial.println ("recht afstand =");
Serial.Print(distance);
Als (abs (RightDistance - LeftDistance) < 5)
{
moveBackward();                                  Ga naar de moveBackward-functie
delay(200);                                      Onderbreken van het programma voor 200 milliseconden zodat de robot omkeren
moveRight();                                     Ga naar de moveRight functie
delay(100);                                      Onderbreken van het programma voor 200 milliseconden zodat de robot rechtsaf
}
anders if(RightDistance < LeftDistance) //If de afstand aan de rechterkant lager is dan die aan de linkerkant vervolgens...
{
moveLeft();                                      Ga naar de moveLeft functie
delay(100);                                      Onderbreken van het programma voor een halve seconde te laten de robot zetten
}
anders if(LeftDistance < RightDistance) //Else als de afstand aan de linkerkant kleiner dan die aan de rechterkant dan is...
{
moveRight();                                     Ga naar de moveRight functie
delay(100);                                      Onderbreken van het programma voor een halve seconde te laten de robot zetten
}

Gerelateerde Artikelen

De veelzijdige Arduino Robot

De veelzijdige Arduino Robot

dit is mijn eerste arduino robot, en ik ben heel blij met het resultaat. Wat ik kwam met is een robot die met wijzigingen vrijwel alles op het gebied van kleine arduino robots doen kunt. De elektronica zijn zeer eenvoudig. U hoeft alleen een H-brug,
Arduino Robot Arm

Arduino Robot Arm

ik had beloofd in een vorige post te delen met u een arduino robot arm project op een later tijdstip. Nou, is die datum vandaag! Echter, in plaats van een joystick gebruikt om te controleren de arduino robotarm, I 'm gonna vooraf het programma van de
RC auto naar autonome Arduino Robot

RC auto naar autonome Arduino Robot

Hebt u ooit gewenst om te bouwen van een eenvoudige autonome Arduino robot? Ik werd geïnspireerd om het bouwen van een fundamentele Arduino robot om te helpen mijn begrip van de Arduino, de Arduino IDE, en de werking van de ultrasone sensoren en moto
(w / Video) Fundamentele Arduino Robot, lichte Seeker!

(w / Video) Fundamentele Arduino Robot, lichte Seeker!

Vele malen heb ik Googled voor "Arduino Robot" in de hoop het vinden van een robot te bouwen. Ik uiteindelijk vinden vele versies van een obstakel vermijden robot die gebruikmaakt van hetzij een infrarood of een sonar Bereikindicatie sensor gemo
Remote Controlled Arduino Robot met behulp van Wixel Transceivers

Remote Controlled Arduino Robot met behulp van Wixel Transceivers

UPDATE JAN 2012: dit project werd gekenmerkt op de Pololu website onder Resources/Community projecten.  http://www.Pololu.com/resources/communityprojectsINTRODUCTIEIn dit project, gebruik ik twee Pololu Wixel transceivers op afstand bedienen van een
Arduino Robot V2 (snel) ook stem gecontroleerde

Arduino Robot V2 (snel) ook stem gecontroleerde

Dit is mijn tweede versie van mijn arduino robot na 'Build uw eerste robot'. Mijn tweede versie is enigszins ingewikkeld in vergelijking met mijn ene maar biedt betere mogelijkheden. In dit instructable ga ik om u te tonen hoe het bouwen van een snel
Arduino Robot voor de laagste kosten

Arduino Robot voor de laagste kosten

MIJ ZIEN OP DE NYC MAKER FAIRE!Het begon allemaal met dit:Arduino Robot uitdaging: Hoe goedkoop kunt u een robot met behulp van een Arduino voor 5e klassers maken?Ik hoop dat dit instructable een bepaalde elegantie toe aan haar eenvoud heeft en zal u
RC Truck aan Arduino Robot w / meerdere sensoren

RC Truck aan Arduino Robot w / meerdere sensoren

dit instructable heeft betrekking op de omzetting van een RC vrachtwagen in een gecontroleerde Arduino robot. Mijn bedoeling toen begin van dit project was A) om meer te leren over Arduino en programmering B) bouwen een betrouwbare low-cost platform
Arduino Robot - boom van het leven

Arduino Robot - boom van het leven

Arduino Robot - levensboomLijst van de materialen:1) Arduino Duemilanovue2) aluminium plaatwerk3) Alumnium draden4) 5 x 3 blauw mm LEDs5) messing oogjes6) enkele kernpopulatie draden7) de vitrineBezoek http://retardokiddo.blogspot.com/ voor details e
Arduino Robot Tutorial

Arduino Robot Tutorial

Ik zocht de Instructable database naar een tutorial voor de officiële Arduino Robot, maar ik kon niet vinden een! Zo gek ik deze tutorial om anderen die hulp met hun nieuwe Arduino Robot een tikkeltje nodig beetje te helpen.Stap 1: Instellen van uw R
Johnny5 Arduino Robot DfRobotshop rover met afstandsbediening html interface

Johnny5 Arduino Robot DfRobotshop rover met afstandsbediening html interface

In deze post ik stap voor stap uitleggen hoe ik het opbouwen van een Arduino Robot gebaseerd en programmeren met Javascript. Ik uitleggen welke ontwerpkeuzen ik gemaakt, welke kaders en technologieën die ik gebruikt en hoe ik program en de robot geco
Gids voor beginners aan de opbouw van de Arduino robots met Bluetooth en Android

Gids voor beginners aan de opbouw van de Arduino robots met Bluetooth en Android

In deze tutorial gaan we om te gaan over het bouwen van een Arduino robot die kan worden aangestuurd via bluetooth met een Android telefoon/tablet. Dit is een beginnersgids die gaat kort over het proces van bedrading en programmeren van uw robot.Stap
Android G1 seriële naar Arduino Robot

Android G1 seriële naar Arduino Robot

leren hoe uw Androïde telefoon van de cel kunt bepalen een robot met behulp van een Arduino board. De telefoon neemt opdrachten via telnet vanaf een andere telefoon of een PC, zodat u kunt de robot op afstand te bedienen. Dit project passen niet ande
Ben - een licht volgende Breadboard Arduino Robot

Ben - een licht volgende Breadboard Arduino Robot

Ben het licht volgende Breadboard Arduino Robot is de tweede robot die ik gemaakt heb om te helpen robotica aan middelbare scholieren in een klasse die ik vrijwillig leren onderwijzen. De eerste robot heeft ook zijn eigen Instructable die kan hier wo