Cuando el pasado mes de octubre tuvimos ocasión de revisar el mini monitor TFT de 2,8″ de Robopeak ya os adelantábamos que en el mismo envío habíamos recibido aparte de una RPi B+ más cosas que poco a poco os iríamos desvelando.
Por ejemplo, hoy le toca el turno al GrovePi que es una interesante «tarjeta» de expansión para la RPi que permite el uso de los sensores Grove de Seeedstudio y que ya os hemos mostrando en revisiones previas por cuanto es un sistema muy cómodo para preparar de forma rápida y elegante (sin líos) de cables utilizable tanto con Arduino como con la RPi.
Y como hay que empezar por algún sitio simplemente enseñaros alguno de los GROVEs que hemos ido acumulando en nuestros proyectos realizados con Arduino ya que hasta ahora no sabíamos lo sencillo que resultaba utilizarlos también con la RPi y así aprovechar su mayor potencia, etc
GROVEs
Como bien dicen nuestros amigos chinos de Seeedstudio su sistema Grove viene a ser como el LEGO de la electrónica pudiendo avanzar en el desarrollo de prototipo de una forma muy rápida y sin tener que andarse preocupando en una primera etapa del acondicionamiento de señales. El hecho de disponer de conectores estandarizados permite centrarse desde un primer momento en la programación del sistema aprovechando por otra parte el código de ejemplo que existe para todos y cada uno de estos «GROVEs» que por cierto hay para todos los gustos y necesidades.
Por ejemplo, nosotros en la veintena que tenemos hasta el momento hay de todo…
desde los pensados para medir el «medio ambiente» y que van desde una sonda para medir la humedad del suelo a medidores de luminosidad (tanto en formato digital como analógico), barómetro o medidas de temperatura y humedad relativa.
También tenemos por ejemplo desde actuadores de contacto, tipo switch o medidores del paso de corriente continua o salida regulable a LED.
Para nuestros robots móviles también tenemos lógicamente aparte de acelerómetros, detector de línea, sensor de distancia por ultrasonidos y por infrarrojo, un I2C motor driver, etc.
Aunque parezca mentira existe hasta una panel LCD de 128*64 pixels,,, o un relé capaz de trabajando a 5V de entrada dar hasta 10A a 250V (ó 15A a 120V).
GROVEPi
Al igual que existe Grove Base Shield para poder utilizar los GROVEs anteriores y más en Arduino, GrovePi es la versión equivalente para RPi siendo compatible con los diferentes módulos existentes en la actualidad.
Sin embargo se puede ver (o al menos vislumbrar) que el diseño original corresponde al GCIO «corto» del RPi B … desaprovechándose las nuevas entradas salidas que se han introducido en el modelo b+.
El «sistema» incluso se puede montar en la RPi+ con la última caja que hemos comprado para protegerla aunque la verdad sea dicha es que hay que tener cuidado en el montaje ya que los cables de salida casi rozan la parte superior de los laterales por lo que no se puede ni se debe apretar al máximo sobre todo para evitar también que las soldaduras de la parte inferior hagan contacto con las nuevas USB de la RPi B+. En cualquier caso está claro que en este caso el problema es el diseño de la caja que no está pensada para utilizar con una tarjeta conectable al GPIO
NUESTROS PRIMEROS PROYECTOS CON GROVEPi
Como es habitual hemos empezado con una versión del conocido «Hello World!» … aunque más al estilo Arduino… haciendo «pestañear» un LED exactamente un LED rojo de Grove.
Tanto la descripción detallada del montaje como el código escrito en Python están AQUÍ por lo que ni nos vamos a molestar en copiarlo ya que poco podríamos añadir.
Viendo sin embargo la Foto de nuestro montaje se puede observar que aparte del LED brillante hay otros tres Groves conectados. Estos corresponden (los dos que se ven) a un sensor de sonido y a otro de luminosidad … mientras que el tercero corresponde al sensor Temperature and Humidity Pro.
CONVIRTIENDO TU RPi EN UNA ESTACION METEOROLOGICA QUE TWITTEA
Con este montaje hemos realizado una modificación al proyecto SENSOR TWITTER FEED para enviar datos de los sensores de forma automática vía Twitter… y del que os vamos a explicar algo más en detalle ya que hemos hecho bastantes cambios y no queremos olvidarlos.
El primer cambio ha sido la instalación de tweepy que el antiguo «widget» para acceder vía API a Twitter ha cambiado en el último año y no funciona. Para instalar, de nuevo os aconsejamos que visitéis esta página donde os explican como crear primero una «app» en el API de Twitter… y luego instalar propiamente el paquete de tweepy en la RPi B+:
sudo apt-get update
sudo apt-get install python-dev python-pip
sudo pip install tweepy
Lo siguiente es evidentemente escribir el correspondiente programa en Python cuyo listado completo tenéis aquí.
En el programa la mayor parte de las sentencias se refieren a la inicialización de las principales variables indicando primero el mapeo de los sensores utilizados (líneas 24 a 27) para continuar con la asignación de las variables generadas para la app / token a utilizar en el acceso a las APIs de Twitter.
A continuación y tal y como suele ocurrir en este tipo de aplicaciones …. un «bucle» infinito para hacer las medidas de las variables mediante peticiones directas a los sensores, formateo del correspondiente mensaje… y envío a Twitter incluyendo una pequeña zona para detección de errores que nunca viene mal.
Para la ejecución y pruebas del programa basta con lanzarlo desde la línea de comando y ver desde la propia terminal el bombardeo de datos que también se puede seguir evidentemente desde la cuenta de Twitter «receptora» de los mensajes que evidentemente no es la que usamos en PcDeMaNo para anunciar nuestras noticias, etc.
Una vez comprobado que todo funciona de forma correcta hemos modificado ligeramente el programa para que únicamente tome una medida y envíe un Twitter por cada ejecución del programa automatizando el mismo mediante CRON para que se ejecute tan solo una vez cada 15 minutos
Nota: Realmente los que sepan Python habrán podido comprobar viendo el código anterior que corresponde a la versión final en la que únicamente entra una vez al bucle saliendo cada vez y terminando el programa para no colapsar la cuenta de Twitter.
UTILIZANDO TU RPi PARA DETECTAR LAS PERSONAS QUE ENTRAN EN TU CASA… Y MÁS
Al igual que en el caso anterior hemos utilizando la idea de un proyecto ajeno Who’s At The Door en este caso «ajustándolo» a los sensores Grove de que disponemos.
En nuestro caso al no disponer (aún) de una cámara para la RPi nos hemos conformado con detectar mediante el Sensor Ultrasónico Grove las personas que pasan por delante, encendiendo un LED, actuando sobre un relé…y enviando un mensaje instantáneo a tu dispositivo móvil con Android o iOS tal y como os contábamos hace unos días!.
Como en el caso anterior de querer acceder a las APIs de Twitter en este caso es necesario darse de alta en el servicio gratuito Instapush para disponer así de los correspondientes códigos secretos para validar el acceso desde tu aplicación…
luego crear un «evento» dispuesto a recibir los mensajes de tu aplicación
a enviar a tus dispositivos que en mi caso son hasta ahora la iPAD2 y la tablet Android Nook HD
a la que llegarán mensajes como estos …
que en la terminal de la RPi se verán de esta forma
Por cierto ya que tengo los pantallazos aquí os dejo como se ve la aplicación en Android
Para terminar aquí tenéis el código del programa en Python y aquí un par de pantallazos del mismo con una explicación mínima
Como en el caso anterior lo primero es instalar el «widget» que si antes nos permitiría acceder a las APIs de Twitter ahora nos dará acceso a enviar / recibir vía HTML mensajes instalándose pycurl sin más que:
apt-get install python-pycurl
Luego como siempre incluir en el código «nuestras» identificaciones y el de nuestro evento «Acercamiento_maximo» así como el mensaje que debe enviarse a la red… y desde ahí al correspondiente dispositivo móvil. La configuración del «hardware» en cuanto a sensores… tan sencilla como en el caso anterior.
En este caso sí hemos mantenido un «bucle» infinito ya que se trata de un sistema de vigilancia que estará activo siempre que nuestro «switch Grove» esté en la posición elegida. Una vez detecte algo cercano a nuestro sensor de ultrasonidos además de dar un mensaje encenderá el correspondiente LED activando además el relé que podría activar una bocina o sirena de barco, por ejemplo!
PUNTUACIÓN: 9,5
Nota: Muchas gracias a nuestros amigos de Seeedstudio por descubrirnos la posibilidad de utilizar su increíbles sensores Grove no solo en Arduino sino también en la RPi B+ y abrirnos así un nuevo mundo de posibilidades en nuestros próximos proyectos.
Pharizna que está empezando a embalar estos últimos montajes ya que prometió enseñarlos a sus amigos Químico Físicos de la Universidad de Sevilla que, aunque pueda parecer extraño, trabajan con clusters de Supercomputación… pero todavía no han tenido tiempo de conocer ni Arduino ni RPi … y no saben lo que se pierden
1515