Laberinto Robot Solver, utilizando Inteligencia Artificial con Arduino (5 / 10 paso)

Paso 5: Implementar el algoritmo de "La mano izquierda en la pared" en el código de Arduino

Una vez que tenemos la función de readLFSsensors() modificada para incluir los sensores extra 2, podemos volver a escribir la función de bucle para ejecutar el algoritmo, como se describe en el último paso:

void loop()

{

readLFSsensors();

interruptor (modo)

{

caso NO_LINE:

motorStop();

goAndTurn (a la izquierda, 180);

rotura;

caso CONT_LINE:

runExtraInch();

readLFSsensors();

Si (modo == CONT_LINE) mazeEnd();

otro goAndTurn (a la izquierda, 90); / / o es una "T" o "Cruz"). En ambos casos, va a la izquierda

rotura;

caso RIGHT_TURN:

runExtraInch();

readLFSsensors();

Si (modo == NO_LINE) goAndTurn (la derecha, 90);

rotura;

caso LEFT_TURN:

goAndTurn (a la izquierda, 90);

rotura;

caso FOLLOWING_LINE:

followingLine();

rotura;

}

}


Algunas funciones de nuevo aparece aquí.

followingLine() es el mismo utilizado con el Robot de línea siguiente, donde si sólo está siguiendo una línea, debe calculatePID(); y control de los motores dependiendo de los valores de PID: motorPIDcontrol();

runExtraInch(): Empujará el robot hacia adelante un poco. Cuánto el robot ejecutará dependerá del tiempo que empleas en la función de retardo, antes te mando el motor se detenga.

void runExtraInch(void)

{

motorPIDcontrol();

Delay(extraInch);

motorStop();

}


goAndTurn (dirección, ángulo): Esta función especial es importante, porque no se puede dar el robot, pronto te das cuenta el tipo de intersección que es. Recuerde que nos proyecta un Robot diferencial que al hacer giros, "gira alrededor de su hacha" y por lo tanto, para mover a 90o y seguir la línea de forma continua, el centro de las ruedas debe estar alineado con el centro de intersección. Una vez que la línea de los censores están por delante de su eje, debe ejecutar el robot hacia adelante para alinearlos. La constante de tiempo adjGoAndTurn se debe ajustar dependiendo de la distancia entre la línea axe y sensor ("d"), velocidad y tamaño de las ruedas (véase el cuadro de ilustración).

void goAndTurn (int direccion, int grados)
{

motorPIDcontrol();

Delay(adjGoAndTurn);

motorTurn (dirección, grados);

}


En este momento el robot es de hecho "para resolver un laberinto"! Apenas termine el "primer paso". No importa donde empezar dentro de un laberinto, hasta llegar al final.

A continuación, una prueba de esta fase del proyecto:

Artículos Relacionados

Inteligencia Artificial basados en Arduino Robot que habla

Inteligencia Artificial basados en Arduino Robot que habla

Este proyecto va a hacer nuestro robot hablando con Arduino basada en inteligencia artificial.Que en nuestro proyecto anterior hicimos nuestro robot que se verificaron en comando de voz del teléfono.Se puede ver aquí.Este proyecto que desarrollemos n
Construya su propio ROBOT insecto utilizando ARDUINO y SERVO

Construya su propio ROBOT insecto utilizando ARDUINO y SERVO

Hola, estoy con una instructalble más. Voy a enseñarte cómo construir un robot insecto utilizando Arduino y servomotores. Suena cool, verdad?. ¿Qué parece el uso de este robot? Debido a su tamaño compacto que puede ser utilizados en defensa, pueden t
Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

< el instructivo y el código están listos. ¡ Disfrute! Dejo un comentario Comentarios! >Yo soy (aka LiquidCrystalDisplay / Italia), un estudiante de 14 años de aprendizaje de Israel en el Max Shein secundaria para matemáticas y ciencia avanzada. Est
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
Gesture control car(robot) con Arduino y Android(bluetooth)

Gesture control car(robot) con Arduino y Android(bluetooth)

Hola amigos,Aquí es un proyecto interesante por todo lo que mentes creativas que hay. Vamos a construir un auto RC android teléfono controlado.Nada podría ser más fascinante que los coches de controlados remotos. Éste utiliza Bluetooth para la comuni
Hacer un robot simple de RF inalámbrico con Arduino!

Hacer un robot simple de RF inalámbrico con Arduino!

ACTUALIZACIÓN: HE AÑADIDO CONTROL DE JOYSTICK A ESTE ROBOT. POR FAVOR CONSULTE EL PASO 7 SI DESEA CONTROLAR EL ROBOT POR MEDIO DE JOYSTICK.Hola,Este es mi primer instructivo y en este tutorial voy a mostrarte, cómo construir un simple robot inalámbri
Inalámbrico de Omán Robot direccional controlada fútbol con nRF 24L 01 + y Arduino

Inalámbrico de Omán Robot direccional controlada fútbol con nRF 24L 01 + y Arduino

Hey todo el mundoBienvenidos a mi primer instructable. Un robot WiFi controlado Omaní direccional robot.a inalámbrico controlado puede ser utilizado en muchos ways.i hecho para jugar un fútbol porque hubo un evento de fútbol jugar robots en mi instit
Cómo construir obstáculos evitando Robot para principiantes con Arduino Tutorial

Cómo construir obstáculos evitando Robot para principiantes con Arduino Tutorial

Este Tutorial es para cualquier persona para empezar con arduino. Vamos construir un obstáculo evitando el robot que utiliza un sensor de ultrasonidos HC SR-04 para detectar objetos y 2 servos de continua (360 grados) conectados a una fuente de bater
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
Steampunk ESP8266 Internet con reloj utilizando el IDE de Arduino

Steampunk ESP8266 Internet con reloj utilizando el IDE de Arduino

¿Qué se obtiene cuando un anillo de NeoPixel, una placa Arduino Wifi barata y un láser de corte entrar a un salón de Punk de vapor?Una moda Steampunk Internet diseñado con reloj utilizando el ESP8266 y el IDE de Arduino por supuesto!Aquí es un proyec
Robot de gesto controlado con Arduino

Robot de gesto controlado con Arduino

Este gesto controlado utiliza robot Arduino, acelerómetro ADXL335 y par transmisor/receptor de RF.Dividiremos el robot entero en 3 partes el emisor, el receptor y el robot.Los diferentes gestos que se ha asignado a la dirección de los bot son-Mano pa
Mando a distancia Robot con Arduino

Mando a distancia Robot con Arduino

L293D es un doble motor driver puente H circuito integrado (IC). Controladores de motor actúan como amplificadores de corriente ya que llevan un control de poca intensidad de señal y proporcionan una señal de corriente más alta. Esta señal de corrien
Utilizando un controlador NES para emuladores con Arduino y procesamiento

Utilizando un controlador NES para emuladores con Arduino y procesamiento

He encontrado varias formas de conectar un controlador NES al ordenador para su uso como un emulador de gamepad pero ninguno parece ser simple y compatible con lo que tenía en mano.Ésta sólo funciona con Arduino Leonardo, Micro y debido: https://gist
BASIC TUTORIAL sobre inteligencia ARTIFICIAL MARKUP lenguaje (AIML) a través de Bloc de notas

BASIC TUTORIAL sobre inteligencia ARTIFICIAL MARKUP lenguaje (AIML) a través de Bloc de notas

Inteligencia Artificial Markup lenguaje (AIML) es un lenguaje de programación que es una especificación de lenguaje de marcado Extensible (XML) utilizada por chatbot, verbot, pandorabot, superbot y otro robot parlante.Fue desarrollado por el Dr. Rich