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ô.