所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

“ai党史”(4) - 红外遥控互动沙盘

szjuliet szjuliet 2021-06-14 10:18:19
0
1
简单
材料清单 材料清单
10x
FireBeetle Board ESP32-E IoT开发板(预焊排母版)
10x
Gravity: FireBeetle Gravity 传感器扩展板
10x
Gravity: 数字红外接收模块 IR Receiver Module (Arduino兼容)或同款
1x
红外遥控器
10x
WS2812B-4位全彩RGB LED灯

方案说明:

和前面几个任务一样,还是依照百年精神来搭建沙盘。沙盘使用地理组的地形教具,主控采用Firebeetle,每个主控连接一个红外接收和一个RGB灯。既可以使用红外的遥控器控制每个地点上RGB灯的闪烁,也可以使用APP来互动,也可以直接在电脑上发送IoT信息来控制灯的互动。

步骤1 步骤1
设计3D星星模型

选择有明确地点特征的10种中国精神:五四精神、红船精神、井冈山精神、沂蒙精神、遵义会议精神、延安精神、西柏坡精神、大庆精神、吕梁精神、红岩精神,表现形态为小星星灯座。整个外形分为三部分,最上方为五角星,中间放置RGB灯和红外接收探头,下方长长的管子用来放置导线,并插入到沙盘中(因为沙盘比较厚,所以管子也要比较长)。

projectImage
projectImage


projectImage
projectImage
步骤2 步骤2
获取红外遥控器的红外编码

器材库里的遥控器都是18或21键的迷你遥控器,按键不够。突然想起实践室班牌配的遥控器貌似键不少,找出来一年乐了,居然有32个键,妥妥的够用。

用UNO加一个红外接收,编写程序读取红外编码。程序上传成功后,使用遥控器依次按下32个键,在串口监视器会得到每个键的红外编码。

projectImage

将红外编码选中并复制到Excel表格中。

projectImage
步骤3 步骤3
程序编写

下面以五四精神为例说明程序的编写,其余精神只需要修改红外编码的序号(28种中国精神的序号,五四精神为1,红船精神为2,以此类推)及MQTT消息(五四精神为1,红船精神为2,以此类推)即可,其余代码完全一样。

主程序

1. 初始化红外编码,目的是将红外编码保存到列表中,方便访问(序号为17的红外编码在遥控器上的按钮是1,详见前面的Excel表格)。

2. 进行网络初始化,设置wifi及MQTT。

3.  重复判断是否接收到红外信号,并根据红外信号的索引来点亮对应主控上的RGB灯,并发送对应的MQTT消息给APP来跳转页面。

projectImage

函数:初始化红外编码

1.  依次分离红外编码并保存到列表中

2.  通过串口监视器显示红外编码。如果正常运行,则删除这段代码。

projectImage

红外编码初始化成功后,可以将多余的代码删除,如下图所示:

projectImage

函数:初始化网络

1.   设置WiFi并连接,连接正常亮灯 。

2.    设置MQTT并连接,连接正常亮灯。

亮灯是为了观察状态方便,可根据需要删除。

projectImage

当接收到MQTT消息时

根据消息内容(索引)点亮对应主控的RGB灯。

projectImage

点亮RGB灯

每个主控都可以用不同方式点亮RGB灯,下面是一种示例。

projectImage

等待刷程序的firebeetle

projectImage
步骤4 步骤4
装配

刷好程序贴好标签的Firebeetle排排坐,准备安装。

后面的饮料是大家加班时点的外卖,6月30晚战斗了一个通宵。

projectImage

沙盘底座是木板,背面也是用木板支撑,隔成了若干区域。背面放置主控及充电。

插座虽然是有6个孔,但是间距太小,3个4口的USB集线器无法同时插到插座上,只能把USB的Hub拆开装上去,这样3个孔可以有12个USB充电口。10个用来给10个主控板供电,剩下的两个充电口一个给平板供电,一个给沙盘四周的三色LED灯供电。LED灯通过了红外接近传感器和继电器控制,当红外接近传感器检测到有人接近沙盘两边时,会给继电器发送信号,控制LED灯点亮。

projectImage

上下两张图是沙盘的背面。

projectImage

下图是更早的方案,使用锂电池供电。后来发现不方便,最后改成直接用USB供电。

projectImage

沙盘正面图:

projectImage
Makelog作者原创文章,未经授权禁止转载。
0
1
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]