Jump to content

Arduino (Español)

From ArchWiki


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

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.

Nota Algunas placas, notablemente las Pro Mini, no presentan USB como todas y deben ser programadas con hardware adicional.
Tip Puede ser útil monitorear los mensajes del kernel con 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.

Nota Recuerda mantener cualquier programa de monitoreo serial cerrado durante la carga de código en orden para liberar el puerto serial para el programador.

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
Nota Como autoreset en conexión serial está activado por defecto en muchas placas, necesitas desactivar está función si quieres comunicarte directamente con tu placa con el último comando en vez de un emulador de terminal (arduino IDE, screen, picocom...). Si tienes una placa Leonardo, no te preocupes por esto, ya que it no se autoresetea. Si tienes una placa Uno, conecta un capacitor de 10 µF entre los pines RESET y GND. Si tiene otra placa, conecta un resistor de 120 ohms entre los pines RESET y 5V. Vea https://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection para más detalles.

Leyendo lo que tu Arduino tiene para decirte:

$ cat /dev/ttyACM0


Vea también