Consola Serial Avanzada en Mac y Linux

Conectándose a la consola serial de Mac y Linux es esencialmente el mismo proceso. Ninguno de los dos sistemas operativos necesita que se instalen controladores. En MacOSX, la aplicación Terminal viene instalada. En Linux hay una variedad como gnome-terminal (llamada Terminal) o Konsole bajo KDE.

¿Cual es el puerto?

Primero vas a querer averiguar cual es el puerto serial que utiliza tu tarjeta. Cuando conectas tu tarjeta por USB a tu computadora, se conecta a un puerto serial. El puerto es un acceso por el cual tu tarjeta se comunica con tu computadora utilizando USB.

Vamos a utilizar Terminal para determinar cual puerto está usando la tarjeta. La forma más sencilla para determinar cual puerto está utilizando la tarjeta es primero revisar sin haber conectado la tarjeta. En Mac, abre Terminal, y escribe lo siguiente:

ls /dev/tty.*

Cada conexión serial aparece en la carpeta /dev/ . Tiene un nombre que comienza con tty. . El comando ls muestra una lista del contenido de la carpeta. Puede utilizar * como un metacaracter, para buscar archivos que comienzan su nombre con las mismas letras, pero terminan en algo diferente. En este caso, te pedimos que veas todo lo listado en /dev/ que comience con tty. y termine en cualquier cosa. Esto nos va a mostrar las conexiones seriales presentes.

Para Linux, el procedimiento es el mismo, sin embargo, el nombre es ligeramente diferente. Si está utilizando Linux, vas a escribir:

ls /dev/ttyACM*

El concepto es el mismo con Linux. Te pedimos que veas lo listado de la carpeta /dev/, comenzando con ttyACM y terminando en cualquier cosa. Esto va a mostrar las conexiones seriales presentes. En el ejemplo anterior el error es indicando que no hay conexiones seriales presentes que comiencen con ttyACM.

Ahora conecta tu tarjeta. Utilizando Mac, escribe:

ls /dev/tty.*

Esto va a mostrar las conexiones seriales presentes, en las cuales se incluye la de tu tarjeta.

Utilizando Mac, un nuevo puerto aparece con el nombre /dev/tty.usbmodem141441. La parte tty.usbmodem141441 es en este ejemplo el nombre de la tarjeta que estás usando. La tuya va a tener un nombre similar.

Utilizando Linux, escribe:

ls /dev/ttyACM*

Esto va a mostrar las conexiones seriales presentes, en las cuales se incluye la de tu tarjeta.

Utilizando Linux, un nuevo puerto aparece con el nombre /dev/ttyACM0 . La parte ttyACM0 en este ejemplo es el nombre de la tarjeta que estás utilizando. La tuya va a tener un nombre similar.

Conectándose con screen

Ahora que conoces el nombre de la tarjeta que estás utilizando, estás listo para conectarte a la consola serial. Vamos a utilizar un comando llamado screen. El comando screen se incluye con MacOS. Los usuarios de Linux es posible que lo vayan a tener que instalar utilizando su administrador de paquetes. Para conectarse a la consola serial, utilice Terminal. Escriba el siguiente comando, reemplazando nombre_tarjeta por el nombre que encontraste que usa tu tarjeta:

screen /dev/tty.board_name 115200

La primera porción de este comando establece que vas a utilizar el comando screen. La segunda parte le dice a screen el nombre de la tarjeta que estás tratando de usar. La tercera parte le indica a screen la taza de baudios a utilizar para la conexión serial. La taza de baudios es la velocidad en bits por segundo en que se transfieren datos por la conexión serial. En este caso la velocidad requerida por la tarjeta es 115200 bits por segundo.

circuitpython_ScreenCommandMac.png
Comando screen en MacOS usando ruta de tarjeta de ejemplo

Digita enter para ejecutar el comando. Se abre en la misma ventana. Si ningún código está corriendo, la ventana se va a ver en blanco. De otra forma, vas a ver la salida de tu código.

¡Buen trabajo! ¡Te has conectado a la consola serial!

Permisos en Linux

Si tratas de conectarte con screen y no funciona, es posible que tengas un problema con los permisos. Linux le da seguimiento a los usuarios y grupos y lo que pueden hacer y no hacer, como acceso al hardware asociado con la consola serial para correr screen . Así que si ves algo como esto:

es posible que necesites darte acceso. Existen básicamente dos formas para lograrlo. La primera es ejecutar screen con el comando de sudo, el cual temporalmente entrega privilegios elevados.

Una vez que escribas tu contraseña, ya debería funcionar:

La segunda forma es agregándote al grupo asociado con el hardware. Para averiguar cual grupo es el correcto, utiliza el comando ls -l como se muestra abajo. El nombre del grupo está marcado en un círculo rojo.

Ahora utiliza el comando adduser para agregar a tu usuario al grupo. Necesitas permisos elevados para realizar esto, por lo cual necesitas utilizar sudo. En el ejemplo abajo, el grupo es adm y el usuario ackbar.

Luego de que te agregues al grupo, necesitas deslogearte y logearte de nuevo, o en algunos casos, reiniciar tu computadora. Luego de que te logees de nuevo, verifica que te has agregado utilizando el comando groups. Si no estás en el grupo, reinicia y revisa de nuevo.

Ahora debes poderte conectar con screen sin necesidad de sudo.

Y ya estás adentro:

Los ejemplos de arriba utilizan screen , pero si lo prefieres puede utilizar otros programas como putty o picocom.

This guide was first published on Mar 11, 2020. It was last updated on Mar 11, 2020. This page (Consola Serial Avanzada en Mac y Linux) was last updated on May 31, 2020.