学习如何构建一个wi - fi传感和报告机器人!第一步:编写控制器。
让我们建造一些Wi-Fi机器人吧!在这个项目系列中,我们将使用非常便宜的组件,您可能已经在您的工作台上,如裸ESP-12微控制器,Neopixels,伺服电机,USB电池组。
该设备会不断扫描本地Wi-Fi环境,并根据用户的“所见”和“感受”改变其姿态(灯光和伺服位置,以及闪烁、脉冲和随机电机“抖动”等效果)。例如,当我的室友快要到家时,我有时会被告知,因为当他们的手机(这是一个接入点)进入一个街区时,Eye会做出“高兴”的反应。
这个项目有两个版本,展示了如何将基本技术应用于你自己的电子动画,并赋予它们一点个性。你可以读到3D打印组装我已经在下面添加了每个构建的链接。
的阿格莫托之眼版使用两个纳米伺服器来打开和关闭眼睛(以展示超明亮的Neopixel内部)和一个高容量电池,使它可以整天佩戴。这是对最近的致敬医生奇怪我非常喜欢的电影。从技术上讲,它是一种战争驾驶设备,尽管“战争行走”可能更适合戴在身上。
的命运鬼版本使用一个标准的9克伺服马达来摇尾巴(旋转后半部分),就像电子游戏中的幽灵同伴那样命运,这似乎是cosplay的最爱。它是一个固定的装置,挂在电线上,但它可以使便携式没有太大的麻烦。
表的内容:
- 第一部分:项目简介及BOM
- 第2部分:固件、连接和连接性
- 第3部分:伺服系统
- 第4部分:功率和新像素灯
此外,查看这些DIY黑客文章,将指导您通过3D打印您自己的情况:
线路图
接线图。记住,最好保持线性调节器在正常调节模式,而不是dropout。要做到这一点,保持电池电压大于稳压器的输出电压加上稳压器的降电压。另外,请检查您的调节器的数据表中推荐的输入和输出电容。
它仅仅是一个电路,更像是各个模块的接线图。电源来自电池或固定电源,输入到大电流电机和电压调节器,输出3.3V轨提供给微控制器和Neopixel。控制器使用串行协议与组件通信。大多数功能都在软件中,在这个图表中没有显示出来。
许多部件是可选的,一些引脚可以在软件中重新路由,所以这个图更多的是一个建议而不是硬性要求。(啊,微控制器的乐趣!)
零件清单
部分 | 价格 | 笔记 |
---|---|---|
ESP12-F模块 | $3 | 任何ESP模块与4Mb的闪存 |
3.3 v FTDI适配器 | $5 | 用于编程,而不是在构建中使用 |
AMS1117 3.3v线性调节模块 | $1 | 任何低压降调节器都可以 |
WS2812b Neopixel | $1 | |
小型SPST开关(2) | 每个2美元 | 用于电源和程序开关 |
3-pin / 4-pin / 5-pin迷你jst连接器 | $2 | 各种连接器,只要你认为合适 |
邮政联系 |
阿格莫托变体之眼
部分 | 价格 | 笔记 |
---|---|---|
HK5330S Ultra-Micro Digital Servo (2) | 10美元每个 | |
18650锂离子3.7v电池和充电器 | $10 | 或者使用USB电池库 |
命运鬼变体
部分 | 价格 | 笔记 |
---|---|---|
9 g微伺服 | $5 | 任何 |
22-24awg硅胶线 | $2 | 吊死命运鬼 |
所有的组件都可以在Ali-Bang-Bay-azon上找到,通常是散装的。(既然你可以花两倍的钱造两个,为什么要造一个呢?)ESP-12是唯一不可替代的组件。至于其他的,你可以用你手头上任何类似规格的零件。
Adafruit销售类似于Adafruit羽毛万岁内置ESP12、FTDI适配器、编程开关和稳压器。如果你想快速上手(而不是像豆子一样便宜再加一些组装),这些看起来很不错,尽管我自己还没有试过。
特性
一切都是通过web管理界面配置的。你可以将其他Wi-Fi设备标记为“朋友”或“敌人”,或者给它们分配单独的颜色,当它们进入或离开你的机器人时,它们会有明显的反应。这也允许你制造“识别”彼此的设备。这将使你的“机器人”与众不同,通过身体上的表达,Wi-Fi眼帮助你意识到在无线电频谱中通常感觉不到的东西。
它还可以记录它看到的一切,包括信号强度和mac地址,所以它很适合审计你当地的Wi-Fi环境。它还能检测到额外的电台,因为大多数设备上的连接列表都有一个毫无意义的低信号强度截止限制一切.不要低估这个小模块!
该项目是围绕ESP-12F模块设计的,你可以在网上以3美元的价格买到。虽然Adafruit公司的电路板更容易使用(有USB接口和复位/编程按钮),但你买不到六包的电路板,而且价格还不及一份披萨。而且这些模块在物理上更大,这在制造微型机器人时很重要。学习如何连接和flash固件到这些基本模块是一项很好的技能,也是本系列下一篇文章的重点。
在那之后,把它们放进机器人里就比较容易了。你只需要担心一些LED和伺服连接——那些是单线串行协议。所有的控制旋钮都变成了软件,所有编写软件的辛苦工作都已经由我完成了!
实际上,在我看来,代码同时是最昂贵的组件,但在您看来却是最便宜的组件。一旦我们决定使用固件,我可能会尽可能多地在那里打包,因为额外的基本上是免费的。
这些代码将在以后的文章中下载,但是您也可以在这里查看一下GitHub页面.
3 d打印技术
这个项目是我发表的第一个大量使用3D打印的项目。我提供了所有的STL和设计文件的命运鬼和眼睛的Agomotto,所以人们可以访问打印机可以快速做出确切的我所做的,并有一些信心它将工作。但如果你熟悉遥控模型制作或角色扮演道具,你可能会用泡沫塑料、颜料和时间创造出比我更令人惊叹的电子动画。(很多时间)。
所有文件将包括下载,但我实际上建议使用Thingiverse链接代替。Thingiverse不仅会一直有最新的版本,你还可以上传你的构建的照片,看到其他人的remix,并可能使用Customizer来调整模型尺寸,而无需安装OpenSCAD。
做物联网对吧
ESP8266是一个功能强大的微控制器,但它还没有得到应有的开发。(除了Andreas硬渣,“带瑞士口音的家伙”。我鼓励你去看他的YouTube频道。)
大多数物联网项目都是在实验台上进行的演示。不幸的是,它们被绑定到一个特定的(固件硬编码的)本地访问点和并提供极其有限的单线程web接口。他们通常在你把他们带到战场的那一刻就失败了。
对于物联网web服务器来说,一个关键问题是它们能够处理多少同时的TCP或HTTP连接。大多数ESP8266脚本语言,如Python或Lua,都可以处理只有一个.如果你对web开发有所了解,你就会知道浏览器是多么喜欢在每个页面中加载多个CSS、JS、字体和图像文件。
许多物联网项目通过链接到公开的cdn托管文件(如jQuery和Bootstrap)来解决这个问题,这样你的浏览器就可以从互联网而不是设备获取它们。但是当你去野营的时候会发生什么呢?突然之间,网络界面崩溃了,因为互联网不再为图书馆提供服务了!
对于在现场工作的设备,它们必须随身携带所有支持文件。它们必须同时为许多用户提供多个大型(可能是兆字节大小)文件。另外,它们还应该支持像WebSockets这样的现代实时网络标准。
所有这些使得它可以为接入点范围内的任何移动设备提供完整的web界面,而无需依赖。还有一些安全措施也不错。
工作量很大啊。幸运的是,基于出色的AsyncTCP库,我已经为您完成了这些工作。对于这个项目所需的相当简单的任务来说,它完全是过度设计的,但它被设计为更先进系统的测试平台。你会在以后的项目中再次看到它。希望随着时间的推移,bug会越来越少。
AsyncTCP也有一个并发连接限制,但它是由ESP网络api设置的。5似乎是一个经常被报道的数字,但这个数字非常模糊。我刚刚测试了6个同时使用浏览器的用户(每个用户都保持一对持久连接),这意味着至少有12个。
接下来……
在下一篇文章中,我们将介绍此设备所需的固件、连接和网络连接:第2部分.
同时,欣赏这段关于眼睛外壳设计和建造的视频:
你自己试试这个项目吧!BOM。
我爱上了这个项目。详细的说明和媒体支持的文本既诱人又充满了有趣的细节,一旦你开始。不幸的是,我还在等班加松的特派人员。已经学到了很多,却还没有真正开始!在这个项目中也至少有一个复活节彩蛋。谢谢你带给我们这个!