LaserKitty:ESP8266 制造的激光逗猫神器


MAKER:seasider1960/译:趣无尽 Cherry(转载请注明出处)
之前我们介绍过《 Petoi Nybble:树莓派猫奴玩家的福音》《用 Arduino DIY 镭射激光逗猫神器》
这次又增添了新的玩法,是后者的的升级版,支持通过手机无线控制的激光逗猫器 LaserKitty。是时候给主子们找点新乐子了!

这款逗猫神器的特点:
1、全智能手机控制,可设置手动、自动和预定模式。
2、定制应用程序界面,多个 Web 客户端之间同步的系统状态。
3、可配置的摇摄和倾斜范围的参数。
4、设置页面,让设置一目了然。
5、NTP 时间同步。
6、WiFi 管理器,可在新网络上轻松设置。
7、音调发生器,在每次游戏前播放猫咪的任务主题:你的猫可能会欣赏,可能会置之不理。
8、当有新的播放会话时,会给所有设备弹出提示信息。
9、可配置的猫窝的位置,游戏时间在喂食点或固定玩具点结束。
10、所有设置存储在 EEPROM 中,断电时数据不会丢失。

更多新的功能有待你的开发!

材料清单


微型云台 × 1
微型电机 × 若干
外壳 × 1
ESP8266开发板 × 1
激光发射器 × 1
无源蜂鸣器 × 1
2路继电器 × 1
5V DC电源 × 1
电阻 × 若干
LED灯 × 若干
电线 × 若干
热缩管 × 若干
焊铁 × 1
热熔胶 × 1
圆形插孔 × 1
万用表 × 1
钻头 × 1
贴纸 × 1(打扮它以迎合猫主子的喜好)

该项目中,一定要利用好ESP8266的功能

附件准备部分



1、寻找一个合适的外壳。要预先考虑好所需的配件,预留空间,如图。如果你不用继电器,那么可以使用小一点的盒子。
2、将云台安装在盒子中。注意要尽可能的靠近盖子侧面安装,这样外壳本身不会在高倾斜角度下干扰光束的发射。另外,最理想的安装方式是将平移激光器垂直于短边安装,而不是像我一样安装在长边上。
3、将 NodeMCU 安装在 Perfboard 上,定位方便。这样便于从侧面或后面的插槽连接 micro USB 连接器。更新软件就无需打开盖子。

我最初的想法是使用 Over-The-Air(OTA) 库进行更新,你会看到我的代码包含该功能,但是它已被注释掉。那是因为音调发生器和OTA不能很好一起运行(NodeMCU 会在播放歌曲的时重复的重置)。这个问题本来是可以解决的,但我在没有连接 USB 接口的情况下,不能成功更新 SPIFFS,如能与 USB连接就可以解决。但当我想到时,我已经将 NodeMCU 安装在 Perfboard 上,这意味着我要做大量的工作。

4、将 RGB LED 与红色“开机” LED 对齐。 (这样可以通过 RGB LED 指示灯来直接观察逗猫器的模式,而无需查看应用程序。)
5、为平移电机的矩形部分打孔。
6、分为为电源插孔、蜂鸣器和倾斜电机与激光接线的入口点打三个孔。所有孔都是圆形的。

所有东西使用热熔胶固定到位(除了平移电机,它使用电机安装工具固定在盖子上)。

云台的安装




按照云台自带的说明书组装即可。所有组装完成后,通电前,确保它在外壳表面上保持平移180度。

连线


确保激光的亮度是室内光中最亮的但不要太强。因此可以从 NodeMCU上的 3.3 VDC 引脚上供电,串联一个22欧姆电阻。从理论上来说,它大约消耗10mA 的电流。当然也可以直接从 GPIO 引脚供电,但即使没有电阻,光线也太暗了。

1、激光具有非常有限的改变焦距的能力(准直光),我用它来使点更大,从而分散激光能量。

2、采取电机与电源完全隔离的方式。由于继电器有两个通道,我认为可以切换激光器(紫色线是来自 MCU 的控制信号)。你也可以用其他方案代替,如继电器直接由 5V DC 电源供电, NodeMCU 直接为双通道继电器供电,但没必要冒险。如果你已经使用了继电器,那么在使用前请移除 JD-VCC 和 VCC之间的跳线。

3、RGB LED 灯在红色和绿色上有220欧姆的限流电阻,在蓝色上有100欧姆的限流电阻。红色“通电” LED 灯有一个450欧姆的电阻,因为它由 5V DC 而不是 3.3V DC 供电。这些是大致的设置,以获得充足的亮度和合理的使用寿命。

4、蜂鸣器正常响起。你可能需要在信号线上添加一个电阻来削减音量。音调可以通过软件完全关闭,但介于两者之间可能会很好。

代码




所需代码文件在项目文件库提供出来了:
https://maker.quwj.com/project/93

激光器的运动自动模式请点击下载。你也可以用3D打印机制作一些组件。

代码(在GitHub上找到)分为三个主要部分。
1、Arduino 草图,HTML文件包含一些用于应用程序内容的 Javascript ,以及用于样板的相关 CSS 文件。我使用这个项目来学习所有这些编程元素,从非常低的基础开始,特别是在应用程序接口方面。该代码使用 Websockets 在 NodeMCU 服务器和连接客户端之间进行双向通信。
从 GitHub 下载后,将整个文件粘贴到一个文件夹中,将草图上传到 MCU ,然后将“ data ”子文件夹的内容上传到 SPIFFS 。

2、使用 Pushbullet 通知功能,首先需要一个 API 访问令牌。它位于 Arduino 代码的第88行。 Pushbullet 效果很好。但是如果你是第一次在手机上设置帐户,就必须登录,退出,然后再次登录,才能按照手机设置中的配置显示通知。

3、这里有三个网页:启动画面、实际应用程序界面和设置页面。分开设置页面使它的使用界面更像应用程序,特别是大量的配置选项。

为了让 NodeMCU 服务多个页面的功能,我必须直接将所有图像文件放在数据文件夹中。
如果放在子文件夹中就无法工作。在 GitHub 存储库中,硬件包含了所有使用的图像,开箱即用,你也可以使用自己的图片来替换它们。

完成并测试




启动画面的 HTML 文件包含了一个图标,用来添加到 iPhone 的桌面上。

最后,我有两点要提醒一下猫奴隶们,激光逗猫器的缺陷。
1、激光可能会使猫咪眼睛失明或受损。
2、对于猫主子们来说,激光逗猫器不能完全满足它们,因为它们永远无法捕获或“嫩死”它。

最后,你必须自己决定这个项目或任何其他激光玩具是否适合你的猫。我是通过尽可能使激光变暗来解决第一个问题。此外,确保猫主子们不盯着激光本身而那个发出的点。

关于第二个问题,我保存“原始位置”的设置,激光在运行结束之后会返回到预设的终点位置。你可以把它设置为固定玩具或猫咪的碗。如果你有更好的方法,欢迎交流。

坐沙发

发表评论

你的邮件地址不会公开


*