Arduino Nano BLE 33 пример скетча по умолчанию "USBHID> Клавиатура" делает Arduino непригодным для использования

Как возникла проблема

Я поиграл с использованием Arduino Nano BLE 33 в качестве клавиатуры и наткнулся на скетч USBHID> Keyboard, который я получил через предложение по умолчанию от менеджера платы для установки плат Arduino Mbed OS Nano:

Смотрите источник на github.com/arduino/ArduinoCore-mbed, или воспроизведено ниже:

#include "PluggableUSBHID.h"
#include "USBKeyboard.h"

USBKeyboard Keyboard;

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:
  delay(1000);
  Keyboard.printf("Hello world\n\r");
}

Это казалось довольно невинным, поэтому я загрузил его, не задумываясь, думая, что могу доверять всему, что предоставлено самим Arduino в качестве примера сценария.

В чем проблема

Но теперь, как только я подключаю Nano, он вводит Hello world, за которым следует новая строка every. одинокий. во-вторых.

Если я попытаюсь загрузить скетч blink, чтобы очистить его, мне сначала нужно выбрать порт, но процесс перехода через меню для выбора правильного порта занимает секунду, а при вводе Hello world выбирается диспетчер библиотек и в конечном итоге открывается при нажатии enter из-за \н\р. Таким образом, мой Arduino Nano стал бесполезным из-за кода, включенного в качестве примера в скетчи по умолчанию. Это не круто.

Неудачное решение № 1

Я попытался создать пользовательское сочетание клавиш, чтобы выбрать порт менее чем за секунду, а затем нажать cmd-U для загрузки, но я думаю, что там также может быть проблема, потому что я получаю эту ошибку:

    ...
    Found upload port: /dev/cu.usbmodem11401
    /Users/<my username>/Library/Arduino15/packages/arduino/tools/bossac/1.9.1-arduino2/bossac -d --port=cu.usbmodem11401 -U -i -e -w /var/folders/y1/md9_k_td4rz1f0pq26d24crh0000gn/T/arduino_build_230227/<my script name>.ino.bin -R 
->  No device found on cu.usbmodem11401
    An error occurred while uploading the sketch
    ....

Я абсолютно уверен, что cu.usbmodem11401 является правильным портом, потому что это то, что появляется, когда я использую ls /dev/cu * при подключении Arduino. Поэтому я думаю, что Arduino IDE пытается загрузить файл в cu.usbmodem11401, но видит, что это клавиатура, и решает, что он не может загрузить код на клавиатуру, поэтому прерывает работу.

Неудачное решение номер 2

Я попытался загрузить blink.ino с другого ноутбука (также macos), но ничего не изменилось.

Неудачное решение номер 3

Я пытался искать способы "не доверять" клавиатуре, чтобы Arduino не посылал удары по клавиатуре, но ничего не смог.

Неудачное решение номер 4

Возможно, попытка короткого замыкания любого провода, который Arduino использует для связи с ноутбуком, сработает, но я не знаю достаточно, чтобы сделать это, поэтому я бы просто случайным образом подключал провода к земле, чего я действительно не хочу делать ...

Плавник

Я в растерянности, не знаю, что попробовать. Я зарегистрировал проблему с репозиторием github, но я не могу придумать других решений.

, 👍0


1 ответ


Лучший ответ:

0

Согласно техническомузаданию...

3.6 Восстановление платы

Все платы Arduino имеют встроенный загрузчик, который позволяет прошивать плату через USB. В случае, если скетч блокирует процессор и плата больше не доступна через USB, можно перейти в режим загрузчика, дважды нажав кнопку сброса сразу после включения питания.

Итак, подключите его и дважды нажмите кнопку сброса. Затем он должен загрузить загрузчик, и он будет сидеть там, ожидая, пока вы его перепрограммируете.

,

Легенда. Большое спасибо! Теперь я пойду прочитаю таблицу данных..., @beyarkay