Tutorial de serie Raspberry Pi (UART)

¿Estás interesado en aprender más sobre la serie Raspberry Pi y cómo se usa el UART? ¡Estás en el lugar correcto! En este tutorial, te guiaré a través de los pasos necesarios para configurar y utilizar el UART en Raspberry Pi. Con esta herramienta, podrás comunicar y transferir datos entre diferentes dispositivos. ¡Así que sigue leyendo y descubre todo lo que necesitas saber sobre el UART en Raspberry Pi!

En nuestro tutorial de conexión en serie de Raspberry Pi, cubriremos todo lo que necesita saber sobre UART en Raspberry Pi. Esto incluye todo, desde el cableado y la configuración hasta la programación y el uso. También proporcionaremos algunos consejos útiles para ayudarlo a comenzar con la comunicación en serie en su Raspberry Pi. Entonces, ya sea que sea un principiante o un usuario experimentado, ¡hay algo para todos en este tutorial!

¿Qué son los pines serie de Raspberry Pi?

El Raspberry Pi tiene dos pines que se pueden usar para la comunicación en serie. Estos se conocen como pines Tx (transmisión) y Rx (recepción), y están ubicados en el GPIO encabezamiento. Cuando está conectado, la función del pin TX es enviar datos desde Raspberry Pi a un dispositivo diferente, mientras que el pin RX se usa para recibir datos.

Los UART se utilizan con frecuencia para vincular PC y microcontroladores. También son lo que usa Raspberry Pi Serial para la comunicación, por lo que es vital que comprenda cómo funcionan. [1], [2]

¿Cómo funciona la comunicación UART?

UART utiliza comunicación serial asíncrona. Esto significa que los datos no se envían en un flujo continuo. En cambio, se envía en paquetes. Esto tiene la ventaja de que UART se puede usar con dispositivos que tienen diferentes velocidades de reloj.

Tutorial de serie Raspberry Pi (UART)

Un>

UART se usa comúnmente para conectar dispositivos como módems, módulos GPS y sensores. También se usa para conectar la Raspberry Pi a otros dispositivos como computadoras y microcontroladores.

Su otro uso es la depuración. Por ejemplo, puede usar UART para ver los datos que se envían desde Raspberry Pi a un dispositivo vinculado diferente. Esto puede ser útil para solucionar problemas con su código o hardware.

Después del encabezado vienen los datos en sí. Puede ser cualquier número de bytes, incluidos cero bytes. El último byte de un paquete se denomina tráiler. Contiene información sobre el resto del paquete, como cuántos bytes de datos hay.

Cuando utilice UART, asegúrese de que las velocidades en baudios de ambos dispositivos coincidan. La tasa de baudios es una medida de cuántos bits de datos se pueden enviar por segundo. Si las velocidades de transmisión son diferentes, los dispositivos no podrán transferir datos entre sí. [1], [2], [3], [4]

Comunicación serial entre Raspberry Pi y PC

Las posibilidades que puede lograr usando Raspberry Pi son tan infinitas y variadas como su imaginación. Puede usarlo para comunicarse con otra computadora, microcontrolador o incluso otra Raspberry Pi. En este tutorial, lo usaremos para comunicarnos con una computadora.

Tutorial de serie Raspberry Pi (UART)

Para>

  • frambuesa pi 3
  • Una computadora con un puerto serial
  • Arduino UNO R3
  • Un convertidor TTL a USB
  • Un cable USB macho a macho

Use un convertidor USB para conectar la serie a la Raspberry Pi

Empezar, conecte el convertidor TTL a USB a su placa Raspberry Pi. El cable negro debe ir a GND, el cable rojo debe ir a TXD (pin número 14), y el cable amarillo debe ir a RXD (pin número 15).

A continuación, conecte el convertidor a su PC y abra el Administrador de dispositivos. En Puertos (COM y LPT), debería ver un nuevo puerto llamado USB Serial Converter. Si no lo ve, intente reiniciar su computadora. [1], [2], [5]

Configure la Raspberry Pi en el Administrador de dispositivos

Luego, haga clic derecho sobre él y establezca la configuración. Vuelva a verificar que la tasa de baudios establecida esté establecida en 115200y que el control de flujo está establecido en Ninguno. Haga clic en Aceptar y debería poder comunicarse con su Raspberry Pi. [1], [2], [5]

Habilitar UART en la Raspberry Pi

Para habilitar UART en Raspberry Pi, necesitamos editar el archivo config.txt. Esto se puede hacer con un editor de texto como nano o Empuje ingresando el siguiente comando:

sudo nano /boot/config.txt

Una vez que haya abierto el archivo de configuración, agregue estas líneas al final del archivo:

Habilitar UART

habilitar_uart=1

Guarde y cierre el archivo. Luego, reinicie la Raspberry Pi.

Después de eso ingrese el código:

sudo systemctl deshabilita [email protected]

Abierto cmdline.txt y agrega este texto:

consola=serie0,115200

Guarde y cierre el archivo.

Ahora, puede apagar y reiniciar la Raspberry e instalar el terminal minicom para comunicarse con la placa.

sudo apt-get install minicom

Una vez que se complete la instalación, abra la terminal e ingrese el siguiente comando como está escrito:

minicom -b 115200 -o -D /dev/ttyUSB0

Esto abrirá el terminal Minicom a una velocidad de transmisión de 115200 y debería poder comunicarse con su Raspberry Pi. Si todo funciona correctamente, debería ver un mensaje que dice “frambuesa pi” y podrá escribir comandos en el terminal y ver el resultado en su computadora. [1], [2], [5]

Cómo conectar Raspberry Pi a Arduino

Hay muchas formas de conectar ambas placas, y la más sencilla y rápida es hacerse con un cable USB para enlazar ambos dispositivos.

Pero antes de eso, deberá conectar Arduino a su PC, afortunadamente no necesitará configurar nada, solo conéctelo y estará listo para comenzar. Sin embargo, para Raspberry Pi, se requerirá alguna configuración.

Tutorial de serie Raspberry Pi (UART)

Conéctelo>

Para hacer esto, escriba este comando:

ls /dev/ttyACM*

Si ve un dispositivo que comienza con “/dev/ttyACM“, ese es tu Arduino.

Ahora habilitaremos la comunicación UART en la placa Raspberry Pi actualizando su archivo de configuración. Ya hemos repasado cómo hacer esto, así que comencemos. [1], [2]

Adición de permisos de hardware

Debemos dar permiso a ambas placas para que se comuniquen a través de la UART para que puedan colaborar. Esto se puede lograr usando el comando chmod.

sudo adduser username dialout

Permitirá que cualquier dispositivo se conecte a su placa Raspberry Pi.

¡Ahora debería ser posible vincular tu Arduino y Raspberry Pi y enviar datos de un lado a otro! Sin embargo, otra cosa importante que debe saber es cómo usar las capacidades del lenguaje Python para controlar una placa Arduino. Te lo explicamos ahora mismo.

Instalación de la biblioteca de Python

Python es posiblemente uno de los lenguajes de programación más flexibles que existen. Con él, puede crear una variedad infinita de aplicaciones para satisfacer sus necesidades y deseos. En este caso, lo estamos usando para comunicarnos con una placa Arduino. Python tiene varias bibliotecas que nos permiten interactuar fácilmente con las placas Arduino, lo que lo convierte en la elección perfecta para este proyecto.

Necesitaremos instalar una biblioteca de Python para poder leer los datos del puerto serie. Sin embargo, es posible que primero desee configurar un pip en su Raspberry Pi.

sudo apt-get install python-3.pip

Una vez instalado pip, podemos instalar la biblioteca serial ingresando el siguiente comando:

python3 -m pip instalar pyserial

Una vez finalizada la instalación, podemos comenzar a escribir nuestros propios programas de Python para leer los datos del puerto serie. [1], [2]

Ejemplo de comunicación simple

En este ejemplo, enviaremos los datos que recibió la placa Arduino a la consola. También enviaremos un mensaje simple al Arduino.

Primero, conecte Ardunino a su PC, abra Arduino IDE en su PC y escriba el siguiente código:

configuración vacía () {

Serial.begin(9600);

}

bucle vacío () {

Serial.println(“¡Arduino dice hola!”);

retraso (1000);

}

Explicación del código

El código es bastante simple. Simplemente empleamos el procedimiento Serial.print para iniciar la comunicación en serie y enviar un mensaje de información a la placa Arduino. Usamos 9600 como la tasa de baudios porque esta es la opción más popular. Sin embargo, puedes cambiarlo a lo que quieras. también estamos usando un retraso de 1000 milisegundos para ver el mensaje en la consola.

Tutorial de serie Raspberry Pi (UART)

El>

tiempo de importación

importar serie

si __nombre__ == ‘__principal__’:

ser = serial.Serial(‘/dev/ttyACM0’, 9600, tiempo de espera=1)

ser.reset_input_buffer()

mientras que es cierto:

si ser.en_espera > 0:

línea = ser.readline().decode(‘utf-8’).rstrip()

imprimir (línea)

¿Cómo funciona este código?

Las dos primeras líneas son importaciones. La importación de tiempo es para que podamos usar la función de suspensión para controlar la frecuencia con la que se ejecuta nuestro ciclo. La importación en serie nos da acceso a todas las funciones de la biblioteca pySerial que descargamos anteriormente.

A continuación, tenemos una instrucción if que verifica si este archivo se ejecuta como un script o se importa como un módulo. Esta es una buena práctica y ayuda a evitar que su código haga cosas que no debería hacer cuando alguien intenta importarlo.

Después de eso, instanciamos la clase Serial con el nombre ser. Esto establece una conexión a través de USB a una velocidad de transmisión de 9600 bps. Tenga en cuenta que debe usar la misma velocidad en baudios que la que configuró en el código Arduino. También establecemos un tiempo de espera de un segundo. De esta manera, si no se envía nada desde Arduino, nuestro programa no se quedará atascado esperando para siempre.

Primero verificamos si hay algo en el búfer serial con ser.in_waiting en el alcance interno de nuestro ciclo while. Lo leemos línea por línea y lo decodificamos de bytes a una cadena si hay algo en el búfer serial. También eliminamos cualquier carácter de espacio en blanco como espacios o saltos de línea. Finalmente, imprimimos la cadena resultante.

La función principal de este código es leer los datos entrantes de la placa Arduino e imprimirlos en la consola. Estamos utilizando la tasa de baudios exacta como en nuestro código Arduino para que puedan comunicarse correctamente.

Para probar si funciona, debe desconectar Arduino de la PC, luego conectarlo a la Raspberry Pi y ejecutar el script de Python. Los datos deberían comenzar a imprimirse en la consola si esto sucede. Si no funciona, verifique que haya configurado el nombre de puerto y la velocidad en baudios correctos.

Este código imprimirá los datos que se reciben de la placa Arduino a la consola. Debería ver el mensaje de saludo que escribió impreso en la pantalla con intervalos de un segundo. ¡Felicitaciones, acaba de comunicarse con éxito con ambos foros!

Ahora que puede leer datos de Arduino, puede hacer todo tipo de cosas creativas con él, como encender un LED conectado a una Raspberry Pi. ¡Deja volar tu imaginación! [1], [2]

Los errores comunes que debe tener en cuenta

Al usar la interfaz serial, hay algunos errores comunes a tener en cuenta.

Si obtiene un error al comenzar con serial.serialutil.SerialException: [Errno 13], esto significa que no tiene permiso para acceder al puerto serie.

Puede solucionar esto abriendo la terminal y escribiendo “sudo adduser your_username dialout”.

Si obtiene un error como AttributeError: el objeto ‘módulo’ no tiene atributo ‘Serial’, asegúrese de estar ejecutando Python versión 3 o superior. El módulo serie no está disponible en versiones inferiores de Python.

Otro error que puede encontrar es /usr/bin/python3: No module named pip. Esto significa que no tienes pip instalado. [1], [2]

Consulta más publicaciones para mejorar tus conocimientos en electrónica:

  • ¿Cómo hacer un medidor de ohmios Arduino?
  • ¿Qué es un reóstato?
  • ¿Cómo detener un programa Arduino?

Preguntas más frecuentes

¿Cómo uso UART en mi Raspberry Pi?

Para usar la conexión serie Raspberry Pi con su computadora, necesita un convertidor de cable serie USB a TTL. Este cable convertirá las señales USB a los niveles RS-232 que espera su computadora.

Una vez que haya conectado su computadora y Raspberry Pi, deberá abrir una ventana de terminal en su computadora y escribir el siguiente comando:

sudo screen /dev/ttyAMA0 115200

Esto iniciará una sesión con UART a una velocidad de 115200 baudios. Ahora puede escribir comandos en la ventana de la terminal de su computadora y ver los resultados en la Raspberry Pi. Para guardar el archivo, presione CTRL + X, Y y Enter.

¿Cómo leo datos seriales en Raspberry Pi?

Para leer datos en serie en Raspberry Pi, deberá instalar un programa de terminal. Una opción popular se llama Minicom. Después de instalar Minicom, puede ejecutarlo escribiendo minicom en una ventana de terminal. Una vez que Minicom se está ejecutando, puede acceder al puerto serie seleccionando Dispositivo > Puerto serie y eligiendo el dispositivo correcto de la lista.

Si no está seguro de qué dispositivo es su puerto serie, puede abrir una ventana de terminal y escribir dmesg | grep tty para imprimir una lista de todos los dispositivos detectados por el kernel. El puerto serie será uno de esos dispositivos.

¿La placa Raspberry Pi 3 modelo B tiene un pin UART?

Sí, Raspberry Pi tiene pines UART. Los pines del encabezado están ubicados en la placa cerca del puerto micro USB. Están marcados como TXD y RXD.

Vídeo útil: [ENG] Frambuesa Pi! Ep:5 – Uso de UART – C (termios)

Conclusión

¿Así que, qué hemos aprendido? La comunicación serial es una forma de transferir datos entre dispositivos. UART es uno de los protocolos seriales más populares para ese trabajo. En este artículo, le mostramos cómo conectar una Raspberry Pi a una PC y Arduino usando la comunicación serial UART. ¡Ahora es tu turno de probarlo! Una vez que haya configurado todo, envíe algunos datos entre los dispositivos para ver cómo funcionan juntos. Si tiene algún problema, asegúrese de consultar nuestra guía de solución de problemas para obtener ayuda. ¡Esperamos que cree algo realmente genial con su Raspberry Pi!

Referencias:

  1. https://pimylifeup.com/raspberry-pi-serial/
  2. https://roboticsbackend.com/raspberry-pi-arduino-serial-communication/#What_is_Serial_communication_with_UART
  3. https://www.analog.com/en/analog-dialogue/articles/uart-a-hardware-communication-protocol.html
  4. https://pinout.xyz/pinout/uart#
  5. https://electropeak.com/learn/raspberry-pi-serial-communication-uart-w-arduino-pc/
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Deja un comentario

¡Contenido premium bloqueado!

Desbloquear Contenido
close-link