Make: it Robotics Starter Kit - Enviar datos del sensor de forma inalámbrica

Make: it Robotics Starter Kit - Enviar datos del sensor de forma inalámbrica

Tabla de contenido:

Anonim

En este Instructable, vamos a tomar lo que aprendimos en "Crear: Robotics Starter Kit - Conectividad inalámbrica" ​​y "Hacer: Es Robotics Starter - Capturar datos del sensor" y combinar estos datos para capturar los datos del sensor en tiempo real y enviarlos. datos a un programa que se ejecuta en nuestra computadora de forma inalámbrica.

Por lo tanto, si no tiene su robot configurado para usar el transmisor y el receptor, eche un vistazo a la publicación del blog "Make: it Robotics Starter Kit - Captura de datos del sensor" y vuelva a configurar su robot y el cable FTDI.

Para enviar los datos del sensor a nuestra computadora, nuevamente tenemos que hacer algunos pequeños cambios en nuestro programa lineFollow.ino Arduino:

Comente la siguiente línea, ya que ya no necesitamos nuestra variable de contador.

// int contador;

Comente la inicialización de la variable del contador variable:

// contador = 0;

En la función loop () del programa comente las siguientes líneas:

// mySerial.println (counter, DEC);

// contador ++;

Agregue la siguiente línea a la función loop ():

mySerial.println (action1, HEX);

if (action1! = action2)

{

si (acción1 == 3)

line_following.go_forward (50);

si (acción1 == 1)

line_following.line_following_turn_left (50);

si (acción1 == 2)

line_following.line_following_turn_right (50);

si (acción1 == 0)

line_following.go_forward (50);

}

acción2 = acción1;

}

Cuando ejecutemos el robot, nuestros datos del sensor se enviarán de forma inalámbrica a nuestra computadora, pero no queremos simplemente capturar los datos en serie utilizando el Monitor de serie y los resultados se muestran como números hexadecimales.

Queremos mostrar en tiempo real las direcciones reales que el robot recibe según los datos del sensor. Para hacer esto no podemos usar el Monitor Serial.

Debemos escribir un programa que tenga una lógica similar a la de nuestro programa lineFollow.ino. Así que vamos a desarrollar un programa Python que lee los datos del puerto serie e imprimimos las instrucciones que se le dan al Robot en inglés simple.

Adjunto está el programa Python, analizaremos el programa en un momento. Si aún no lo ha hecho, consulte la publicación anterior del blog “Make: it Robotics Starter Kit - Binary Part 1 ″ y vea el video sobre cómo configurar Python en su computadora.

importar serial

tiempo de importación

Las declaraciones de importación proporcionan funciones de biblioteca que nuestro programa Python necesita para comunicarse con el puerto serie.

def main ():

La declaración define una función llamada main ()

ser = serial.Serial ('COM3', 1200, timeout = 0)

Esta declaración crea un objeto serie y le dice al objeto qué puerto serie debe escuchar, qué velocidad en baudios usar y timeout = 0 se usa para leer los datos cuando está disponible sin esperar.

mientras que 1:

La instrucción while 1: se utiliza para iniciar un bucle que se repite y no finaliza, ya que la condición de 1 siempre es verdadera.

valor = ser.read (1)

Aquí leemos un byte de datos del puerto serie y almacenamos este valor en la variable de valor.

Si valor> = '0' y valor <= '3':

Si el contenido de la variable de valor está entre 0 y 3, ejecute el contenido de la sentencia if

si valor == '0' o valor == '3'

imprimir "ir hacia adelante"

Si la variable de valor es 1 o 3, ejecute el mensaje de impresión "Avance".

si el valor == '1':

imprimir "girar a la izquierda"

Si la variable de valor es 1, imprima el mensaje "Gire a la izquierda"

si el valor == '2':

imprimir "girar a la derecha"

Si la variable de valor es 2, imprima el mensaje "Gire a la derecha"

si __name__ == "__main __": main ()

Si este programa se está ejecutando y no es un archivo de biblioteca, ejecute la función principal.

Recuerde que Python es un lenguaje sensible a la sangría. Si su sangría no es correcta, su programa generará errores de sintaxis cuando intente ejecutarlo. Cuente sus espacios de sangría al copiar el código en su editor de texto.

Recuerde que cuando conecte su cable USB para programar el Arduino, tendrá que asegurarse de que su puerto serie sea correcto para la configuración del puerto serie en el IDE de Arduino.

Consulte la publicación del blog “Make: it Robotics 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 usa un puerto USB diferente para su cable FTDI USB, su puerto serie también será diferente.

Coloque 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 la carpeta de su programa readSerial.py.

Ejecute el comando desde su símbolo del sistema:

Python runSerial.py

Si encuentra algún error, verifique que su programa runSerial.py esté configurado en el puerto serie correcto.

Asegúrese de que su tarjeta de conductor y el cable FTDI estén conectados correctamente.

Si está imprimiendo caracteres extraños en su símbolo del sistema, verifique que su velocidad de transmisión sea la misma en los programas Arduino lineFollow.ino y readSerial.py.

Si hizo todo correctamente, cuando su robot siga la línea negra, su programa Python debería mostrar algo que se muestra en la imagen de arriba.

Suministros: