Cómo conectar un Arduino a una Raspberry Pi a través de una comunicación serie

Tutorial Comunicación serial Arduino Raspberry Pi

En este artículo os vamos a explicar o al menos intentarlo cómo conectar una placa Arduino a una Raspberry Pi a través de una comunicación serie. De todas maneras y de manera informativa diremos que hay varias maneras de hacerlo. Se puede hacer con la comunicación I2C, SPI o incluso a través de los pines GPIO en la Raspberry Pi.

Antes de nada una cuestión ¿por qué queremos conectar una Raspberry Pi 2 B + y un Arduino Uno Rev 3 juntos? Sobretodo para poder usar las ventajas de ambos al mismo tiempo.

Ventajas y desventajas de Arduino y Raspberry Pi

Ventajas de Arduino:

  • Bajo consumo de corriente
  • Fácil a la hora de conectar sensores digitales y sensores analógicos sin necesidad de hardware adicional
  • Excelente para IOT
    etecetera

Algunos defectos de Arduino:

  • la mayoría necesita tarjetas adicionales y extensiones para conectarlo a internet, USB, Wfi, bluetooth, etc.

Puntos fuertes de la Raspberry Pi:

  • Funciona con un sistema operativo «raspbian: a linux derivation»
  • Tiene un montón de extensión (ranura USB, Wifi, ranura HDMI, puerto RJ45, etc)
  • Se puede utilizar para IoT «Internet de las cosas«
  • Puede hacer un cálculo más alto que la mayoría de placas Arduino

Algunos defectos de la Raspberry Pi:

  • Necesidad de agregar hardware adicional para conectar sensores analógicos
  • Consumir más energía que un arduino

Así que para conectar nuestras 2 placas y explotar sus puntos fuertes para nuestros proyectos futuros, tenemos que hacer que se comuniquen y compartan datos, por ejemplo ser datos de los sensores de tiempo, de presión, de Internet, etc.

Ahora vamos a la demostración. Para demostrar cómo funciona este tipo de comunicación haremos un par de pequeños proyectos, uno para los datos que van a la Raspberry Pi de Arduino, el otro para lo contrario. En primer lugar, asegúrate de haber instalado pySerial, que permite leer y escribir en el puerto serie con el lenguaje de programación Python.

Para empezar, vamos a necesitar:

Conéctelos con el cable USB y pruebe la comunicación en serie en la Raspberry mediante el siguiente comando en el terminal pi:

ls /dev/tty

Y el resultado debería ser esto: «/ dev / ttyACM0» , eso te permite saber que todo esta bien y que la Raspberry Pi esta conectada y encuentra su nombre.

Ahora vamos a enviar datos desde el Arduino a la Raspberry Pi

Carga el siguiente programa en su Arduino:

Programa:

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println(“Hola Pi”);
delay(2000);
}

Ejecute Python en su Raspberry Pi y escriba este comando en su terminal:

Programa:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600)

/ Dev / ttyACM0: ser el nombre del puerto, Puede ser diferente para dependiendo de la Raspbery Pi
9600: Representa el baud en el puerto serie. Debe ser bethe sqme en ambos lados (Arduino y Raspbery pi).
Ahora escribe el siguiente código para agregar un escucha al puerto serie en la Raspbery pi

Programa

while 1 : ser.readline()

Deberíamos ver aparecer en nuestra pantalla de terminal: «Hola Pi»

Ahora vamos a enviar datos de la Raspberry Pi a Arduino

En este ejemplo, nuestra Raspberry Pi enviará un número único, y el Arduino encenderá y apagará el LED del Pin 12 tantas veces como sea ese número.

[sourcecode language=”cpp”]

const int ledPin = 12;

void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop(){
if (Serial.available()) {
light(Serial.read() – ‘0’);
}
delay(500);
}

void light(int n){
for (int i = 0; i < n; i++) {
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
}
[/sourcecode]

En la Raspberry Pi es necesario escribir

ser.write('3')

Ahora debes ver que el LED del Arduino se enciende 3 veces. Y nada más ahora te toca a ti ponerte manos a la obra para crear proyectos usando este tutorial.

Pin It on Pinterest

Shares