Od jakiegoś czasu piszę sterowniki urządzeń znakowych dla Linuksa do rzeczy innych ludzi. Chciałbym znaleźć nowe hobby, a myśl o tworzeniu własnych gadżetów USB wydaje się naprawdę fajna.
Byłbym podekscytowany, mogąc kontrolować niektóre diody LED, serwomechanizmy i silniki krokowe. Naprawdę lubię uczyć się na własną rękę i emocje, gdy coś w końcu działa. Nie zrobiłem żadnego poważnego programowania MC, ale znam swoją drogę.
Czy ktoś może polecić jakieś zestawy, które byłyby pomocne dla kompletnego nooba? Idealnie są to:
- Przyjazny dla systemu Linux
- Możliwość wysyłki za granicę (obecnie mieszkam w Azji)
- Oferta zestawów do makiet
Jeśli masz czas i ochotę, linki do projektów na stronach innych osób, które zawierają schematy i listy części, będą mile widziane. Chcę uczyć się na przykładach, ale dobrych przykładach, dlatego tutaj pytam.
Moim ostatecznym celem jest stworzenie własnych modułów zbierających dane - od opadów deszczu przez średnie decybele po poziomy oświetlenia. Przepraszam, jeśli wcześniej o to pytano, szukałem (i wyszukiwałem tagi).
Arduino to świetne narzędzie na początek, gdy chcesz budować elektroniczne gadżety, i może doprowadzić cię do ostatecznego celu, jakim jest zbudowanie rejestratora danych . Jednak nie nadaje się do prawdziwego programowania USB, ponieważ emuluje stary port szeregowy. Nie pozwoli ci przekształcić się w nic innego (np. Human Interface Device (mysz / klawiatura) lub Mass Storage Device (czytnik kart / dysk wymienny)).
Jeśli chcesz tworzyć „prawdziwe” gadżety USB, odwiedź stronę Jana Axelsona . Pisze książki dla początkujących o USB. Opracowywanie gadżetów korzystających z USB na tym poziomie może nie być odpowiednie dla początkujących, więc korzystanie z Arduino na pewno pomoże ci na drodze.
źródło
Bardzo polecam samouczek prezentera pokazu slajdów Tuxgraphics AVR USB. Korzysta z mikrokontrolera AVR Atmel, który ma dużą społeczność hobbystów (avrfreaks itp.), Oraz stos usb1.1 oparty na oprogramowaniu open source z obdev.org. Nie można go skalować bardzo wysoko (na przykład pamięć masowa), ale końcowym produktem jest mała klawiatura USB HID z dwoma programowalnymi przyciskami. Byłoby trywialne używać go jako rejestratora danych, a kilka przykładów na obdev.org jest właśnie takich (www.obdev.at/products/vusb/projects.html). Jest napisany czystym c, a lista części to najwyżej kilka dolarów.
Jednocześnie polecam zbudować lub kupić programator tuxgraphics avrusb500. Z radością korzystam z tego i jednego z najbardziej niezawodnych urządzeń, jakie posiadam. (Nie jestem powiązany - po prostu bardzo zadowolony klient!)
źródło
Kolejnym urządzeniem, na które chciałem przyjrzeć się, jest AT90USBKey . Minęło trochę czasu, odkąd zaglądałem do niego i nie jestem pewien, czy możesz zaprogramować to bez systemu Windows, ale będzie działać jako urządzenie USB (jak klawiatura lub urządzenie pamięci masowej) lub jako host USB do którego podłączasz inne urządzenia. Dostępne są przykładowe programy, z którymi praca jest stosunkowo łatwa, pod warunkiem, że wiesz trochę o elektronice i umiesz pisać w C.
Wyszukiwarka Google dla AT90USBKey i Linux wygenerowała obiecujące wyniki.
Wiem, że możesz go pobrać z DigiKey.ca . Spojrzałem do góry digikey odpowiednik dla Azji ; możesz zdobyć tę część z Farnell .
źródło
Możesz także sprawdzić Teensy .
źródło
Jeśli skończysz używać Arduino, przeportowałem bibliotekę V-USB (poprzednio AVR-USB), aby na niej uruchomić. Jest również zapakowany w klasę, aby ułatwić interakcję.
Za jego pomocą można tworzyć urządzenia USB HID, np. Klawiaturę, mysz lub joystick. Możesz również stworzyć ogólne urządzenie, które używa libusb na hoście do sterowania nim - z Pythona, C, przetwarzania itp.
Moja strona ma tarczę PCB, którą możesz zrobić, która korzysta z gniazda USB i kilku rezystorów itp .:
http://code.rancidbacon.com/ProjectLogArduinoUSB
Możesz pisać kod Arduino, aby wysyłać naciśnięcia klawiszy tak łatwo, jak:
lub za pomocą „sterownika” libusb możesz wysyłać dane takie jak:
lub czytaj dane za pomocą:
--Philip;
źródło
Obecnie dostępnych jest wiele płyt programistycznych opartych na AVR-USB.
Osobiście korzystałem ze wspomnianych wcześniej Teensy i Bumble-B i uważam, że oba są świetne.
Teensy jest fajny, ponieważ bardzo dobrze integruje się ze środowiskiem Arduino. Oznacza to, że możesz robić takie rzeczy jak „Mouse.init; Mouse.move (x, y)” zamiast samodzielnie zajmować się kodem USB niskiego poziomu. Oba uruchomią LUFA, jeśli chcesz.
źródło
Oto mój prosty projekt PIC USB:
http://www.leonheller.com/usb
PCB są dostępne.
źródło
Object Development stworzył bibliotekę dla mikrokontrolerów AVR, która umożliwia samodzielne tworzenie bardzo tanich urządzeń USB (od zaledwie 2-3 $). GCC dla AVR jest przyjazny dla systemu Linux. Istnieją już setki wyprodukowanych urządzeń. Spójrz tutaj: http://www.obdev.at/products/vusb/projects.html
źródło
It depends on what kind of usb gadgets you want to make, and on how advanced level. You mention blinking leds. That kind of control can be easily archieved with any kind microcontroller with uart and a ftdi chip (arduino is pretty popular, and easy to begin one). The ftdi chip connects to the uC serially, and acts like a serial <-> USB converter. It also shows up as a virtual COM-port on your computer.
If you want to make use of more advanced usb protocols, drivers and features, you could get a uC with native usb capability. Microchip has many pics (their microcontrollers) that can do this, for example. Microchip also has many development boards dedicated to learning to use the usb. Atleast Microchips 32-bit uC support also host, and otg -modes, so you could build a datalogger that saves the data to a common usb memory stick, which you could plug to your computer to read the data. (I am sure many other manufacturers also have similar ICs and dev-kits, but Microchip is the only one I have used)
Microchip's homepage/USB
źródło
Note that you don't have to start at such a low electronic level and spare more development time for the "gizmo" itself. Many companies sell USB devices for the DIY market, for instance:
http://www.yoctopuce.com
http://www.phidgets.com
źródło