Discusión: Electrónica Proyecto OpenPlotter
Ver mensaje
  #4  
Antiguo 22-11-2015, 18:54
Avatar de sailoog.com
sailoog.com sailoog.com esta desconectado
Expulsado
 
Registrado: 24-05-2011
Mensajes: 1,237
Agradecimientos que ha otorgado: 413
Recibió 1,358 Agradecimientos en 485 Mensajes
Sexo:
Predeterminado Re: Proyecto OpenPlotter

Cita:
Originalmente publicado por gypsylyon Ver mensaje
Hola Cofrades

Buscando soluciones de como hacer un Anemómetro barato que se pueda conectar a la Raspi, me he encontrado con algo interesante. Se trata de un convertido A/D que se puede conectar directamente a la Raspi y solo cuesta 3 Euros. Esto le abre a la raspi lo que le faltaba, conexión con el mundo analógico. Se trata del chip MCP3008 (Fig 1)
Es un convertidor A/D de 10 bit y 8 canales independientes de entrada.
En un lado del chip se encuentran las entradas analógicas y al otro lado los pines de alimentación y de comunicación.(Fig 2)
Los 10 bit nos dan la posibilidad de 1024 combinaciones de bits, lo que utilizando la tensión de referencia de la Raspi de 3,3V supone intervalos de 3,2 mV, que creo que es suficiente para monitorizar cualquier sistema analógico como la temperatura y las revoluciones del motor, o la temperatura del escape, el nivel de líquidos de agua, gasoil o aguas negras o bien cualquier sensor que tenga una salida analógica.
Hay otro chip de 12 bits, el MCP3208 que elevaria la combinaciones de bit a 4096 con intervalos de tensión de 805,66 microV.
El flujo de datos con la Raspi se hace a través de la interface SPI (Serial Paralel Interface).
Donde Vdd: es la tension de alimentación de 3,3 V, Vref: La tension de referencia de 3,3,V, Agnd: la masa analógica, SCLK: el reloj(Clock), Dout: Salida de datos del MCP3008, Din: entrada de datos de la Raspi, CS: seleccion de chip, Dgnd: masa digital.

El interface SPI se basa en el principio de Master/Slave como el I2C que se usa para las IMU, donde se pueden conectar varios Slave y se chequean con el pin CS.
La conexion con la Raspi es muy sencilla
(Fig 3)

Me he decidido por este chip porque tambiénse dispone de un programa en Python para leer los bit de salida del convertidor.
Aqui pongo el programa. (Fig 4)
En este caso llama a la función con Print, pero se puede aplicar a una variable y seguro que se puede implementar en Openplotter para mostrar la lectura o bien en un reloj o numérica o traducirlo a NMEA.
Si se utiliza el chip MCP3208 de 12 bit habria que cambiar en el bucle for range(13) en lugar de range(11).
Para el anemómetro voy a utilizar cuatro sensores de "Hilo caliente" el MD0550dfx de Modern Device que cuesta 17 Euros con salida analógica de 0 voltios hasta la de alimentación (de 4 a 10 V), que seran los 5 V de la Raspi.
Ya he pedido el material y en cuanto me llegue, vere como tengo que montar los sensores de viento para obtener también la dirección del mismo, para luego escribir el programa en Python. Luego con la ayuda de Sailog se podrá pasar a NMEA para que lo multiplexe Openplotter.
De los 8 canales necesitara el anemómetro 4, con lo que quedan 4 libres para otra utilización. Algunas ideas las he nombrado antes pero seguro que se os ocurren alguna más. Para leer las, temperaturas solo se necesita una sencilla sonda PTC, las revoluciones se pueden leer directamente usando un divisor de tension, etc.
No se lo que opináis al respecto, pero con este chip creo que completamos todas las posibilidades de la Raspi para su uso en la navegación con los objetivos de Openplotter.

La pagina donde lo he encontrado es www.erik-bartmann.de. Esta en Alemán, pero si alguien tiene interés en algo concreto os lo puedo traducir.
Excelente! muy buen trabajo gypsylyon!

Cuenta conmigo para la conversión a NMEA, la implementación en OpenPlotter y ayuda con el código si la necesitas. Algunas apreciaciones:

Revisando el código que adjuntas me parece muy extraño que en él se usen los inputs GPIO18 (pin 12), GPIO23 (pin 16), GPIO24 (pin 18), GPIO25 (pin 22)ya que esos no son los dedicados al interface SPI. Supongo que quizas se puedan usar otros pero mejor seguir la convención (la última grafica seria la de la raspberry 2):



Esto es importante porque el circuito que resulte debe ser compatible con otros posibles circuitos o usos por otros circuitos o programas y ese es precisamente el caso de openplotter que usa los pins de propósito general (amarillos) GPIO22, GPIO23, GPIO24, GPIO25, para definir interruptores personalizados:



En este caso serian completamente incompatibles ya que compartirian pins.

En cuanto a las aplicaciones de este circuito yo voto por la imprescindible del viento en la que ya estás trabajando y en una para monitorizar el voltaje de las baterías del barco usando divisores de tensión según este esquema: http://raspi.tv/2013/controlled-shut...th-2-cell-lipo
Me olvidaría de los sensores de temperatura ya que para ello están los DS18B20 que son baratos, waterproof, altas temperatura y digitales. Se conectan directamente a los pins de la raspberry y se pueden conectar tantos como quieras en paralelo al mismo pin! insuperable. usando varios de estos puedes controlar temperaturas de refrigerante de motor, escape, agua del mar, nevera, etc. Ya los he implementado en OpenPlotter.

Otros muy utiles me parecen los sensores de nivel de líqudos para lecturas precisas de volumenes. En OpenPlotter ahora se pueden detectar niveles maximos o minimos de agua en depositos, sentina, etc y lanzar alarmas pero no lecturas precisas de nivel.

Permanezco a la escucha y felicidades de nuevo