Arduino (Español)
Arduino es una plataforma de prototipos electrónicos de código abierto basada en la flexibilidad, hardware fácil de usar y software. Está destinado a artistas, diseñadores, entusiastas y cualquiera interesado en la creación de objetos o entorno interactivos.
Una vez conectado y configurado el usuario puede realizar tareas de leer/escribir sobre la conexión serial establecida. Algunos ejemplos son la interfaz a través de UART utilizando un programa de monitoreo serial, o programando el microcontrolador. Escribir, compilar y cargar tu código es facilitado usando el oficial Arduino IDE, el cual está disponible en los repositorios oficiales. Igualmente el usuario puede usar un compilador y programa preferido para programar el microcontrolador.
Instalación
- Instale arduino-cli para la CLI oficial.
- Instale arduino-ide-binAUR para la GUI oficial.
- Podrías necesitar cargar el módulo
cdc-acm.
Arduino IDE 1.x
La siguiente sección solo aplica a la versión 1.x del IDE. Sin embargo, puede ser posible adaptar algo de esto para el nuevo IDE.
Placas AVR
Para usar placas AVR como la Arduino Uno puedes instalar arduino-avr-coreAUR opcionalmente para usar avr-gcc upstream de Arch Linux en vez del viejo avr-core incluido. Si continúas queriendo usar el antiguo arduino-core necesitas instalar esto en el administrador de placas. Siempre puedes cambiar entre los diferentes cores en el menú Tools > Board.
Pinoccio Scout
Pinoccio Scouts también puede ser programado usando el Arduino IDE. Las instrucciones pueden ser encontradas aquí. Alternativamente puedes instalar arduino-pinoccioAUR.
Intel Galileo
Para usar las placas Intel Galileo con Arch Linux instale el Arduino IDE y descarga el paquete de las herramientas de Galileo vía Tools > Board > Board Manager. Para arreglar la instalación puedes seguir este post en GitHub.
Arduino IDE 1.x o 2.x
Estos pasos deberían ser válidos para ambas versiones del IDE.
Placas AVR
Las placas AVR son instaladas automáticamente por la versión 2.x del IDE sin embargo en las ambas versiones 1.x y 2.x las placas AVR pueden ser manejadas desde el manejador de placas.
SparkFun
Para usar placas SparkFun como la Pro Micro necesitas descargar sus definiciones de placa. Más información aquí y aquí.
RedBear Duo
Podrías necesitar instalar perl-archive-zip u obtendrá un error sobre crc32 desaparecido.
Configuración
La mayoría de placas Arduino tiene un puerto USB el cual puede ser usado para establecer una conexión serial. Esta conexión serial habilita al usuario para programar la placa. El microcontrolador principal de las mayoría de Arduinos, sin embargo, no tienen una interfaz USB integrada. Por lo tanto, la placa es usualmente equipada con un chip USB a serial entre el microcontrolador principal y el puerto USB.
Para alcanzar la conexión serial como USB, la mayoría de Arduinos genuinos están equipados con otro microcontrolador ATmega (ej: ATmega16U2). Ambos chips registran ellos mismos a través de USB como un dispositivo ACM, y como talm Linux usará el módulo cdc_acm. El Arduino se mostrará entonces como /dev/ttyACMx.
Las placas Arduino no genuinas ahorran en la interfaz del chip. Ellas usualmente son equipadas con un WCH CH340x chino o una falsificación de los modelos anteriormente mencionados. El CH340x se presenta como un dispositivo UART propietario a través de USB. Aquí el módulo ch341 es usado, haciendo que el Arduino se muestre como /dev/ttyUSBx. Este patrón de nombramiento puede ser personalizado por la modificación de las reglas udev.
Algunas placas pueden ser equipadas con un microcontrolador principal el cual se presenta como una interfaz USB nativa. Independientemente de si la placa tiene una interfaz de chip dedicado o no, las placas genuinas vendrán de fábrica con un cargador de arranque adecuado preinstalado. Tal que los cargadores de arranque automáticamente establezcan una conexión serian USB una vez son conectadas.
dmesg como la placa está siendo enchufada. Si una conexión correcta ha sido establecida, el puerto asignado puede ser leído en el mismo.Acceso serial
Para las placas que presentan un UART a través de USB, esto es necesario para habilitar acceso de lectura/escritura a el puerto serial a los usuarios[1]. Como es explicado en Udev#Allowing regular users to use devices, cree un archivo que contenga:
/etc/udev/rules.d/01-ttyusb.rules
ACTION!="remove", SUBSYSTEMS=="usb-serial", TAG+="uaccess"
Recargue las reglas de udev y reconecte el dispositivo Arduino. Antes de cargar al Arduino, esté seguro de seleccionar el puerto serial correcto, placa y procesador desde el menú Herramientas en 1.x y la opción Seleccionar placa (localizada en la parte superior del IDE) en 2.x.
stty
Preparar:
# stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Envío de comandos a través de Terminal sin nueva línea después del comando:
# echo -n "Hello World" > /dev/ttyACM0
Leyendo lo que tu Arduino tiene para decirte:
$ cat /dev/ttyACM0