Mostrando entradas con la etiqueta raspbian. Mostrar todas las entradas
Mostrando entradas con la etiqueta raspbian. Mostrar todas las entradas

viernes, 5 de febrero de 2016

Lectura ADC Raspberry Pi (GPIO) con un MCP3202 o MCP3008

No todo en la electronica son unos y ceros (1-0) tambien tenemos dispositivos, sensores, medicion de voltajes, corrientes que van desde el 0 en adelante. Desafortunadamente en la Raspberry Pi no hay un una entrada donde conectemos directamente algo analogo y no lo lea pero afortunadamente tenemos algo llamado SPI, lo cual nos permite la lectura de 2 puertos dentro GPIO en la Raspberry Pi para obetener datos análogos (CE0 y CE1).

Elementos de SPI

SCLK - Serial CLocK 
CE   - Chip Enable (Chip Select) (Dos puertos CE0 y CE1) 
MOSI - Master Out Slave In 
MISO - Master In Slave Out 

Sin embarho el SPI master driver esta deshabilitado por default en la raspberry, pero es muy fácil habilitarlo, solo tenemos que teclear una línea de código en la consola para quitarlo de la lista negra o bien hacerlo desde raspi-config.

Manual:

- sudo sed -i 's/blacklist spi\-bcm2708/\#blacklist spi-bcm2708/g' /etc/modprobe.d/raspi-blacklist.conf
- sudo reboot

Automático:

- sudo raspi-config

Una vez habilitado tenemos los siguientes pines del GPIO funcionales.

 MOSI P1-19, MISO P1-21, SCLK P1-23, CE0  P1-24 y CE1  P1-26

Ya tenemos habilitado el SPI, lo que para empezar a hacer pruebas necesitamos los siguiente:
  1. MCP3202 ó MCP3008
  2. Python y Python-dev
  3. Spidev 
Para instalar python python-dev realizar:
sudo apt-get install python-dev python






Para instalar spidev:

- git clone git://github.com/doceme/py-spidev
- cd py-spidev/
- sudo python setup.py install

Recordemos que el MCP3202 es un chip de 2 canales codificado a 12 bits por lo tanto vamos a estar leyendo valores de 0 - 4095 y el MCP3008 es un chip de 8  canales codificado  a 10 bits teniendo valores desde 0 - 1023. Eso se evalua en el código para la manipulación de datos. Los chips deben conectarse de la siguiente manera.

 
Rojo: V+
Negro: GND
Naranja: CLOCK
Amarillo: MOSI
Azul: MISO
Violeta: CE

Los canales es donde va a entrar la línea de lo que queremos medir y vamos a manipular tanto el canal como el puerto CE que deseamos medir mediante el siguiente script:

Para crear el script creamos un archivo con extensión .py

Con esto podemos a jugar con los numeros de los canales o de los CE para ver y entender el funcionamiento correcto.

Espero que les haya servido, realmente es una excelente herramienta para hacer medicion de sensores ya que por lo regular estos nos arrojan numeros que van de 0 en adelante.






jueves, 9 de octubre de 2014

Raspberry Pi como Servidor WEB

Hola que tal, después de un rato sin escribir ya que he tenido mucho trabajo, vengo con esta nueva entrada que es muy buena y les servira para practicar un poco a esos que quieren una pagina web desde su Rapsberry Pi ya que aqui tendran el control de todo el servidor.

Lo que necesitamos es una Raspberri Pi con conexión a internet, y una conexión a alguna pantalla mediante HDMI esto solo de inicio una vez configurado el Raspbian podremos continuar desde una computadora conectada a la misma red y desde luego una SD con los archivos de intalación de NOOBS(New Out Of the Box Software) que es más ni menos una lista de sistemas operativos que podemos instalar en la RaspberryPi.

Los archivos los encontramos en el siguiente link y la descargamos como sea nuestra preferencia. (zip ó torrent)




Una vez descargados jalamos los archivos a la carpeta raiz de la SD previamente formateada, después conectamos la SD a la Raspberry y encendemos. (Ojo es necesario tener un teclado conectado)

Encontraremos una pantalla como la siguiente:


Elegimos Raspbian [RECOMMENDED] y pulsamos la letra (i) nos saldra un mensaje que formateara la SD y perderemos toda la información, damos continuar y comenzara la instalación.


Una vez terminado tendremos una pantalla de configuración.



Si queremos trabajar con escritorio vamos al punto 3 Enable Boot to Desktop/Scratch:
  • Damos clic en Desktop Log y habilitamos. (Personalmente no lo recomiendo ya que se pierde muchos recurso con el entorno gráfico y como lo queremos para un web service seria muy lento)

Despues iremos al punto 4 Internationalisation Options y configuraremos:
  • Change Locale  como es_MX.UTF-8 UTF-8
  • Change Timezone como America/Mexico_City
Finalizamos y reiniciamos.

En este punto ya tenemos instalado y configurado Raspbian, ahora lo que necesitamos para conectarnos remotamente desde SSH para no tener que depender del teclado y pantalla tenemos que saber que IP se le asigno a la Raspberry PI.

  1. Hacemos login con las siguientes credenciales que son por default:
    • user: pi
    • pass: raspberry
  2. Escrbimos ifconfig y tendremos en pantalla la ip en algo similar a esto donde la IP es 192.168.0.5

Una vez teniendo esto ya podemos reiniciar desconectar el teclado el monitor y trabajar desde nuestra computadora siempre y cuando tengamos una consola disponible, en mi caso trabajo en MAC que es ambiente unix y tiene su consola, para usuarios de Linux no veo problema alguno y para los que usan Windows les recomiendo putty o alguna consola similar.

Abrimos la consola y logueamos mediante ssh.
  • ssh pi@192.168.0.5
Nos hemos conectado a las Raspi remotamente. Ahora biene lo más fácil, instalar y configurar todo para que esta funcione como un servicio WEB intalaremos lo que comunmente se le conoce como LAMP server (Linux, Apache, Mysql, PHP).
  • sudo apt-get install apache2 (Apache)
  • sudo apt-get install mysql-server (Mysql)
  • sudo apt-get install php5 (PHP)   
  • sudo apt-get install php5-mysql (Mysql librerias PHP)
Listo, tenemos nuestro servidor web funcionando.

Si queremos utilizar algun CSS podemos descargar alguno gratuito y empezarle a dar forma a nuestra página. CSS Gratis