En este Instructable van a tomar lo que hemos aprendido en "hacer: es robótica Starter Kit – conectividad inalámbrica" y "hacer: es robótica Starter Kit – captura de datos de los sensores" y combinar esta información para capturar datos de sensores en tiempo real y enviar estos datos a un programa corriendo en nuestro ordenador sin cables.
Así que si no tienes tu robot configurado para utilizar el transmisor y el receptor, echa un vistazo a lo post del blog "hacer: es robótica Starter Kit – captura de datos de los sensores" y volver a configurar tu robot y cable FTDI.
Para enviar los datos del sensor a nuestro equipo que una vez más tenemos que hacer unos pequeños cambios a nuestro programa de Arduino lineFollow.ino:
Comente la línea siguiente, como ya no necesitamos nuestra variable contador.
int contador;
Comente la inicialización de la variable de la variable contador:
Contador = 0;
En la función loop() del programa comentario las líneas siguientes:
mySerial.println (contador, DEC);
contador ++;
Agregue la línea siguiente a la función loop():
mySerial.println (acción1, hexagonal);
Si (action1! = action2)
{
Si (action1 == 3)
line_following.go_forward(50);
Si (action1 == 1)
line_following.line_following_turn_left(50);
Si (action1 == 2)
line_following.line_following_turn_right(50);
Si (action1 == 0)
line_following.go_forward(50);
}
action2 = acción1;
}
Cuando ejecutamos el robot nuestros datos de los sensores será enviar inalámbricamente a nuestro ordenador, pero no queremos sólo capturar los datos en serie con el Monitor Serial de los resultados se muestran como números hexagonales.
Queremos mostrar en tiempo real las direcciones reales que se está dando el robot basadas en los datos del sensor. Para ello no podemos utilizar al Monitor serie.
Debemos escribir un programa que tiene una lógica similar como nuestro programa de lineFollow.ino. Tan van a desarrollar un programa Python que lee los datos del puerto serie e imprimir las indicaciones que el Robot se está dando en inglés llano.
Adjunto se encuentra el programa de Python, vamos a analizar un poco el programa. Si no lo ha hecho, se refieren a la entrada de blog anterior "hacer: es robótica Starter Kit – binario parte 1 y ver el vídeo sobre cómo configurar Python en tu computadora.
serial de importación
tiempo de importación
Las declaraciones de importación proporcionan funciones de biblioteca que necesita nuestro programa Python para comunicar al puerto serie.
DEF main():
La declaración define una función denominada main()
ser = serial. Serial ('COM3', 1200, tiempo de espera = 0)
Esta declaración crea un objeto serial y dice al objeto qué puerto serie para escuchar, qué velocidad a utilizar y tiempo de espera = 0 se utiliza para leer los datos cuando esté disponible sin necesidad de esperar.
mientras que 1:
El mientras 1: declaración se utiliza para iniciar un bucle que se repite y no terminar como la condición de 1 es siempre verdad.
valor = ser.read(1)
Aquí se lee un byte de datos desde el número de puerto y almacenar este valor a la variable valor.
Si valor > = '0' y el valor < = '3':
Si el contenido de la variable valor es entre 0 y 3 ejecutar el contenido de la fi comunicado
Si valor == '0' o valor == '3'
Imprimir "Ir adelante"
Si la variable valor es 1 o 3 entonces ejecutar el mensaje de impresión "ir adelante".
Si valor == '1':
Imprimir "Gire a la izquierda"
Si la variable valor es 1 entonces imprime el mensaje "Gire a la izquierda"
Si valor == '2':
Imprimir "Gire a la derecha"
Si la variable valor es 2 entonces imprime el mensaje "Gire a la derecha"
Si __name__ == "__main__": main()
Si este programa es ejecutado y no un archivo de biblioteca entonces ejecutan la función principal.
Recuerde que Python es un lenguaje sensible sensible de guión. Si tu sangrado no es correcta que su programa va a generar errores de sintaxis cuando intenta ejecutarlo. Cuenta tus espacios de indentación al frente el código en su editor de texto.
Recuerde que cuando usted conecte su cable USB en el programa usted tendrá que asegurarse de que el puerto serie es correcto para la configuración del puerto Serial en el IDE de Arduino Arduino.
Consulte la entrada de blog "hacer: es robótica Starter Kit - captura de datos del Sensor" para obtener información sobre cómo determinar el puerto serie correcto y cómo configurar el IDE de Arduino.
Si utiliza un puerto USB diferente para su cable USB FTDI, el puerto Serial será diferente también.
Su programa readSerial.py en una carpeta en su computadora e inicie un símbolo del sistema y cambie el directorio a la misma ubicación de carpeta de programa readSerial.py.
Ejecute el comando desde el símbolo del sistema:
Python runSerial.py
Si encuentras algún error, verifique que su programa de runSerial.py se establece en el puerto serie correcto.
Asegúrese de que tener su tablero de conductor y FTDI cable conectado correctamente.
Si usted está recibiendo extraños personajes se imprimen en el símbolo del sistema, verifique que la velocidad en baudios es la misma en los programas de lineFollow.ino y readSerial.py de Arduino.
Si hiciste todo correcto, cuando tu robot está siguiendo la línea negra el programa Python debe salida algo se muestra en la imagen de arriba.