Apa cara paling sederhana dan termurah untuk berinteraksi dengan USB?

17

Jika saya ingin membuat perangkat sederhana yang berkomunikasi dengan komputer saya, katakanlah mungkin sebuah saklar yang dapat mematikan komputer saya ketika dinyalakan dan dimatikan dan mencolokkannya melalui USB, apa cara termurah dan termudah untuk mencapai ini?

Sean
sumber
4
lihat lingkup chip tunggal usb saya di sini , sulit dilakukan dengan lebih sedikit bagian 1 ATTiny45 dan beberapa zener, 2 chanels HID
Sangat dingin proyek!
Kode Pelukis

Jawaban:

10

Termudah? Raih Arduino dan tulis beberapa baris Python. Arduino sangat mudah diprogram, tidak memerlukan perangkat keras tambahan untuk bekerja dengannya, dan memang demikian cukup populer . Python memiliki sangat perpustakaan serial yang mudah dan mudah untuk menulis.

Kode Contoh

Python: Jalankan skrip ini sebagai layanan. Saya menggunakan Ubuntu, jadi skrip ini akan memunculkan pemberitahuan yang memberi tahu Anda ketika tombol telah ditekan pada 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
sumber
dapatkah Anda memberikan detail lebih lanjut tentang penggunaan pyserial ke antarmuka dengan Arduino? Sampel kode atau tautan dihargai.
LeanerRocky
1
Tentu. Periksa contoh.
Nick Pascucci
Saya sangat menghargai contohnya. Kamu adalah legenda !!
LeanerRocky
Tidak akan meskipun termurah.
cepat
itu bukan "antarmuka dengan usb" tetapi seri ftdi saja.
nonchip
8

Membangun perangkat Kelas Perangkat Antarmuka Manusia USB. Itu adalah kelas yang sama yang digunakan oleh keyboard, mouse, joystick, game pad, dan sejenisnya. PC Anda sudah memiliki dukungan driver perangkat lengkap untuk perangkat HID, sehingga akses perangkat lunak mudah. Banyak petunjuk dan bahkan kode sampel dapat ditemukan di halaman HID Jan Axelson . Jelajahi di sekitar situsnya untuk banyak informasi bagus terkait pengembangan perangkat USB.

Banyak keluarga mikroprosesor kecil dapat melakukan HID. Saya bahkan pernah melihatnya dilakukan pada Kecepatan Rendah USB dengan AVR 8-pin ATtiny sepenuhnya dalam perangkat lunak.

Pilih chip pilihan Anda, lalu cari "sumber daya biasa" untuk sampel HID.

Pendekatan lain adalah membuat perangkat komunikasi serial. Ada beberapa solusi chip tunggal dari FTDI . Itu FT232R adalah pilihan yang populer. Driver diperlukan, tetapi driver Windows Certified dikenal oleh wizard Found New Hardware sehingga instalasi tidak sulit. Setelah diinstal, Anda memiliki perangkat yang mirip port COM. Tersedia driver alternatif yang memungkinkan Anda mengakses pin GPIO dan menggunakannya dalam mode yang lebih canggih.

Pembaruan, 2015: Ini memiliki tautan ke http://www.lvr.com/hidpage.htm , yang tampaknya memiliki tautan yang membusuk dan lokasi baru ditemukan berkat El Marce . Jan's Lakeview Research masih merupakan sumber yang bagus untuk informasi tentang penggunaan praktis USB.

RBerteig
sumber
Tautan Jan Axelson rusak. Saya menemukan ini ( janaxelson.com/hidpage.htm ) dengan googling: "jan axelson hid page". Apakah ini baik untuk memverifikasi apakah yang benar? Terima kasih!
El Marce
Terima kasih. Itu adalah situsnya sekarang. Saya menduga Lakeview Research kehilangan atau merilis nama domain lama mereka dan diambil oleh seseorang yang baru.
RBerteig
1
Jika Anda memilih untuk pergi rute FTDI, pastikan Anda mendapatkan kabel dengan bagian FTDI asli. FTDI (sebuah perusahaan Cina) sakit dan lelah karena memiliki chip mereka palsu, jadi mereka mengajari pengemudi mereka untuk mengenali chip mereka sendiri. Ini telah menyebabkan BANYAK masalah bagi orang-orang yang membeli radio dua arah dengan kabel pemrograman yang dibangun dengan chip palsu, karena produsen radio membeli chip palsu (mudah-mudahan tidak sengaja!).
John R. Strohm
1
FTDI adalah perusahaan Inggris (well, sebenarnya Skotlandia) yang berbasis di Glasgow.
cepat pada
Kerja tautan @RBerteig?
Fast Snail
6

Berikut ini adalah posting blog yang sangat rinci http://msdn.microsoft.com/en-us/devlabs/dd491992 dengan perangkat lunak untuk menggunakan PIC18F4550 di bawah $ 5 untuk berinteraksi melalui USB sebagai perangkat HID standar. Perangkat lunak yang disediakan dapat digunakan untuk antarmuka ke perangkat HID apa pun, jadi jika Anda menginginkan chip alternatif, perangkat lunak itu masih akan berfungsi.

Nilai tambah lainnya adalah bahwa posting blog menunjukkan kepada Anda bagaimana melakukan komunikasi dua arah sehingga Anda tidak hanya dapat menghubungkan sakelar, Anda juga dapat menghidupkan dan mematikan LED.

JonnyBoats
sumber
3

Ini adalah proyek sederhana saya menggunakan PIC18F2455, berdasarkan perangkat lunak USB Brad Minch. PCB tersedia dari Olimex.

Leon Heller
sumber
2

Jika Anda tidak keberatan mikrokontroler berbasis Cortex-M3, lihatlah LPC1343 NXP . Ini hanya $ 6,30 di Digikey (1 buah). Ada satu fitur yang sangat keren - firmware untuk penyimpanan dan perangkat HID dalam ROM chip!

Dibandingkan dengan solusi dengan chip FTDI + mikrokontroler, ada satu chip yang kurang :)

Pelukis Kode
sumber