Skip to content

V USB для Arduino

Nikolay O. Zabrodotskiy edited this page Apr 6, 2016 · 1 revision

О V-USB

V-USB - программная реализация стека USB 1.x для микроконтроллеров ATMega. Сайт проекта находится здесь

V-USB для Arduino

Проект существует довольно давно, официальный сайт здесь. Библиотека обеспечивает базовую функциональность работы c USB "напрямую". Другими словами, проект позволяет ваять собственные USB-устройства прямо в среде Arduino. К сожалению, библиотека не претендует на полноту, но её вполне достаточно для начального освоения. К несчастью, проект давно не развивался, последний check-in датируется 2010 годом.

Изменения для ARCAdaptor

Для работы с ARCAdaptor были сделаны следующие изменения:

  • Обновлен стек V-USB до последней версии
  • Переключены контакты USB для соответствия ARCAdaptor
  • Мелкие изменения в коде для совместимости с новыми версиями GCC и Arduino IDE соотвественно

Состав проекта

Проект состоит собственно из набора библиотек и примеров на языке Python.

Библиотеки:

  • USBDevice - абстрактное USB-устройство
  • USBKeyboard - набор классов для работы с HID-устройством (клавиатурой) - т.е. можно создавать собственные проекты, например "большую красную кнопку", выглядеть она будет, как USB-устройство и не потребует дополнительных драйверов
  • USBStream - USB-устройство, позволяющее осуществлять чтение и запись в него

Примеры - каждый класс "комплектуется" примером на языке Python. Соответственно, нужно установить сам Python и еще библиотеку PyUSB. Тестирование проводилось в MacOS и Windows - в целом, успешно.

Установка

Скопируйте содержимое папки libraries в соответствующую директорию на жестком диске (My Documents/Arduino/Libraries) - эта директория уже есть на вашем жестком диске после установки Arduino IDE

Теперь можно открывать примеры и пробовать их компилировать, ну и "заливать" в ARCAdaptor.

Как уже было сказано, для работы примеров требуется интерпретатор языка Python и библиотека PyUSB. К счастью, для Arduino IDE c версии 1.х уже не требуется ручная компиляция объектных файлов, как это указано в оригинальных readme.

Скачать библиотеки можно отсюда