Kendi USB aygıtlarımı nasıl yapacağımı öğrenmek istiyorum


29

Bir süredir başkalarının eşyaları için Linux karakter aygıt sürücüleri yazıyordum. Yeni bir hobi bulmak isterdim ve kendi USB güvenlik kameramı yapma düşüncesi çok temiz görünüyor.

Bazı LED'leri, servoları ve step motorları kontrol edebilmek beni çok heyecanlandırırdı. Yeni şeyler kendi başıma öğrenmekten ve sonunda bir şeyler çalıştığında heyecanlanmaktan gerçekten zevk alıyorum. Ciddi bir MC programlaması yapmadım, ama kendi yolumu biliyorum.

Kimse tam bir noob için yardımcı olacak bazı kitleri tavsiye edebilir misiniz? İdeal olarak, bunlar:

  • Linux Dostu
  • Uluslararası gemi mümkün (Şu anda Asya'da yaşıyorum)
  • Breadboard kitleri sunun

Zamanınız ve eğiminiz varsa, diğer kişilerin sitelerini ve parça listelerini içeren projelere bağlantılar çok takdir edilecektir. Örneklerden ders almak istiyorum ama iyi örnekler, bu yüzden burada soruyorum.

Sonunda amacım kendi veri toplayıcılarımı yapmaktır - yağışlardan ortalama desibellere ve hafif seviyelere kadar her şey. Maalesef daha önce sorulmuşsa, arama yaptım (ve etiketleri aradım).

Yanıtlar:


26

Arduino gerçekten popüler ve açık kaynak donanım, yani farklılıklar vardır üçüncü taraf dahil, Freeduinos denilen Bare Bones Kurulu , Gerçekten Bare Bones Kurulu ve Boarduino breadboards ile kullanmak için çok güzel. Standart Arduino, Kalkanlar denilen şeyleri kullanarak uyarlanır. Sen edebilirsiniz kendi breadboard kalkan yapmak veya böyle bir şey satın ProtoShield Kit.

Arduino, bir FTDI USB-RS232 çip veya kablo kullanıyor. [Arduino'nun standart içindekiler, ekmek tahtası olanların çoğu içinde çip bulunan özel bir kablo kullanıyor ve size biraz para kazandırıyor.] Linux ve Mac OS X ve Windows için yerleşik bir sürücü var. Kullanıcılar bir sürücü indirebilirsiniz. Etkili bir şekilde, bu Arduino'nun bir seri portta iletişim kuran bir cihaz gibi davrandığı ve bu yüzden iletişim kurmasının çok kolay olduğu anlamına gelir.

Kullanmak için ayrıca yazılım da indirebilirsiniz. Bir IDE, bir AVR-GCC araç zinciri, gerçekten güzel bir kütüphane ve programınızı çip üzerine yüklemek için bir yazılım ile birlikte geliyor. Ayrıntıların çoğunu sizden gizliyor ve harika bir topluluğu var. "Kablolama" adı verilen bir dilde programlanmıştır, ancak gerçekten C ++ 'dır.

Son olarak, açık kaynaklı donanım olarak, orada şemalar var. Aslında, daha eski bir model oluşturmanın oldukça kolay olduğunu okuduğumu hatırlıyorum. Favori arama motorunuzda "Arduino şemaları" aranıyor size iyi sonuçlar verecektir.

Kitlere gelince, Maker Shed stokta Arduino ile ilgili birçok ürün sunmaktadır . Dünyanın her yerine gemi gibi görünüyorlar. Bazı ilgi alanları şunlardır:

Wulfden de Shoppe (ABD) güzel bir deneyci kitleri vardır ve Uluslararası gönderi görünüyor.

Solarbotics (Kanada), bir ARDX Arduino Experimenter Kitine , bir Freeduino Başlangıç ​​Paketi - Ultimate ve bir Arduino Başlangıç ​​Paketi - Basic (ve Ultimate ) ürününe sahiptir ve uluslararası olarak gönderilir.

Ana Arduino yönettiği "satın alma" sayfa listeleri dünyanın her alanında satıcıları Arduino.

Kontrol edeceğim diğer yerler arasında Adafruit Industries ve Sparkfun Electronics (ABD'de) var.


1
Vay. Bilgilendirici bir cevaba verdiğiniz zaman için teşekkür ederiz!
Tim Post

3
Bunu duyduğuma sevindim. Cevabı yazdıktan sonra kendi kendime düşündüm, "İnternetten bir soruyu yanıtlamak için sadece kırk dakikamı harcadığıma inanamıyorum!"
Clinton Blackmore

1
Harika bir mesaj, ancak tüm Arduino'ların FTDI çipini kullanmadığı belirtilmelidir. Örneğin, Arduino Uno R3'ümü OS X altında, sürücü yüklü olmadan kullanıyorum. (Bu bir USB iletişimi için bir Atmega 16U2 kullanıyor.)
exscape

12

Arduino, elektronik araçlar oluşturmak istediğinizde başlamak için harika bir araçtır ve sizi bir veri günlüğü oluşturma hedefinize götürebilir . Ancak, eski moda bir seri bağlantı noktasını taklit ettiği için gerçek USB gelişimi için uygun değildir. Başka bir şey yapmanıza izin vermeyecektir (İnsan Arabirim Cihazı (fare / klavye) veya Yığın Depolama Aygıtı (kart okuyucu / çıkarılabilir sürücü)).

"Gerçek" USB aygıtları yapmak istiyorsanız, Jan Axelson sitesini ziyaret edin . USB hakkında "yeni başlayanlar" kitapları yazıyor. Bu seviyede USB kullanan araçlar geliştirmek, yeni başlayanlar için uygun olmayabilir, bu nedenle Arduino deneyimi kesinlikle yolunuza çıkacaktır.


Bağlantı için teşekkürler. 'Eğitim tekerlekleri' çıktıktan sonra mutlaka kontrol edeceğim :)
Tim Post

Çok doğru değil ... Arduino Leonardo ve tüm Atmega32u4 tabanlı anakartlar, HID ve diğer tüm özel aygıtları
üretmenize

8

Tuxgraphics AVR USB slayt gösterisi sunucusu öğreticisini şiddetle tavsiye ediyorum . Büyük bir hobi topluluğuna (avrfreaks vb.) Sahip bir Atmel AVR mikro kontrolcüsünü ve obdev.org'dan açık kaynaklı sadece bir yazılım olan usb1.1 yığınını kullanır. Çok fazla yükselemez (örneğin toplu depolama), ancak nihai ürün atanabilir iki butona sahip küçük bir USB HID klavyesidir. Bunu bir veri kaydedici olarak kullanmak önemsiz olurdu ve obdev.org'daki örneklerden birkaçı tam da böyle (www.obdev.at/products/vusb/projects.html). Temiz c ile yazılmış ve parça listesi en fazla birkaç dolar.

Aynı zamanda, smokin avrusb500 programcısı kurmanızı veya satın almanızı öneririm. Kullanmak büyük bir zevk ve sahip olduğum en güvenilir ekipmanlardan biri. (Ben bağlı değilim - sadece çok memnun bir müşteri!)


8

Bakmak istediğim bir başka cihaz da AT90USBKey . Bunu araştırmaya başladığımdan bu yana bir süre geçti ve Windows olmadan programlayabildiğinizden emin değilim, ancak bir USB aygıtı (klavye veya yığın depolama aygıtı gibi) veya bir USB sunucusu gibi davranacak diğer cihazları taktığınızı Kullanılabilir örnek programlar vardır ve elektronikler hakkında biraz bilgi sahibi olmanız ve C de kod yazabilmeniz koşuluyla çalışmak oldukça kolay görünüyor.

AT90USBKey ve Linux için bir google araması, umut verici sonuçlar getirmektedir.

DigiKey.ca'dan alabileceğinizi biliyorum . Asya için bir digikey eşdeğeri aradım ; Eğer gelen bölümünü alabilir açmak .


Bağlantılı siteye göre, pano Jtag aracılığıyla programlanabilir gibi görünüyor.
SingleNegationElimination


6

Arduino'yu kullanmaya başlarsanız V-USB (eski adıyla AVR-USB) kütüphanesini üzerinde çalışacak şekilde yerleştirdim. Ayrıca etkileşimi kolaylaştırmak için bir sınıfa da sarılır.

Klavye, fare veya oyun çubuğu gibi USB HID aygıtları oluşturabilirsiniz. Ayrıca, kontrol etmek için ana bilgisayarda libusb kullanan bir genel aygıt da oluşturabilirsiniz - Python, C, Processing vb.

Sitemde bir USB soketi ve birkaç direnç vb. Kullanarak yapabileceğiniz bir PCB kalkanı vardır:

http://code.rancidbacon.com/ProjectLogArduinoUSB

Tuş vuruşlarını olabildiğince kolay göndermek için Arduino kodunu yazabilirsiniz:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

veya libusb "driver" ile aşağıdaki gibi verileri gönderebilirsiniz:

UsbStream.write(0xff)

veya ile verileri okuyun:

UsbStream.read()

--Philip;


5

Şimdi bir kaç AVR-USB tabanlı geliştirici kartı var.

Daha önce bahsedilen Teensy ve Bumble-B'yi kişisel olarak kullandım ve ikisinin de harika olduğunu düşünüyorum.

Teensy güzel, çünkü Arduino ortamı ile iyi bir şekilde bütünleşiyor. Bu, düşük seviye USB kodunu kendiniz kullanmak yerine "Mouse.init; Mouse.move (x, y)" gibi şeyler yapabileceğiniz anlamına gelir. Yine de, ikisi de LUFA'yı çalıştırır.



4

Nesne Geliştirme, kendi başına çok ucuz USB aygıtları yapmanızı sağlayan AVR mikroişlemcileri için bir kütüphane hazırladı (sadece 2-3 dolardan başlayarak). AVR için GCC linux dostudur. Halihazırda yapılmış olan cihazların parçaları var. Buraya bir göz atın: http://www.obdev.at/products/vusb/projects.html


0

Bu, ne tür usb aygıtları yapmak istediğinize ve ne kadar ileri düzeyde olduğuna bağlıdır. Yanıp sönen ledlerden bahsediyorsunuz. Bu tür bir kontrol, uart ve ftdi çipli herhangi bir mikrodenetleyici ile kolayca sağlanabilir (arduino oldukça popülerdir ve başlaması kolaydır). Ftdi çipi seri olarak uC'ye bağlanır ve seri bir <-> USB dönüştürücüsü gibi davranır. Ayrıca bilgisayarınızda sanal bir COM-port olarak görünür.

Daha gelişmiş usb protokollerinden, sürücülerinden ve özelliklerinden yararlanmak istiyorsanız, yerel usb özelliğine sahip bir uC alabilirsiniz. Mikroçip, örneğin bunu yapabilen birçok resme (mikrodenetleyicileri) sahiptir. Microchip ayrıca usb kullanmayı öğrenmeye adanmış birçok geliştirme kuruluna sahiptir. Atleast Microchips 32-bit uC desteği de ana bilgisayarı ve otg -modes, böylece verileri okumak için bilgisayarınıza takabileceğiniz ortak bir USB bellek çubuğuna kaydeden bir datalogger oluşturabilirsiniz. (Diğer üreticilerin de benzer IC'lere ve cihazlara sahip olduklarından eminim, ancak Microchip kullandığım tek kişi.)

Mikroçip ana sayfası / USB


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.