En este artículo revisaremos la placa pyboard STM32F405RG con soporte para micropython, con el aporte de icstation.com
Pueden adquirir este producto en http://www.icstation.com/stm32f4-micropython-board-stm32f405rgt6-pyboard-stm32-micropython-core-development-board-module-flash-1924kb-sram-with-wire-p-11882.html
Descripción:
1. MicroPython es una implementación ágil y eficiente del lenguaje de programación Python 3 que
incluye un pequeño subconjunto de la biblioteca estándar de Python.
Y está optimizado para operar en microcontroladores y en entornos restringidos.
2. El MicroPython pyboard es una placa de circuito electrónico compacta que opera MicroPython en el metal desnudo.
Le proporciona un sistema operativo Python de bajo nivel que se puede usar para controlar todo tipo de proyectos electrónicos.
3. MicroPython está repleto de características avanzadas, tales como un indicador interactivo,
enteros arbitrarios de precisión, cierres, comprensión de listas, generadores, manejo de excepciones y más.
También es lo suficientemente compacto como para caber y operar dentro de solo 256k de espacio de código y 16k de RAM.
4. MicroPython pretende ser lo más compatible posible con Python normal para permitirle transferir código
fácilmente desde el escritorio a un microcontrolador o sistema integrado.
5. MicroPython es un compilador y tiempo de ejecución Python completo que se ejecuta en el metal desnudo.
Obtendrá una solicitud interactiva (la REPL) para ejecutar comandos inmediatamente,
junto con la capacidad de operar e importar scripts desde el sistema de archivos integrado.
El REPL tiene historial, finalización de pestañas, sangría automática y modo de pegado para una experiencia de usuario maravillosa.
6. Los objetivos de MicroPython son lo más compatibles posible con Python normal (conocido como CPython), de modo que si conoces Python, ya conoces MicroPython.
Por otro lado, cuanto más aprendas sobre MicroPython, mejor te vuelves en Python.
7. Este pyboard está equipado con un microcontrolador STM32F405RG que incorpora una CPU Cortex M4 de 168 MHz con 1Mb ROM flash y 192K RAM.
8. Además de implementar una selección de bibliotecas centrales de Python,
MicroPython incluye módulos como “máquina” para acceder a hardware de bajo nivel.
El pyboard es la placa oficial de microcontrolador MicroPython con soporte completo para funciones de software.
El hardware tiene características siguientes :
1. Microcontrolador STM32F405RG.
2. Tamaño de la placa: 70 X 60MM / 2.76 X 2.36 pulgadas (L * W)
3. CPU Cortex M4 a 168 MHz con hardware de punto flotante.
4. ROM de 1Mb y 192KiB de RAM.
5. Puerto micro USB para alimentación y comunicación serie.
6. Ranura para tarjeta Micro SD incorporada, compatible con tarjetas SD de alta capacidad y estándar.
7. Acelerómetro de 3 ejes (MMA7660).
8. Reloj en tiempo real con batería de respaldo opcional.
9. 24 GPIO en los bordes izquierdo y derecho y 5 GPIO en la fila inferior, más LED y interruptor GPIO disponibles en la fila inferior.
10. Convertidores analógicos a digitales de 3x 12 bits, disponibles en 16 pines, 4 con blindaje de tierra analógico.
11. Convertidores 2x 12 bits de digital a analógico (DAC), disponibles en los pines X5 y X6.
12. 4 LEDs (rojo, verde, amarillo y azul).
13. 1 reinicio y 1 interruptor de usuario.
14. Regulador de voltaje LDO incorporado de 3.3V, capaz de suministrar hasta 250 mA, rango de voltaje de entrada 3.6V a 16V.
15. Cargador de arranque DFU en ROM para actualizar fácilmente el firmware.
Partes de la placa
Comandos de ejemplos
Esta linea devuelve un Hola, mundo en el terminal.
1 |
>>>print("Hola, mundo!") |
1 2 3 4 5 6 7 8 9 10 11 12 |
#---Con estos comandos podemos encender el led 1 y 2 >>> pyb.LED(1).on() >>> pyb.LED(2).on() #---Suma algebraica >>> 1 + 2 3 #---Ejemplo simple para una división >>> 1 / 2 0.5 #---Repite 20 veces la palabra 'py' >>> 20 * 'py' 'pypypypypypypypypypypypypypypypypypypypy' |
1 2 3 4 5 6 |
#-----testear estado de interruptor puede devolver false o true >>>mySwitch = pyb.Switch() >>>mySwitch >>>mySwitch() |
Códigos de ejemplos
1 2 3 |
#----Enciende el led número 4 import pyb pyb.LED(4).on() |
1 2 3 4 5 6 |
#--------Titila el led 2 cada 1 segundo import pyb led = pyb.LED(2) while True: led.toggle() pyb.delay(1000) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#----Varía la intensidad del led 4 import pyb led = pyb.LED(4) #start the LED intensity value with 0. intensity = 254 try: while True: intensity = (intensity + 1) % 255 led.intensity(intensity) #show the effect quickly with a shorter delay pyb.delay(15) finally: # once 255 is reached turn off the LED pyb.LED(4).off() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#----Enciende 4 led en forma secuenciale import pyb leds = [pyb.LED(i) for i in range(1,5)] for l in leds: l.off() n = 3 try: while True: n = (n + 1) % 4 leds[n].toggle() pyb.delay(500) finally: for l in leds: l.off() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#-----Prueba del acelerómetro integrado import pyb xlights = (pyb.LED(2), pyb.LED(3)) ylights = (pyb.LED(1), pyb.LED(4)) accel = pyb.Accel() SENSITIVITY = 3 while True: x = accel.x() if x > SENSITIVITY: xlights[0].on() xlights[1].off() elif x < -SENSITIVITY: xlights[1].on() xlights[0].off() else: xlights[0].off() xlights[1].off() y = accel.y() if y > SENSITIVITY: ylights[0].on() ylights[1].off() elif y < -SENSITIVITY: ylights[1].on() ylights[0].off() else: ylights[0].off() ylights[1].off() pyb.delay(100) |
Pasos para subir programas a la Pyboard
En el administrador de dispositivo al conectar nuestra Pyboard veremos que aparece en Unidades de discop un nuevo dispositivo llamado “uPy microSD Flash USB divice” y en puertos un dispositivo serie USB.
Para poder agregar un nuevo programa a la pyboard, tenemos que editar el archivo “main.py”
Podemos hacerlo con cualquier editor de texto como por ejemplo el notepad.
Si queremos interactuar con la pyboard a través de una consola de comandos, podemos hacerlo con el programa PuTTY. Ahí debemos seleccionar “Serial” y en “Serial Line” colocamos el puerto Com que nos aparecio en el administrador de dispositivos, hacemos click en “Open”.
Podemos probar si hay comunicación escribiendo algún comando
Intentemos encender un led escribiendo “pyb.LED(1).on()” esto enciende el led 1 onboard.
Podemos encender todos los led, de la placa.
Otras de las opciones que podemos probar es hacer sumas multiplicaciones, resta y divisiones y otra operaciones más complejas.
La pyboard posee dos pulsadores uno es para resetear la placa y el otro es un pulsador de usuario de propósito general.
Con los comandos que vemos en pantalla podemos leer el estado del pulsador, si no está presionado nos devuelve un False y y si lo está un True.
Editamos el archivo “main.py” con notepad, una vez hecho las modificaciones, guardamos el archivo
Al guardar el archivo, se encenderá el led 1 (verde) durante unos segundos.
Luego debemos resetear la placa, con el botón para tal fin. Tambien podemos resetear apretando en el terminal (si lo tensmos abierto) la convinación de teclas “control+d”.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
[wysija_form id=”1″]
VIDEO RECOMENDADO