Arduino hid: Как создать USB HID из Arduino? — Хабр Q&A

Содержание

Проекты с подключением по USB как HID устройство

    На главную
    Обзор программ
    Обзор плат
    Проекты на базе:
    Arduino Nano
    Arduino Uno
    Arduino Pro Micro
    Arduino Mega
    Digispark
    Проекты с использованием:
    Потенциометр
    Джойстик
    Кнопка
    Реле
    RGB
    Дисплей
    SD карта
    Электрон.
    ключ
    Энкодер
    Сдвиг. регистор
    Д. температуры
    Д. влажности
    Д. растояния
    Д. газа
    Батарея
    Средства связи:
    Bluetooth
    Android
    GSM
    USB
    I2C (TWI)
    SPI ICSP
    UART
    One Wire
    Парал.
    интерфейс
    Двигатели:
    Шаговый мотор
    Постоянного тока
    Servo
    Еще:
    О нас
    Oбъявление
    Обратная связь
    YouTube канал

Проекты с подключением по USB как HID устройство

Кнопка Лентяйка для World of Tanks на базе Digispark ATtiny 85

Здравствуйте друзья!

Сегодня у меня геймерская тема.

И я раcскажу об этом устройстве, как оно работает и как его сделать своими руками.

Открыть полностью

Автокликер своими руками на базе Digispark Attiny85. С рандомной задержкой между кликами.

Дешевый и простой в использовании настраиваемый автокликер, который не станет кричать через неделю, мол пробная версия закончилась:)

После прошивки, плата Digispark определяется компьютером, как компьютерная мышь…

Открыть полностью

Самодельная клавиатура с макросами на базе Arduino Pro Micro

Это клавиатура на 30 кнопок, на одну такую кнопку, можно запрограммировать какое то действие, или даже последовательность из нескольких действий.

Можно забиндить любые функции: для программ, для игр, для командной строки, да для чего угодно!

Открыть полностью

Крутой менеджер паролей своими руками на Arduino Pro Micro Atmega32u4 с защитой от кражи.

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

Открыть полностью

Безопасно храните свои конфиденциальные данные при совместном использовании эскиза | Документация Arduino

Узнайте, как обмениваться эскизами, не раскрывая конфиденциальные данные, такие как учетные данные Wi-Fi и ключи API.

ПОСЛЕДНЯЯ РЕДАКЦИЯ:

11.11.2022, 08:56

Часто в вашем эскизе есть некоторые конфиденциальные данные, которые вы хотели бы сохранить в тайне, которые могут случайно стать общедоступными при публикации на GitHub или когда вы поделиться своим эскизом с кем-то еще через URL. Эта конфиденциальная информация может включать имена и пароли сетей Wi-Fi, ключ API и т. д. Но теперь вы можете добавить секретную вкладку в свой эскиз и хранить там свои личные данные.

Эта функция была разработана специально для Arduino Create Editor. Если вы еще не пробовали, следуйте этому руководству, чтобы начать — все, что вам нужно, это идентификатор Arduino. Как это работает?

Давайте начнем с примера, чтобы вы могли понять, как это работает.

Перейдите на панель Библиотеки и введите ‘Wifi101’ на вкладке поиска, затем нажмите на пример ConnectWithWPA . Вы также можете нажать на эту ссылку и добавить пример в свой альбом для рисования.

share_secure_sketches_img_1

Как видите, есть несколько идентификаторов, таких как

 SECRET_SIID 

и

 SECRET_PSW 

. Если вы сейчас нажмете на вкладку «Секрет», вы увидите несколько полей ввода, где вы можете заполнить свои данные.

Если у вас есть MKR1000, вы можете загрузить на него этот скетч и посмотреть, как ваша плата подключается к Интернету (только убедитесь, что вы подключены к сети Wi-Fi 2 ГГц).

share_secure_sketches_img_2 share_secure_sketches_img_3

Как добавить секретные значения в собственный скетч

Напишите свой скетч как обычно.

share_secure_sketches_img_4

В эскизе замените строки, содержащие конфиденциальные данные, написав

 SECRET_NAMEYOUWANT 

.

Например, если ваша строка

 "psw" 

, вы должны заменить ее на

 СЕКРЕТ_PSW 

. Убедитесь, что все эти идентификаторы указаны заглавными буквами.

share_secure_sketches_img_5

Вкладка «Секрет» будет создана автоматически , как только вы наберете

 SECRET_SOMETHING 

. Перейдите на вкладку «Секрет» и заполните поля конфиденциальными значениями.

share_secure_sketches_img_6

Вот и все! Если вы поделитесь этим эскизом с кем-либо через URL-адрес или загрузите его, значения на вкладке будут пустыми.

share_secure_sketches_img_7

Кроме того, вы также можете нажать кнопку вкладки и добавить вкладку «Секрет» прямо оттуда. Эти инструкции будут представлены для быстрого ознакомления.

share_secure_sketches_img_8

Если вы хотите добавить еще одно поле, скажем, для хранения пин-кода для вашей SIM-карты или токена API, мы можем добавить необязательное поле. Все, что нам нужно сделать, это добавить это в начало нашего скетча:

 

1const char optional[] = SECRET_OPTIONAL;

Итак, скажем, мы используем

 SECRET_SSID 

и

 SECRET_PASS 

, этот будет просто добавлен таким же образом.

img редактора

Теперь, если мы перейдем на вкладку Secret , она будет видна, и вы сможете ввести свои дополнительные учетные данные.

img секретной вкладки

Скачать скетч

Если вы скачаете скетч, мы автоматически создадим файл с именем arduino_secrets.h и добавим его в ZIP-файл. Если вы откроете скетч в Desktop IDE, вы сможете заполнить эту вкладку своими секретами, как обычно.

share_secure_sketches_img_9

Технические подробности

Все введенные вами значения будут считаться строками.

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

Вы сможете удалить вкладку «Секрет», просто удалив идентификаторы

 SECRET_XX 

из файла .ino.

Дополнительные уроки

Дополнительные руководства можно найти на странице документации Arduino Cloud.

Андреа Гранди – Как безопасно хранить секреты Arduino

Вы только что получили новую плату Arduino (возможно, с поддержкой Wi-Fi), написали полезное приложение и собираетесь поделиться им на GitHub.

Если ваш код выглядит так:

 #include 
символ ssid[] = "myessid"
char pass[] = "мой пароль"
...
 

сделай а не поделись! Вы раскроете всем свой ESSID, пароль и, возможно, другие секреты.

Сохранить секреты во внешнем файле

Создать отдельный файл с именем arduino_secrets.h :

 #define SECRET_SSID "myessid"
#define SECRET_PASS "мой пароль"
 

и изменить основной файл следующим образом:

 #include  h>
#include 
символ ssid[] = SECRET_SSID проход символа [] = SECRET_PASS ...

Примечание: с использованием соглашения об именах SECRET_... также полезно, если вы используете Веб-редактор Arduino https://create.arduino.cc/projecthub/Arduino_Genuino/store-your-private-data-safely-when-sharing-a-sketch-e7d0f0, потому что эти значения будут автоматически добавлены на секретную вкладку и будет виден только вам, даже если вы поделитесь своим проектом.

Исключить файл секретов из git

Перемещение секретов в arduino_secrets.h было бы бессмысленно, если бы мы отправили этот файл на GitHub. Чтобы избежать этой ошибки, добавьте arduino_secrets.h к .gitignore (создайте его в корне проекта, если он еще не существует).

Добавьте пример для файла секретов

Если вы просто скроете исходный arduino_secrets.h , другие пользователи, которые захотят повторно использовать ваш код, могут не знать, что вставить внутрь. Создайте пример файла с именем arduino_secrets.h.example с фиктивными значениями:

 #define SECRET_SSID "foo"
#define SECRET_PASS "foo"
 

и документ, что это нужно переименовать в arduino_secrets.h

Что делать, если мне нужно создать свой код в CI?

Если вы хотите создать свой код в среде CI, полный исходный код должен быть там, но в то же время вы все равно не хотите отправлять свои секреты на GitHub. Что делать тогда?

Храните свои секреты в переменных среды

Создайте переменную среды в своем CI (или установите ее локально на своем компьютере, если хотите создать ее локально) для каждого секрета:

 export WIFI_SSID_NAME="myessid"
экспорт WIFI_PASSWORD="мой пароль"
 

Создайте Makefile

Добавьте Makefile в свой проект, подобный этому:

 #!/bin/bash
ВЫВОД = "arduino_secrets.h"
ардуино_секреты:
    @echo "Создание $(ВЫВОД)"
    @[ -e $(ВЫВОД) ] && rm $(ВЫВОД)
    @echo "#define SECRET_SSID \"$(WIFI_SSID_NAME)\"" >> $(ВЫВОД)
    @echo "#define SECRET_PASS \"$(WIFI_PASSWORD)\"" >> $(OUTPUT)
 

Если вы запустите make , вы сгенерируете файл с именем arduino_secrets.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *