Leer y escribir de puerto serie con frambuesa Pi

En este tutorial veremos cómo utilizar el puerto serie en Raspberry Pi. Utilizaremos el puerto serie disponible en frambuesa con un 3-5, 5V adaptador de RS232/TTL y un adaptador USB-serial. Por defecto puerto serial de la Raspberry Pi está configurado para ser usado en la consola de entrada/salida. Esto puede ayudar a solucionar problemas durante el arranque, o para iniciar sesión el Pi si no dispone de la red y video.

Para poder utilizar el puerto serie para conectar y hablar con otros dispositivos (por ejemplo, un módem de una impresora...), el inicio de sesión de consola de puerto serie debe deshabilitarse.

Aquí utilizamos frambuesa Pi 2 y conectamos un RS232/TTL 5V adaptador de corriente 3-5, a los pines 4 (5V), 6 (GND), 8 (TX), 10 (RX) de frambuesa, obviamente conectar tx rx y viceversa.

Para buscar los puertos serie disponibles utilizamos el comando

 dmesg | grep tty 

La salida es algo como esto

PI ~ $ pi ~ $ dmesg | grep tty [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2709.boardrev=0xa01041 bcm2709.serial=0x93f9c7f9 smsc95xx.macaddr=B8:27:EB:F9:C7:F9 bcm2708_fb.fbswap=1 bcm2709.disk_led_gpio=47 bcm2709.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait [ 0.001774] console [tty1] enabled [ 0.749509] dev:f1: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev3 [ 1.268971] console [ttyAMA0] enabled pi ~ $ 

Última línea indica que la consola está habilitada en el puerto serie ttyAMA0, así que lo deshabilitamos

Ejecute el comando de configuración y siga las instrucciones siguientes

 sudo raspi-config 

Reiniciar y probar con

 dmesg | grep tty 

salida ahora es

PI ~ $ pi ~ $ dmesg | grep tty [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2709.boardrev=0xa01041 bcm2709.serial=0x93f9c7f9 smsc95xx.macaddr=B8:27:EB:F9:C7:F9 bcm2708_fb.fbswap=1 bcm2709.disk_led_gpio=47 bcm2709.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait [ 0.001769] console [tty1] enabled [ 0.749438] dev:f1: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev3 pi ~ $ 

Ahora podemos usar el serial ttyAMA0. Conectar un adaptador usb / serial, entonces vamos a intentar establecer una comunicación entre los dos puertos serie; obviamente en una aplicación práctica a cada serie podríamos conectar un dispositivo, por ejemplo un módem, una impresora, un lector RFID etc..

Después de conectar el segundo puerto serial ejecutamos el comando para encontrar el nombre que le da la frambuesa

 dmesg | grep tty 

La salida es algo como esto

PI ~ $ pi ~ $ dmesg | grep tty [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2709.boardrev=0xa01041 bcm2709.serial=0x93f9c7f9 smsc95xx.macaddr=B8:27:EB:F9:C7:F9 bcm2708_fb.fbswap=1 bcm2709.disk_led_gpio=47 bcm2709.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait [ 0.001769] console [tty1] enabled [ 0.749438] dev:f1: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev3 [ 971.919417] usb 1-1.2: pl2303 converter now attached to ttyUSB0 pi ~ $ 

OK, ahora creamos dos archivos, uno que escribe algo en el puerto de ttyAMA0 y el otro que lee en el puerto ttyUSB0.

serial_write.py

 #!/usr/bin/env python import time import serial ser = serial.Serial( port='/dev/ttyAMA0', baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) counter=0 while 1: ser.write('Write counter: %d \n'%(counter)) time.sleep(1) counter += 1 

serial_read.py

 #!/usr/bin/env python import time import serial ser = serial.Serial( port='/dev/ttyUSB0', baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) counter=0 while 1: x=ser.readline() print x 

Si corremos ambos archivos, serial_read.py va a leer lo que serial_write.py escribe

Esto es sólo un pequeño ejemplo pero puede servir como punto de partida para enviar una impresión a una impresora vieja o leer datos de un router o un gps.

Síguenos en social para mantenerse informado.
http://www.emmeshop.eu

Artículos Relacionados

Programación del puerto serie con NET

Programación del puerto serie con NET

Serial puertos proporcionan una manera fácil de comunicarse entre muchos tipos de hardware y su ordenador. Son relativamente fáciles de usar y son muy comunes entre periféricos y sobre todo DIY proyectos. Muchas plataformas como Arduino han construid
Telegrama de solicitud de Control con frambuesa Pi

Telegrama de solicitud de Control con frambuesa Pi

¡Hola a todos!En este post voy a compartir mi nueva aplicación. Recientemente había publicado post que eran de aplicación de control sobre el telegrama. Debe estar aquí. En esa aplicación que también quería utilizar el puerto serie con nodejs debido
Controlador de PlayStation 2 con frambuesa Pi

Controlador de PlayStation 2 con frambuesa Pi

Este tutorial muestra cómo utilizar el controlador Playstation 2 (PS2) con el Raspberry Pi. Usamos el Arduberry para adaptar la protección a la Pi de frambuesa.Paso 1: Hardware necesarioFrambuesa PiArduberryIndustrias de Dexter controlador Playstatio
Haciendo que Arduino del puerto serial con visual basic

Haciendo que Arduino del puerto serial con visual basic

Vamos a hacer la interfaz del programa para conectar el puerto serie con Visual Studio.Echemos un vistazo a los detalles del programa.Herramientas que utilizamos en el formulario:botón de 3 piezas2 ComboBox número3 etiqueta de la piezapuerto seriePas
Frambuesa PI USB vs comunicaciones en serie con gsm shield (escudo de a-gsm itbrainpower.net)

Frambuesa PI USB vs comunicaciones en serie con gsm shield (escudo de a-gsm itbrainpower.net)

Sobre este cómoEste cómo se refiere a la itbrainpower.net del escudo de un gsm, teniendo características principales siguientes:Compatibilidad en todo el mundo - módulo de banda cuádrupleGSM / GPRS / SMS / DTMF compatibleDos zócalos SIM (sola SIM act
NFC con frambuesa Pi y Arduberry

NFC con frambuesa Pi y Arduberry

Arduberry es una manera simple y barata para hacer escudos Arduino de la Raspberry Pi. El dispositivo es un escudo que se desliza sobre la frambuesa Pi y permite apilar y usar escudos Arduino. Lo Arduberry no requiere ninguna configuración física par
Internet de las cosas con frambuesa Pi - 1

Internet de las cosas con frambuesa Pi - 1

Cuando yo era nuevo en IOT (Internet de las cosas), vi que había apenas cualquier tutoriales que fueron lo suficientemente simples como para un principiante comprender y probar. Había a mucha jerga técnica, o el hardware era demasiado complejo.Ahora
Vehículo RC con frambuesa Pi

Vehículo RC con frambuesa Pi

Este Instructable fue escrito para cualquier persona interesada en la fabricación de un coche RC de materails común. Muchos de estos materiales pueden reemplazarse con otros que sirve el mismo propósito.Experiencia requerida:Experiencia de soldaduraE
Internet de las cosas con frambuesa Pi-2

Internet de las cosas con frambuesa Pi-2

Se trata de un seguimiento a mi anterior instructivo Internet de las cosas con frambuesa Pi - 1.(Si no está familiarizado con los servidores web, PHP codificación y los conceptos básicos de Internet, se debe probablemente atraviesa parte 1 primera.)E
Bitcoin Mining con frambuesa Pi

Bitcoin Mining con frambuesa Pi

¿Quieres algunos bitcoins la mina? ¿Quieres ganar gratis? ¿Tiene un pi no se utiliza?Luego deja la mina algunos bitcoins!Paso 1: ¿Qué es BitCoin?Si no sabes ya, Bitcoin es una moneda virtual creada en 2009. Bitcoin ha crecido en reputación en los últ
XBMC Media Center con frambuesa Pi

XBMC Media Center con frambuesa Pi

centros de los medios de comunicación son herramientas útiles que permiten a los usuarios organizar y reproducir sus medios de comunicación, incluyendo vídeos, música e imágenes. Centros de medios permiten transmitir contenido desde varios ordenadore
Puerto serie remoto Spark.IO

Puerto serie remoto Spark.IO

Puerto serie remoto Spark.io (repuestos) puede utilizarse para una variedad de tareas en un laboratorio, oficina o casa. Conecta un dispositivo con un puerto serial a la red local o internet mediante TCP/IP. Puertos serie están presentes en muchos di
Sistema de tiempo y asistencia con frambuesa y Phidgets

Sistema de tiempo y asistencia con frambuesa y Phidgets

En este tutorial vamos a crear un tiempo fácil y sistema de asistencia con un Raspberry Pi y Phidgets RFID de lectura y escritura.Vamos a utilizar una página web para mostrar la hora actual, y un mensaje de confirmación para los empleados y todos los
Escudo de puerto serie de Arduino para Linkit uno

Escudo de puerto serie de Arduino para Linkit uno

Utilizo un montón de Lantronix WiBoxes. Te permiten conectar dispositivos heredados seriales a una red Wifi. Utilizarlos para la señalización Digital y aplicaciones de supervisión de seguridad. Generalmente use solamente un puerto en ellos.Hice un ad