Jaki jest najprostszy i najtańszy sposób interfejsu z USB?

17

Jeśli chciałbym stworzyć proste urządzenie, które komunikuje się z moim komputerem, powiedzmy może przełącznik, który mógłby wyciszyć mój komputer po włączeniu i wyłączeniu i podłączyć go przez USB, jaki byłby najtańszy i najłatwiejszy sposób na osiągnięcie tego?

Sean
źródło
4
spójrz na mój zakres pojedynczego układu USB tutaj , trudno jest zrobić z mniejszą liczbą części 1 ATTiny45 i kilkoma zenerami, 2
Bardzo fajny projekt!
Code Painters

Odpowiedzi:

10

Najłatwiejszy? Złap Arduino i napisz kilka wierszy Pythona. Arduino są niezwykle łatwe w programowaniu, nie wymagają dodatkowego sprzętu do pracy i są dość popularne . Python ma bardzo prostą bibliotekę szeregową i jest łatwy do pisania.

Przykładowy kod

Python: Uruchom ten skrypt jako usługę. Używam Ubuntu, więc ten skrypt wyświetli powiadomienie informujące o naciśnięciu przycisku na Arduino.

#! /usr/bin/python

import serial
import pynotify

ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
  x = ser.read()
  if x == 'b':
    # Show notification
    n = pynotify.Notification("Arduino", "The button was pressed.")
    n.show()

Arduino:

void setup(){
  // Assuming button is active low and on pin 4
  pinMode(4, INPUT);
  Serial.begin(9600);
}

void loop(){
  if(digitalRead(4) == LOW){
    Serial.print('b');
  }
}

 

Nick Pascucci
źródło
czy możesz podać więcej szczegółów na temat korzystania z Pyserial do połączenia z Arduino? Doceniono próbkę kodu lub linki.
LeanerRocky 30.04.11
1
Jasne. Sprawdź przykład.
Nick Pascucci,
Naprawdę doceniam ten przykład. Jesteś legendą !!
LeanerRocky
Nie będzie to jednak najtańsze.
szybko_now
to nie jest „interfejs z USB”, ale tylko serial ftdi.
nonchip
8

Zbuduj urządzenie USB Human Interface Device Class. Tej samej klasy używają klawiatury, myszy, joysticki, pady do gier i tym podobne. Twój komputer ma już pełną obsługę sterowników urządzeń dla urządzeń HID, więc dostęp do oprogramowania jest łatwy. Wiele wskazówek, a nawet przykładowy kod można znaleźć na stronie HID Jana Axelsona . Przejrzyj jej stronę, aby znaleźć wiele dobrych informacji związanych z rozwojem urządzeń USB.

Wiele małych rodzin mikroprocesorów może obsługiwać identyfikatory HID. Ja nawet widziałem to zrobić na USB niską prędkością z ATtiny 8-pin AVR całości w oprogramowaniu.

Wybierz preferowany układ, a następnie wyszukaj w „zwykłych zasobach” próbki HID.

Innym podejściem jest wykonanie szeregowego urządzenia komunikacyjnego. Istnieje kilka rozwiązań pojedynczych układów FTDI . FT232R jest popularnym wyborem. Sterowniki są wymagane, ale sterowniki z certyfikatem Windows są znane kreatorowi znajdowania nowego sprzętu, więc instalacja nie jest trudna. Po zainstalowaniu masz urządzenie, które wygląda jak port COM. Dostępne są alternatywne sterowniki, które pozwolą uzyskać dostęp do pinów GPIO i używać go w bardziej zaawansowanych trybach.

Aktualizacja, 2015: Miał link do strony http://www.lvr.com/hidpage.htm , która prawdopodobnie zgniła link, a nowa lokalizacja została odkryta dzięki El Marce . Jan's Lakeview Research jest nadal doskonałym źródłem informacji na temat praktycznego wykorzystania USB.

RBerteig
źródło
Łącze Jana Axelsona jest zerwane. Znalazłem to ( janaxelson.com/hidpage.htm ), przeglądając googling: „Jan Axelson ukrył stronę”. Czy byłoby to tak miłe sprawdzić, czy jest właściwe? Dzięki!
El Marce
Dzięki. To jest teraz jej strona. Zgaduję, że Lakeview Research albo zgubił, albo wypuścił swoją starą nazwę domeny i została złapana przez kogoś nowego.
RBerteig,
1
Jeśli zdecydujesz się wybrać trasę FTDI, upewnij się, że otrzymałeś kabel z oryginalną częścią FTDI. FTDI (chińska firma) ma już dość podrabiania swoich żetonów, więc nauczyli swoich kierowców rozpoznawania własnych żetonów. Spowodowało to wiele kłopotów dla osób, które kupiły radiotelefony z kablami programującymi zbudowanymi z podrobionych układów, ponieważ producent radia kupił podrobione układy (mam nadzieję, że przez pomyłkę!).
John R. Strohm
1
FTDI to angielska firma (właściwie szkocka) z siedzibą w Glasgow.
szybko_now
@RBerteig link działa?
Fast Snail
6

Oto bardzo szczegółowy post na blogu http://msdn.microsoft.com/en-us/devlabs/dd491992 z oprogramowaniem do użycia PIC18F4550 poniżej 5 USD do interfejsu przez USB jako standardowego urządzenia HID. Dostarczone oprogramowanie może być użyte do połączenia z dowolnym urządzeniem HID, więc jeśli chcesz mieć inny układ, oprogramowanie będzie nadal działać.

Dodatkowym plusem jest to, że post na blogu pokazuje, jak wykonywać dwukierunkową komunikację, dzięki czemu nie tylko możesz połączyć interfejs z włącznikiem i wyłącznikiem LED.

JonnyBoats
źródło
3

Oto mój prosty projekt wykorzystujący PIC18F2455, oparty na oprogramowaniu USB Brada Mincha. Płytki drukowane są dostępne w Olimex.

Leon Heller
źródło
2

Jeśli nie przeszkadza ci mikrokontroler oparty na Cortex-M3, spójrz na LPC1343 NXP . W Digikey to tylko 6,30 $ (1 sztuka). Jest jedna bardzo fajna funkcja - oprogramowanie układowe do przechowywania i urządzenia HID w pamięci ROM układu!

W porównaniu do rozwiązania z układem FTDI + mikrokontrolerem jest o jeden układ mniej :)

Malarze kodów
źródło