Як запрограмувати USB-пристрій за допомогою Debian / Python


29

Пі просувається як навчальний пристрій насамперед для Python. У зв'язку з цим, в Інтернеті вже було кілька чудових прикладів людей, які звертаються до GPIO з Python.

Однак більшість периферійних пристроїв (не замість домашньої заварки) мають інтерфейси USB. Як можна отримати доступ до них за допомогою стандартної картки Debian / Python? Чи є в бібліотеці Python і хороший підручник?


1
Я думаю, що це має бути більш конкретним. Що саме ви намагаєтеся зробити з USB?
Jivings

Це дуже гарне запитання, я завжди цікавився, як зробити USB-пристрої.
Шейн Хадсон

1
Маю на увазі конкретну програму - це система типу JMRI для доступу до модельного інтерфейсу контролера залізничного DCC (наприклад, наприклад, Digitrax PR3). Але це занадто специфічно для цього сайту! Питання спрямоване на нижчий рівень "як я можу спілкуватися з будь-яким пристроєм на USB з Python" - неявно передбачається, що програміст має документацію протоколу для пристрою, який вони хочуть запрограмувати.
winwaed

Я буду уважно спостерігати за цим питанням. Я переглядаю два дисплеї сенсорної панелі, як з простими наборами команд ASCII, так і з USB-інтерфейсами, які я хочу спробувати з RasPi.
Рей Деп'ю

Відповіді:


11

USB є в основі просто пристроєм послідовного зв'язку. Спосіб передачі даних є стандартним, але те, що складається з цих даних, залежить від пристрою. Ваш виробник контролера винайшов api, що складається з команд та повідомлень форми "зроби це" або "це відбувається"

Якщо ви знаєте цю api, ви повинні мати можливість спілкуватися. Два можливо корисні посилання є

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

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

Цінним джерелом інформації є USB Complete


Дякую - так, саме такий рівень, на який я мав на меті своє питання. Протоколи / API API для конкретних периферійних пристроїв - це інші питання або питання документації постачальника.
winwaed

2

Вставте це тут будь-кому іншому по сліду зайчика, який я був сьогодні (5 жовтня 2014 р.). ПРИМІТКА: це з дуже недосвідченого PoV, тому це може бути очевидним для багатьох із вас, але це не було для мене і знадобилося деякий час, щоб з'ясувати.

Я намагаюся інтерфейс простого лазерного сканера штрих-коду до RaspberryPi B + через USB, буквально немає досвіду роботи з Linux / RBPi і т.д. Зрештою, пошук Google привів мене до цієї сторінки.

Я отримав відповідь, яку надав Девід Сайкс 15 червня 2012 року з посиланням PyUSB, і звідти я виявив, що ADAFruit встановлює Python & PyUSB , як частину їхнього злому Microsoft Kinect.

Я відчуваю, що міг би пройти через це досить швидко, якби це було просто на моєму ПК. Але це через RaspberryPi насправді кидало мене на цикл. Якщо ви прочитаєте цей посібник, ви потрапите на той самий блокпост, який я зробив там, де ви не можете завантажувати речі, і ви не можете просто замішати те, що вони говорять, без файлів. Отже, як отримати файли, якщо ви не можете їх завантажити? [Можливо, є спосіб завантажити ці файли, але на моєму Pi я продовжував отримувати помилку 400 на джерелі forge, і Midori не завантажував файли Tar або Zip.]

REFERENCING PyUSB Walac в , ви можете ввести в першу частину в LXTerminal , щоб отримати libusb , але тоді наступна команда дається передбачає , що ви маєте файли для PyUSB і що ви можете знайти їх з допомогою каталогу.

Отож ТУТ - це мої змінені кроки для встановлення LibUSB і PyUSB на RaspberryPi:

Порядок команд, які я ввів у LXTerminal:

sudo apt-get install python libusb-1.0

Підтвердіть з Y

sudo apt-get install python-pip

потім

sudo pip install --upgrade pyusb

ПРИМІТКА. Дещо з цього можливо вже є у вашому RBPi, залежно від того, що ви робили до цього, але виконання команд знову не зашкодить це, просто мені сказали, що файл оновлений.

Остання команда "--upgrade pyusb" дала мені таке:

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...

Так, я думаю, що зараз все добре, і я можу повернутися до своїх навчальних посібників.

Знову ж таки, я використовую RaspberryPi B +, стандартну установку NOOBS. Я здебільшого посилався на такі джерела, як система НАВЧАННЯ ADAFRUIT, яка була створена здебільшого Моделю B, але все, що я робила до цих пір, працює над B +.

Сподіваємось, що ця інформація допоможе кожному, хто застряг у цій самій точці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.