viernes, 6 de febrero de 2015

ADC usando Raspberry pi

La raspberry pi no cuenta con ADC por tanto se utilizó un microcontrolador; Arduino UNO, el cual cuenta con un ADC de 11-bits con un rango de voltaje de 0 - 5 volts.

La práctica se dividió en dos secciones, la parte de programación en arduino para obtener los datos y la parte de interpretación de los datos y presentarlos en una pantalla que es la parte de la raspberry pi.


El código que tiene el arduino se muestra a continuación:

byte enviar[2];

void setup(){
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  int val = analogRead(A0);
  enviar[0] = val | 1111111;
  enviar[1] = (val << 8) | 11111111;
  
  digitalWrite(13, HIGH);
  delay(100);
  Serial.write(enviar, 2);
  digitalWrite(13, LOW);
  delay(1000);
}

El código de phyton, en la raspberry se muestra en a continuación:

import serial

port = "/dev/ttyACM0"
serie = serial.Serial(port,9600)
serie.flushInput()
serie.flush()
while True:
if (serie.inWaiting() > 0):
b1 = ord(serie.read(1))
b2 = ord(serie.read(1))
if((b2*256 + b1) < 1024):
input = (b2*256 + b1)*0.49
output = str(input) + "*C"
print(output)

El video de su funcionamiento se el siguiente:

5 comentarios:

  1. Me agrada que compartieran el código completo, se entiende más lo que hicieron paso a paso, el vídeo esta muy bien también.

    ResponderEliminar
  2. Muy genial y de mucha ayuda su video, ya que para alguien que no ha tocado una raspberry ayuda bastante para que tengan una idea. Sobre lo del ADC, ya vieron lo del ADC Pi ?
    Saludos :)

    ResponderEliminar
  3. Buena explicación. Hay otras maneras para poder usar la Raspberry Pi sin necesidad de una pantalla, teclado y mouse (muy práctico), como ustedes lo hicieron. Una de ellas es conectando directamente con el cable ethernet la Rasperry Pi y la computadora. Para ello tienes que verificar el adaptador LAN está configurado para establecer direcciones IP automáticamente o de manera estática. Ahi mismo puedes observar el rango de la dirección IP que obtendría tu computadora al conectar la Raspberry Pi, a la cual hay que asignarle una dirección IP del mismo rango, pero cambiando los dígitos después del tercer punto (i.e 192.168.0.XX). Depende de cómo hayan instalado el Raspbian en la Raspberry es cómo tendrían que asignarle la IP del mismo rango a la Raspberry Pi, ya se que hayan usado e NOOBS o si cargaron directamente la imagen del SO. Posteriormente pueden usar el VNC o también el Escritorio Remoto de Windows. La ventaja de este método es que no requieres en ningún momento de monitor, teclado o mouse y tampoco necesitan conectar la Raspberry Pi ni la computadora a una Red Wifi o LAN, por ejemplo puede ser muy util en la escuela donde no tienes acceso al Router. Para ver el proceso mas detallado puedes consultar el siguiente enlace:

    https://pihw.wordpress.com/guides/direct-network-connection/

    ResponderEliminar
  4. Es interesante la forma que lo hicieron, ya que yo por ejemplo lo hice por medio de GPIOs en cambio ustedes usaron comunicación serial para darle los datos del ADC a el Raspberry, aun así la mejor forma pienso que es utilizando un ADC que pueda enviar de manera directa los datos al raspberry y no utilizando otro micro como intermediario.
    Buena explicación en el video.

    ResponderEliminar
  5. Una pregunta. Ya van dos publicaciones donde veo que No usan la raspberry. En que se basa la gente para su elección? Ya que veo que a veces mete en apuros a los equipos.
    Saludos!!!

    ResponderEliminar