CircuitPython [5] es un derivado de código abierto del lenguaje de programación MicroPython dirigido a estudiantes y principiantes. El desarrollo de CircuitPython cuenta con el apoyo de Adafruit Industries . Es una implementación de software del lenguaje de programación Python 3 , escrito en C. [3] Se ha adaptado para ejecutarse en varios microcontroladores modernos .
CircuitPython consta de un compilador de Python para bytecode y un intérprete de tiempo de ejecución de ese bytecode que se ejecuta en el hardware del microcontrolador. Se presenta al usuario un mensaje interactivo (el REPL ) para ejecutar comandos compatibles de inmediato. Se incluye una selección de bibliotecas básicas de Python. CircuitPython incluye módulos que brindan al programador acceso al hardware de bajo nivel de los productos compatibles, así como a bibliotecas de nivel superior para principiantes. [6]
CircuitPython es una bifurcación de MicroPython, creada originalmente por Damien George. [7] La comunidad de MicroPython continúa discutiendo [8] bifurcaciones de MicroPython en variantes como CircuitPython.
CircuitPython está diseñado para ser compatible con CPython , la implementación de referencia del lenguaje de programación Python. [9] Los programas escritos para placas compatibles con CircuitPython pueden no ejecutarse sin modificaciones en otras plataformas como Raspberry Pi . [10]
Uso
CircuitPython se está utilizando como una solución alternativa emergente para la programación de microcontroladores, que normalmente se realiza en C, C++ o ensamblador. El lenguaje también ha sido adoptado para la fabricación de pequeños dispositivos de videojuegos portátiles . [11] [ Se necesita una mejor fuente ] El desarrollador Chris Young ha portado su software de transmisión y recepción por infrarrojos a CircuitPython para proporcionar interactividad y ayudar a las personas con problemas de accesibilidad . [12]
Comunidad
La comunidad de usuarios incluye una sala de chat de Discord y foros de soporte de productos. [13] En 2018 se creó una cuenta de Twitter dedicada a las novedades de CircuitPython. [14] Desde el 15 de noviembre de 2016, Adafruit publica semanalmente un boletín, Python on Microcontrollers, para proporcionar noticias e información sobre CircuitPython, MicroPython y Python en ordenadores de placa única. [15] Un subreddit de Reddit , r/CircuitPython, proporciona noticias sobre CircuitPython y noticias y proyectos relacionados y tiene unos 4300 miembros. [16]
Soporte de hardware
La versión 9.1.0 admite una variedad de arquitecturas, llamadas "puertos": [17]
- atmel-samd: Microchip SAMD21, SAMx5x
- cxd56: Sony Spresense
- Expresado: Expresado ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6
- Nórdico: Nórdico nRF52840, nRF52833
- Raspberry Pi: Raspberry Pi RP2040, RP2350
- stm: Familia de chips ST STM32F4
Estos puertos se consideran alfa y tendrán errores y funcionalidades faltantes:
- broadcom: Placas Raspberry Pi como RPi 4, RPi Zero 2W ( bare metal )
- Litex: fomu
- mimxrt10xx: NXP i.MX RT10xxx
- renode: simulador de hardware
- silabs: Familia MG24 de Silicon Labs
- stm: Familias de chips ST que no son STM32F4
Las versiones anteriores admitían el microcontrolador ESP8266 , pero su soporte se abandonó en la versión 4. [18]
Capa de abstracción del software Blinka
El código de CircuitPython puede ejecutarse en MicroPython o CPython utilizando la capa de compatibilidad Blinka escrita en Adafruit. [19] Actúa como una capa de traducción entre el código de CircuitPython y el código subyacente. Esto permite que el código de CircuitPython se ejecute en muchos más dispositivos, incluida una amplia gama de computadoras de placa única que se enumeran en circuitpython.org. [20] Es una biblioteca Python instalable en pip . El entorno de ejecución de CircuitPython no se utiliza, como se documenta en la guía Bibliotecas de CircuitPython en Linux y Raspberry Pi . [21]
Módulos (Bibliotecas)
Adafruit ha fomentado una comunidad que ha contribuido con bibliotecas de software para más de 488 sensores y controladores. [22] [23]
Referencias
- ^ Shawcroft, Scott (19 de julio de 2017). "CircuitPython 1.0.0!". Blog de Adafruit . Adafruit Industries . Consultado el 1 de mayo de 2018 .
- ^ "Versión 9.2.1". 20 de noviembre de 2024. Consultado el 21 de noviembre de 2024 .
- ^ ab "adafruit/circuitpython". GitHub . Adafruit Industries . Consultado el 2 de mayo de 2018 .
- ^ George, Damien P. (4 de mayo de 2014). "circuitpython/LICENSE". GitHub . Consultado el 1 de mayo de 2018 .
- ^ "CircuitPython es un derivado de código abierto de MicroPython apto para uso educativo". GitHub . Consultado el 30 de abril de 2018 .
- ^ "CircuitPython". Leer la documentación . Adafruit Industries . Consultado el 1 de mayo de 2018 .
- ^ George, Damien (20 de mayo de 2016). «Damien P. George». Damien P. George . Consultado el 1 de mayo de 2018 .
- ^ "Adafruit CircuitPython". Foro MicroPython . MicroPython.org . Consultado el 2 de mayo de 2018 .
- ^ Lewis, James (14 de febrero de 2018). «Circuit Python añade Python a los microcontroladores». The Bald Engineer . Consultado el 2 de mayo de 2018 .
- ^ Ganne, Simon. "¿Puedo usar el código de circuitPython en mi Raspberry?". Comunidad Element 14. Element 14.
- ^ Dopieralski, Radomir. "CircuitPython LAMEBOY". BitBucket . Consultado el 2 de mayo de 2018 .
- ^ Young, Chris (6 de junio de 2018). "Anuncio de IRLibCP: un módulo de Python para circuitos para transmisión y recepción de infrarrojos". Charla técnica de CY . Chris Young . Consultado el 2 de mayo de 2018 .
- ^ "CircuitPython y MicroPython de Adafruit". Foros de soporte de Adafruit . Adafruit Industries . Consultado el 1 de mayo de 2018 .
- ^ "CircuitPython". Twitter . Adfafruit Industries . Consultado el 1 de mayo de 2018 .
- ^ "Boletín informativo sobre Python en microcontroladores". Adafruit Daily . Adafruit Industries . Consultado el 17 de julio de 2024 .
- ^ "r/CircuitPython". Reddit.com . Adafruit Industries . Consultado el 17 de julio de 2024 .
- ^ "CircuitPython 9.1.0". GitHub . 17 de julio de 2024.
- ^ "¿Por qué dejamos de brindar soporte para ESP8266?". Adafruit.com . Adafruit Industries . Consultado el 15 de abril de 2019 .
- ^ "Blinka". CircuitPython . Adafruit Industries . Consultado el 17 de julio de 2024 .
- ^ "Blinka". CircuitPython . Adafruit Industries . Consultado el 17 de julio de 2024 .
- ^ "Bibliotecas de CircuitPython en Linux y Raspberry Pi". Sistema de aprendizaje de Adafruit . Adafruit Industries Industries . Consultado el 17 de julio de 2024 .
- ^ "Boletín informativo sobre Python en microcontroladores" . Consultado el 17 de julio de 2024 .
- ^ "Bibliotecas de CircuitPython" . Consultado el 17 de julio de 2024 .
Enlaces externos
- CircuitPython en GitHub
- Lista de reproducción de MicroPython en YouTube • Tutoriales de Tony DiCola / Adafruit