A primeira opção que vamos ver de programação é o CircuitPython. Para minha surpresa, existe uma versão específica para esta placa e razoável documentação sobre ela.
- Conecte um botão entre o pino de Reset e o GND.
- Ligue a placa a um micro, via USB, e aperte duas vezes o botão.
- O micro vai reconhecer um drive; dentro dele tem o arquivo INFO_UF2.TXT.
- Neste arquivo tem a versão do bootloder, precisa ser 0.6.1 ou maior.
- Se for menor que 6, baixe a versão mais atual (procure update-nice_nano_bootloader-x.x.x_nosd em https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases/latest) e copie para o drive.
- Após a placa reiniciar, aperte novamente o botão duas vezes e confira novamente a versão.
No caso da minha placa, ela se identificou inicialmente como o drive "NICENANO", com bootloader versão 0.6.0.:
Após atualizar com update-nice_nano_bootloader-0.9.2_nosd.uf2:
Estando o bootloader correto instalado, basta copiar o arquivo uf2 do CircuitPython para o drive. Instalado o CircuitPython, você deve conseguir conectar com a IDE Thonny (configurada para CircuitPython generic).
Entre outras coisas, o CircuitPython possui suporte a BLE. Para isto é preciso instalar no diretório lib da placa os arquivos que estão em adrafruit_ble e adrafruit_hid do Adafruit CircuitPython Bundle.
Mova o botão que foi usado para o reset para entre o pino 009 e GND, carregue e rode o programa abaixo (adaptação de um dos exemplos do CircuitPython):
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import adafruit_ble
from adafruit_ble.advertising import Advertisement
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.standard.hid import HIDService
from adafruit_ble.services.standard.device_info import DeviceInfoService
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
button = DigitalInOut(board.P0_09)
button.direction = Direction.INPUT
button.pull = Pull.UP
hid = HIDService()
device_info = DeviceInfoService(software_revision=adafruit_ble.__version__,
manufacturer="DQSoft Industries")
advertisement = ProvideServicesAdvertisement(hid)
# Advertise as "Keyboard" (0x03C1) icon when pairing
# https://www.bluetooth.com/specifications/assigned-numbers/
advertisement.appearance = 961
scan_response = Advertisement()
scan_response.complete_name = "Magic Button"
ble = adafruit_ble.BLERadio()
if not ble.connected:
print("advertising")
ble.start_advertising(advertisement, scan_response)
else:
print("already connected")
print(ble.connections)
k = Keyboard(hid.devices)
kl = KeyboardLayoutUS(k)
while True:
while not ble.connected:
pass
print("Start typing:")
while ble.connected:
if not button.value: # pull up logic means button low when pressed
print("Sending")
kl.write("DQSoft") # use keyboard_layout for words
time.sleep(0.4)
ble.start_advertising(advertisement)
A placa vai se apresentar como um teclado BLE. Uma vez pareado e conectado a um micro, vai digitar DQSoft sempre que o botão for apertado.




Nenhum comentário:
Postar um comentário