CircuitPython: Python Embarcado para Educação

circuitpython

“A mudança é a única constante” é uma pérola de sabedoria frequentemente atribuída ao filósofo grego Heráclito. Em nenhum lugar isso soa mais verdadeiro do que no mundo da eletrônica digital. A linguagem C, um produto do boom da computação no início dos anos 1970, dominou o desenvolvimento embarcado desde que a linguagem BASIC cedeu seu domínio sobre a programação de microcontroladores. Hoje os ventos mudam mais uma vez, desta vez para a cada vez mais popular linguagem de programação Python. O MicroPython surgiu nos últimos anos para preencher a lacuna entre a linguagem de referência CPython orientada para desktop e as especificações de hardware relativamente limitadas dos microcontroladores.

Ainda assim, para o desenvolvedor embarcado iniciante, o MicroPython pode ser um desafio. Conheça o CircuitPython, uma bifurcação da linguagem MicroPython que foi ajustada para atender às necessidades específicas de estudantes e outras pessoas que desejam aprender o desenvolvimento de sistemas embarcados modernos. Hospedado pela Adafruit Industries, a linguagem CircuitPython tem crescido constantemente em popularidade entre o fabricante e os marcadores educacionais desde que foi lançado pela primeira vez no verão de 2017.

Em sua iteração atual, versão 6.1.0 a partir deste artigo, o CircuitPython suporta várias placas de desenvolvimento alimentadas pelos microcontroladores Microchip Technology Atmel SAMD21 e SAMD51 e o sistema em um chip (SoC) Nordic Semiconductor nRF52840. As versões anteriores do CircuitPython suportavam o popular microcontrolador ESP8266, mas o suporte está obsoleto a partir da versão 4. Embora o CircuitPython seja semelhante em muitos aspectos ao MicroPython, ele elimina a complexidade e oferece um fluxo de trabalho de desenvolvimento mais direto para aqueles que estão apenas iniciando em programação para sistemas embarcados.

Introdução ao CircuitPython

Em primeiro lugar, o CircuitPython, como o MicroPython, requer que um firmware especial seja carregado na placa de desenvolvimento conhecida como USB Flash versão 2 ou UF2. Muitas placas de desenvolvimento suportadas vêm pré-carregadas com o firmware. No entanto, todas as placas de desenvolvimento oferecem um mecanismo para colocar o sistema no modo bootloader, permitindo que o firmware do UF2 seja atualizado. O firmware UF2 é específico para cada placa de desenvolvimento, portanto, certifique-se de baixar o firmware mais recente específico para sua placa. O site CircuitPython torna isso uma tarefa simples. Com a placa de desenvolvimento conectada a um computador e o modo bootloader ativado, a placa deve aparecer como uma unidade flash chamada BOOT. Basta arrastar o arquivo UF2 baixado anteriormente para a pasta raiz da unidade BOOT. Após a instalação com sucesso, uma nova unidade aparecerá chamada CIRCUITPY. Neste ponto, a placa de desenvolvimento está pronta para seu primeiro projeto.

Embora qualquer editor de código possa ser usado para editar o arquivo fonte do CircuitPython (.py), é recomendado para iniciantes usar o editor Mu. Depois que o editor estiver instalado e em execução, basta clicar no botão Novo para criar um arquivo de script Python em branco. Há muitos códigos de exemplo disponíveis para atender a quase todas as necessidades. Claro, o mundialmente famoso LED Blinky é o Hello, World do mundo do hardware. Aqui está um exemplo de piscar um LED:

Depois que o código for inserido, nomeie o arquivo code.py e salve-o no diretório raiz da unidade CIRCUTPY. Se você salvar o arquivo em outro lugar, como na área de trabalho, basta clicar e arrastar o arquivo da área de trabalho para o ícone da unidade CIRCUITPY. Nota importante, os nomes dos arquivos são importantes para o CircuitPython, pois alguns são reservados para fins especiais. O arquivo code.py é executado após cada reload. Para estabelecer quaisquer funções de configuração que sejam executadas apenas uma vez na inicialização, coloque esse código em um arquivo chamado boot.py.

Um bom recurso do CircuitPython é que ele detecta sempre que um arquivo é adicionado ou atualizado e reinicia automaticamente o código. Não há necessidade de pressionar um botão de reset ou desconectar/reconectar o cabo USB da placa de desenvolvimento. Todo o código-fonte permanece como arquivos legíveis pelo usuário, para que você possa conectar a placa de desenvolvimento a qualquer computador e fazer alterações no código sem nenhum esforço de gerenciamento de configuração. Em outras palavras, você sempre tem o código-fonte mais recente no dispositivo.

O CircuitPython torna a extensão da funcionalidade muito simples com o uso de bibliotecas. Dentro da pasta raiz da unidade CIRCUTPY, deve haver uma pasta chamada lib. Caso contrário, é seguro criar a pasta do zero usando o explorador de arquivos do seu computador. É onde estão armazenados todos os arquivos de suporte necessários para adicionar funcionalidades ou interagir com sensores e atuadores. O CircuitPython oferece um pacote padrão de bibliotecas que são populares entre os desenvolvedores do CircuitPython. Esses arquivos de biblioteca são otimizados explicitamente para dispositivos embarcados e recebem a extensão de arquivo .mpy. É crucial garantir que o número da versão do pacote da biblioteca corresponda ao número da versão do CircuitPython que você está usando. Ao atualizar o firmware do CircuitPython, não se esqueça de atualizar também o pacote da biblioteca.

CircuitPython versus MicroPython

Algumas outras diferenças importantes entre o CircuitPython e o MicroPython incluem:

  • Os números de ponto flutuante são habilitados para todas as compilações.
  • A simultaneidade não é suportada.
  • Um modo de segurança é introduzido no CircuitPython que impede que o código do usuário seja executado se uma condição de falha grave ou de queda de energia for detectada.
  • O alias de módulo não está disponível. Em outras palavras, os módulos uos e utime não estão disponíveis como os e time. Para manter a compatibilidade com CPython, CircuitPython os e módulos de tempo são subconjuntos de suas contrapartes CPython. Assim, o código CircuitPython é executável no CPython, mas não necessariamente vice-versa.
  • Possui um módulo de armazenamento para montar sistemas de arquivos.
  • Como outros tipos de Python, o CircuitPython oferece uma experiência de programação interativa por meio de um terminal Read-Evaluate-Print Loop (REPL). Para o CircuitPython, o ambiente REPL pode ser inserido após a conclusão do código principal conectando-se à placa por meio de um terminal serial e pressionando qualquer tecla do teclado. A inserção de REPL desativa o recurso de recarregamento automático.

Outro aspecto interessante do CircuitPython é o Blinka. Enquanto o CircuitPython é executado em microcontroladores, o Blinka traz as bibliotecas do CircuitPython para minúsculos computadores pessoais de form factor conhecidos como computadores de placa única (SBCs), como o Raspberry Pi. Para aqueles que têm experiência como desenvolvedor de desktop, o Blinka disponibiliza o MicroPython como uma biblioteca Python instalável pip que é executada na versão orientada para desktop do Python – tornando possível interagir com vários sensores e atuadores com um SBC usando as mesmas bibliotecas que são usadas para microcontroladores.

Python, Python, por todos os lugares

O CircuitPython é uma forma de entrada empolgante na “Python-ization” do desenvolvimento de software de sistemas embarcados. Sua simplicidade de design, juntamente com seu conjunto robusto de recursos, o torna uma linguagem de programação tentadora para educadores e criadores. O CircuitPython também oferece uma oportunidade única para profissionais. Para engenheiros embarcados, a chance de aprender uma linguagem robusta como Python pode ajudar a ensinar habilidades de desktop e aplicativos da web. Para desenvolvedores de software de aplicações de desktop tradicionais, o CircuitPython oferece uma maneira de migrar suas habilidades de codificação do PC para sistemas embarcados.

Independentemente da sua experiência, o CircuitPython é uma nova linguagem de programação valiosa para o mundo do desenvolvimento embarcado. Seus recursos exclusivos facilitam o início do desenvolvimento embarcado, além de oferecer alguns novos conceitos que também devem atrair programadores veteranos. O CircuitPython é uma nova adição bem-vinda à história das linguagens de programação de desenvolvimento embarcado.

Queremos saber se você tem alguma experiência com o CircuitPython. Conecte-se conosco no Twitter da Mouser e compartilhe seus projetos com o CircuitPython conosco! Interessado em começar com o CircuitPython, confira este Adafruit CircuitPython Starter Kit.

Artigo escrito por Mike Parks e publicado no blog da Mouser Electronics: CircuitPython: Embedded Python for Education.

Traduzido por Equipe Embarcados.Visite a página da Mouser Electronics no Embarcados

(*) este post foi patrocinado pela Mouser Electronics

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Sem licença Creative Commons
Home » Software » CircuitPython: Python Embarcado para Educação
Comentários:
Notificações
Notificar
guest
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Djair
Djair
26/03/2022 08:17

Caros, aqui tá renderizando mal a página. Na parte do código estão aparecendo umas tags HTML na verdade. E tem um widget do lado direito (Séries) que está aparecendo o código.

Talvez você goste:
Menu