ฉันต้องการเรียนรู้วิธีสร้างแกดเจ็ต USB ของฉันเอง


29

ฉันเขียนไดร์เวอร์อุปกรณ์อักขระ Linux สำหรับสิ่งของของผู้อื่นมาระยะหนึ่งแล้ว ฉันต้องการหางานอดิเรกใหม่และความคิดในการสร้าง Gizmos USB ของฉันเองนั้นดูเรียบร้อยดีจริงๆ

ฉันตื่นเต้นที่จะสามารถควบคุมไฟ LED เซอร์โวและสเต็ปมอเตอร์บางตัวได้ ฉันสนุกกับการเรียนรู้สิ่งใหม่ด้วยตัวเองและตื่นเต้นเมื่อมีอะไรบางอย่างทำงานได้ในที่สุด ฉันไม่ได้ทำการเขียนโปรแกรม MC อย่างจริงจัง แต่รู้วิธีของฉัน

ใครช่วยแนะนำชุดบางอย่างที่จะเป็นประโยชน์กับ noob สมบูรณ์หรือไม่ เป็นการดีที่พวกเขาคือ:

  • เป็นมิตรกับลินุกซ์
  • จัดส่งไปต่างประเทศได้ (ขณะนี้ฉันอาศัยอยู่ในเอเชีย)
  • เสนอชุดเขียงหั่นขนม

หากคุณมีเวลาและความชอบลิงก์ไปยังโครงการในเว็บไซต์ของผู้อื่นที่มีรายการแผนผังและชิ้นส่วนจะได้รับการชื่นชมอย่างมาก ฉันต้องการศึกษาจากตัวอย่าง แต่เป็นตัวอย่างที่ดีซึ่งเป็นสาเหตุที่ฉันถามที่นี่

เป้าหมายสุดท้ายของฉันคือการทำให้ตัวรวบรวมข้อมูลของฉันเอง - ทุกอย่างตั้งแต่ปริมาณน้ำฝนไปจนถึงเดซิเบลเฉลี่ยจนถึงระดับแสง ขออภัยหากมีการถามก่อนหน้านี้ฉันค้นหา (และค้นหาแท็ก)

คำตอบ:


26

Arduinoเป็นที่นิยมจริงๆและมันก็เป็นฮาร์ดแวร์เปิดแหล่งที่มาเพื่อให้มีรูปแบบรวมทั้งบุคคลที่สามFreeduinosเรียกว่ากระดูก Bare คณะกรรมการที่จริงๆกระดูก Bare คณะกรรมการและBoarduinoซึ่งจะดีมากสำหรับการใช้กับ Breadboards Arduino มาตรฐานถูกดัดแปลงโดยใช้สิ่งที่เรียกว่าโล่ คุณสามารถสร้างเกราะป้องกันของคุณเองหรือซื้อของอย่างProtoShield Kit

Arduino ใช้ชิปหรือสายเคเบิลFTDI USB-RS232 [Arduino มาตรฐานสร้างขึ้นในขณะที่บอร์ดขนมปังส่วนใหญ่ใช้สายเคเบิลพิเศษที่มีชิปอยู่ข้างในและช่วยคุณประหยัดเงิน] มีไดรเวอร์ในตัวสำหรับ Linux และ Mac OS X และ Windows ผู้ใช้สามารถดาวน์โหลดไดรเวอร์ ได้อย่างมีประสิทธิภาพซึ่งหมายความว่า Arduino ทำหน้าที่เป็นอุปกรณ์สื่อสารบนพอร์ตอนุกรมและดังนั้นจึงเป็นเรื่องง่ายมากที่จะสื่อสารกับ

หากต้องการใช้งานคุณยังดาวน์โหลดซอฟต์แวร์ มันมาพร้อมกับ IDE, toolchain AVR-GCC, ไลบรารีที่ดีมาก, และซอฟต์แวร์เพื่ออัปโหลดโปรแกรมของคุณไปยังชิป มันซ่อนรายละเอียดส่วนใหญ่จากคุณและมีชุมชนที่ยอดเยี่ยม มันถูกตั้งโปรแกรมในภาษาที่เรียกว่า "Wiring" แต่มันคือ C ++ จริงๆ

สุดท้ายเป็นฮาร์ดแวร์โอเพ่นซอร์สมีแผนงานออกมี ที่จริงฉันดูเหมือนจะจำได้ว่าการอ่านมันค่อนข้างง่ายที่จะสร้างแบบจำลองก่อนหน้านี้ การค้นหา "Arduino schematics" ในเครื่องมือค้นหาที่คุณชื่นชอบจะให้ผลลัพธ์ที่ดี

สำหรับชุดเครื่องมือMaker Shedนำเสนอรายการที่เกี่ยวข้องกับ Arduino มากมายในสต็อก ดูเหมือนว่าจะจัดส่งทั่วโลก บางคนที่น่าสนใจรวมถึง:

The Shoppe at Wulfden (USA) มีชุดอุปกรณ์ทดสอบที่ดีและดูเหมือนจะจัดส่งทั่วโลก

Solarbotics (แคนาดา) มีชุดทดลอง ARDX Arduino , ชุดเริ่มต้น Freeduino - UltimateและArduino Starter Bundle - ขั้นพื้นฐาน (และขั้นสูงสุด ) และปรากฏว่าจะจัดส่งทั่วโลก

หลักของ Arduino "ซื้อ" หน้ารายการ Arduino ผู้ขายในทุกพื้นที่ของโลก

สถานที่อื่นที่ฉันจะตรวจสอบรวมถึงAdafruit IndustriesและSparkfun Electronics (ทั้งในสหรัฐอเมริกา)


1
ว้าว. ขอบคุณสำหรับเวลาที่คุณตอบคำถามอย่างเป็นทางการ!
ทิมโพสต์

3
ฉันดีใจที่ได้ยิน หลังจากที่ฉันเขียนคำตอบฉันคิดกับตัวเองว่า "ฉันไม่อยากจะเชื่อเลยว่าฉันใช้เวลาสี่สิบนาทีเพื่อตอบคำถามทางอินเทอร์เน็ต!"
Clinton Blackmore

1
โพสต์ยอดเยี่ยม แต่ควรสังเกตว่าไม่ใช่ทุก Arduinos ใช้ชิป FTDI ตัวอย่างเช่นฉันใช้ Arduino Uno R3 ของฉันภายใต้ OS X โดยไม่ต้องติดตั้งไดรเวอร์ (อันนั้นใช้ Atmega 16U2 สำหรับการสื่อสารแบบ USB)
exscape

12

Arduino เป็นเครื่องมือที่ดีในการเริ่มต้นเมื่อคุณต้องการที่จะสร้าง gadgets อิเล็กทรอนิกส์และมันอาจนำคุณไปสู่เป้าหมายของคุณในที่สุดของการสร้างบันทึกข้อมูล อย่างไรก็ตามมันไม่เหมาะสำหรับการพัฒนา USB จริงเพราะมันเลียนแบบพอร์ตอนุกรมแบบเก่า มันจะไม่ทำให้คุณกลายเป็นสิ่งอื่น (เช่น Human Interface Device (เมาส์ / คีย์บอร์ด) หรือ Mass Storage Device (cardreader / drive drive ที่ถอดออกได้)

หากคุณต้องการที่จะทำให้ "ของจริง" แกดเจ็ต USB ตรวจสอบเว็บไซต์ของยานแอเซลสัน เขาเขียนหนังสือเกี่ยวกับ USB การพัฒนาโปรแกรมเบ็ดเตล็ดที่ใช้ USB ในระดับนี้อาจไม่เหมาะสำหรับผู้เริ่มต้น แต่เพื่อให้ประสบการณ์ Arduino จะได้รับในแบบของคุณ


ขอบคุณสำหรับลิงค์ ฉันก็จะตรวจสอบออกเมื่อ 'ล้อการฝึกอบรม' หลุดออกมา :)
ทิมโพสต์

ไม่เป็นความจริงเลย ... Arduino Leonardo และบอร์ด Atmega32u4 ทั้งหมดสามารถให้คุณสร้าง HID และอุปกรณ์กำหนดเองอื่น ๆ ได้
Dmitry Gusarov

8

ฉันขอแนะนำให้สอนการเสนอสไลด์โชว์ Tuxgraphics AVR USB มันใช้ไมโครคอนโทรลเลอร์ Atmel AVR ซึ่งมีชุมชนงานอดิเรกขนาดใหญ่ (avrfreaks ฯลฯ ) และโอเพ่นซอร์สซอฟต์แวร์แบบโอเพนซอร์ซ usb -1.1 จาก obdev.org มันไม่สามารถขยายขนาดได้สูงมาก (ตัวอย่างเช่นที่เก็บข้อมูลขนาดใหญ่) แต่ผลิตภัณฑ์สุดท้ายคือแป้นพิมพ์ USB HID ขนาดเล็กที่มีปุ่มกดที่กำหนดได้สองปุ่ม มันจะใช้เรื่องเล็กน้อยเป็นดาต้าล็อกเกอร์และตัวอย่างบางส่วนที่ obdev.org เป็นเพียงแค่นั้น (www.obdev.at/products/vusb/projects.html) มันเขียนในคสะอาดและรายการชิ้นส่วนไม่กี่ดอลลาร์มากที่สุด

ในเวลาเดียวกันฉันขอแนะนำให้สร้างหรือซื้อโปรแกรมเมอร์ tuxgraphics avrusb500 มันเป็นความสุขที่ได้ใช้และเป็นหนึ่งในอุปกรณ์ที่น่าเชื่อถือที่สุดที่ฉันมี (ฉันไม่ได้มีส่วนเกี่ยวข้อง - เป็นลูกค้าที่พึงพอใจมาก!)


8

อุปกรณ์ผมอยากที่จะมองเข้าไปอีกเป็นAT90USBKey เป็นเวลานานแล้วที่ฉันได้ตรวจสอบมันและฉันก็ไม่แน่ใจว่าคุณจะสามารถตั้งโปรแกรมได้โดยไม่ต้องใช้ Windows แต่มันจะทำหน้าที่เป็นอุปกรณ์ USB (เช่นแป้นพิมพ์หรืออุปกรณ์เก็บข้อมูลขนาดใหญ่) หรือเป็นโฮสต์ USB ที่คุณเสียบอุปกรณ์อื่นเข้า มีโปรแกรมตัวอย่างอยู่และมันดูง่ายต่อการทำงานด้วยเหตุผลหากคุณรู้เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์เล็กน้อยและสามารถเขียนรหัสเป็น C ได้

การค้นหา google สำหรับ AT90USBKey และ Linux yileds ผลลัพธ์ที่มีแนวโน้ม

ฉันรู้ว่าคุณจะได้รับจากDigiKey.ca ผมมองขึ้นเทียบเท่า Digikey เอเชีย ; คุณจะได้รับส่วนหนึ่งจากสั่งซื้อครั้งแรก


ตามเว็บไซต์ที่เชื่อมโยงดูเหมือนว่าบอร์ดสามารถตั้งโปรแกรมผ่าน Jtag
เจรจาเดี่ยวสิ้นสุด


6

หากคุณจบลงด้วยการใช้ Arduino ฉันได้ย้ายห้องสมุด V-USB (ชื่อเดิมคือ AVR-USB) เพื่อใช้งาน มันถูกห่อด้วยคลาสเพื่อให้การโต้ตอบง่ายขึ้น

คุณสามารถสร้างอุปกรณ์ USB HID ด้วยเช่นแป้นพิมพ์เมาส์หรือจอยสติ๊ก คุณยังสามารถสร้างอุปกรณ์ทั่วไปที่ใช้ libusb บนโฮสต์เพื่อควบคุมมัน - จาก Python, C, การประมวลผล ฯลฯ

เว็บไซต์ของฉันมี PCB shield ที่คุณสามารถใช้กับ USB socket และตัวต้านทานอื่น ๆ :

http://code.rancidbacon.com/ProjectLogArduinoUSB

คุณสามารถเขียนรหัส Arduino เพื่อส่งการกดแป้นได้อย่างง่ายดายเช่น:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

หรือด้วย "ไดรเวอร์" libusb คุณสามารถส่งข้อมูลเช่น:

UsbStream.write(0xff)

หรืออ่านข้อมูลด้วย:

UsbStream.read()

--Philip;


5

ปัจจุบันมีบอร์ดผู้พัฒนาที่ใช้ AVR-USB อยู่จำนวนมาก

ฉันใช้ Teensy และBumble-B เป็นการส่วนตัวแล้วและคิดว่าพวกเขายอดเยี่ยมมาก

Teensy นั้นดีเพราะมันเข้ากันได้ดีกับสภาพแวดล้อมของ Arduino ซึ่งหมายความว่าคุณสามารถทำสิ่งต่าง ๆ เช่น "Mouse.init; Mouse.move (x, y)" แทนที่จะจัดการกับรหัส USB ระดับต่ำด้วยตัวคุณเอง ทั้งคู่จะเรียกใช้ LUFA หากคุณต้องการ



4

การพัฒนาวัตถุได้สร้างห้องสมุดสำหรับไมโครคอนโทรลเลอร์ AVR ที่ช่วยให้คุณสร้างอุปกรณ์ USB ราคาถูกได้ด้วยตัวคุณเอง (เริ่มต้นเพียง 2-3 $) GCC สำหรับ AVR เป็นมิตรกับลินุกซ์ มี hudreds ของอุปกรณ์ที่ทำไปแล้ว ลองดูที่นี่: http://www.obdev.at/products/vusb/projects.html


0

ขึ้นอยู่กับชนิดของอุปกรณ์ usb ที่คุณต้องการสร้างและระดับขั้นสูง คุณพูดถึงไฟกะพริบ การควบคุมแบบนั้นสามารถเก็บได้อย่างง่ายดายด้วยไมโครคอนโทรลเลอร์ชนิดใดก็ได้ที่มี uart และชิป ftdi (Arduino เป็นที่นิยมและเริ่มต้นได้ง่าย) ชิป ftdi เชื่อมต่อกับ uC แบบอนุกรมและทำหน้าที่เหมือนตัวแปลงซีเรียล <-> USB มันจะแสดงเป็นเสมือนพอร์ต COM บนคอมพิวเตอร์ของคุณ

หากคุณต้องการใช้โปรโตคอลไดรเวอร์และฟีเจอร์ usb ขั้นสูงคุณสามารถใช้ยูซีซีที่มีความสามารถยูเอสบีแบบเนทีฟ ไมโครชิพมีรูปหลายรูป (ไมโครคอนโทรลเลอร์ของพวกเขา) ที่สามารถทำได้เช่น Microchip ยังมีบอร์ดพัฒนามากมายที่อุทิศให้กับการเรียนรู้การใช้ usb Atleast Microchips สนับสนุน 32 บิต uC ยังโฮสต์และ otg -modes ดังนั้นคุณสามารถสร้างตัวบันทึกข้อมูลที่บันทึกข้อมูลลงในหน่วยความจำ usb ทั่วไปซึ่งคุณสามารถเสียบเข้ากับคอมพิวเตอร์เพื่ออ่านข้อมูล (ฉันแน่ใจว่าผู้ผลิตรายอื่นหลายรายมีไอซีและชุดพัฒนาคล้ายกัน แต่ Microchip เป็นอุปกรณ์เดียวที่ฉันใช้)

หน้าแรกของ Microchip / USB


0

โปรดทราบว่าคุณไม่จำเป็นต้องเริ่มต้นที่ระดับอิเล็กทรอนิกส์ต่ำและใช้เวลาในการพัฒนามากขึ้นสำหรับ "gizmo" บริษัท หลายแห่งขายอุปกรณ์ USB สำหรับตลาด DIY เช่น:

http://www.yoctopuce.com

http://www.phidgets.com

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.