CircuitPython se desliza en el tablero número 100: la insignia OHS 2020

CircuitPython alcanzó un hito importante la semana pasada al dar la bienvenida a su tablero número 100: la insignia factorial de bolsillo diseñada para la décima Cumbre anual de hardware que se celebrará el 13 de marzo en la ciudad de Nueva York. Aunque CircuitPython, un derivado de código abierto de MicroPython, nació en Adafruit, más de la mitad de los tableros de esta lista se produjeron fuera de la empresa. Eso solo muestra la fuerza de la comunidad para apoyar a la serpiente.

La insignia OSHW 2020 se une a una letanía de foros familiares felices de llevarte a un intérprete de Python. Entre ellos se encuentran el ecosistema Adafruit Feather, ItsyBitsy, placas especializadas como Edge Badge, que estuvo en buenas bolsas en Supercon, y CircuitPlayground, ese cuchillo militar suizo de sensores que ahora viene en una versión Bluetooth. Las primeras 100 tablas fueron redondeadas robustamente con [Joey Castillo]’e-reader OpenBook y Teensy 4.0.

Mire para iniciar el futuro de OSHW

Si estuviste en la Supercon 2019 y conociste a Drew Fustini, es genial ver un prototipo de este increíble reloj de pulsera mientras se pasa por alto. Una de las inspiraciones para este diseño fue la insignia card10 de la CCCamp 2019, que era una forma de reloj de doble PCB.

La placa OHS se basa en el Nordic nRF52840 dentro del módulo Riga BMD340. Tiene muchas características que incluyen sensores ambientales, sensor de gestos e IMU de 9 DoF. Para darle un poco de escala, esta es una pantalla LCD de 1.54 ″ en el frente. También hay un cargador LiPo incorporado y un conector Sparkfun QWIIC para conectar fácilmente otros sensores, relés, etc. a través de I²C.

Según la página de IO, los colaboradores y los comentarios aún son bienvenidos para este proyecto, ya que la junta aún está evolucionando. Desafortunadamente para muchos de nosotros, la insignia no se venderá, pero todos los que asistan a la Cumbre OSHW 2020 recibirán una de estas bellezas. Por otro lado, la naturaleza de código abierto del proyecto significa, si se quiere De Verdad quieres uno, puedes montar el tuyo propio.

Impacto de CircuitPython en proyectos de microcontroladores

La facilidad de CircuitPython lo convierte en una buena plataforma para principiantes de todas las edades. Los juegos siempre son una forma divertida de aprender cualquier cosa, y si eres nuevo en CircuitPython, [de∫hipu]PewPew Standalone pone un entorno de aprendizaje para la programación de juegos en su bolsillo. Del departamento Shut Up and Take My Money, jefe de CircuitPython Scott Shawcroft funciona en un cartucho compatible con Game Boy para CircuitPython. Scott dio una conferencia en la Supercon 2019 2019 sobre este mismo tema que presentaremos en las próximas semanas.

CircuitPython es una bifurcación de MicroPython, que se basa en C. CircuitPython funciona analizando Python en código de bytes, lo que lo hace poderoso en ambos extremos, lo que permite que el programador que no tiene que aprender C se beneficie del procesamiento de la potencia C. También significa que puede pasar de una arquitectura de chip a la siguiente sin tener que volver a aprender todos los conceptos básicos de cada sistema específico.

Es un poco para todos, así que si CircuitPython aún no ha comenzado en su banco, consulte la lista de placas oficialmente compatibles.

  • Dibujó Fustini dice:

    “Si estuviste en la Supercon 2019 y conociste a Drew Fustini, es genial ver un prototipo de este increíble reloj de pulsera mientras se aprobó”.

    Para su información, aquí está la tarjeta de insignia del Chaos Communication Camp10:
    https://la-tecnologia.com/2019/08/29/hands-on-cccamp2019-badge-is-a-sensor-playground-not-to-be-mistaken-for-a-watch/

    ¡Nos inspiró ese increíble diseño! @ schne1der_ del equipo card10 estuvo en Supercon y nos dio consejos.

    • Nathan McCorkle dice:

      Entonces, ¿cuál es la diferencia entre un circuito y un micrófono? ¿Cuál deberíamos usar para nuevos MCU? ¿Por qué divergieron? ¿No tenemos ya suficiente divergencia?

      • RW versión 0.0.1 dice:

        Estoy seguro de que alguien aclarará la confusión eliminando una versión más optimizada, Python incrustado, que se hinchará demasiado y conducirá a la pequeña bifurcación de Python, y no tendrá suficientes funciones para dejar Python ++ Pro incrustado. Mientras tanto, el Python estándar ha caído en la anarquía evolutiva y la confusión, lo que ha llevado a que Visual Python se convierta en el Python estándar real, aunque todos dicen que lo odian.

        • Ren dice:

          “Estoy seguro de que alguien aclarará la confusión eliminando una versión más optimizada”.

          ¡LOL’d!

        • Nathan McCorkle dice:

          Nunca había oído hablar de Visual Python y uso Python casi todos los días …

          • RW versión 0.0.1 dice:

            Bueno, fue una declaración prospectiva (Insertar rechazo de caldera)

            Desafortunadamente, saber que Python ya se encuentra en un estado de anarquía y confusión en el desarrollo, porque parecía que ni siquiera levantaste una ceja por eso 😀

      • deshipu dice:

        MicroPython es el proyecto original, creado para ejecutarse en sistemas PyBoard y Unix, y luego adaptado a ESP8266, ESP32 y algunas plataformas menos compatibles. Como dicen los autores, no se supone que sea específicamente para microcontroladores, sino para algunos entornos con recursos limitados, y está dirigido a programadores experimentados que desean hacer un uso completo del hardware, solo que de manera más conveniente (pero aún requieren suficiente conocimiento) .

        CircuitPython se construye además de eso como un lenguaje para pequeños proyectos de microcontroladores escritos por principiantes. Los autores dicen que la parte más importante de la experiencia son los primeros 10 minutos de uso. Limpió y cohesionó una biblioteca estándar y una gran selección de bibliotecas listas para usar con ejemplos y muchos documentos.

        Por lo tanto, probablemente necesite usar CircuitPython para aprender y para proyectos dirigidos a principiantes, y MicroPython para piratería obstinada. Se diferenciaron porque los autores de MicroPython querían centrarse en las características y la implementación, mientras que los autores de CircuitPython querían un uso y documentación sencillos.

        • David A. dice:

          Curiosamente, MicroPython parecía más fácil de manejar que CircuitPython. Lo que me hizo pensar que facilitar eso no era del todo una razón para desembolsar. Las diferencias en las bibliotecas y la sintaxis son significativas y dificultarán el cambio sin mucho dolor de cabeza.

          ¿Por qué AdaFruit no solo ha contribuido a MicroPython para agregar supuestas funciones de facilidad en lugar de crear una fragmentación innecesaria?

        • Romilly amartillado dice:

          tl; dr: micropython prioriza el rendimiento, CiurcuitPython prioriza la portabilidad.

          Más específicamente, CircuitPython le permite lanzar código idéntico para (por ejemplo) acceso I2C en más de 100 placas. y sus bibliotecas pueden ejecutarse en Raspberry Pi y Jetson Nano.

          Damien George (creador de Micropyton) ve la bifurcación CircuitPython como un paso positivo, comparando las dos versiones con diferentes distribuciones de Linux: el mismo kernel subyacente optimizado para diferentes entornos.

      • espuma dice:

        Esta página tiene una descripción general decente de alto nivel de las diferencias: https://www.digikey.com/en/maker/projects/micropython-basics-what-is-micropython/1f60afd88e6b44c0beb0784063f664fc y esta es una página documental oficial que describe la diferencias técnicas: https://circuitpython.readthedocs.io/en/latest/README.html#differences-from-micropython Circuit Python intenta maximizar la “amistad inicial” para que los dispositivos puedan (con suerte) ser utilizados por personas con diferentes niveles de habilidad, e incluso aquellos sin experiencia previa sin algunos de los puntos dolorosos que pueden desanimar a algunas personas de continuar aprendiendo sobre un problema si comienzan a sentir que ni siquiera pueden comenzar.

    • Mike Szczys dice:

      Gracias por la explicación Drew. Usamos un guión arriba para corregir.

  • Ren dice:

    ¡Es bueno ver que no tiene un procesador PIC!

  • moot-rasta dice:

    ¿Alguien sabe si MicroPython o CircuitPython pueden facilitar la comunicación bluetooth en ESP32?

    (tan fácil como usar la biblioteca arduino en ESP32).

    • David Glaude dice:

      CircuitPython no es compatible con ESP32.
      La última versión de MicroPython tiene una pila BLE y se ejecuta en ESP32.

      • moot-rasta dice:

        Bluetooth en el ESP32 es lo único que estaba esperando para empezar a usar un micrófono. Esta es una noticia increíble.

  • Cyk dice:

    Dejé de usar Circuitpython cuando necesitaba interrupciones y temporizadores, y tuve que aprender que Circuitpython simplemente no los tiene.

    Entonces, sí, tal vez un juguete decente de un estudiante, pero a menudo un callejón sin salida tan pronto como avanzas.

    • deshipu dice:

      No parece un cambio a MicroPython en este momento tan difícil.

      • Cyk dice:

        Eso es cierto, y aunque es menos probable que llegue a un callejón sin salida con Micropython, más o menos deseará haber comenzado con C desde el principio.

  • RW versión 0.0.1 dice:

    Estoy esperando Monty Python, donde Darles Chickqennnns reemplaza todas las palabras clave con variaciones ortográficas.

    • RW versión 0.0.1 dice:

      o varios elementos del menú, huevos de spam y spam, etc.

    • lars-mander dice:

      Terence Graham Parry Jones.
      1 de febrero de 1942-21 de enero de 2020.
      DESCANSA EN PAZ.

      • RW versión 0.0.1 dice:

        DESCANSA EN PAZ

        No entendí eso antes de publicar, todos ciertamente pensaron que Monty Python era muy ruidoso.

  • Scott dice:

    Esto necesita corrección. El resumen de Kristina puede dar falsamente al lector la impresión de que CircuitPython es un intérprete de Python para microcontroladores. En realidad, es un derivado de MicroPython, que es el intérprete. Referencia:
    * https://learn.adafruit.com/micropython-basics-what-is-micropython/overview

    Aquí hay una oportunidad _no_ para repetir los errores de informes de la comunidad pasados ​​que vimos cuando se lanzó Arduino (aunque una mención fue una bifurcación de Wiring, privada de atribución).

    A diferencia de Arduino, desde el principio AdaFruit reveló completamente su relación con MicroPython (ver enlace). AdaFruit tiene una distribución MP más sencilla, se ha adaptado a más plataformas de dispositivos, sabe cómo promocionar y aporta muchos documentos a su propio sitio web. Todas las cosas buenas, merecen crédito por sus contribuciones y de ninguna manera son responsables cuando las personas fusionan los dos.

    Una característica de HaD que describa la génesis de Python en microcontroladores sería una característica original excelente. También ayudaría a disipar algunos mitos que evolucionan (orgánicamente).

    • moot-rasta dice:

      ¿Cuál es el protocolo aceptado (o legalidad) para ¿Qué tipo de publicidad y bifurcación en proyectos de código abierto? Suponiendo que el proyecto del micrófono creará nuevas funciones en el futuro, ¿puede adafruit simplemente tomarlo y ponerlo en su versión? Supuestamente esto es legal (dependiendo de la licencia del micrófono), pero ¿es el que está hecho? Si Adafruit de alguna manera gana dinero con él, ¿con suerte querrán donar financieramente al proyecto de micropytone?

      • Scott dice:

        Puedo resumir que estropearé algunos detalles 🙂
        Así que hay un año + hilo al respecto en el foro de MP:
        https://forum.micropython.org/viewtopic.php?t=2894

        Básicamente, AF está dentro de sus derechos legales: tiene una licencia del MIT, que entiendo como “es tuya; haz lo que quieras, simplemente no elimines la licencia de Copyright +”. Es casi “Wild West” excepto por esa cláusula de copyright. .

        Sin verse obligado a hacerlo (ver arriba), AF proporciona una fuente para sus cambios. Sus cambios están disponibles en 2 formas: 1 compatible con CP y 1 con MP. Parte de la razón por la que MP no es 100% compatible con los objetivos de MP de compatibilidad amplia de hardware, y su enfoque (MP) requeriría complejidad y riesgo de violación de API para proveedores como AF. AF está intentando de buena fe mantener a los parlamentarios a la par con CP. Así que toman medidas para no crear una grieta.

        Nada que no sea ético en la bifurcación. Alguien que se escapa puede tener malas intenciones, pero el problema es el autocontrol: los desarrolladores se alejan de los proyectos abusados ​​y los proyectos saludables atraen a usuarios que se convierten en contribuyentes.

        La OMI parece tener una carga parlamentaria sobre cómo se realizan las contribuciones, por la buena razón de mantenerse fiel a su objetivo más amplio de un amplio soporte de dispositivos.

        No es exactamente lo mismo, pero me recuerda un poco a la controversia de hace años entre Ubuntu y Debian:
        Las versiones de Debian se retrasaron por errores de la plataforma de la CPU porque su estatuto les exigía hacer versiones simultáneas entre arquitecturas. No solo ARM, sino otros: SPARC, MIPS, PowerPC, etc.

        Ubuntu ignoró todo esto y simplemente le dio a X86 una edición pulida y lista para su lanzamiento (lo que Debian no pudo hacer antes de que se desarrollaran todos los errores de la plataforma) y, como resultado, más grande que Debian. Más grande que todas las combinaciones. Hubo argumentos de que Ubuntu debería admitir directamente Debian. Pero si lo hicieran, no creo que tuvieran tanto éxito porque tendrían más alcance y sus ediciones estarían controladas por personas que tienen agendas más amplias que solo una edición X86.

        Creo que la historia muestra que esto funcionó bien para Ubuntu y Debian. No todo el mundo estaba convencido en ese momento. 🙂

      • Scott dice:

        Ojalá mi respuesta atraiga a alguien con más conocimientos sobre este tema que yo, y que pueda corregir todo lo que entendí mal.

        Hay muchas cosas buenas en ambos proyectos. Y no puedes equivocarte con ninguno de los dos o con Arduino. Todas las comunidades son tan saludables y no debería haber preocupaciones sobre la elección de una plataforma.

        • moot-rasta dice:

          Una respuesta interesante e informativa. Realmente no estaba al tanto de la situación de Debian / Ubuntu. Gracias.

  • Skrust dice:

    CircuitPython no mantiene mucha compatibilidad: el código que escribí para Circuit Playground Express en 2017, simplemente plano ya no funciona, y la biblioteca cp incorporada es demasiado lenta para ser útil. CircuitPython también puede tener un poco de memoria: los controladores auxiliares basados ​​en placas M0 que desarrollamos y usamos en el trabajo deben reiniciarse porque el sistema no puede administrar la memoria.

    Sería bueno si el proyecto CircuitPython retroalimentara los cambios en MicroPython: prefiero que funcione * bien * en 10 placas que la mitad de útil en 100.

Marco Navarro
Marco Navarro

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *