Arduino robot en 5 min (10 / 10 paso)

Paso 10: código

Subir esta to.arduino y tu bien a goooooo

#include
#include

A continuación se muestran las constantes simbólicas. En lugar de tener que para teclear un número pin no automóvil cada vez que queremos hacer algo podemos escribir una fácil de entender el nombre que representa el pin, entonces el compilador sustituirá los nombres con los números
#define LeftMotorForward 8
#define LeftMotorBackward 9
#define RightMotorForward 10
#define RightMotorBackward 11
#define USTrigger 3
#define USEcho 2
#define MaxDistance 100
#define LED 13

Aquí hemos creado dos 'objetos', uno para el servo y otra para el sensor de ultrasonidos
Servo servo;
Sonar de NewPing (USTrigger, USEcho, MaxDistance);

A continuación estamos creando variables de entero sin signo que vamos a utilizar más adelante en el código. Están sin firmar ya que sólo tendrán valores positivas
unsigned int duración;
unsigned int distancia;
unsigned int FrontDistance;
unsigned int LeftDistance;
unsigned int RightDistance;
unsigned int tiempo;
unsigned int CollisionCounter;

void setup() //This bloque ocurre una vez al inicio
{
Serial.Begin(9600);                              He incluido el serial inicializar, pero comentó, si desea depurar e información impresa en el monitor serial solo descomentar

Aquí estamos estableciendo los modos de pin. Como vamos a enviar las señales de los pines establecemos como salidas
pinMode (LeftMotorForward, salida);
pinMode (LeftMotorBackward, salida);
pinMode (RightMotorForward, salida);
pinMode (RightMotorBackward, salida);
pinMode (LED, salida);
servo.Attach(6);                                    El servo está conectado al pin 4
}

void loop() //This bloque se repite mientras esté activado el Arduino
{
servo.Write(90);                                    Girar el servo para el frente
Scan();                                             Ir a la función de exploración
FrontDistance = distancia;                           Definir la variable FrontDistance el valor de la distancia que se devuelve desde la función de exploración
Serial.println ("frente de distancia =");
Serial.Print(Distance);
Si (FrontDistance > 60 || FrontDistance == 0) //If allí es nada enfrente del robot dentro de los 15 cm o el valor de la distancia es 0 (para la biblioteca de newping que significa que no volvió ping) entonces...
{
moveForward();                                     Ir a la función moveForward
}
//Else otra cosa (si hay algo enfrente del robot dentro de 40cm) entonces...
{
CollisionCounter = CollisionCounter + 1;
moveStop();                                       Ir a la función moveStop
Navigate();
}
}

void moveForward() //This función le dice al robot a avanzar
{
Serial.println("");
Serial.println ("avanzando");
digitalWrite (LeftMotorBackward, bajo);
digitalWrite (LeftMotorForward, alto);
digitalWrite (RightMotorBackward, bajo);
digitalWrite (RightMotorForward, alto);
}

void moveBackward() //This función dice el robot para moverse hacia atrás
{
Serial.println("");
Serial.println ("mover hacia atrás");
digitalWrite (LeftMotorForward, bajo);
digitalWrite (LeftMotorBackward, alto);
digitalWrite (RightMotorForward, bajo);
digitalWrite (RightMotorBackward, alto);
}

void moveLeft() //This función dice que el robot gire a la izquierda
{
Serial.println("");
Serial.println ("mover izquierda");
digitalWrite (LeftMotorForward, bajo);
digitalWrite (LeftMotorBackward, alto);
digitalWrite (RightMotorBackward, bajo);
digitalWrite (RightMotorForward, alto);

}

void moveRight() //This función dice que el robot gire a la derecha
{
Serial.println("");
Serial.println ("moviendo a la derecha");
digitalWrite (LeftMotorBackward, bajo);
digitalWrite (LeftMotorForward, alto);
digitalWrite (RightMotorForward, bajo);
digitalWrite (RightMotorBackward, alto);
}

void moveStop() //This función dice el robot se detiene
{
Serial.println("");
Serial.println("stopping");
digitalWrite (LeftMotorBackward, bajo);
digitalWrite (LeftMotorForward, bajo);
digitalWrite (RightMotorForward, bajo);
digitalWrite (RightMotorBackward, bajo);
}
void scan() //This función determina que las distancia las cosas son del sensor de ultrasonidos
{
Serial.println("");
Serial.println("scanning");
Tiempo = sonar.ping();
distancia = tiempo / US_ROUNDTRIP_CM;
Delay(500);
}
void navigate()
{
Serial.println ("hay un obstáculo!");
servo.Write(167);                                 Mover el servo a la izquierda (mi pequeño servos no como va a 180 por lo que jugaba con el valor hasta que funciono muy bien)
Delay(1000);                                       Esperar medio segundo para el servo para llegar
Scan();                                           Ir a la función de exploración
LeftDistance = distancia;                          Establece la variable LeftDistance a la distancia a la izquierda
Serial.println ("distancia a la izquierda =");
Serial.Print(Distance);
servo.Write(0);                                   Mover el servo a la derecha
Delay(1000);                                       Esperar medio segundo para el servo para llegar
Scan();                                           Ir a la función de exploración
RightDistance = distancia;                         Establece la variable RightDistance a la distancia a la derecha
Serial.println ("distancia a la derecha =");
Serial.Print(Distance);
Si (abs (RightDistance - LeftDistance) < 5)
{
moveBackward();                                  Ir a la función moveBackward
Delay(200);                                      Hacer una pausa en el programa durante 200 milisegundos dejar el robot inversa
moveRight();                                     Ir a la función moveRight
Delay(100);                                      Hacer una pausa en el programa durante 200 milisegundos dejar que el robot gire a la derecha
}
otra cosa if(RightDistance < LeftDistance) //If la distancia a la derecha es menor que el de la izquierda entonces...
{
moveLeft();                                      Ir a la función moveLeft
Delay(100);                                      Hacer una pausa en el programa de medio segundo dejar que el robot gire a la
}
otra if(LeftDistance < RightDistance) //Else si la distancia a la izquierda es menor que el de la derecha...
{
moveRight();                                     Ir a la función moveRight
Delay(100);                                      Hacer una pausa en el programa de medio segundo dejar que el robot gire a la
}

Artículos Relacionados

Voz controlada por Arduino robot

Voz controlada por Arduino robot

Los zánganos son muy buenos juguetes y herramientas, pero generalmente no lo han hecho alguna habilidad extra. Me encanta volar cualquier modelo R/C y yo sólo quería hacer un drone de R/C que es un poco más inteligente que los modelos usuales. Por es
(con Video) Básicos Arduino Robot buscador de luz!

(con Video) Básicos Arduino Robot buscador de luz!

Muchas veces tengo Google para "Arduino Robot" con la esperanza de encontrar un robot para construir. Termino por encontrar muchas versiones de un obstáculo, evitando el robot que utiliza ya sea un infrarrojo o un sensor de telémetro sonar monta
3D impreso Arduino Robot

3D impreso Arduino Robot

Este instructable le mostrará cómo construir un robot autónomo impreso 3D básico para alrededor $40.Este instructivo está escrito principalmente para mis alumnos en NZ MakerLab como guía a terminar o reparar sus robots que construyeron durante el per
Cañón de agua arduino robot IR

Cañón de agua arduino robot IR

Cañón de agua arduino robotPaso 1: Arduino Uno R2Arduino MotorshieldBomba de aguatubo flexible6 x pilas AA NiMhCaja de la batería 2 AACompartimento para 4 AAServo 9 g x 2Chasis Robot de 2WDRelé de 5VMando a distancia IRIR reciviocables dePaso 2:
Proyectos de Carlitos: Inalámbrico controlado por discurso Arduino Robot

Proyectos de Carlitos: Inalámbrico controlado por discurso Arduino Robot

Todos soñamos con tener aparatos y máquinas que pueden obedecer a nuestros comandos hablados. Bien, vamos a tomar el primer paso para que esto suceda y construir un intervención controlada basada en Arduino robot móvil.Puedes estar pensando que hacer
Rana: Inspirado en un arduino robot biológico

Rana: Inspirado en un arduino robot biológico

Rana (rana en Italiano) es un robot inspirado biológico. Es el resultado de meses de investigación y desarrollo. Uno de los principios aplicados proviene de otra insuperable hice llamada "arduino robot bípedo". Este robot utiliza los métodos com
Arduino Robot - árbol de la vida

Arduino Robot - árbol de la vida

Arduino Robot - árbol de la vidaLista de materiales:1) Arduino Duemilanovue2) chapa aluminio3) cables de alumnio4) 5 x 3 mm azul LED5) ojales de latón de6) cables solo núcleo7) vitrinaVisite http://retardokiddo.blogspot.com/ para detalles y comentari
Ben - un Arduino Robot protoboard siguientes de luz

Ben - un Arduino Robot protoboard siguientes de luz

Ben la luz siguiente placa Arduino Robot es el segundo robot que he hecho para ayudar a enseñar robótica a los estudiantes de secundaria en una clase enseñar voluntariamente. El primer robot también tiene su propio Instructable que puede encontrar aq
Tutorial de Arduino Robot

Tutorial de Arduino Robot

Estaba buscando la base de datos Instructable un tutorial para el Robot oficial de Arduino, pero no he podido encontrar uno! Así que mad este tutorial para ayudar a otros que necesitan poco un poco de ayuda con su nuevo Arduino Robot.Paso 1: Configur
Arduino Robot con menor costo

Arduino Robot con menor costo

ME VEN EN EL CIUDAD DE NUEVA YORK MAKER FAIRE!Todo comenzó con esto:Arduino Robot Challenge: ¿Económicamente puede crear un robot utilizando un Arduino para 5 º grado?Espero que este instructable tiene una cierta elegancia en su sencillez y le conven
3D simple impreso Arduino Robot

3D simple impreso Arduino Robot

¿Quién no quiere construir un robot? Como un niño, yo soñaba con construir robots. Ahora, cualquier persona de cualquier edad con un poco de conocimiento puede construir un robot sencillo! Voy a mostrar cómo hacerlo.El RobotEste robot tiene un chasis
Arduino Robot para menores $5

Arduino Robot para menores $5

Sé que siempre has querido hacer un ejército de robots! Pero entonces enteré de que sólo podía permitirse uno o dos.Con este diseño puede comenzar sus planes malvados para apoderarse del mundo. Ir y disfrutar de lo que su ejército de robots de $5 (pi
Basados en Arduino robot humanoide mediante motores servo

Basados en Arduino robot humanoide mediante motores servo

Hola a todos,Este es mi primer robot humanoide, de lámina de plástico grueso que no sé el nombre de la hoja. Está disponible en varios espesores. Aquí usé 0,5 mm. Ahora este robot puede caminar cuando encienda. Ahora estoy trabajando en conectar Ardu
Control remoto Arduino Robot utilizando transceptores Wixel

Control remoto Arduino Robot utilizando transceptores Wixel

actualización enero de 2012: este proyecto apareció en la Página Web de chip bajo proyectos recursos.  http://www.Pololu.com/resources/communityprojectsINTRODUCCIÓNEn este proyecto, usar dos transceptores Pololu Wixel para controlar remotamente un ro