Я хотел бы узнать, как сделать свои собственные USB-гаджеты


29

Некоторое время я писал драйверы символьных устройств Linux для чужих вещей. Я хотел бы найти новое хобби, и мысль о том, чтобы сделать мои собственные USB-гизмо, кажется действительно опрятной.

Я был бы рад иметь возможность управлять некоторыми светодиодами, сервоприводами и шаговыми двигателями. Мне действительно нравится изучать новые вещи самостоятельно и волнение, когда что-то наконец работает. Я не занимался серьезным программированием на MC, но знаю свой путь.

Кто-нибудь может порекомендовать некоторые комплекты, которые будут полезны для полного noob? В идеале это:

  • Linux Friendly
  • Возможность доставки по всему миру (в настоящее время я живу в Азии)
  • Предложите наборы макетов

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

Моя конечная цель - создать свои собственные сборщики данных - от дождя до среднего децибела до уровня освещенности. Извините, если об этом уже спрашивали, я выполнил поиск (и искал теги).

Ответы:


26

Arduino очень популярны, и он является открытым исходным кодом аппаратных средств, поэтому существует варианты , в том числе третьей стороны Freeduinos под названием Bare Bones совет , в Really Bare Bones совет , и Boarduino , которые очень хороши для использования с макетами. Стандартный Arduino адаптирован с использованием вещей, называемых щитами. Вы можете сделать свой собственный щит или купить что-то вроде этого ProtoShield Kit.

Arduino использует чип или кабель FTDI USB-RS232. [В стандартную версию Arduino он встроен, в то время как на большинстве макетов используется специальный кабель с микросхемой внутри, что позволяет сэкономить немного денег.] Существует встроенный драйвер для Linux, Mac OS X и Windows. пользователи могут скачать драйвер. По сути, это означает, что Arduino действует как устройство, взаимодействующее через последовательный порт, и поэтому с ним очень легко общаться.

Чтобы использовать его, вы также загружаете программное обеспечение. Он поставляется с IDE, набором инструментов AVR-GCC, действительно хорошей библиотекой и программным обеспечением для загрузки вашей программы в чип. Он скрывает большинство деталей от вас и имеет большое сообщество. Он запрограммирован на языке «Wiring», но на самом деле это C ++.

Наконец, будучи аппаратным обеспечением с открытым исходным кодом, существуют схемы. Действительно, мне кажется, что я вспомнил, что было довольно легко построить более раннюю модель. Поиск "Arduino schematics" в вашей любимой поисковой системе даст вам хорошие результаты.

Что касается комплектов, Maker Shed предлагает много предметов, связанных с Arduino . Похоже, они отправляются по всему миру. Некоторые из них представляют интерес:

У Shoppe в Вульфдене (США) есть хорошие наборы для экспериментаторов, и, похоже, он поставляется по всему миру.

Solarbotics (Канада) имеет набор для экспериментатора ARDX Arduino, набор для начинающих Freeduino - Ultimate и набор для начинающих Arduino - BasicUltimate ) и, по-видимому, поставляется по всему миру.

На главной странице покупки Arduino перечислены поставщики Arduino во всех регионах мира.

Другие места, которые я бы проверил, включают Adafruit Industries и Sparkfun Electronics (оба в США).


1
Вау. Спасибо за то время, которое вы вложили в такой информативный ответ!
Тим Пост

3
Я рад это слышать. После того, как я написал ответ, я подумал про себя: «Не могу поверить, что я потратил сорок минут, отвечая на вопрос в Интернете!»
Клинтон Блэкмор

1
Отличный пост, но следует отметить, что не все Arduinos используют чип FTDI. Например, я использую свой Arduino Uno R3 под OS X без установленного драйвера. (Тот использует Atmega 16U2 для связи USB.)
exscape

12

Arduino - отличный инструмент для начала, когда вы хотите создавать электронные гаджеты, и он может привести вас к вашей конечной цели создания регистратора данных . Однако он не подходит для реальной разработки USB, поскольку он эмулирует старомодный последовательный порт. Это не позволит вам превратить его во что-либо еще (например, в устройство Human Interface Device (мышь / клавиатура) или устройство хранения данных (устройство чтения карт памяти / съемный диск)).

Если вы хотите сделать «настоящие» USB-гаджеты, загляните на сайт Яна Аксельсона . Он пишет "начинающим" книги о USB. Разработка гаджетов, использующих USB на этом уровне, может не подойти новичкам, поэтому опыт Arduino определенно поможет вам в этом.


Спасибо за ссылку. Я обязательно проверю это, как только «тренировочные колеса» сорвутся :)
Тим Пост

Это не совсем так ... Arduino Leonardo и все платы на базе Atmega32u4 позволяют вам создавать HID и любые другие нестандартные устройства
Дмитрий Гусаров

8

Я очень рекомендую учебник для слайдшоу Tuxgraphics AVR USB. В нем используется микроконтроллер Atmel AVR, в котором есть большое сообщество любителей (avrfreaks и т. Д.), И открытый только для программного обеспечения стек usb1.1 с сайта obdev.org. Он не может масштабироваться очень высоко (например, запоминающее устройство), но конечным продуктом является небольшая USB HID клавиатура с двумя назначаемыми кнопками. Было бы тривиально использовать его в качестве регистратора данных, и несколько примеров на obdev.org - именно это (www.obdev.at/products/vusb/projects.html). Он написан на чистом c, а список деталей составляет не более нескольких долларов.

В то же время я рекомендую собрать или купить программатор tuxgraphics avrusb500. Это радость в использовании, и это одно из самых надежных устройств, которым я владею. (Я не аффилирован - просто очень довольный клиент!)


8

Еще одно устройство, которое я хотел посмотреть, - это AT90USBKey . Прошло много времени с тех пор, как я посмотрел на него, и я не уверен, что вы можете программировать для него без Windows, но он будет действовать как USB-устройство (например, клавиатура или запоминающее устройство) или как USB-хост что вы подключаете другие устройства. Доступны примеры программ, и работать с ними довольно просто, при условии, что вы немного знакомы с электроникой и умеете программировать на C.

Поиск в Google для AT90USBKey и Linux дает многообещающие результаты.

Я знаю, что вы можете получить его с DigiKey.ca . Я искал эквивалент Digikey для Азии ; Вы можете получить часть от Фарнелла .


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


6

Если вы в конечном итоге используете Arduino, я перенес библиотеку V-USB (ранее AVR-USB) для запуска на нем. Он также обернут классом для облегчения взаимодействия.

С его помощью вы можете создавать устройства USB HID, например, клавиатуру, мышь или джойстик. Вы также можете создать универсальное устройство, которое использует libusb на хосте для управления им - из Python, C, Processing и т. Д.

Мой сайт имеет экран для печатной платы, который вы можете сделать, используя USB-разъем и несколько резисторов и т. Д.

http://code.rancidbacon.com/ProjectLogArduinoUSB

Вы можете написать код Arduino для отправки нажатий клавиш так же легко, как:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

или с помощью «драйвера» libusb вы можете отправлять такие данные:

UsbStream.write(0xff)

или читать данные с помощью:

UsbStream.read()

--Philip;


5

В настоящее время существует ряд плат для разработчиков на базе AVR-USB.

Я лично использовал ранее упомянутые Teensy и Bumble-B и думаю, что они оба великолепны.

Teensy хорош, потому что он действительно хорошо интегрируется в среду Arduino. Это означает, что вы можете делать что-то вроде «Mouse.init; Mouse.move (x, y)» вместо того, чтобы самостоятельно обрабатывать низкоуровневый USB-код. Оба будут запускать LUFA, если вы этого хотите.



4

Object Development создала библиотеку для микроконтроллеров AVR, которая позволяет вам делать очень дешевые USB-устройства самостоятельно (всего за 2-3 $). GCC для AVR является дружественным для Linux. Есть сотня устройств, уже сделанных. Посмотрите здесь: http://www.obdev.at/products/vusb/projects.html


0

Это зависит от того, какие USB-гаджеты вы хотите сделать, и от того, насколько продвинутый уровень. Вы упоминаете мигающие светодиоды. Такого рода управление может быть легко архивировано с помощью любого микроконтроллера с UART и чипом ftdi (Arduino довольно популярен, и его легко запустить). Чип ftdi подключается к uC последовательно и действует как последовательный <-> USB-конвертер. Он также отображается как виртуальный COM-порт на вашем компьютере.

Если вы хотите использовать более продвинутые USB-протоколы, драйверы и функции, вы можете получить универсальный пользовательский интерфейс с собственными USB-возможностями. Микрочип имеет много фото (их микроконтроллеров), которые могут сделать это, например. Microchip также имеет много плат для разработки, посвященных обучению использованию USB. 32-разрядные UC Atleast Microchips также поддерживают режимы хоста и otg, так что вы можете создать регистратор данных, который сохраняет данные на обычной карте памяти USB, которую можно подключить к компьютеру для чтения данных. (Я уверен, что многие другие производители также имеют аналогичные микросхемы и наборы разработчика, но я использовал только микрочип)

Домашняя страница Microchip / USB


0

Обратите внимание, что вам не нужно начинать с такого низкого электронного уровня и тратить больше времени на разработку самого «гизмо». Многие компании продают USB-устройства для рынка DIY, например:

http://www.yoctopuce.com

http://www.phidgets.com

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.