Programa un Arduino UNO con tu Raspberry Pi Deja un comentario

Aprende a programar Arduino con tu Raspberry Pi

En este sencillo tutorial vamos a conectar un Arduino Uno a una Raspberry Pi y programar Arduino IDE en Raspbian. Vamos a usar un Arduino Uno con un Raspberry Pi 3 para esta guía, pero los pasos son similares para todos los modelos.

Instala Arduino IDE en tu Raspberry Pi

El primer paso para programar una placa Arduino con una Raspberry Pi es instalar el IDE de Arduino (entorno de desarrollo integrado) en tu Raspberry. Este programa comprueba el código y lo carga en el Arduino. Instala la última versión de Arduino IDE usando apt:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install arduino

Alternativamente, abre Chrome en Raspberry Pi, ve a la descarga del IDE de Arduino en este enlace, y haz clic en el enlace Linux ARM bajo `Descargar el IDE’. Extrae el archivo en su directorio /opt, abre una Terminal y ejecuta el script install.sh para instalarlo.

cd Downloads/
tar -xf arduino-1.8.3-linuxarm.tar.xz
sudo mv arduino-1.8.3 /opt
sudo /opt/arduino-1.8.3/install.sh

Encontrarás Arduino IDE en Menú > Programación. Abre la aplicación para empezar a programar tu placa Arduino.

Programa Arduino IDE en una Raspberry Pi

Los programas de Arduino se llaman’sketches’, y están basados en el lenguaje de programación C. Abre el IDE y verás un escritorio en blanco, con las dos áreas básicas para el código: void setup() y void loop(). Si ves un script vacío, elige Archivo > Ejemplos > 01.Básicos > BareMinimum.

Como explican los comentarios, setup() es para el código que se ejecuta una vez para configurar tu electrónica correctamente. El código que escriba en void loop() se repetirá desde la primera línea hasta la última en un bucle sin fin.

Para demostrarlo, hemos escrito un sketches básico que parpadea dos LEDs cuando mueves la mano sobre un sensor PIR. Conecta los dos LEDs y el sensor PIR al Arduino, como se muestra en el diagrama de circuitos siguiente.
programar un arduino con raspberry pi

Una vez que hayas conectado el Arduino al circuito, conéctalo a uno de los puertos USB de la Pi. Esto proporciona potencia al Arduino, así como una conexión de datos entre tu Raspberry Pi y la placa Arduino. No uses la entrada de alimentación del Arduino barrel-jack ya que una Raspberry Pi 2 o 3 puede suministrar suficiente energía para una placa Arduino a través de USB.

Haz parpadear un sensor PIR con Arduino IDE

Introduze el código de PIRBlink.ino y guárdalo como PIRBlink usando Archivo > Guardar. Se guardará dentro del directorio Arduino en tu directorio home.

/*
* Blinks two LEDs when motion detected
*/

//variables
int led1 = 5;
int led2 = 6;
int motion = 3;
int wait = 500; //500ms = 1/2s

void setup() {
// put your setup code here, to run once:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(motion,INPUT);
}

void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(motion) == HIGH){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
delay(wait);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
delay(wait);
}
}

Usamos la instrucción pinMode para decirle al Arduino a qué pines GPIO están conectados los LEDs (pines 5 y 6) y que cada pin debe ser tratado como una salida.

En la sección void loop(), le decimos al Arduino que suba el voltaje de estos pines a HIGH (5 V) con la instrucción digitalWrite, que luego haga una pausa de medio segundo, y luego apague los LEDs.

Antes de subir tu sketch a Arduino, dile al IDE qué placa Arduino estás usando abriendo Herramientas > Placa. A continuación, indica al IDE qué puerto debe utilizar para cargar el código abriendo Herramientas > Puerto serie y seleccionando /dev/ttyACM0. En la versión 1.8.3 del IDE, debes seleccionar la versión marcada como ‘(Arduino/Genuino Uno)’.

Ahora haz clic en Cargar para programar el Arduino con tu sketch. Después de unos segundos de revisar y cargar el código, deberías ver tus LEDs parpadeando cada vez que muevas la mano sobre el sensor.

Detener el programa

A diferencia de una Raspberry Pi, el Arduino seguirá ejecutando el mismo programa, incluso si desenchufas o reinicias la placa. La forma más fácil de detener su ejecución es abrir un nuevo programa en blanco y cargarlo en la placa.

Etiqueta del IDE de Arduino

Aunque no es necesario, es también una buena etiqueta de sketch de Arduino incluir una descripción al principio.
En la parte superior de tu programana, escribe /* y pulsa ENTER: el IDE añadirá dos líneas más. Cualquier cosa escrita entre /* y */ será ignorada por el Arduino, pero puede ser leída por cualquier persona que quiera entender lo que hace tu programa y cómo funciona.

Hemos utilizado variables para nuestros LEDs, lo que significa que si cambiamos los pines GPIO a los que están conectados, tendremos menos ediciones que hacer.

Le decimos al IDE de Arduino el tipo de variable, luego el nombre y el valor. Así que nuestros pines LED son leds int1=5;. Reemplazando todas las instancias de 5 por led1, cualquier cambio en nuestra construcción sólo requiere un cambio en nuestro código.

Añadir movimiento

También hemos añadido un sensor de movimiento PIR, infrarrojo pasivo, como se muestra en el diagrama de circuitos. Por lo tanto debemos declarar la variable int motion = 3 y añadimos esta línea a void setup():

pinMode(motion, INPUT);

Finalmente, añadimos algo de código para hacer que el sensor de movimiento encienda el LED y parpadee:

if (digitalRead (motion) == HIGH) {

Al igual que con la sentencia if, ésta es parte de la sección void loop() que se ejecutará de forma continua, lo que significa que el sensor de movimiento se leerá repetidamente en busca de signos de movimiento.

Una nota final sobre la codificación con Arduino: cada línea de código debe terminar con un punto y coma o una llave. El IDE resaltará cualquier línea de código que sufra un error, y normalmente será porque la línea anterior carece de su terminador en punto y coma.

Si no está familiarizado con el lenguaje de programación C, hay muchos recursos que puede encontrar en Internet para aprender a usarlo.

También te puede interesar

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?