Почему Digispark может быть HID, а Arduino Uno/Nano — нет?
Я пытался сделать проект с Nano в качестве головы, который был основан на V-USB-подобной библиотеке EasyHID. По неизвестным причинам эта попытка не увенчалась успехом, и мне не удалось заставить Nano работать правильно. Это нормально: ребята написали, что эта затея имеет менее 50% успеха, потому что 328p работает на грани своих возможностей при эмуляции протокола USB.
Позже я обнаружил, что некоторые люди используют Digispark в качестве основы для своих проектов HID, и он более стабилен, чем Nano. Пожалуйста, объясните, в чем основные отличия, благодаря которым Attiny выигрывает в проектах HID? И, кроме того, есть ли способ получать сигналы от 8 и более кнопок (аналоговая клавиатура?), когда P4 и P3 заняты как USB+ и USB-?
P.S. У меня пока нет Digispark для тестов, поэтому этот интерес гипотетический. У этой платы очень ограниченный функционал, поэтому я сомневаюсь, что смогу применить ее в других проектах.
@Mik, 👍-1
2 ответа
Лучший ответ:
Вы можете использовать многоканальный аналого-цифровой преобразователь, подключенный к Attiny через I2C. AD7606 даст вам 8 отдельных аналоговых входов, используя всего два контакта для подключения к шине I2C. В качестве альтернативы вы можете использовать ADS1115. Это снова чип аналого-цифрового преобразователя. У него всего 4 канала, но вы можете подключить два к одной шине I2C, чтобы получить 8 входных каналов. ADS1115 доступен на eBay в аккуратном корпусе, совместимом с макетной платой.
Я перепроверил ваше предложение использовать PCF8574P. Это на самом деле не аналого-цифровой преобразователь, а расширитель шины ввода-вывода, что означает, что он дает вам 8 цифровых входных/выходных контактов (не аналоговых). Эта часть снята с производства, но имеет то преимущество, что это DIP-корпус, поэтому ее легко монтировать на макетной плате.
Что касается вашего вопроса о том, какую плату использовать для HID-устройств, Arduino Nano не имеет встроенного USB-контроллера, поэтому его нельзя использовать для эмуляции USB-устройства, но ATtiny85 и Arduino Leonardo имеют.
В ответ на главный вопрос «Почему Digispark может быть HID, а Arduino Uno/Nano — нет?», основное отличие заключается в том, что процессор ATtiny85 в DigiSpark напрямую подключен к компьютеру через USB, в то время как в Nano/Uno между ними есть еще один чип.
Второй чип на Uno/Nano запрограммирован как USB-последовательное устройство, поэтому Uno/Nano не может быть HID-устройством без перепрограммирования этого чипа.
Прошивка Nicohood (без привязки, это всего лишь один пример, о котором я слышал) https://github.com/NicoHood/HID — это проект, цель которого — добавить функции к платам Uno путем обновления прошивки на USB-последовательном чипе на Uno.
Обратите внимание, что не все микросхемы USB-Serial можно обновить; насколько я понимаю, поддерживаются версии ATmega16u2.
- Разблокировка Digispark ATTiny85 после прошивки на HID
- Связь последовательного порта Digispark
- Библиотеки I2C для ATTiny85?
- Digispark ATtiny 85 - не распознается как HID устройство
- Клавиатура Digispark ATtiny85
- Digispark Atinny85 не распознан (проблема с загрузчиком)
- Mac для последовательной связи с Digispark ATtiny85
- Digispark Micro (ATTINY85) не работает на Macbook Pro 2016 г.