¿Alguna vez habéis deseado hacer uso alguno de los módulos, sensores y/o shields de Arduino en una Raspberry Pi? ¿Os gustaría crear vuestros programas de Raspberry Pi en un lenguaje eficiente como es el C++? Pues estáis de suerte, en el completo e ilustrativo tutorial de hoy el tío Transductor va a enseñaros de qué manera podéis utilizar el puente de conexión entre Raspberry Pi y Arduino Shield. Vamos a descargar, instalar y compilar la librería. Finalmente, para

comprobar su correcto funcionamiento, crearemos un sencillo Blink.

 

El material necesario es:


•Raspberry Pi to Arduino Shield conversion board de Cooking Hacks. Es importante tener en cuenta que la Raspberry funciona con 3.3v, si conectamos un sensor que se alimente con 5v es posible que dañemos el sensor. O la Raspberry. O ambos, contigo incluido.
•Raspberry Pi con sistema operativo instalado y configurado. Si no sabes cómo hacerlo pulsa aquí. Yo utilizo una Raspberry Pi modelo B con Raspbian instalado.
•Accesorios (teclado, ratón, pantalla…). Importante también tener acceso a Internet.

Antes de dar corriente a la placa, es importante conectar todos los accesorios y la shield. Si lo hacemos una vez encendida la Raspberry, es posible que se pare o se bloquee.

Conectamos la shield a los pines GPIO de la Raspberry Pi, y ponemos un LED en los pines SCK y GND (cuidado con la polaridad). Ahora encendemos la Raspberry, abrimos la Terminal y descargamos la librería arduPi. Esta librería nos permite trabajar con la placa de conversión. Para descargar un archivo desde la Terminal ejecutamos la orden:

wget www.cooking-hacks.com/skin/frontend/default/cooking/images/catalog/documentation/raspberry_arduino_shield/arduPi_1-5.tar.gz

Seguido de el comando para descomprimir:

tar xzvf arduPi_1-5.tar.gz

Observamos que hay tres archivos. arduPi.cpp y arduPi.h son la librería propiamente dicha. arduPi_template.cpp es una base para crear nuestros programas utilizando arduPi. Habrá que compilar la librería, de lo contrario no será posible utilizarla.

g++ arduPi.cpp -o arduPi.o

 

Ejemplo de parpadeo

Modificamos el archivo de guia arduPi_template.cpp y escribimos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Include arduPi library
#include "arduPi.h"
 
void setup(){
  pinMode(13, OUTPUT);
}
 
void loop(){
   digitalWrite(13, HIGH);
   delay(1000);
   digitalWrite(13, LOW);
   delay(1000);
}
 
int main (){
 setup();
 while(1){
 loop();
 }
 return (0);
}

Se trata de un blink básico, sin ningún secreto. Guardaremos este código como blink.cpp . Ahora compilamos el programa escribiendo en la Terminal:

g++ -lrt -lpthread blink.cpp arduPi.o -o blink

Y finalmente ejecutamos el programa:

sudo ./blink

Si has conectado el LED correctamente deberías ver cómo parpadea. Si no funciona, comprueba la polaridad y el código.