Tôi muốn tìm hiểu cách tạo các tiện ích USB của riêng tôi


29

Tôi đã từng viết trình điều khiển thiết bị nhân vật Linux cho công cụ của người khác một thời gian. Tôi muốn tìm một sở thích mới và ý tưởng tạo ra gizmos USB của riêng tôi có vẻ rất gọn gàng.

Tôi sẽ rất vui mừng khi có thể điều khiển một số đèn LED, động cơ servo và động cơ bước. Tôi thực sự thích học những điều mới một mình và sự phấn khích khi một cái gì đó cuối cùng hoạt động. Tôi chưa thực hiện bất kỳ chương trình MC nghiêm túc nào, nhưng tôi biết cách của mình.

Bất cứ ai có thể giới thiệu một số bộ dụng cụ sẽ hữu ích cho một noob hoàn chỉnh? Lý tưởng nhất là:

  • Thân thiện với Linux
  • Có thể giao hàng quốc tế (Tôi hiện đang sống ở châu Á)
  • Cung cấp bộ dụng cụ bánh mì

Nếu bạn có thời gian và thiên hướng, liên kết đến các dự án trên các trang web của người khác bao gồm sơ đồ và danh sách các bộ phận sẽ được đánh giá rất cao. Tôi muốn nghiên cứu từ các ví dụ, nhưng các ví dụ hay, đó là lý do tại sao tôi hỏi ở đây.

Mục tiêu cuối cùng của tôi là tạo ra những người thu thập dữ liệu của riêng tôi - mọi thứ từ lượng mưa đến decibel trung bình đến mức độ ánh sáng. Xin lỗi nếu điều này đã được hỏi trước đó, tôi đã tìm kiếm (và các thẻ tìm kiếm).

Câu trả lời:


26

Các Arduino là thực sự phổ biến, và nó là phần cứng mã nguồn mở, vì vậy có những thay đổi , bao gồm các bên thứ ba Freeduinos gọi Bare Bones Ban , các Ban Bare Bones Thật , và Boarduino , rất thoải mái cho việc sử dụng với breadboards. Arduino tiêu chuẩn được điều chỉnh bằng cách sử dụng những thứ gọi là Shields. Bạn có thể tự làm tấm chắn bánh mì của riêng mình hoặc mua một cái gì đó giống như Bộ ProtoShield này .

Arduino sử dụng chip hoặc cáp FTDI USB-RS232. [Arduino tiêu chuẩn được tích hợp sẵn, trong khi hầu hết các bảng mạch bánh mì đều sử dụng cáp đặc biệt có chip bên trong và giúp bạn tiết kiệm một số tiền.] Có trình điều khiển tích hợp cho Linux, và Mac OS X và Windows người dùng có thể tải xuống trình điều khiển. Thực tế, điều này có nghĩa là Arduino hoạt động như một thiết bị giao tiếp trên một cổng nối tiếp, và do đó nó rất dễ dàng để giao tiếp.

Để sử dụng nó, bạn cũng tải phần mềm. Nó đi kèm với một IDE, một chuỗi công cụ AVR-GCC, một thư viện thực sự đẹp và phần mềm để tải chương trình của bạn lên chip. Nó ẩn hầu hết các chi tiết từ bạn, và có một cộng đồng tuyệt vời. Nó được lập trình bằng một ngôn ngữ gọi là "Đấu dây", nhưng nó thực sự là C ++.

Cuối cùng, là phần cứng nguồn mở, có sơ đồ ngoài kia. Thật vậy, tôi dường như nhớ lại việc đọc rằng việc xây dựng một mô hình trước đó khá dễ dàng. Tìm kiếm "sơ đồ Arduino" trong công cụ tìm kiếm yêu thích của bạn sẽ cho bạn kết quả tốt.

Đối với bộ dụng cụ, Maker Shed cung cấp rất nhiều vật phẩm liên quan đến Arduino trong kho. Chúng xuất hiện để vận chuyển trên toàn thế giới. Một số quan tâm bao gồm:

Các Shoppe tại Wulfden (Mỹ) có một thí nghiệm bộ dụng cụ tốt đẹp, và dường như tàu quốc tế.

Solarbotics (Canada) có Bộ thí nghiệm Arduino ARDX , Gói khởi động Freeduino - UltimateGói khởi động Arduino - Cơ bản (và Ultimate ), và xuất hiện để vận chuyển quốc tế.

Trang "mua" chính của Arduino liệt kê các nhà cung cấp Arduino ở tất cả các khu vực trên toàn cầu.

Những nơi khác tôi sẽ kiểm tra bao gồm Adaf nhung IndustriesSparkfun Electronics (cả ở Mỹ).


1
Ồ Cảm ơn bạn đã dành thời gian mà bạn đưa vào một câu trả lời đầy thông tin như vậy!
Tim Post

3
Rất vui khi nghe điều này. Sau khi tôi viết câu trả lời, tôi tự nghĩ: "Tôi không thể tin rằng mình chỉ mất bốn mươi phút để trả lời một câu hỏi trên internet!"
Clinton Blackmore

1
Bài đăng tuyệt vời, nhưng cần lưu ý rằng không phải tất cả Arduinos đều sử dụng chip FTDI. Ví dụ: tôi sử dụng Arduino Uno R3 của tôi trong OS X mà không cài đặt trình điều khiển. (Cái đó sử dụng Atmega 16U2 để liên lạc với USB.)
exscape

12

Arduino là một công cụ tuyệt vời để bắt đầu khi bạn muốn xây dựng các thiết bị điện tử và nó có thể đưa bạn đến mục tiêu cuối cùng là xây dựng một bộ ghi dữ liệu . Tuy nhiên, nó không phù hợp để phát triển USB thực sự vì nó mô phỏng một cổng nối tiếp kiểu cũ. Nó sẽ không cho phép bạn biến nó thành bất kỳ thứ gì khác (như Thiết bị giao diện con người (chuột / bàn phím) hoặc Thiết bị lưu trữ dung lượng lớn (đầu đọc thẻ / ổ di động)).

Nếu bạn muốn tạo các tiện ích USB "thực sự", hãy xem trang web của Jan Axelson . Ông viết sách "người mới bắt đầu" về USB. Phát triển các tiện ích sử dụng USB ở cấp độ này có thể không phù hợp cho người mới bắt đầu mặc dù vậy trải nghiệm Arduino chắc chắn sẽ giúp bạn đi đúng hướng.


Cảm ơn vi đương link. Tôi chắc chắn sẽ kiểm tra nó một khi 'bánh xe huấn luyện' xuất hiện :)
Tim Post

Điều đó không hoàn toàn đúng ... Arduino Leonardo và tất cả các bảng dựa trên Atmega32u4 có thể cho phép bạn tạo HID và bất kỳ thiết bị tùy chỉnh nào khác
Dmitry Gusarov

8

Tôi đặc biệt khuyên bạn nên sử dụng hướng dẫn trình chiếu slideshow USB tuxgicsics. Nó sử dụng một bộ vi điều khiển Atmel AVR, có một cộng đồng sở thích lớn (avrfreaks, v.v.) và một ngăn xếp usb1.1 chỉ dành cho phần mềm nguồn mở từ obdev.org. Nó không thể tăng quy mô rất cao (ví dụ như lưu trữ dung lượng lớn), nhưng sản phẩm cuối cùng là một bàn phím USB HID nhỏ với hai nút bấm có thể gán. Nó sẽ là tầm thường khi sử dụng nó như một trình ghi dữ liệu và một vài ví dụ tại obdev.org chỉ là như vậy (www.obdev.at/products/vusb/projects.html). Nó được viết bằng c sạch, và danh sách các bộ phận nhiều nhất là một vài đô la.

Đồng thời, tôi khuyên bạn nên xây dựng hoặc mua bộ lập trình tuxgraphics avrusb500. Đó là một niềm vui khi sử dụng và là một trong những thiết bị đáng tin cậy nhất mà tôi sở hữu. (Tôi không liên kết - chỉ là một khách hàng rất hài lòng!)


8

Một thiết bị khác mà tôi muốn xem xét là AT90USBKey . Đã được một thời gian kể từ khi tôi xem xét nó và tôi không chắc liệu bạn có thể lập trình cho nó mà không có Windows hay không, nhưng nó sẽ hoạt động như một thiết bị USB (như bàn phím hoặc thiết bị lưu trữ dung lượng lớn) hoặc như một máy chủ lưu trữ USB mà bạn cắm các thiết bị khác vào. Có sẵn các chương trình mẫu và có vẻ hợp lý dễ làm việc, miễn là bạn biết một chút về thiết bị điện tử và có thể viết mã bằng C.

Một tìm kiếm google cho AT90USBKey và Linux đã mang lại kết quả đầy hứa hẹn.

Tôi biết bạn có thể lấy nó từ DigiKey.ca . Tôi đã tìm kiếm một digikey tương đương với châu Á ; bạn có thể lấy một phần từ Farnell .


Theo trang web được liên kết, có vẻ như bảng có thể được lập trình thông qua Jtag.
SingleNegationElimination


6

Nếu bạn kết thúc việc sử dụng Arduino, tôi đã chuyển thư viện V-USB (trước đây là AVR-USB) để chạy trên nó. Nó cũng được bao bọc với một lớp để làm cho tương tác dễ dàng hơn.

Bạn có thể tạo các thiết bị USB HID với nó, ví dụ như bàn phím, chuột hoặc cần điều khiển. Bạn cũng có thể tạo một thiết bị chung sử dụng libusb trên máy chủ để điều khiển thiết bị - từ Python, C, Xử lý, v.v.

Trang web của tôi có tấm chắn PCB bạn có thể sử dụng ổ cắm USB và một vài điện trở, v.v.

http://code.rancidbacon.com/ProjectLogArduinoUSB

Bạn có thể viết mã Arduino để gửi tổ hợp phím dễ dàng như:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

hoặc với "trình điều khiển" libusb, bạn có thể gửi dữ liệu như:

UsbStream.write(0xff)

hoặc đọc dữ liệu với:

UsbStream.read()

--Phipip;


5

Hiện tại có một số bảng phát triển dựa trên AVR-USB.

Cá nhân tôi đã sử dụng Teensy và Bumble-B đã đề cập trước đó và nghĩ rằng cả hai đều tuyệt vời.

Teensy là tốt, bởi vì nó tích hợp thực sự tốt với môi trường Arduino. Điều này có nghĩa là bạn có thể thực hiện những việc như "Mouse.init; Mouse.move (x, y)" thay vì tự mình xử lý mã USB cấp thấp. Cả hai sẽ chạy LUFA nếu bạn muốn nó, mặc dù.



4

Phát triển đối tượng đã tạo ra một thư viện cho các bộ vi điều khiển AVR cho phép bạn tự tạo các thiết bị USB rất rẻ (bắt đầu chỉ từ 2-3 đô la). GCC cho AVR là thân thiện với linux. Có rất nhiều thiết bị đã được thực hiện. Hãy xem tại đây: http://www.obdev.at/products/vusb/projects.html


0

Nó phụ thuộc vào loại tiện ích usb bạn muốn làm và mức độ nâng cao. Bạn đề cập đến đèn led nhấp nháy. Loại điều khiển đó có thể dễ dàng được lưu trữ với bất kỳ loại vi điều khiển nào có uart và chip ftdi (arduino khá phổ biến và dễ dàng bắt đầu). Chip ftdi kết nối với uC một cách an toàn và hoạt động như một bộ chuyển đổi USB <-> nối tiếp. Nó cũng hiển thị dưới dạng cổng COM ảo trên máy tính của bạn.

Nếu bạn muốn sử dụng các giao thức, trình điều khiển và tính năng cao cấp hơn, bạn có thể nhận được một uC với khả năng usb gốc. Microchip có nhiều bức ảnh (vi điều khiển của họ) có thể làm điều này, ví dụ. Microchip cũng có nhiều bảng phát triển dành riêng cho việc học sử dụng usb. Atleast Microchips hỗ trợ uC 32 bit cũng lưu trữ và otg -modes, do đó bạn có thể xây dựng bộ dữ liệu lưu dữ liệu vào thẻ nhớ usb thông thường mà bạn có thể cắm vào máy tính để đọc dữ liệu. (Tôi chắc chắn nhiều nhà sản xuất khác cũng có IC và dev-kit tương tự, nhưng Microchip là người duy nhất tôi đã sử dụng)

Trang chủ của Microchip / USB


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.