MicroPython é uma linguagem de programação baseada no Python criada para ser utilizada em dispositivos embarcados, que geralmente possuem menos recursos do que computadores e laptops (ex: memória de programa, memória RAM, fonte de energia limitada, etc).

   O MicroPython é um projeto da fundação MicroPython, open source e disponível no GitHub sob a licença MIT. Segundo seus criadores a linguagem é interpretada (assim como o Python), porém diretamente no processador embarcado, convivendo com todas as limitações de memória e velocidade.

logo do micropython

Fonte: GitHub

   Por ser uma linguagem interpretada (não compilada previamente) ela exige bastante memória, mais do que a maioria dos microcontroladores “baratinhos” e lentos (baixa frequência de clock) pode oferecer. O microPython não vai rodar no seu Arduino UNO nem em microcontroladores 8/16-bit.

   Porém a lista de dispositivos suportados inclui vários processadores ARM Cortex-M3, Cortex-M4 (eu já mostrei o Espruino Pico neste artigo) e mais recentemente Cortex-M0 encabeçado pelo esforço da Adafruit em portar o sistema para o Arduino Zero.

Arduino Zero

Fonte: meu próprio artigo sobre o Arduino Zero

   O Arduino Zero está disponível para compra há quase 2 anos (desde Janeiro de 2015) porém ainda não “pegou”, até pelo seu custo mais elevado (em torno de US$50) e baixo “apelo” em termos de melhorias quando comparado com o Arduino UNO. Pesa também o fato de que ele não está disponível no eBay/Aliexpress. Porém ele roda microPython, e é exatamente isso que quero mostra para vocês hoje!.


   Antes de começar eu devo lhe alertar que este guia é baseado em um tutorial da Adafruit (link), portanto todo o trabalho e o crédito vai para eles. Se você sente-se confortável lendo em Inglês não há porque continuar aqui, vá direto para o tutorial original.

   Para começar você deve possuir os seguintes materiais e softwares:

  • Arduino Zero ou placa similar (que tenha como processador principal o ATSAMD21G18), por exemplo a linha feather da Adafruit ou então algumas das disponíveis no Tindie (aqui ou aqui).
  • Bootloader que integra o microPython ao chip ATSAMD21 (disponível aqui)
  • Aplicativo ‘Bossa’ na versão 1.7.0 ou superior (download aqui), que serva pra gravar o chip ATSAMD21

   Após juntar todo o conteúdo acima, execute a gravação do bootloader microPython no Arduino Zero seguindo esta página do tutorial da Adafruit. O resultado final é que ao plugar o Arduino Zero no computador (através da USB) ele se apresentará como um MSD (mass-storage-device), um dispositivo similar a um pen-drive ou HD externo. O MSD conterá os seguintes Arquivos:

sistema de arquivos micropython

Sistema de arquivos dentro do Arduino Zero, ao rodar microPython

   O Arquivo “readme” é um texto contendo instruções sobre como executar os programa em python dentro do Arduino Zero. O Arquivo “boot.py” contém as instruções necessárias para iniciar o microPython no Arduino. Já o arquivo “main.py” é onde você pode (e vai) escrever o código em Python para ser executado!!.

   O próximo passo do tutorial é conhecer os comandos e funções disponíveis no microPython, que incluem manipução de IO’s (digitais e analógicas), SPI/I2C, timers e Neopixels. Está tudo disponível neste link, que acompanha o vídeo abaixo. É um video de aproximadamente uma hora explicando tudo o que está atualmente disponível no microPython para Arduino Zero.

   O video mostra Tony D (engenheiro da Adafruit) ensinando desde a instalação do bootloader no Arduino até manipulação de IO’s (piscando LED, lendo botões, PWM de LED) até leitura de um sensor via protocolo I2C.

Conforme o tutorial da Adafruit, existem duas formas de programar em MicroPython dentro do Arduino Zero:

  • Abrindo o arquivo main.py no seu computador e colocando todo seu código ali. Depois é só salvar o arquivo, fecha-lo e pressionar o botão reset do seu Arduino Zero.
  • Através de um terminal serial como o Putty ou aquele dentro da IDE do Arduino. Para isso você precisa somente saber em que porta COM seu Arduino Zero está.

   A referência da linguagem (bibliotecas e como utiliza-las) está disponível no site oficial do MicroPython. O módulo mais importante (em minha opinião) para controlar o microcontrolador se chama machine; é o responsável por interfacear o microPython com o hardware (entradas e saídas) do Arduino Zero. Clique aqui para acessar a documentação do módulo machine.

   Conforme esclarecido pelo Tony no vídeo acima, o Arduino Zero ainda (Nov/2016) roda MicroPython com recursos limitados, nem tudo está implementado. Se você quiser testar toda a capacidade da linguagem é possível roda-la no ESP8266!!.

   O video abaixo é sobre a história e a ideia por trás de portar Python para sistemas embarcados, sobre a criação do MicroPython. É proferida pelo seu criador, Damien George. Dá para ativar legendas automáticas em Português.

Programando em MicroPython com Arduino Zero
Classificado como:                    

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solve : *
13 + 15 =