Saya ingin belajar cara membuat gadget USB sendiri

29

Saya telah menulis driver perangkat karakter Linux untuk barang orang lain selama beberapa waktu. Saya ingin mencari hobi baru dan pemikiran untuk membuat alat USB sendiri sepertinya sangat rapi.

Saya akan senang bisa mengendalikan beberapa LED, servos, dan motor langkah. Saya sangat menikmati belajar hal-hal baru sendiri dan kegembiraan ketika sesuatu akhirnya bekerja. Saya tidak melakukan pemrograman MC yang serius, tetapi saya tahu jalannya.

Adakah yang bisa merekomendasikan beberapa kit yang akan bermanfaat untuk noob yang lengkap? Idealnya, mereka adalah:

  • Ramah Linux
  • Mampu mengirim internasional (Saya saat ini tinggal di Asia)
  • Tawarkan kit papan tempat memotong roti

Jika Anda punya waktu dan kecenderungan, tautan ke proyek di situs orang lain yang mencakup skema dan daftar suku cadang akan sangat dihargai. Saya ingin belajar dari contoh, tetapi contoh yang baik , itulah sebabnya saya bertanya di sini.

Tujuan akhir saya adalah membuat pengumpul data sendiri - mulai dari curah hujan hingga desibel rata-rata hingga tingkat cahaya. Maaf jika ini telah ditanyakan sebelumnya, saya memang mencari (dan mencari tag).

Pos Tim
sumber

Jawaban:

26

The Arduino benar-benar populer, dan itu adalah hardware open-source, sehingga ada variasi , termasuk pihak ketiga Freeduinos disebut Bare Bones Dewan , yang benar-benar Bare Bones Dewan , dan Boarduino , yang sangat bagus untuk menggunakan dengan breadboards. Arduino standar diadaptasi menggunakan hal-hal yang disebut Shields. Anda dapat membuat pelindung papan tempat memotong roti sendiri atau membeli sesuatu seperti ProtoShield Kit ini.

Arduino menggunakan chip atau kabel FTDI USB-RS232. [Arduino standar membangunnya, sementara sebagian besar papan roti menggunakan kabel khusus yang memiliki chip di dalamnya, dan menghemat uang bagi Anda.] Ada driver bawaan untuk Linux, dan Mac OS X dan Windows pengguna dapat mengunduh driver. Secara efektif, ini berarti bahwa Arduino bertindak sebagai perangkat yang berkomunikasi pada port serial, sehingga sangat mudah untuk berkomunikasi.

Untuk menggunakannya, Anda juga mengunduh perangkat lunak. Muncul dengan IDE, toolchain AVR-GCC, perpustakaan yang sangat bagus, dan perangkat lunak untuk mengunggah program Anda ke chip. Itu menyembunyikan sebagian besar detail dari Anda, dan memiliki komunitas yang hebat. Ini diprogram dalam bahasa yang disebut "Wiring", tetapi itu benar-benar C ++.

Terakhir, sebagai perangkat keras open-source, ada skema di luar sana. Memang, saya ingat pernah membaca bahwa cukup mudah untuk membangun model sebelumnya. Mencari "skema Arduino" di mesin pencari favorit Anda akan memberikan hasil yang baik.

Sedangkan untuk kit, Maker Shed menawarkan banyak item terkait Arduino dalam stok. Mereka muncul untuk dikirim ke seluruh dunia. Beberapa yang menarik termasuk:

The Shoppe di Wulfden (AS) memiliki peneliti bagus kit, dan tampaknya kapal internasional.

Solarbotics (Kanada) memiliki ARDX Arduino Experimenter's Kit , Bundel Pemula Freeduino - Ultimate dan Bundel Pemula Arduino - Dasar (dan Ultimate ), dan tampaknya dikirim secara internasional.

Halaman "beli" Arduino utama mencantumkan vendor Arduino di semua wilayah dunia.

Tempat lain yang akan saya periksa termasuk Adafruit Industries dan Sparkfun Electronics (keduanya di AS).

Clinton Blackmore
sumber
1
Wow. Terima kasih atas waktu yang Anda berikan dalam jawaban yang informatif!
Tim Post
3
Saya senang mendengarnya. Setelah saya menulis jawabannya, saya berpikir, "Saya tidak percaya saya hanya menghabiskan empat puluh menit untuk menjawab pertanyaan di internet!"
Clinton Blackmore
1
Pos yang bagus, tetapi perlu dicatat bahwa tidak semua Arduino menggunakan chip FTDI. Sebagai contoh, saya menggunakan Arduino Uno R3 saya di bawah OS X tanpa driver diinstal. (Yang itu menggunakan Atmega 16U2 untuk komunikasi USB.)
exscape
12

Arduino adalah alat yang bagus untuk memulai ketika Anda ingin membangun gadget elektronik dan itu mungkin membawa Anda ke tujuan akhir Anda yaitu membuat datalogger . Namun, ini tidak cocok untuk pengembangan USB nyata karena mengemulasi port serial kuno. Itu tidak akan membiarkan Anda membuatnya menjadi hal lain (seperti Perangkat Antarmuka Manusia (mouse / keyboard) atau Perangkat Penyimpanan Massal (cardreader / drive yang dapat dilepas)).

Jika Anda ingin membuat gadget USB "asli", periksa situs Jan Axelson . Dia menulis buku "pemula" tentang USB. Mengembangkan gadget yang menggunakan USB pada level ini mungkin tidak cocok untuk pemula, jadi pengalaman Arduino pasti akan membantu Anda.

bpijl
sumber
Terima kasih atas tautannya. Saya pasti akan memeriksanya setelah 'roda pelatihan' lepas :)
Tim Post
Itu tidak sepenuhnya benar ... Arduino Leonardo dan semua papan berbasis Atmega32u4 dapat membuat Anda membuat HID dan perangkat khusus lainnya
Dmitry Gusarov
8

Saya sangat merekomendasikan tutorial presenter tayangan slide Tuxgraphics AVR USB. Ia menggunakan mikrokontroler Atmel AVR, yang memiliki komunitas penggemar besar (avrfreaks dll), dan tumpukan perangkat lunak open-source hanya usb1.1 dari obdev.org. Ini tidak dapat meningkatkan sangat tinggi (penyimpanan massal, misalnya), tetapi produk akhirnya adalah keyboard USB HID kecil dengan dua tombol yang dapat ditetapkan. Akan sepele menggunakannya sebagai datalogger, dan beberapa contoh di obdev.org hanya itu (www.obdev.at/products/vusb/projects.html). Itu ditulis dalam c bersih, dan daftar bagian adalah beberapa dolar paling banyak.

Pada saat yang sama, saya sarankan membangun atau membeli programmer avrusb500 tuxgraphics. Sangat menyenangkan untuk digunakan, dan salah satu peralatan paling andal yang saya miliki. (Saya tidak berafiliasi - hanya pelanggan yang sangat puas!)

qartis
sumber
8

Perangkat lain yang ingin saya lihat adalah AT90USBKey . Sudah lama sejak saya sudah memeriksanya, dan saya tidak yakin apakah Anda dapat memprogram untuk itu tanpa Windows, tetapi akan bertindak sebagai perangkat USB (seperti keyboard atau perangkat penyimpanan massal) atau sebagai host USB Anda memasukkan perangkat lain ke. Ada beberapa contoh program yang tersedia, dan tampaknya cukup mudah untuk dikerjakan, asalkan Anda tahu sedikit tentang elektronik dan dapat kode dalam C.

Pencarian google untuk AT90USBKey dan Linux menunjukkan hasil yang menjanjikan.

Saya tahu Anda bisa mendapatkannya dari DigiKey.ca . Saya mencari yang setara untuk Asia ; Anda bisa mendapatkan bagian dari Farnell .

Clinton Blackmore
sumber
Menurut situs yang tertaut, sepertinya papan dapat diprogram melalui Jtag.
SingleNegationElimination
6

Anda mungkin juga ingin memeriksa Teensy .

tuupola
sumber
6

Jika Anda akhirnya menggunakan Arduino, saya telah mem-porting perpustakaan V-USB (sebelumnya AVR-USB) untuk dijalankan. Itu juga dibungkus dengan kelas untuk membuat interaksi lebih mudah.

Anda dapat membuat perangkat USB HID dengannya, mis. Keyboard, mouse, atau joystick. Anda juga dapat membuat perangkat generik yang menggunakan libusb pada host untuk mengontrolnya - dari Python, C, Memproses dll.

Situs saya memiliki pelindung PCB yang dapat Anda buat yang menggunakan soket USB dan beberapa resistor, dll:

http://code.rancidbacon.com/ProjectLogArduinoUSB

Anda dapat menulis kode Arduino untuk mengirim penekanan tombol semudah:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

atau dengan "driver" libusb Anda dapat mengirim data seperti:

UsbStream.write(0xff)

atau membaca data dengan:

UsbStream.read()

- Pilip;

pengikut
sumber
5

Ada sejumlah papan pengembang berbasis AVR-USB sekarang.

Saya pribadi menggunakan Teensy dan Bumble-B yang disebutkan sebelumnya dan berpikir mereka berdua hebat.

Teensy bagus, karena terintegrasi sangat baik dengan lingkungan Arduino. Ini berarti Anda dapat melakukan hal-hal seperti "Mouse.init; Mouse.move (x, y)" daripada berurusan dengan kode USB tingkat rendah sendiri. Keduanya akan menjalankan LUFA jika Anda menginginkannya.

Laen
sumber
4

Pengembangan Objek telah membuat perpustakaan untuk mikrokontroler AVR yang memungkinkan Anda membuat sendiri perangkat USB yang sangat murah (mulai dari hanya $ 2-3). GCC untuk AVR ramah linux. Ada banyak perangkat yang sudah dibuat. Lihatlah di sini: http://www.obdev.at/products/vusb/projects.html

avra
sumber
0

Itu tergantung pada apa jenis gadget usb yang ingin Anda buat, dan seberapa tingkat mahirnya. Anda menyebutkan led berkedip. Kontrol semacam itu dapat dengan mudah diarsipkan dengan mikrokontroler jenis apa pun dengan uart dan chip ftdi (arduino cukup populer, dan mudah untuk memulainya). Chip ftdi terhubung ke UC secara serial, dan bertindak seperti konverter USB <-> serial. Itu juga muncul sebagai COM-port virtual di komputer Anda.

Jika Anda ingin menggunakan protokol, driver, dan fitur usb yang lebih canggih, Anda bisa mendapatkan UC dengan kapabilitas usb asli. Microchip memiliki banyak foto (mikrokontroler mereka) yang dapat melakukan ini, misalnya. Microchip juga memiliki banyak papan pengembangan yang didedikasikan untuk belajar menggunakan usb. Atleast Microchips 32-bit dukungan UC juga host, dan otg -mode, sehingga Anda bisa membangun datalogger yang menyimpan data ke memory stick usb umum, yang Anda bisa pasang ke komputer Anda untuk membaca data. (Saya yakin banyak produsen lain juga memiliki IC dan dev-kit yang serupa, tetapi hanya Microchip yang saya gunakan)

Halaman muka Microchip / USB

varesa
sumber
0

Perhatikan bahwa Anda tidak harus memulai pada tingkat elektronik yang rendah dan menyisihkan lebih banyak waktu pengembangan untuk "alat" itu sendiri. Banyak perusahaan menjual perangkat USB untuk pasar DIY, misalnya:

http://www.yoctopuce.com

http://www.phidgets.com

martin
sumber