Qual è il modo più semplice ed economico per interfacciarsi con USB?


17

Se volessi realizzare un dispositivo semplice che comunichi con il mio computer, dire forse uno switch che potrebbe silenziare il mio computer quando acceso e spento e collegarlo tramite USB, quale sarebbe il modo più economico e più semplice per farlo?


4
guarda il mio ambito di chip singolo USB qui , è difficile fare con meno parti 1 ATTiny45 e un paio di zener, 2 canali

Progetto fantastico!
Code Painters,

Risposte:


10

Più semplice? Prendi un Arduino e scrivi un paio di righe di Python. Gli Arduino sono incredibilmente facili da programmare, non richiedono hardware aggiuntivo con cui lavorare e sono abbastanza popolari . Python ha una libreria seriale molto semplice ed è un gioco da ragazzi scrivere.

Codice di esempio

Python: esegui questo script come servizio. Sto usando Ubuntu, quindi questo script farà apparire una notifica che ti dice quando è stato premuto un pulsante su 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');
  }
}

 


puoi fornire maggiori dettagli sull'uso di pyserial per l'interfaccia con Arduino? Esempio di codice o collegamenti apprezzati.
LeanerRocky,

1
Cosa certa. Guarda l'esempio.
Nick Pascucci,

Apprezzo molto l'esempio. Sei una leggenda !!
Leaner Rocky

Non sarà più economico però.
quick_now

questa non è "interfaccia con usb" ma solo seriale ftdi.
nonchip

8

Costruisci un dispositivo USB Human Interface Device Class. Questa è la stessa classe utilizzata da tastiere, mouse, joystick, game pad e simili. Il tuo PC ha già il supporto completo del driver di dispositivo per i dispositivi HID, quindi l'accesso al software è facile. Molti puntatori e persino un codice di esempio sono disponibili nella pagina HID di Jan Axelson . Sfoglia il suo sito per molte informazioni utili relative allo sviluppo di dispositivi USB.

Molte piccole famiglie di microprocessori possono eseguire HID. L'ho anche visto fatto a bassa velocità USB con un AVR a 8 pin ATtiny interamente nel software.

Scegli il tuo chip preferito, quindi cerca le sue "risorse abituali" per i campioni HID.

Un altro approccio è quello di creare un dispositivo di comunicazione seriale. Esistono diverse soluzioni a chip singolo di FTDI . Il FT232R è una scelta popolare. I driver sono richiesti, ma i driver certificati Windows sono noti alla procedura guidata Trovato nuovo hardware, quindi l'installazione non è difficile. Una volta installato, hai un dispositivo che assomiglia a una porta COM. Sono disponibili driver alternativi che ti permetteranno di accedere ai suoi pin GPIO e utilizzarlo in modalità più avanzate.

Aggiornamento, 2015: questo aveva un link a http://www.lvr.com/hidpage.htm , che sembra essere marcito e che la nuova posizione è stata scoperta grazie a El Marce . Jan's Lakeview Research è ancora un'ottima fonte di informazioni sull'uso pratico dell'USB.


Il collegamento di Jan Axelson è interrotto. Ho trovato questo ( janaxelson.com/hidpage.htm ) da Google : "Jan Axelson ha nascosto la pagina". Sarebbe così gentile verificare che sia quello giusto? Grazie!
El Marce

Grazie. Questo è il suo sito adesso. Immagino che Lakeview Research abbia perso o rilasciato il vecchio nome di dominio e sia stato catturato da qualcuno di nuovo.
RBerteig,

1
Se si sceglie di seguire il percorso FTDI, assicurarsi di ottenere un cavo con una parte FTDI originale. FTDI (una società cinese) si è stancata di contraffare le proprie patatine, così hanno insegnato ai loro autisti a riconoscere le proprie patatine. Ciò ha causato molti problemi alle persone che hanno acquistato radio bidirezionali con cavi di programmazione costruiti con i chip contraffatti, perché il produttore della radio ha acquistato i chip contraffatti (si spera per errore!).
John R. Strohm,

1
FTDI è una società inglese (beh, in realtà scozzese) con sede a Glasgow.
quick_now

@RBerteig link funziona?
Fast Snail,

6

Ecco un post sul blog molto dettagliato http://msdn.microsoft.com/en-us/devlabs/dd491992 con software per utilizzare un PIC18F4550 a meno di $ 5 per interfacciarsi tramite USB come dispositivo HID standard. Il software fornito può essere utilizzato per interfacciarsi con qualsiasi dispositivo HID, quindi se si desidera un chip alternativo il software continuerà a funzionare.

Un ulteriore vantaggio è che il post sul blog mostra come eseguire la comunicazione bidirezionale, quindi non solo puoi interfacciare un interruttore, ma puoi accendere e spegnere un LED.


3

Ecco un mio semplice progetto che utilizza un PIC18F2455, basato sul software USB di Brad Minch. I PCB sono disponibili presso Olimex.


2

Se non ti dispiace microcontrollore basato su Cortex-M3, dai un'occhiata a LPC1343 di NXP . Digikey costa solo $ 6,30 (1 pezzo). C'è una funzionalità davvero interessante: il firmware per dispositivi di archiviazione e HID nella ROM del chip!

Rispetto a una soluzione con chip FTDI + microcontrollore, c'è un chip in meno :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.