Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Aforador combustible
#46

(02-02-2021, 08:34 AM)unbilba escribió:  He estado investigando un poco y creo que la opción más factible es implementar las tramas de signalK en el arduino. He visto que son tipo JSON (he hecho algún proyectito en el pasado y creo que me acuerdo) y que puedo declarar la estructura de datos que necesito. Además, se me simplifica el envío de todos los datos que quiero centralizar en el arduino (tº, agua de sentina, nivel de batería, alarmas,...)

No entendía lo que era un parsun, pero ahora lo entiendo. 

Pero ahora se me plantea la siguiente duda (igual este hilo está tomando una deriva de otro hilo u subforo, si esa si decirme y lo cambiamos a otro o lo continuo en el hilo de mi barco):
-como doy de alta este nuevo modelo de datos? Como puedo visualizarlo o crear un instrumento para ello?

Gracias a todos!

Cuando tu creas la cadena json, tienes que ponerle la cabecera correspondiente de la sentencia de signal K que vas a utilizar.
Supongo que tendrás una biblioteca para hacer el parser con arduino. En python la hay. La biblioteca para parser de nmea183 se llama pinmea y la función es asi
hdg = pynmea2.HDG('OS', 'HDG', (str(heading_m),'','','',''))

En este caso es la informacion del compas. Como ves los datos se pasan a texto.

Tienes que convertir todos los valores a texto para introducirlos en la correspondiente función de la biblioteca.
Luego lo mandas al puerto serie.
Cuando conectes el arduino con la raspi, en openplotter creas una nueva conexión con el puerto serie conectado a arduino. Le pones tipo signalK y los datos deben de verse en openplotter.
Como esta información no es vital, ni cambia rápidamente, te recomiendo que la generes cada 5 minutos. Tambien puedes utilizar una gpio de arduino, para detectar que el motor esta en marcha y así activar la lectura de deposito cada 2 o 3 minutos y con motor apagado cada 10 min.
Desgraciadamente del mundo arduino estoy un poco pez.
Pero como se programa tambien en C , aquí hay bibliotecas.
Responder
Agradecido por: unbilba
#47

Buenas dias y champan para todos!!!!!

Ya lo tengo! Ya puedo enviar deltas de Signal K desde el arduino a openplotter y que este los muestre en el panel de instrumentos!!! 

IUJUUUU!!!!

Pirata Pirata Pirata Brindis Brindis Brindis

Aunque me pasa una cosa curiosa que debo investigar. Resulta que si envío las tramas (o deltas) a través del usb del arduino conectado directamente al usb de la raspy, funciona perfectamente, pero si lo envío a través de los pines TX y RX del arudino y a través del conversor USB-232 de la raspy, no funciona. Y he comprobado con putty que trafico llega.
Nosabo
Alguno podrías decir, "pues déjalo a través del usb". Pero me gustaria dejar el puerto usb del arduino libre para mantenimientos, análisis, carga de nuevos programas... Ademas que si conectas y desconectas el usb de la raspy, en cada conexión asigna un puerto distinto y hay que volver a configurar todo.....

Se os ocurre porque puede ser?

   

Los 5 balandristas
5balandristas.com
Responder
Agradecido por:
#48

Tienes que definir el puerto rs con baudios, bits i paridad
Responder
Agradecido por: unbilba
#49

Si si, lo he hecho. Y veo trafico a traves del puerto pero me llega ruido.

Creo que es porque el puerto serie de arduino a través de los pines de I/O es UART.

Puede ser?

Otra opción seria a traves de los pines gpio de la raspy, no? Pero tendría que anular bluetooth por lo que he leído y no me gusta mucho la idea.

Aunque también he estado pensado que esta comunicación solo se va a producir con la raspy encendida, asi que quizas podria hacerlo por wifi.....

Qué os parece?

Los 5 balandristas
5balandristas.com
Responder
Agradecido por:
#50

(06-02-2021, 04:24 PM)unbilba escribió:  Si si, lo he hecho. Y veo trafico a traves del puerto pero me llega ruido.

Creo que es porque el puerto serie de arduino a través de los pines de I/O es UART.

Puede ser?

Otra opción seria a traves de los pines gpio de la raspy, no? Pero tendría que anular bluetooth por lo que he leído y no me gusta mucho la idea.

Aunque también he estado pensado que esta comunicación solo se va a producir con la raspy encendida, asi que quizas podria hacerlo por wifi.....

Qué os parece?

Los pines GPIO son serie a nivel TTL, no Rs232, debes poner 1 conversor tipo MAX232 a la salida del arduino,  o conectar los pines del arduino directos a los GPIO de la raspy. El "ruido" que ves, es la señal invertida.
Responder
Agradecido por: unbilba
#51

Eso es lo que me temía....

Pero por lo que tengo entendido, si lo conecto directamente a los GPIO, tengo que anular el Bluetooth y esto no me gusta demasiado.

Miraré el MAX232 que dices...

Los 5 balandristas
5balandristas.com
Responder
Agradecido por:
#52

(06-02-2021, 04:57 PM)unbilba escribió:  Eso es lo que me temía....

Pero por lo que tengo entendido, si lo conecto directamente a los GPIO, tengo que anular el Bluetooth y esto no me gusta demasiado.

Miraré el MAX232 que dices...

Puedes usar otros GPIOs y convertirlos por software en puerto serie. Hay bibliotecas al respecto, pero consume muchos recursos de la raspi.

Lo mejor es usar un conversor rs422 a USB. Estos sirven también para rs232
Responder
Agradecido por:


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)