Skip to main content

Primeros pasos con ArduPy

Para comenzar con ArduPy, primero necesitas instalar aip - ArduPy Integrated Platform que es una utilidad para desarrollar ArduPy e interactuar con la placa ArduPy. Permite a los usuarios comenzar rápidamente con ardupy. aip está diseñado para ser una herramienta simple de línea de comandos. Puedes personalizar tu propio firmware de ardupy a través de ella, sin necesidad de conocer más detalles sobre ArduPy.

Placas Compatibles

Inicio Rápido con ArduPy

El siguiente método se utiliza para experimentar el software ArduPy de la manera más simple. ¡Sigue los procedimientos para comenzar ahora!

  • PASO.1 Entrar en modo bootloader

Conecta tu dispositivo a tu PC mediante conexión USB. Entra en el modo bootloader reiniciando el dispositivo rápidamente.

  1. Para Wio Terminal, consulta aquí.
  2. Para Seeeduino XIAO, consulta aquí.

Debería aparecer una unidad USB llamada Arduino en tu PC. Ve a la ubicación de la unidad USB Arduino.

  • PASO.2 Descargar el Firmware UF2 de ArduPy

Descarga el firmware de ArduPy en forma de archivos UF2.

  1. Para Wio Terminal
  2. Para Seeeduino XIAO

y guárdalo en tu unidad.

  • PASO.3 Flashear el Firmware de ArduPy al Dispositivo

Una vez descargado el firmware para tu dispositivo. Arrastra los archivos .UF2 a la unidad USB ARDUINO. Ahora, tu placa desaparecerá de la PC. ¡Reinicia la placa y habrá cargado el firmware de ArduPy en ella!

  • PASO.4 Hacer parpadear el dispositivo

Ahora, aparecerá una unidad USB llamada ARDUPY en tu PC. Abre ARDUPY y verás un archivo python main.py. Abre el main.py con tu editor favorito como Microsoft Visual Studio Code, Atom, Sublime Text y etc. Copia el siguiente código y guarda el main.py.

from machine import Pin, Map
import time

LED = Pin(Map.LED_BUILTIN, Pin.OUT)

while True:
LED.on()
time.sleep(1)
LED.off()
time.sleep(1)

¡Ahora deberías ver que el LED integrado de tu dispositivo comienza a parpadear! ¡Consulta las secciones siguientes para descubrir más sobre ArduPy! ¡Aprenderás sobre la herramienta ArduPy-aip y cómo usar aip para compilar y flashear tu propio firmware a los dispositivos!

Instalar aip con macOS

Para usuarios de macOS, puedes simplemente ejecutar lo siguiente en Terminal para instalar ArduPy-aip:

pip3 install ardupy-aip

Nota: asegúrate de tener Python 3 instalado en macOS. Para instalar Python 3, puedes usar Homebrew que es un gestor de paquetes de software para macOS. Una vez instalado Homebrew, ejecuta lo siguiente para instalar python 3: brew install python3. También puedes descargar e instalar Python 3 desde el sitio web oficial de Python.

Instalar aip con Windows

Puedes descargar las últimas versiones de ArduPy para windows en la sección de abajo. Una vez descargado, extrae el binario aip en un directorio que esté en tu PATH.

O si tienes un entorno de Python 3, también puedes instalar usando pip3:

pip3 install ardupy-aip

Instalar aip con Linux

Para usuarios de Linux, puedes simplemente ejecutar lo siguiente en Terminal para instalar ArduPy-aip:

pip3 install ardupy-aip

Nota: asegúrate de tener Python 3 instalado y que pip3 esté actualizado.

ArduPy-aip CLI

aip es una interfaz de línea de comandos para ArduPy, puedes usar aip para instalar bibliotecas de ArduPy, compilar y flashear firmware de ArduPy al hardware con facilidad. Simplemente usa help para obtener más información:

aip help
  • Para obtener información de la placa (información del firmware):
aip board
  • Para instalar bibliotecas de Arduino vinculadas con ArduPy:

Por favor, consulta aquí las bibliotecas ArduPy disponibles.

aip install <ArduPy Library Path> 
# Example Usage:
# aip install Seeed-Studio/seeed-ardupy-ultrasonic-sensor
  • Para desinstalar librerías de ArduPy:
aip uninstall <ArduPy Library Path> 
# Example Usage:
# aip uninstall Seeed-Studio/seeed-ardupy-ultrasonic-sensor
  • Para listar las librerías ArduPy instaladas
aip list
  • Para construir el Firmware de ArduPy que contiene las librerías que instalaste y las características básicas de ArduPy. Ten en cuenta que ahora puedes elegir construir para Seeeduino XIAO o Wio Terminal ahora!
aip build --board=<board>
# For Seeeduino XIAO:
# aip build --board=xiao
# For Wio Terminal:
# aip build --board=wio_terminal
  • Para flashear el Firmware ArduPy en el hardware:
aip flash

!!!Nota Después de los comandos, usa las banderas -h para ver más uso de ese comando. Por ejemplo, aip flash -h.

  • Para interactuar con la placa (explorador de archivos basado en shell):
aip shell

Nota: Una vez que ingreses al ardupy-mpfshell, puedes usar help para obtener más información y comandos.

  • Ingresando al modo REPL:
aip shell -c "repl"
  • Para ejecutar archivo Python:
aip shell -n -c "runfile <YourPythonFilePath> [Path]"
# Example Usage:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ur.py"
  • Para cargar archivos en la placa usando shell:
aip shell -n -c "put <YourPythonFilePath> [Path]"
# Example Usage:
# aip shell -n -c "put /Users/ansonhe/Desktop/ur.py"

Ejecutando tu Primer Script

Una vez flasheado el firmware ArduPy, debería aparecer una unidad USB llamada ARDUPY en tu PC. Puedes crear los siguientes archivos Python para comenzar.

  • boot.py

Para ejecutar un script de MicroPython desde el arranque, simplemente nombra tu proyecto boot.py en la ubicación raíz de la placa. Este script se ejecuta cuando el dispositivo arranca.

  • main.py

Este es el script python por defecto, pero no se ejecuta en el arranque. El main.py se ejecuta cuando se guardan cambios en main.py. Es decir, puede recargarse automáticamente.

Uso bajo ardupy-mpfshell

Una vez dentro de ardupy-mpfshell, usa help para verificar el uso de comandos. Aquí se listan algunos comandos útiles:

  • Para listar archivos en los dispositivos:
ls
  • Para eliminar un archivo (o un directorio) en el dispositivo:
rm <File/Directory>
  • Para subir por ejemplo el archivo local boot.py al dispositivo:
put <YourPythonFilePath> [Path]
  • Para ejecutar los archivos, es decir, test.py en el dispositivo:
execfile test.py

Ejemplo de Uso de aip para Incluir Otras Librerías de ArduPy

aip es una de las características clave de ArduPy, que puede ser utilizada para convertir Librerías de Arduino a Interfaz de Python para ser usada con ArduPy. Aquí proporcionamos un ejemplo de cómo incluir la librería ArduPy en el Firmware de ArduPy usando Wio Terminal:

1.Abre Terminal/Powershell, ejecuta lo siguiente para instalar las librerías de ardupy.

aip install Seeed-Studio/seeed-ardupy-ultrasonic-sensor

2.Construye el firmware:

aip build --board=wio_terminal

Nota: El uso del firmware de flasheo aparecerá en la parte inferior de la compilación.

3.Flashea el firmware "NUEVO" en la placa copiando el uso del final de la compilación. Aquí aip buscará automáticamente la placa conectada a la PC y subirá el firmware. Si la placa no está conectada, aparecerá un error.

aip flash

Uso de Ejemplo de la Biblioteca

Una vez que la biblioteca esté incluida dentro del firmware de ArduPy y cargada en el dispositivo, puedes importar y usar el módulo de la siguiente manera:

aip shell -n -c "put /Users/ansonhe/Desktop/ur.py"

Reemplaza /Users/ansonhe/Desktop con tu ruta.

donde el ur.py es:

from arduino import grove_ultra_ranger
import time

ur = grove_ultra_ranger(0)

while True:
print ("The distance to obstacles in front is:", ur.cm, 'centimeter')
time.sleep(1)

Para más referencia, consulte el seeed-ardupy-ultrasonic-sensor.

FAQ

Para más referencia de aip, visite ardupy-aip para obtener más información.


Tiempo y Retardo

  • Importando el módulo time y retardando:
import time

time.sleep(1) # Delay for 1 second
time.sleep_ms(500) # Delay for 500 milliseconds
time.sleep_us(500) # Delay for 500 microseconds
  • Usando contador de tiempo:
import time

time.ticks_ms() # milliseconds counter
start = time.ticks_us() # microseconds counter
time.ticks_diff(time.tick_us(), start) # Measure the difference between counters

Nota: Puedes usar la tecla TAB para auto-sugerir y ver todas las funciones disponibles. Por ejemplo, después de escribir time., presiona TAB para ver todas las funciones en time.

Para más referencia, por favor visita MicroPython funciones relacionadas con time.

Pin y GPIO

Diagrama de Pines para Seeeduino XIAO

Diagrama de Pines para Wio Terminal

Para referenciar GPIO en ArduPy, simplemente usa el mapa de pines físicos del dispositivo que estés usando. Por ejemplo, para Wio Terminal, el Pin 1 es 3.3V y el Pin 2 es 5V.

  • Importando Pin y configurando GPIO:
from machine import Pin
p3 = Pin(3, Pin.OUT) # Setting Pin 3 as a output pin
p3.on() # Setting Pin 3 to HIGH
p3.off() # Setting Pin 3 to LOW

p3.value(1) # Setting Pin 3 to HIGH using value method


p5 = Pin(5, Pin.IN) # Setting Pin 5 as input pin
p5.value() # Prints the value of the input pin

p3 = Pin(3, Pin.OUT, value=1) # Setting Pin 3 as output pin and HIGH in one line
p5 = Pin(5, Pin.IN, Pin.PULL_UP) # Setting Pin 5 as input with pull-up resistors

Mapa

Para facilitar el acceso a los periféricos de las placas, ArduPy ha mapeado los mismos métodos de llamada de Arduino:

from machine import Pin, Map
import time

LED = Pin(Map.LED_BUILTIN, Pin.OUT) # Setting builtin LED as output

while True:
LED.on()
time.sleep(1)
LED.on()
time.sleep(1)

PWM (Modulación por Ancho de Pulso)

Para usar PWM, debes utilizar los canales PWM en el dispositivo. Por favor, consulta el mapa de pines del dispositivo e indica dónde están los canales PWM.

  • Usando PWM:
from machine import Pin, PWM

pwm0 = PWM(Pin(13)) # Creating PWM Channel on Pin 13
pwm0.freq() # Current frequency
pwm0.freq(1000) # Sets the frequency to 1000Hz
pwm0.duty() # Current duty cycle
pwm0.duty(200) # Sets the duty cycle to 200
pwm0.deinit() # Switch off PWM on the pin

pwm1 = PWM(Pin(16), freq=1000, duty=200) # PWM in one line

ADC

Para usar ADC en el dispositivo, debes usar los pines analógicos. Por ejemplo, Pin 13(A0) en Wio Terminal.

Nota: El canal ADC en Wio Terminal es de 10 bits(0-1023).

  • Usando ADC
from machine import ADC, Pin

adc = ADC(Pin(13)) # Crating ADC on Pin 13
adc.read() # reading ADC value, 0 ~ 1023

DAC

Para usar DAC en el dispositivo, debes usar los pines DAC o los pines PWM en la placa. Por ejemplo, Pin 11(DAC0) en Wio Terminal.

Nota: El canal DAC en Wio Terminal es de 12 bits(0-4095).

  • Usando DAC:
from machine import DAC, Pin

dac0 = DAC(Pin(11)) # Creating DAC on Pin 11
dac0.write(512) # Writing value to DAC, 512/4096*3.3 = 0.4125 V

dac1 = DAC(Pin(26), resolution=10) # Creating DAC on Pin 26 and using 10 bit resolution
dac1.write(1023) # Writing max output to DAC, 3.3V

Nota: Al usar DAC en pines PWM, la resolución en el canal será solo de 8 bits.

# Using DAC om PWM Pins
from machine import DAC, Pin

dac2 = DAC(Pin(16)) # Creating DAC on Pin 16
dac2.write(128) # Writing value to DAC, 128/255*3.3 = 1.65V

LCD

Para Wio Terminal, la pantalla TFT LCD se puede usar como se muestra a continuación. Para más referencias de LCD, por favor visita Referencia de API LCD de ArduPy.

  • Usando el módulo LCD:
from machine import LCD

lcd = LCD() # Initialize LCD and turn the backlight
lcd.fillScreen(lcd.color.BLACK) # Fill the LCD screen with color black
lcd.setTextSize(2) # Setting font size to 2
lcd.setTextColor(lcd.color.GREEN) # Setting test color to Green
lcd.drawString("Hello World!", 0, 0) # Printing Hello World at (0, 0)

Nota: Usa tab para ver las funciones disponibles.


Primeros Pasos con el IDE

Como se mencionó anteriormente, puedes usar tu editor preferido para escribir tu programa de Python. Para ejecutar y probar el programa fácilmente, puedes simplemente editar el archivo main.py en la ubicación USB de ARDUPY (función de recarga automática). Aquí se demostrará otro ejemplo rápido usando Wio Terminal:

Asegúrate de haber seguido los procedimientos anteriores antes de la siguiente sesión.

1.Abre main.py en la ubicación USB de ARDUPY.

2.Copia el siguiente código a main.py y guarda el archivo.

from machine import LCD
import time, math

DEG2RAD = 0.0174532925
lcd = LCD()
lcd.fillScreen(lcd.color.BLACK)

# DRAW CIRCLE SEGMENTS
# x,y == coords of centre of circle
# start_angle = 0 - 359
# sub_angle = 0 - 360 = subtended angle
# r = radius
# colour = 16 bit colour value

def fillSegment(x, y, startAngle, subAngle, r, color):
# Calculate first pair of coordinates for segment start
sx = math.cos((startAngle - 90) * DEG2RAD)
sy = math.sin((startAngle - 90) * DEG2RAD)
x1 = sx * r + x
y1 = sy * r + y

# Draw colour blocks every inc degrees
for i in range(startAngle, startAngle+subAngle, 1):
# Calculate pair of coordinates for segment end
x2 = math.cos((i + 1 - 90) * DEG2RAD) * r + x
y2 = math.sin((i + 1 - 90) * DEG2RAD) * r + y

lcd.fillTriangle(int(x1), int(y1), int(x2), int(y2), x, y, color)

# Copy segment end to segment start for next segment
x1 = x2
y1 = y2

def main():
# Draw 4 pie chart segments
fillSegment(160, 120, 0, 60, 100, lcd.color.RED)
fillSegment(160, 120, 60, 30, 100, lcd.color.GREEN)
fillSegment(160, 120, 60 + 30, 120, 100, lcd.color.BLUE)
fillSegment(160, 120, 60 + 30 + 120, 150, 100, lcd.color.YELLOW)
time.sleep(1)
fillSegment(160, 120, 0, 360, 100, lcd.color.BLACK)

if __name__ == "__main__":
while True:
main()

3.¡Deberías ver que el Wio Terminal comienza a dibujar un gráfico circular en la pantalla instantáneamente!

La recarga automática puede ser muy útil cuando se prueba en programas pequeños.

Soporte Técnico

Por favor envía cualquier problema técnico a nuestro foro

Loading Comments...