我想学习如何制作自己的 USB 小工具

电器工程 微控制器 引领 USB 发动机 伺服
2021-12-31 11:50:27

一段时间以来,我一直在为其他人的东西编写 Linux 字符设备驱动程序。我想找到一个新的爱好,制作我自己的 USB 小玩意儿的想法似乎很巧妙。

我很高兴能够控制一些 LED、伺服系统和步进电机。我真的很喜欢自己学习新事物,以及当某件事最终奏效时的兴奋。我没有做过任何严肃的 MC 编程,但我知道我的方式。

任何人都可以推荐一些对一个完整的菜鸟有帮助的工具包吗?理想情况下,它们是:

  • Linux 友好
  • 能够国际运送(我目前住在亚洲)
  • 提供面包板套件

如果您有时间和兴趣,将不胜感激链接到其他人网站上的项目的链接,其中包括原理图和零件清单。我想从例子中学习,但是很好的例子,这就是我在这里问的原因。

我的最终目标是制作我自己的数据收集器——从降雨量到平均分贝到光照水平,应有尽有。抱歉,如果之前有人问过这个问题,我确实搜索过(并搜索过标签)。

4个回答

Arduino非常受欢迎,而且它是开源硬件,因此有多种变化,包括第三方Freeduinos ,称为Bare Bones BoardReally Bare Bones BoardBoarduino,它们非常适合与面包板一起使用。标准的 Arduino 使用称为 Shields 的东西进行了改编。您可以制作自己的面包板防护罩或购买类似ProtoShield 套件的东西。

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 的“购买”页面列出了全球所有地区的 Arduino 供应商。

我会检查的其他地方包括Adafruit IndustriesSparkfun Electronics(都在美国)。

当您想要构建电子小工具时,Arduino 是一个很好的工具,它可能会引导您实现构建数据记录器的最终目标。但是,它不适合真正的 USB 开发,因为它模拟了一个老式的串行端口。它不会让你把它变成其他任何东西(比如人机接口设备(鼠标/键盘)或大容量存储设备(读卡器/可移动驱动器))。

如果您想制作“真正的”USB 小工具,请查看Jan Axelson的网站。他撰写有关 USB 的“初学者”书籍。不过,在此级别上开发使用 USB 的小工具可能不适合初学者,因此 Arduino 经验肯定会让您上路。

我强烈推荐Tuxgraphics AVR USB 幻灯片演示者教程。它使用 Atmel AVR 微控制器,该微控制器拥有庞大的爱好者社区(avrfreaks 等),以及来自 obdev.org 的纯开源软件 usb1.1 堆栈。它不能扩展到很高(例如大容量存储),但最终产品是带有两个可分配按钮的小型 USB HID 键盘。将它用作数据记录器将是微不足道的,obdev.org 上的一些示例就是这样(www.obdev.at/products/vusb/projects.html)。它是用干净的c编写的,零件清单最多几美元。

同时,我建议构建或购买 tuxgraphics avrusb500 编程器。使用起来很愉快,也是我拥有的最可靠的设备之一。(我不隶属于 - 只是一个非常满意的客户!)

我想研究的另一个设备是AT90USBKey自从我研究它已经有一段时间了,我不确定你是否可以在没有 Windows 的情况下对其进行编程,但它将充当 USB 设备(如键盘或大容量存储设备)或 USB 主机您将其他设备插入其中。有可用的示例程序,并且看起来相当容易使用,前提是您对电子学有所了解并且可以用 C 编写代码。

谷歌搜索 AT90USBKey 和 Linux 得到了有希望的结果。

我知道您可以从DigiKey.ca获得它。我查找了Asia 的 digikey 等价物你可以从Farnell那里得到零件。