*MAKER:seasider1960/译:趣无尽 Cherry
这次又增添了新的玩法,是后者的的升级版,支持通过手机无线控制的激光逗猫器 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://make.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、对于猫主子们来说,激光逗猫器不能完全满足它们,因为它们永远无法捕获或“嫩死”它。
最后,你必须自己决定这个项目或任何其他激光玩具是否适合你的猫。我是通过尽可能使激光变暗来解决第一个问题。此外,确保猫主子们不盯着激光本身而那个发出的点。
关于第二个问题,我保存“原始位置”的设置,激光在运行结束之后会返回到预设的终点位置。你可以把它设置为固定玩具或猫咪的碗。
我要赚赏金
