나만의 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-Ultimate 및 Arduino Starter Bundle-Basic (및 Ultimate )을 가지고 있으며 국제적으로 배송되는 것으로 보입니다.

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

내가 확인할 다른 곳으로는 Adafruit Industries 와 Sparkfun 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.