데비안 / 파이썬으로 USB 장치를 프로그래밍하는 방법


29

Pi는 주로 Python의 교육용 장치로 홍보되고 있습니다. 이와 함께 파이썬에서 GPIO에 액세스하는 사람들에 대한 훌륭한 예가 이미 있습니다.

그러나 가정용 맥주가 아닌 대부분의 기성품 주변 장치에는 USB 인터페이스가 있습니다. 표준 데비안 / 파이썬 카드를 사용하여 어떻게 접근합니까? 사용 가능한 Python 라이브러리와 훌륭한 자습서가 있습니까?


1
나는 이것이 더 구체적이어야한다고 생각합니다. USB로 정확히 무엇을하려고합니까?
Jivings 2016 년

이것은 매우 좋은 질문입니다. 나는 항상 USB 장치를 만드는 방법을 궁금해했습니다.
셰인 허드슨

1
내가 염두에 둔 특정 응용 프로그램은 모델 철도 DCC 컨트롤러 인터페이스 (예 : Digitrax PR3)에 액세스하기위한 JMRI 유형 시스템입니다. 그러나이 사이트에는 너무 구체적입니다! 이 질문은 하위 레벨 "파이썬에서 USB로 어떤 장치와 대화합니까?"를 목표로합니다. 프로그래머가 프로그래밍하고자하는 장치에 대한 프로토콜 문서를 가지고 있다고 가정합니다.
winwaed 2016 년

이 질문을주의 깊게 살펴 보겠습니다. RasPi와 함께 간단한 ASCII 명령 세트와 USB 인터페이스를 갖춘 두 개의 터치 패널 디스플레이를보고 있습니다.
Ray Depew

답변:


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는 다른 질문이거나 공급 업체 설명서의 문제입니다.
winwaed

2

내가 오늘 있었던 토끼 흔적에 다른 사람을 위해 여기에 붙여 넣습니다 (2014 년 10 월 5 일). 참고 : 이것은 매우 경험이없는 PoV에서 왔으므로 많은 사람들에게 분명 할 수 있지만 나에게는 맞지 않았으며 알아내는 데 시간이 걸렸습니다.

Linux를 통해 문자 그대로 Linux / RBPi 등에 대한 경험이없는 USB를 통해 간단한 레이저 바코드 스캐너를 RaspberryPi B +에 인터페이스하려고합니다. 결국 Google 검색을 통해이 페이지로 연결되었습니다.

2012 년 6 월 15 일에 David Sykes가 제공 한 PyUSB 참조에 대한 답변을 얻었 으며 , Microsoft Kinect 해킹의 일부로 ADAFruit의 Python & PyUSB 설치를 찾았 습니다 .

PC에 있으면 아주 빨리 처리 할 수 ​​있다고 생각합니다. 그러나 RaspberryPi를 통해이 작업을 수행하면 실제로 루프가 발생했습니다. 이 가이드를 읽으면 내가 다운로드 할 수없는 곳에서했던 것과 같은로드 블록에 부딪치게되고 파일없이 말한 내용을 단순히 매쉬 할 수 없습니다. 파일을 다운로드 할 수 없다면 어떻게 얻습니까? [이 파일들을 다운로드 할 수있는 방법이있을 수 있지만, Pi에서 소스 포지에 오류 400이 계속 발생하고 Midori는 Tar 또는 Zip 파일을 다운로드하지 않습니다.]

Walac의 PyUSB를 참조하면 LusTerminal 에 먼저 들어가서 libusb를 얻을 수 있지만 다음 명령은 PyUSB 용 파일이 있고 디렉토리를 통해 파일을 찾을 수 있다고 가정합니다.

RaspberryPi에 LibUSB 및 PyUSB를 설치하기 위해 변경된 단계는 다음과 같습니다.

LXTerminal에 입력 한 명령 순서 :

sudo apt-get install python libusb-1.0

Y로 확인

sudo apt-get install python-pip

그때

sudo pip install --upgrade pyusb

참고 :이 작업 전에 수행 한 작업에 따라 일부는 이미 RBPi에있을 수 있지만 명령을 다시 수행해도 문제가되지는 않으며 파일이 최신 상태라고 나에게 알려줍니다.

마지막 명령 "--uppy 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...

그래서 지금은 모두 훌륭하다고 생각하며 자습서로 돌아갈 수 있습니다.

다시 한 번, 표준 NOOBS 설치 인 RaspberryPi B +를 사용하고 있습니다. 대부분 모델 B로 제작 된 ADAFRUIT의 LEARN 시스템과 같은 소스를 주로 참조했지만 지금까지 수행 한 모든 작업은 B +에서 작동하고 있습니다.

그 정보가 같은 시점에 갇힌 다른 사람들에게 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.