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:
- MCP3202 ó MCP3008
- Python y Python-dev
- 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.