Adafruit Circuit Playground Express: Uma alternativa ao Arduino e que suporta Python

Hudson Brendon
May 30 · 6 min read

Já trabalho a alguns anos com Arduino e sempre procurei alternativas para a utilização de python com o mesmo. Felizmente a comunidade sempre criou alternativas e formas para integrar tecnologias tão diferentes. Sempre utilizei o pyserial, que é uma biblioteca que proporciona a comunicação serial de uma aplicação python com o arduino via protocolo firmata e que explano melhor nesse post. Recentemente, descobri as maravilhas que a Ada Fruit vem desenvolvendo e ganhei uma Circuit Playground Express, que além de suportar python nativamente, trás inúmeras facilidades em relação ao arduino que facilitam a vida do desenvolvedor e entusiastas que visam aprender mais sobre esse maravilhoso mundo da eletrônica.

Adafruit Circuit Playground Express

Essa plaquinha sem dúvidas é uma das melhores do mercado atualmente. Barata, compacta e que já vem com todos os principais componentes integrados como:

  • 10 x mini neoPixels, cada um pode exibir qualquer cor
  • 1 x sensor de movimento (acelerômetro de eixo triplo LIS3DH com detecção de toque, detecção de queda livre)
  • 1 x sensor de temperatura (termistor)
  • 1 x sensor de luz (fototransistor). Também pode atuar como um sensor de cores e sensor de pulso.
  • 1 x sensor de som (microfone MEMS)
  • 1 x Mini alto-falante com amplificador de classe D (alto-falante magnético / campainha de 7,5 mm)
  • 2 x botões de pressão, rotulados A e B
  • 1 x interruptor deslizante
  • Receptor e transmissor infravermelho — pode receber e transmitir qualquer código de controle remoto, bem como enviar mensagens entre os Circuitos Playground Express. Também pode atuar como um sensor de proximidade.
  • 8 x pinos de entrada / saída compatíveis com clipe jacaré
  • Inclui I2C, UART, 8 pinos que podem fazer entradas analógicas, saída múltipla PWM
  • 7 pads podem atuar como entradas de toque capacitivo e o 1 restante é uma saída analógica verdadeira
  • LED “ON” verde para que você saiba que ele está ligado
  • LED “# 13” vermelho para piscar básico
  • Botão de reset
  • Processador ATSAMD21 ARM Cortex M0, rodando a 3.3V e 48MHz
  • 2 MB de armazenamento SPI Flash, usado principalmente com o CircuitPython para armazenar código e bibliotecas.
  • Porta MicroUSB para programação e depuração
  • Porta USB pode atuar como porta serial, teclado, mouse, joystick ou MIDI!

Incrível não é mesmo? Tudo isso por míseros 25 dólares.

Suportes

Microsoft MakeCode

A Adafruit Circuit Playground Express além de contar com todos esses recursos, também é suportada pela Microsoft MakeCode, que é uma plataforma web que proporciona desenvolvimento através de blocos no estilo "Arraste e solte" e também em javascript. No final do processo é gerado um binário que você faz o download e copia para dentro do diretório que é montado no seu computador quando você pluga a placa via USB.

Code.org

O code.org também dispõe de uma plataforma no estilo arraste e solte semelhante ao makecode da microsoft. Nesse caso, você deve realizar o download de uma aplicação desktop disponibilizada por eles que identifica sua placa conectada ao PC e prover toda a comunicação.

IDE Arduino

Também está disponível o suporte via IDE do arduino, a comunicação se dar via protocolo firmata, e toda a programação pode ser realizada diretamente na IDE como ja é feita tradicionalmente no arduino uno, mega, etc.

Python

Por ultimo e o que iremos abordar aqui. O python está suportado de forma nativa pela placa, com um simples arquivo code.py criado no diretório montado pela placa, podemos operar e realizar procedimentos com todos os sensores, leds e aparatos embarcados na placa.

Um pouco de prática …

Para demonstrar como é fácil desenvolver com a Circuit Express, vamos acender alguns LEDs que é o exemplo mais básico, LEDs esses, que ao contrário do Arduino por exemplo, já se encontram integrados a placa.

Com a placa devidamente plugada, pressione o botão de resete até a placa entrar em modo de desenvolvimento (Todos os LEDS ficam verdes) a primeira coisa a se fazer é baixar o CircuitPython, que é um binário que realizará a comunicação do código python com a placa Circuit Express (Algo semelhante ao que o firmata faz). Para isso, acessaremos o site circuitpython.org e faremos o download do arquivo. Com o arquivo em mãos, copie o mesmo para o diretório montado pela placa.

O Circuit Playground Express tem dez LEDs RGB NeoPixel embutidos. Eles estão localizados em um anel ao redor da placa, dentro do anel externo de pads compatíveis com clipes de jacaré. RGB significa vermelho, verde e azul, e isso possibilita você criar qualquer cor do arco-íris com esses LEDs!

A numeração dos LEDs pode ser vista na imagem abaixo:

A idéia é que possamos acender todos os LEDs com cores diferentes, para isso, começaremos importando a biblioteca que possibilitará isso, no diretório que foi montado pela placa, crie um arquivo chamado code.py com o código abaixo:

from adafruit_circuitplayground.express import cpx

Esse primeiro comando simplesmente importa o módulo responsável por interagir com os LEDs. Em seguida, adicione o código abaixo:

cpx.pixels.brightness = 0.5

Esse comando indica para a nossa placa a intensidade da luz do LED, podendo variar entre 0.01 e 1.0, por exemplo: 0.01, 0.02, 0.1, 0.2, 1.0.

Em seguida, nossa placa precisará de um loop infinito, um trecho de código que será executado para sempre (algo semelhante ao que acontece no arduino), no python temos o While. Abaixo do código acima, insira o seguinte código:

while True:
cpx.pixels[0] = (255, 0, 0)

0 cpx.pixels é um array que contém todas as posições dos 10 LEDs, indicamos o LED em questão a ser acendido que pode ser de 0 à 9, lembra do mapeamento da imagem acima? Esse array recebe uma tupla com os valores em RGB representando as cores que você quer utilizar, podemos usar o site rgbcolorcode.com para pegar os códigos das cores, um exemplo interessante seria algo como:

Com o código acima teremos um resultado como esse:

Simples né?

Como falado anteriormente, a placa dispõe de inúmeros recursos, entre eles está dos botões identificados como Botão A e Botão B, no código abaixo acenderemos todos os LEDs na cor vermelha, utilizaremos o botão A para acender os LEDs de 0 à 4 e o botão B para acender os LEDs de 5 à 9:

O código acima simplesmente acende os LEDs da esquerda quando o botão A é pressionado e quando o botão B é pressionado os LEDs da esquerda acendem, quando nenhum dos dois botões é pressionados, os LEDs se mantém apagados.

Conclusão

Como visto aqui, é bem simples trabalhar com a Adafruit Circuit Express. Nos próximos posts irei trazer outros tipos de implementações utilizando os demais recursos que a placa tem a oferecer como sensor de luz, temperatura, proximidade, microfone, auto-falante, etc. Até a próxima.

❤ Gostou? Vamos espalhá-lo — curte e compartilha aí o/

Code Rocket Blog

Code Rocket

Hudson Brendon

Written by

Developer and content creator

Code Rocket Blog

Code Rocket

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade