Debian / Python ile bir USB cihazı nasıl programlanır


29

Pi, öncelikle Python için bir eğitim aracı olarak tanıtılıyor. Buna paralel olarak, GPIO’ya Python’dan erişenlerin çevrimiçi olarak bazı mükemmel örnekleri de var.

Bununla birlikte, çoğu kullanıma hazır (ev tipi demiryolundan ziyade) çevre birimleri USB arayüzlerine sahiptir. Bu standart Debian / Python kartını kullanarak bunlara nasıl erişilir? Kullanılabilir bir Python kütüphanesi ve iyi bir eğitim var mı?


1
Bunun daha spesifik olması gerektiğini düşünüyorum. USB ile tam olarak ne yapmaya çalışıyorsunuz?
Jivings,

Bu çok iyi bir soru, USB aygıtlarını nasıl yapacağımı hep merak etmişimdir.
Shane Hudson,

1
Aklımdaki özel uygulama, bir model demiryolu DCC kontrol arayüzü (örneğin, Digitrax PR3 gibi) erişmek için bir JMRI tipi sistemdir. Ancak bu, bu site için çok özel! Soru, “Python’daki USB’deki herhangi bir cihazla nasıl konuşabilirim” - alt seviyeye yöneliktir - programcının programlamak istedikleri cihazın protokol belgelerine sahip olduğu varsayılır.
winwaed

Bu soruyu dikkatlice izleyeceğim. Hem basit ASCII komut setleri hem de RasPi ile denemek istediğim USB arabirimleri olan iki dokunmatik panel ekranına bakıyorum.
Ray Dep

Yanıtlar:


11

USB sadece seri bir iletişim cihazının kalbinde. Verilerin nasıl iletildiği standarttır, ancak bu verilerden oluşan şey cihaza bağlıdır. Denetleyici üreticiniz, 'bunu yapın' veya 'bu oluyor' şeklindeki komutlardan ve mesajlardan oluşan bir api icat etmiş olacak.

Bu API'yi biliyorsanız, iletişim kurabilmelisiniz. Muhtemelen iki yararlı bağlantı

https://walac.github.io/pyusb/

https://web.archive.org/web/20130327005316/http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux

Değerli bir bilgi kaynağı USB Complete'tir.


Teşekkürler - evet, sorumu hedeflediğim seviye budur. Belirli çevre birimleri için protokoller / ürün API'leri başka sorular veya satıcının dokümantasyonu için bir sorundur.
winwaed

2

Bunu, burada olduğum tavşan izinde başkası için yapıştırmak (5 Eki 2014). NOT: bu çok deneyimsiz bir PoV'dandır, bu yüzden bu, birçoğunuz için açık olabilir, ancak benim için değildi ve bunu çözmek biraz zaman aldı.

Basit bir lazer barkod tarayıcıyı USB üzerinden bir RaspberryPi B + 'ya, Linux / RBPi vb. İle hiçbir deneyimim yok. Aramaya çalışıyorum. Sonunda Google arama beni bu sayfaya getirdi.

David Sykes tarafından 15 Haziran 2012 tarihinde PyUSB referansıyla verilen cevaba ulaştım ve oradan ADAFruit’in Microsoft Kinect’i hacklemelerinin bir parçası olarak Python ve PyUSB’nin Kurulumu’nu buldum .

Bilgisayarımda olsaydı, çok çabuk başarabileceğimi hissediyorum. Ama bunu bir Ahududu Pi ile yapmak gerçekten beni bir döngü için atıyordu. Eğer bu kılavuzu okuyorsanız, bir şeyler yükleyemediğiniz bir bariyere varacaksınız ve dosyalar olmadan söyledikleri şeyleri ezebilirsiniz. Peki eğer indiremezseniz dosyaları nasıl elde edersiniz? [Belki de bu dosyaları indirmenin bir yolu var, ama Pi'mde kaynak forge konusunda 400 hata yaptım ve Midori Tar veya Zip dosyalarını indirmedi.]

Walac'ın PyUSB'sine referans vererek , libusb almak için ilk bölüme LXTerminal'e girebilirsiniz, ancak daha sonra verilen komut PyUSB için dosyalara sahip olduğunuzu ve onları dizinde bulabileceğinizi varsayar.

Öyleyse BURAYA bir RaspberryPi'ye LibUSB ve PyUSB kurmak için değiştirdiğim adımlar:

LXTerminal’e girdiğim komutların sırası:

sudo apt-get install python libusb-1.0

Y ile onayla

sudo apt-get install python-pip

sonra

sudo pip install --upgrade pyusb

NOT: Bundan daha önce ne yaptığınıza bağlı olarak, bunun bir kısmı zaten RBPi'nizde olabilir, ancak komutları tekrar yapmak zarar vermeyecek, bana dosyanın güncel olduğunu söyledi.

Son komut "--upgrade pyusb" bana şunu verdi:

Downloading/unpacking pyusb
Downloading pyusb-1.0.0b1.tar.gz (44Kb): 44Kb downloaded
Running setup.py egg_info for package pyusb

Installing collected packages: pyusb
Running setup.py install for pyusb

Successfully installed pyusb
Cleaning up...

Öyleyse, sanırım artık her şey yolunda ve derslerime geri dönebilirim.

Yine, bir RaspberryPi B + kullanıyorum, standart NOOBS kurulumu. Çoğunlukla Model B ile yapılan ADAFRUIT'in LEARN sistemi gibi kaynaklara başvurdum, ancak şu ana kadar yaptığım her şey B + üzerinde çalışıyor.

Umarım bu bilgi, aynı noktada sıkışıp kalmış birine yardımcı olacaktır.

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.