Я хотів би дізнатися, як зробити власні USB-гаджети


29

Я певний час пишу драйвери пристроїв для персонажів Linux для речей інших людей. Я хотів би знайти нове хобі, і думка зробити власні USB-штучки здається дуже акуратною.

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

Хто-небудь може порекомендувати кілька комплектів, які були б корисні повній нобі? В ідеалі вони:

  • Linux Friendly
  • Можливість доставки на міжнародному рівні (зараз я живу в Азії)
  • Пропонуйте комплекти макетів

Якщо у вас є час і нахил, буде дуже вдячна посилання на проекти на інших сайтах, які містять схеми та списки деталей. Я хочу вчитися на прикладах, але хороших прикладів, саме тому я тут прошу.

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

Відповіді:


26

Arduino дуже популярні, і він є відкритим вихідним кодом апаратних засобів, тому існує варіанти , в тому числі третьої сторони Freeduinos під назвою Bare Bones рада , в Really Bare Bones рада , і Boarduino , які дуже гарні для використання з макетами. Стандартний Arduino адаптований за допомогою речей, званих Щитами. Ви можете зробити власний щит для дошки або придбати щось подібне до цього комплекту ProtoShield.

Arduino використовує мікросхему або кабель FTDI USB-RS232. [У стандартного Arduino є його вбудований, тоді як більшість дощок для хліба використовують спеціальний кабель, який має мікросхему всередині, і економить гроші.] Є вбудований драйвер для Linux, Mac OS X і Windows користувачі можуть завантажити драйвер. Ефективно це означає, що Arduino діє як пристрій, що спілкується через послідовний порт, і тому з ним дуже легко спілкуватися.

Для його використання ви також завантажуєте програмне забезпечення. Він постачається з IDE, ланцюжком інструментів AVR-GCC, дуже приємною бібліотекою та програмним забезпеченням для завантаження програми на чіп. Він приховує від вас більшість деталей і має велике співтовариство. Він запрограмований мовою під назвою "Проводка", але це справді C ++.

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

Що стосується комплектів, то Maker Shed пропонує на складі багато предметів, пов'язаних з Arduino . Вони, здається, доставляють по всьому світу. Серед цікавих цікавостей є:

Шоппа в Wulfden (США) має хороші експериментатори комплекти, і , як видається , судно на міжнародному рівні .

Solarbotics (Канада) має набір ARDX Arduino експериментатора , а Freeduino Starter Bundle - Ultimate і Arduino Starter Bundle - BasicНеперевершена ), і , як видається , судно на міжнародному рівні .

У «купити» сторінка головного Arduino в списки Arduino постачальників у всіх районах земної кулі.

Інші місця, які я перевірив би, включають Adafruit Industries та Sparkfun Electronics (обидва в США).


1
Ого. Дякую за час, який ви вклали в таку інформативну відповідь!
Tim Post

3
Я радий це почути. Після того як я написав відповідь, я подумав собі: "Я не можу повірити, що я просто провів сорок хвилин, відповідаючи на запитання в Інтернеті!"
Клінтон Блекмор

1
Чудовий пост, але слід зазначити, що не всі Arduinos використовують чіп FTDI. Наприклад, я використовую мій Arduino Uno R3 під ОС X без встановленого драйвера. (Цей використовується Atmega 16U2 для зв'язку через USB.)
Екскрейд

12

Arduino - це чудовий інструмент для початку, коли ви хочете створити електронні гаджети, і це може привести вас до вашої кінцевої мети - створення реєстратора даних . Однак він не підходить для справжньої розробки USB, оскільки він імітує старомодний послідовний порт. Це не дозволить вам перетворити його на що-небудь інше (наприклад, пристрій людського інтерфейсу (миша / клавіатура) або пристрій масового зберігання (картридер / знімний диск)).

Якщо ви хочете зробити "справжні" USB-гаджети, ознайомтеся з сайтом Яна Аксельсона . Він пише книги для початківців про USB. Розробка гаджетів, які використовують USB на цьому рівні, може не підходити для початківців, хоча досвід Arduino обов'язково приведе вас у дорогу.


Дякую за посилання Я обов'язково перевіряю це, як тільки «навчальні колеса» зійдуть :)
Tim Post

Це не зовсім вірно ... Ардуїно Леонардо та всі плати на базі 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 для Азії ; ви можете отримати частину від Farnell .


За даними пов’язаного сайту, схоже, що дошку можна запрограмувати через 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()

- Філіп;


5

Зараз існує ряд плат для розробників на базі AVR-USB.

Я особисто користувався згаданими раніше Teensy і Bumble-B і думаю, що вони обидва чудові.

Підліток приємний, тому що він дуже добре інтегрується з середовищем 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 має багато фотографій (їх мікроконтролерів), які можуть це зробити, наприклад. Microchip також має багато плат для розробки, присвячених навчанню користуватися usb. 32-розрядна підтримка Atleast Microchips також підтримує хостинг, а отг -модеси, так що ви можете створити реєстратор даних, який зберігає дані на загальній пам'яті usb-пам'яті, яку ви можете підключити до комп'ютера, щоб прочитати дані. (Я впевнений, що багато інших виробників також мають подібні ІС та комплекти розробників, але Microchip - це єдиний, який я використовував)

Домашня сторінка Microchip / USB


0

Зауважте, що вам не потрібно починати на такому низькому електронному рівні і витрачати більше часу на розробку для самої "штучки". Багато компаній продають USB-пристрої для DIY ринку, наприклад:

http://www.yoctopuce.com

http://www.phidgets.com

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.