4wd de Arduino robot con el sensor ping "J-Bot" (5 / 6 paso)

Paso 5: Paso 5 - ahora tiempo al programa!


Esto es realmente la diversión parte; el cielo del límite cuando se trata de programar tu J-Bot. Puede programar previamente la ruta a la máquina del caramelo de oficina o pote del café que su compañero de oficina hacer un pick-up. Una cámara web para mirar alrededor de las paredes de la cabina alta, añadir altavoces para transmitir música, agregar miembros y un mando a distancia para recuperar tus gadgets favoritos. J-Bot está esperando en su imaginación a correr simplemente botty.

Primero usted necesitará descargar el software de Arduino. A continuación Descargue la biblioteca de software Arduino pasos/Servo y siga las instrucciones de cómo poner la biblioteca en su respectiva carpeta.

A continuación, abra el software de Arduino y pegar el código.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include < AFMotor.h > / / permite a la biblioteca de Motor
#include < Servo.h > / / permite la librería Servo

Servo PingServo;
Motor1(1) de AF_DCMotor; Motor 1 está conectado al puerto 1 el escudo del motor
Motor2(2) de AF_DCMotor; Motor 2 está conectado al puerto 2 en el escudo del motor
int minSafeDist = 11; Distancia mínima para el sensor ping saber cuándo recurrir
int pingPin = A0; Sensor ping está conectado al puerto A0
int centerDist, leftDist, rightDist, backDist; Definir centro de variables, izquierda, derecha y distancia
larga duración, pulgadas, cm; Definir las variables para el sensor Ping

void setup() {}
PingServo.attach(10); Servo es conectado al pin 10 en el protector de motor
PingServo.write(90); Centre el sensor Ping (pone en 90 grados)
motor1.SETSPEED(215); Ajusta la velocidad del primer motor (a 0, los motores se dan vuelta apagado 255 es el ajuste más rápido que eres capaz de usar, he usado 215 no presionar demasiado los motores.)
motor2.SETSPEED(215); Ajusta la velocidad del segundo motor (a 0, los motores se dan vuelta apagado 255 es el ajuste más rápido que eres capaz de usar, he usado 215 no presionar demasiado los motores.)

Serial.Begin(9600); Permite el Serial monitor para propósitos de depuración
Serial.println ("Serial prueba!"); Prueba de la comunicación Serial

}

void AllStop() {}
motor1.Run(release); Apaga el motor 1
motor2.Run(release); Apaga motor 2
}
void AllForward() {/ / hace que el robot hacia adelante
motor1.Run(Forward); Motor 1 se pone en marcha
motor2.Run(Forward); El motor 2 se pone en marcha
Serial.println ("adelantando"); Imprime una línea en el monitor serial
}
void turnRight() {/ / hace el robot a la derecha
motor2.Run(backward); Apaga motor 2
motor1.Run(Forward); Motor 1 se pone en marcha
Delay(1600); Tiempo necesario para girar a la derecha (1,6 segundos)
Serial.println ("motores va derecha"); Imprime una línea en el monitor serial
}
void GoBack() {/ / hace el robot volver
motor2.Run(backward); Motor 2 vuelve
motor1.Run(backward); Motor 1 vuelve
Delay(1600); Tiempo requerido para volver (1,6 segundos)
Serial.println("Backward"); Imprime una línea en el monitor serial
}
void turnLeft() {/ / hace el robot de ir a la izquierda
motor2.Run(Forward); El motor 2 se pone en marcha
motor1.Run(backward); apaga el motor 1
Delay(1600); Tiempo necesario para girar a la izquierda (1.6) segundos
Serial.println ("motores va izquierda"); / / imprime una línea en el monitor serial
}

Comienza el bucle para decidir qué hacer
void loop()
{
LookAhead();
Serial.Print(inches);
Serial.println ("pulgadas"); Imprime una línea en el monitor serial
Si (pulgadas > = minSafeDist) / * si las pulgadas frente a un objeto es mayor o igual a la distancia de seguridad mínima (11 pulgadas), reaccionan * /
{
AllForward(); Las ruedas de adelante
Delay(110); Espere 0,11 segundos
} else / / si no:

{
AllStop(); Detener todos los motores
LookAround(); Compruebe el entorno de la mejor ruta
if(rightDist > leftDist) / / si la distancia correcta es mayor que la distancia de la izquierda, gire a la derecha
{
turnRight();
} else if (leftDist > rightDist) / / si la distancia izquierda es mayor que la distancia correcta, gire a la izquierda
{
turnLeft();
} else if (leftDist & & rightDist < minSafeDist) / / si la distancia izquierda y derecha es menor que la mínima segura distancia (11 pulgadas) volver
{
GoBack();
}
}
}

be larga sin signo {}
pinMode (pingPin, salida); Hacer el Pingpin salida
digitalWrite (pingPin, LOW); Enviar un pulso bajo
delayMicroseconds(2); Espere dos microsegundos
digitalWrite (pingPin, HIGH); Enviar un pulso de alta
delayMicroseconds(5); esperar 5 segundos de micro
digitalWrite (pingPin, LOW); Enviar un pulso bajo
pinMode(pingPin,INPUT); Pingpin a la entrada del interruptor
duración = pulseIn (pingPin, HIGH); Escuchar para eco

/ * Convertir segundos micro pulgadas
-------------------------------------*/

pulgadas = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
}

largo microsecondsToInches (largo microsegundos) / / convierte el tiempo en una distancia
{
volver microsegundos / 74 / 2;
}
largo microsecondsToCentimeters (largo microsegundos) / / convierte el tiempo en una distancia
{
volver microsegundos / 29 / 2;
}

void LookAhead() {}
PingServo.write(90); / / ángulo para mirar hacia adelante
Delay(175); Espere 0,175 segundos
be;
}

void LookAround() {}
PingServo.write(180); ángulo de 180°
Delay(320); Espere segundos 0,32
be;
rightDist = pulgadas; obtener la distancia correcta
PingServo.write(0); mirar al otro lado
Delay(620); Espere segundos 0,62
be;
leftDist = pulgadas; obtener la distancia izquierda
PingServo.write(90); ángulo de 90°
Delay(275); Espere 0,275 segundos

Imprime una línea en el monitor serial
Serial.Print ("RightDist:");
Serial.println(rightDist);
Serial.Print ("LeftDist:");
Serial.println(leftDist);
Serial.Print ("CenterDist:");
Serial.println(centerDist);
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Artículos Relacionados

Carro RC a Arduino Robot con sensores múltiples

Carro RC a Arduino Robot con sensores múltiples

este instructable abarca la conversión de un carro RC en un robot controlado por Arduino. Mi intención al iniciar este proyecto fue A) aprender más sobre Arduino y programación B) construir una plataforma confiable de bajo costo para ampliar C) gasta
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
JabberBot! El Arduino robot con un cerebro de ATMega y bluetooth braun! :-)

JabberBot! El Arduino robot con un cerebro de ATMega y bluetooth braun! :-)

JabberBot es controlado por una aplicación Android sobre una conexión serial bluetooth.Las entrañas de la misma se basan en una adaptación de I2C de Adafruit WaveShield y MotorShield.El módulo bluetooth es un Bluetooth Mate plata de Sparkfun.¿Qué hac
Control de un SaikoLED myki (o Arduino Leonardo) con una Simple caja de botón--usando ICSP cabecera

Control de un SaikoLED myki (o Arduino Leonardo) con una Simple caja de botón--usando ICSP cabecera

Bienvenidos! Hoy vamos a explicar cómo crear un controlador con 3 botones que se conecta directamente a una tarjeta compatible con Arduino Leonardo--en este caso, la luz de myki de SaikoLED. Más información sobre Leonardo está disponible aquí y en es
Arduino Robot con pistola de bobina abejón de la pistola de gauss

Arduino Robot con pistola de bobina abejón de la pistola de gauss

Inversor 12V-220V, 2 * 680uF condensadores, bobinas, mira láser, 2servo, proyectil de 4mmSi desea más información por favor escriba en Comentarios.
(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
Robot controlado por Sensor sin contacto

Robot controlado por Sensor sin contacto

Este proyecto es un simple robot controlado desde un PC por un teclado o un sensor sin contacto de movimiento de salto. El robot ejecuta en un PICAXE 20M 2 chip, un microcontrolador programado usando una forma de BASIC. Elegí el chip PICAXE porque er
El versátil Arduino Robot

El versátil Arduino Robot

este es mi primer robot arduino, y estoy bastante contento con el resultado. Lo que surgió es un robot que con modificaciones se puede hacer casi cualquier cosa en el mundo de arduino pequeños robots. La electrónica es muy simple. Sólo necesitas un p
4WD todo terreno Arduino Robot para todos

4WD todo terreno Arduino Robot para todos

Siempre me ha gustado robots que pueden moverse en terrenos ásperos. Esta vez he decidido que voy a utilizar chasis confeccionado modificarlo un poco y añadiendo unos pocos componentes adicionales. Mediante el uso de un chasis listo rápidamente podrí
Obstáculo, evitando Robot con Arduino

Obstáculo, evitando Robot con Arduino

Hola chicos en este instructable veremos cómo hacer un obstáculo autónomo evitando Robot.This robot ha sido diseñado y programado de tal manera que evita la colisión. Básicamente, el robot se mueve hacia delante y siempre que detecte un objeto/obstác
Línea básica siguiente Robot con Arduino

Línea básica siguiente Robot con Arduino

07/09/2015Han pasado unos años desde que publicamos inicialmente básica línea siguiente Robot con Arduino tutorial, y parece que mucha gente encuentra útil que debemos publicar una actualización que funciona actual de las bibliotecas de Arduino, incl
2 ruedas Self Balancing Robot con Arduino y MPU6050

2 ruedas Self Balancing Robot con Arduino y MPU6050

2 ruedas Self Balancing Robot con Arduino y MPU6050.Usar Arduino como el controlador y sensor de MPU6050 para controlar el equilibrio. Sólo añadir un modulo Serial Bluetooth simple y utilizar una aplicación de controlador Serial de Bluetooth para el
4WD barato objeto Robot evitando mediante cuatro sensores de proximidad infrarrojos...

4WD barato objeto Robot evitando mediante cuatro sensores de proximidad infrarrojos...

Este es un básico barato cuatro motores, cuatro sensores, objeto programable 8051 evitando robot usando breadboad. Este robot puede utilizarse también como una línea que sigue el robot simplemente cambiando el programa. He instalado dos baterías para
Basados en Arduino robot velocista QTR-8RC Pololu sensor de línea

Basados en Arduino robot velocista QTR-8RC Pololu sensor de línea

actualización febrero de 2012: esta guía se presenta en blog de Adafruithttp://www.Adafruit.com/blog/2012/02/14/Arduino-based-line-follower-robot/Se trata de Faz3a II, mi primer robot de la línea siguiente, que espero también para laberinto de proble