Escritura de datos a través de comunicación serie //Arduino y MPU6050 giroscopio+acelerómetro

Soy nuevo en la comunicación en serie y solo estoy arañando la superficie, por lo tanto, por favor, sé sincero conmigo.

Lo que necesito lograr es la transferencia de los datos del giroscopio que recopilo en mi Arduino a Processing en mi Macbook. Ya tengo listo el código que lee mis datos de giroscopio/aceleración, aplica un filtro complementario y lo envía al monitor serial como una cadena.

Me gustaría aprender a enviar estos datos directamente desde Arduino a Processing.

  • ¿Cuál sería la forma más efectiva de enviar datos que pueden ser positivos y negativos en serie?
  • Busqué y encontré el uso de cadenas en serie y las leí/dividí en Procesamiento. No soy fan de este método. HighByte & lowByte y float/char byte array parece una alternativa, pero se vuelve demasiado complicado para mi conocimiento y comprensión actuales.

Sería genial si alguien pudiera empujarme en la dirección correcta o simplemente ayudarme a aprender comunicación en serie y enviar/leer datos de una aplicación Arduino a Macbook/Processing. En teoría, sé lo que sucede dentro, pero en cuanto al código, estoy un poco perdido.

Gracias de antemano,

Respuestas (1)

Mi preferencia es usar texto sin formato para tales transferencias de datos: puede leer los datos con un programa de terminal para verificar que Arduino está enviando lo que piensa (¡o no!) Para ayudar a aislar cualquier problema.

Utilizo un protocolo simple (en realidad basado en NMEA-0183): formo los datos en "oraciones", con un carácter de inicio de oración que no aparecerá en los datos (normalmente uso "$"), luego envío el elementos de datos separados por comas y que terminan con una nueva línea o CR/LF.

¿Existe también una forma de enviar los datos en una matriz de bytes o paquetes?
El problema que veo con el envío de datos binarios sin procesar es que todos los valores de byte posibles pueden ser datos válidos, por lo que es difícil ver cómo marcar el inicio de los datos para mantener sincronizados al remitente y al receptor. Algunos UART de microcontrolador pueden usar un noveno bit como indicador de comando, pero no creo que los UART de PC/USB habituales puedan manejar eso.