나만의 USB 장치를 만드는 법을 배우고 싶습니다


29

나는 다른 사람들을 위해 Linux 문자 장치 드라이버를 얼마 동안 작성해 왔습니다. 새로운 취미를 찾고 싶습니다. 내 USB 기즈모를 만드는 생각이 정말 깔끔해 보입니다.

일부 LED, 서보 및 스텝 모터를 제어 할 수있게되어 기쁩니다. 나는 정말로 새로운 것을 배우고 무언가가 마침내 작동 할 때의 흥분을 즐깁니다. 나는 심각한 MC 프로그래밍을하지 않았지만 내 길을 알고 있습니다.

누구든지 완전한 멍청한 놈에게 도움이 될 키트를 추천 할 수 있습니까? 이상적으로는 다음과 같습니다.

  • 리눅스 친화적
  • 국제 배송 가능 (현재 아시아에 거주하고 있음)
  • 브레드 보드 키트 제공

시간과 성향이 있다면 회로도 및 부품 목록을 포함하는 다른 사람들의 사이트에있는 프로젝트에 대한 링크가 크게 감사하겠습니다. 나는 예제에서 공부하고 싶지만 좋은 예제이기 때문에 여기서 묻는 것입니다.

궁극적 인 목표는 강우에서 평균 데시벨, 조명 수준에 이르기까지 모든 데이터 수집기를 만드는 것입니다. 이전에 요청한 경우 검색을 수행하고 태그를 검색했습니다.

답변:


26

아두 이노는 정말 인기이며, 오픈 소스 하드웨어, 그래서 변화가 타사를 포함, Freeduinos이 라는 베어 본즈 보드정말 베어 본즈 보드Boarduino를 밀가루 반죽에 사용하기위한 아주 좋은입니다. 표준 Arduino는 Shields라는 것을 사용하여 조정되었습니다. 자신의 브레드 보드 쉴드를 만들거나이 ProtoShield Kit 와 같은 것을 구입할 수 있습니다 .

Arduino는 FTDI USB-RS232 칩 또는 케이블을 사용합니다. [표준 Arduino는 내장되어 있으며, 대부분의 브레드 보드 칩은 칩이 내장 된 특수 케이블을 사용하여 비용을 절약 해줍니다.] Linux, Mac OS X 및 Windows 용 드라이버가 내장되어 있습니다. 사용자는 드라이버를 다운로드 할 수 있습니다. 사실상 이것은 Arduino가 직렬 포트에서 통신하는 장치의 역할을하므로 통신이 매우 쉽다는 것을 의미합니다.

사용하려면 소프트웨어도 다운로드하십시오. IDE, AVR-GCC 툴체인, 정말 멋진 라이브러리 및 프로그램을 칩에 업로드하는 소프트웨어가 함께 제공됩니다. 그것은 당신의 대부분의 세부 사항을 숨기고 훌륭한 커뮤니티를 가지고 있습니다. "배선"이라는 언어로 프로그래밍되어 있지만 실제로는 C ++입니다.

마지막으로 오픈 소스 하드웨어이기 때문에 회로도가 있습니다. 사실, 나는 이전 모델을 만드는 것이 상당히 쉽다는 것을 기억하는 것 같습니다. 선호하는 검색 엔진에서 "Arduino 회로도"를 검색하면 좋은 결과를 얻을 수 있습니다.

키트와 관련하여 Maker Shed 는 많은 Arduino 관련 품목 을 재고로 제공합니다. 그들은 전 세계로 배송되는 것으로 보입니다. 관심있는 것은 다음과 같습니다.

Wulfden (미국) 의 Shoppe 에는 훌륭한 실험 도구가 있으며 국제적으로 배송되는 것으로 보입니다.

Solarbotics (캐나다)는 ARDX Arduino Experimenter 's Kit , Freeduino Starter Bundle-UltimateArduino Starter Bundle-Basic (및 Ultimate )을 가지고 있으며 국제적으로 배송되는 것으로 보입니다.

주요 아두 이노의 "구매"페이지 목록은 세계의 모든 지역에서 공급 업체를 Arduino이.

내가 확인할 다른 곳으로는 Adafruit IndustriesSparkfun Electronics (미국 둘 다)가 있습니다.


1
와우. 유익한 답변을 해주셔서 감사합니다!
Tim Post

3
다행 이네요 답을 쓴 후, 나는 인터넷에서 질문에 대답하는 데 40 분을 썼다는 것을 믿을 수 없다고 생각했다.
클린턴 블랙 모어

1
좋은 소식이지만 모든 Arduino가 FTDI 칩을 사용하는 것은 아닙니다. 예를 들어, 드라이버가 설치되지 않은 OS X에서 Arduino Uno R3을 사용합니다. (이것은 USB 통신을 위해 Atmega 16U2를 사용합니다.)
18:53에

12

Arduino는 전자 기기를 제작할 때 시작하는 훌륭한 도구이며 데이터 로거 를 구축하려는 최종 목표로 이어질 수 있습니다 . 그러나 구식 직렬 포트를 에뮬레이트하므로 실제 USB 개발에는 적합하지 않습니다. 휴먼 인터페이스 장치 (마우스 / 키보드) 또는 대용량 저장 장치 (카드 리더기 / 이동식 드라이브)와 같은 다른 것으로 만들 수 없습니다.

"실제"USB 가제트를 만들려면 Jan Axelson 사이트를 확인하십시오 . 그는 USB에 관한 "초보자"책을 씁니다. 이 레벨에서 USB를 사용하는 가제트를 개발하는 것은 초보자에게는 적합하지 않을 수 있으므로 Arduino 경험을 통해 분명히 길을 갈 수 있습니다.


링크 주셔서 감사합니다. 일단 '트레이닝 휠'이 나오면 꼭 확인해
Tim Post

그건 사실이 아니에요 ... 아두 이노 레오나르도 모든 Atmega32u4 기반 보드는 HID 및 기타 맞춤 디바이스하게하도록 할 수 있습니다
드미트리 Gusarov

8

Tuxgraphics AVR USB 슬라이드 쇼 발표자 튜토리얼을 적극 권장 합니다. 이 시스템은 대규모 애호가 커뮤니티 (avrfreaks 등)와 obdev.org의 오픈 소스 소프트웨어 전용 usb1.1 스택이있는 Atmel AVR 마이크로 컨트롤러를 사용합니다. 확장 할 수는 없지만 (예 : 대용량 저장 장치) 최종 제품은 2 개의 할당 가능한 푸시 버튼이있는 작은 USB HID 키보드입니다. 그것은 데이터 로거로 사소하게 사용되며, obdev.org의 몇 가지 예는 바로 www.obdev.at/products/vusb/projects.html입니다. 깨끗한 c로 작성되었으며 부품 목록은 최대 몇 달러입니다.

동시에 tuxgraphics avrusb500 프로그래머를 구축하거나 구매하는 것이 좋습니다. 사용하는 기쁨과 내가 소유 한 가장 신뢰할 수있는 장비 중 하나입니다. (나는 제휴사가 아니며 매우 만족스러운 고객입니다!)


8

내가 조사하고 싶었던 또 다른 장치는 AT90USBKey 입니다. 내가 조사한 지 오래되었습니다 .Windows없이 프로그램을 작성할 수 있는지 확실하지 않지만 USB 장치 (예 : 키보드 또는 대용량 저장 장치) 또는 USB 호스트로 작동합니다 다른 장치를 연결하십시오. 사용 가능한 샘플 프로그램이 있으며 전자 제품에 대해 조금 알고 C로 코딩 할 수 있다면 작업하기가 비교적 쉽습니다.

AT90USBKey 및 Linux에 대한 Google 검색은 유망한 결과를 보여줍니다.

DigiKey.ca 에서 얻을 수 있다는 것을 알고 있습니다 . 나는 아시아와 동등한 digikey를 찾았다 . 당신은 파넬 에서 부품을 얻을 수 있습니다 .


링크 된 사이트에 따르면 Jtag를 통해 보드를 프로그래밍 할 수있는 것 같습니다.
SingleNegationElimination 4


6

Arduino를 사용하면 V-USB (이전의 AVR-USB) 라이브러리를 포팅하여 실행합니다. 또한 상호 작용을 쉽게하기 위해 클래스로 싸여 있습니다.

키보드, 마우스 또는 조이스틱과 같은 USB HID 장치를 만들 수 있습니다. 또한 호스트에서 libusb를 사용하여 Python, C, Processing 등에서 제어하는 ​​일반 장치를 만들 수 있습니다.

내 사이트에는 USB 소켓과 몇 가지 저항 등을 사용하여 만들 수있는 PCB 실드가 있습니다.

http://code.rancidbacon.com/ProjectLogArduinoUSB

Arduino 코드를 작성하여 다음과 같이 쉽게 키 입력을 보낼 수 있습니다.

UsbKeyboard.sendKeyStroke(KEY_ENTER);

또는 libusb "driver"를 사용하면 다음과 같은 데이터를 보낼 수 있습니다.

UsbStream.write(0xff)

또는 다음을 사용하여 데이터를 읽습니다.

UsbStream.read()

-필립;


5

현재 수많은 AVR-USB 기반 개발자 보드가 있습니다.

나는 개인적으로 앞에서 언급 한 Teensy와 Bumble-B를 사용 했으며 둘 다 훌륭하다고 생각합니다.

Teensy는 Arduino 환경과 실제로 잘 통합되어 있기 때문에 좋습니다. 즉, 저수준 USB 코드를 직접 처리하는 대신 "Mouse.init; Mouse.move (x, y)"와 같은 작업을 수행 할 수 있습니다. 원하는 경우 둘 다 LUFA를 실행합니다.



4

Object Development는 AVR 마이크로 컨트롤러 용 라이브러리를 만들었으며,이를 통해 매우 저렴한 USB 장치를 직접 만들 수 있습니다 (2 ~ 3 달러에 시작). AVR 용 GCC는 Linux 친화적입니다. 이미 만들어진 수많은 장치가 있습니다. 여기를보세요 : http://www.obdev.at/products/vusb/projects.html


0

어떤 종류의 USB 장치를 만들고 싶은지와 고급 수준에 달려 있습니다. 깜박이는 LED를 언급했습니다. 이러한 종류의 제어는 uart 및 ftdi 칩이 장착 된 모든 종류의 마이크로 컨트롤러를 통해 쉽게 달성 할 수 있습니다 (arduino는 매우 유명하며 시작하기 쉽습니다). ftdi 칩은 uC에 직렬로 연결되며 직렬 <-> USB 변환기처럼 작동합니다. 또한 컴퓨터에서 가상 COM 포트로 표시됩니다.

고급 USB 프로토콜, 드라이버 및 기능을 사용하려는 경우 기본 USB 기능을 갖춘 uC를 얻을 수 있습니다. 예를 들어, 마이크로 칩에는이를 수행 할 수있는 많은 사진 (그들의 마이크로 컨트롤러)이 있습니다. Microchip에는 USB 사용을 배우는 데 전념하는 많은 개발 보드가 있습니다. Atleast Microchips 32 비트 uC 지원은 호스트 및 otg 모드도 지원하므로 데이터를 일반 USB 메모리 스틱에 저장하는 데이터 로거를 구축 할 수 있습니다. 데이터 로거는 컴퓨터에 연결하여 데이터를 읽을 수 있습니다. (나는 많은 다른 제조업체들도 비슷한 IC 및 개발 키트를 가지고 있다고 확신하지만, 내가 사용한 유일한 것은 Microchip입니다)

마이크로 칩 홈페이지 / USB


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