Raspberry Pi 3, comodidad con solo un clic
Ahora es posible utilizar una amplia gama de placas ‘Click’ con la Pi 3.
MikroBUS™ es un estándar abierto de MikroElektronika que especifica un estándar de placa y conector hembra complementarias con contacto, serigrafía, tamaño y lugar de la placa, etc. Las funciones de los pines se definen para:
- E/S analógicas
- Reiniciar
- SPI
- Vcc a 3,3 V
- Terminal
- Salida PWM
- Interrupción por hardware
- UART TX/RX
- I2C
- Vcc a +5 V
En otras palabras, se trata de un conjunto de conexiones que será compatible con una gran cantidad placas complementarias con todo tipo de capacidades, como diferentes tipos de sensores, módulos inalámbricos, variadores de motor, etc.
Una selección de placas Click. Fuente de la imagen: mikroe.com
Las placas Click en uso están conectadas a "protecciones" que permiten la comunicación con plataformas de desarrollo populares, como Arduino, Beaglebone y, ahora, Raspberry Pi 3 (896-8660).
Placa de extensión Pi 3 ‘Click’
Las protecciones ‘Click’ se crearon para las plataformas Pi 1 y 2, por lo que podrías preguntarte con razón: "¿Pero no tienen Pi 2 y 3 un conector macho de 40 pines con el mismo contacto? La respuesta es sí. Sin embargo, la protección de Pi 1 solo podía alojar una única placa ‘Click’, mientras que la de Pi 2 podía alojar dos, aunque tenían que ser digitales. Ahora, la nueva protección de Pi 3 puede alojar 2 placas ‘Click’ con interfaces analógicas o digitales, gracias a un convertidor analógico digital dual integrado.
Cabe señalar que, además de con el modelo B de Raspberry Pi 3, la protección ‘Click’ también es compatible con el 2 B, 1 A+ y B+. Asimismo, además de utilizarse con placas ‘Click’, también resulta útil cuando solo tienes que agregar un canal o dos de entradas ADC a Raspberry Pi.
Ejemplos
El sitio web de LibStock de MikroElektronika proporciona ejemplos de código de placas ‘Click’. Sin embargo, estos son normalmente para plataformas de microcontroladores y están escritos en C/C++, mientras que el lenguaje de Raspberry Pi, y en concreto cuando se utiliza en el ámbito educativo, es Python. Al reconocer esto, MikroElektronika ha creado demostraciones de Python para 7 placas ‘Click’ cuando se utilizan con la protección, que están disponibles a través de LibStock y GitHub. Las demostraciones son para las placas ‘Click’:
- 8x8 ‘Click’ (923-5974)
- Accelerometer ‘Click’ (882-8900)
- Colour ‘Click’ (923-5999)
- LoRa ‘Click’ (136-0767)
- Relay ‘Click’ (820-9858)
- Signal Relay ‘Click’ (136-0802)
- Weather ‘Click’ (912-5170)
Además, los archivos ZIP descargados a través de LibStock contienen una demostración para leer el ADC integrado. Supuestamente, esto también será posible en el repositorio de GitHub en algún momento.
Pruebas con la placa ‘Click’ HTU21D
Para probar la protección, escogimos la placa Click HTU21D (862-4828), que incorpora un sensor de temperatura y humedad relativa de alta precisión. Se trata de una placa que utilizamos anteriormente en el invernadero conectado a través de Internet. Con el hardware conectado, el siguiente paso fue clonar el repositorio del proyecto del invernadero.
$ git clone https://github.com/DesignSparkrs/connected-greenhouse.git
Se utilizó un módulo Intel Edison en el invernadero conectado para la lectura de los sensores y el accionamiento de los actuadores, y un segundo módulo Edison para la lectura de los interruptores del panel de control y el accionamiento de los indicadores. Todos los elementos estaban integrados mediante MQTT y Node-RED. El script de Python del sistema de control, sensors-mqtt-pub, es un buen punto de partida, ya que es el responsable de la lectura de HTU21D y un sensor de lux.
El primer cambio que tuvimos que hacer fue definir el bus I2C en 1 en lugar de en 6, como sucedía con el Edison. Después, cortamos la importación de bibliotecas GPIO, MQTT y SMBUS, ya que no eran necesarias, junto con todas las líneas relacionadas con el sensor de lux, MQTT y los LED de estado de accionamiento.
En poco tiempo, obtuvimos como resultado:
#!/usr/bin/python
# -*- encoding: utf-8 -*-
import sys
import time
import htu21d
# I2C bus, sensors and config, LED
bus = 1
temphum = htu21d.Htu21d(bus)
temphum.use_temperature = True
# Main loop
while True:
try:
temperature = round(temphum.temperature, 2)
humidity = round(temphum.humidity, 2)
except (KeyboardInterrupt, SystemExit):
raise
except:
temperature = humidity = 0.00
print "Failed to read HTU21D"
print temperature, humidity
time.sleep(1)
Tras ejecutar el script de Python, la temperatura en grados Celsius y el porcentaje de humedad relativa se imprimieron en el terminal.
Reflexiones finales
La protección Click Pi 3 es una manera ordenada de agregar una gran cantidad de capacidades diferentes a la Raspberry Pi, lo que te permite desarrollar prototipos de nuevos diseños rápidamente y ensamblar divertidos proyectos con sensores, actuadores, módulos inalámbricos LoRa, etc. Gracias a las protecciones Click, compatibles con otras plataformas como Arduino y BeagleBone, las placas Click pueden reutilizarse con un gasto adicional mínimo.
Artículo escrito por Andrew Back
Partidario del código abierto (hardware y software), director de la Fundación 'Free and Open Source Silicon', organizador del festival tecnológico Wuthering Bytes y fundador del 'Open Source Hardware User Group'.