Configuração do Circuit Playground Bluefruit

Comece Aqui

Um guia para configurar o Adafruit Circuit Playground Bluefruit para nosso currículo.

O que é o Circuito Playground BlueFruit?

O Circuit Playground Bluefruit é muito semelhante ao Circuit Playground Express, exceto que tem suporte para Bluetooth Low Energy em vez de infravermelho (IR)!

A Adafruit também oferece um aplicativo gratuito em iOS e Android para interagir com o dispositivo via Bluetooth.

Verificando o Bootloader

CircuitPython.org fornece arquivos .uf2 que facilitam a instalação do CircuitPython no dispositivo. No entanto, os dispositivos Bluefruit podem vir com um bootloader muito mais antigo. Por exemplo, se você executar isto:

$ cat /media/pi/CPLAYBTBOOT/INFO_UF2.TXT
UF2 Bootloader 0.2.9 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-755-g55874813) s140 6.1.1
Model: Adafruit Feather nRF52840 Express
Board-ID: nRF52840-Feather-revD
Bootloader: s140 6.1.1
Date: Feb 22 2019

Observe que o bootloader UF2 é anterior à versão 0.4.0, que é a versão mínima necessária para usar os arquivos .uf2 para instalar o CircuitPython. Então, vamos atualizá-lo.

Atualizando o Bootloader

Observe que esta etapa não é necessária se o bootloader for 0.4.0 ou mais recente! (veja acima)

Encontre a versão mais recente do bootloader .zip aqui e baixe a versão atual, especificamente um arquivo chamado: circuitplayground_nrf52840_bootloader-0.8.2_s140_6.1.1.zip (ou a versão mais recente).

Para instalar isso no dispositivo, use adafruit-nrfutil. Você pode instalar via pip3 install --user adafruit-nrfutil.

A partir daí, você pode atualizar o firmware com o bootloader atualizado:

adafruit-nrfutil --verbose dfu serial --package /home/pi/Downloads/circuitplayground_nrf52840_bootloader-0.8.3_s140_6.1.1.zip \
  -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200
Touched serial port /dev/ttyACM0
Opened serial port /dev/ttyACM0
Starting DFU upgrade of type 3, SoftDevice size: 151016, bootloader size: 39000, application size: 0
Sending DFU start packet
Sending DFU init packet
Sending firmware file
########################################
Activating new firmware

DFU upgrade took 20.90584897994995s
Device programmed.

Os 10 neopixels devem ficar verdes e o volume do CPLAYBTBOOT deve retornar.

$ cat /media/pi/CPLAYBTBOOT/INFO_UF2.TXT
UF2 Bootloader 0.8.3 lib/nrfx (v2.0.0) lib/tinyusb (0.12.0-145-g9775e7691) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7)

Instalando CircuitPython no Dispositivo

Agora, vamos baixar o arquivo circuitpython UF2 do Site de download do CircuitPython para BlueFruit.

Você pode arrastar OU copiar para o volume, conforme mostrado abaixo:

$ cp adafruit-circuitpython-circuitplayground_bluefruit-en_US-8.2.9.uf2 /media/pi/CPLAYBTBOOT/

Todos os 10 neopixels devem ficar vermelhos e o LED vermelho piscará levemente.

Agora você deve ver um drive CIRCUITPY, o que significa que o CircuitPython está instalado! A última coisa que precisamos fazer é instalar as bibliotecas Python. Elas estão aqui no circuitpython:

$ ls /media/pi/CIRCUITPY/lib
(no output!)

Para instalar bibliotecas, usaremos uma ferramenta adafruit chamada circup que opera de forma semelhante ao pip do python, exceto pelo CircuitPython:

$ pip3 install --user circup

Vamos baixar a lista de bibliotecas necessárias aqui.

$ circup install -r ~/Downloads/circup_libs_robotics_02_08_24.txt
Found device at /media/pi/CIRCUITPY, running CircuitPython 8.2.9.
Searching for dependencies for: ['adafruit_ble', 'adafruit_bluefruit_connect', 'adafruit_bus_device', 'adafruit_circuitplayground', 'adafruit_crickit', 'adafruit_gizmo', 'adafruit_hid', 'adafruit_lis3dh', 'adafruit_motor', 'adafruit_pixelbuf', 'adafruit_seesaw', 'adafruit_thermistor', 'found device at /media/pi/circuitpy, running circuitpython 8.2.9.', 'neopixel']
WARNING:
	found device at /media/pi/circuitpy, running circuitpython 8.2.9. is not a known CircuitPython library.
WARNING:
	typing-extensions is not a known CircuitPython library.
WARNING:
	typing-extensions is not a known CircuitPython library.
Ready to install: ['adafruit_ble', 'adafruit_bluefruit_connect', 'adafruit_bus_device', 'adafruit_circuitplayground', 'adafruit_crickit', 'adafruit_gizmo', 'adafruit_hid', 'adafruit_il0373', 'adafruit_lis3dh', 'adafruit_motor', 'adafruit_pixelbuf', 'adafruit_seesaw', 'adafruit_ssd1681', 'adafruit_st7789', 'adafruit_thermistor', 'neopixel']

Installed 'adafruit_ble'.
Installed 'adafruit_bluefruit_connect'.
Installed 'adafruit_bus_device'.
Installed 'adafruit_circuitplayground'.
Installed 'adafruit_crickit'.
Installed 'adafruit_gizmo'.
Installed 'adafruit_hid'.
Installed 'adafruit_il0373'.
Installed 'adafruit_lis3dh'.
Installed 'adafruit_motor'.
Installed 'adafruit_pixelbuf'.
Installed 'adafruit_seesaw'.
Installed 'adafruit_ssd1681'.
Installed 'adafruit_st7789'.
Installed 'adafruit_thermistor'.
Installed 'neopixel'.

Agora vamos verificar esse diretório:

$ ls /media/pi/CIRCUITPY/lib
adafruit_ble               adafruit_crickit.mpy       adafruit_lis3dh.mpy        adafruit_ssd1681.mpy
adafruit_bluefruit_connect adafruit_gizmo             adafruit_motor             adafruit_st7789.mpy
adafruit_bus_device        adafruit_hid               adafruit_pixelbuf.mpy      adafruit_thermistor.mpy
adafruit_circuitplayground adafruit_il0373.mpy        adafruit_seesaw            neopixel.mpy

Excelente! Nossas bibliotecas estão instaladas e estamos prontos para programar. Você pode seguir este fluxo para instalar outras bibliotecas CircuitPython que você pode precisar ao adicionar outros componentes ao robô.

Referências:

Thanks! We hope you found what you are looking for. Please feel free to contribute via Github.