#第六届立创电赛#多功能语音台灯
简介
这是一个语音控制的多功能台灯,可以语音控制小夜灯(可更换控制设备),附带红外遥控功能。主板采用ESP8266主控,启英泰伦语音模块制作而成。整个作品的设计灵感来源于家中的USB小夜灯和小风扇。
简介:这是一个语音控制的多功能台灯,可以语音控制小夜灯(可更换控制设备),附带红外遥控功能。主板采用ESP8266主控,启英泰伦语音模块制作而成。整个作品的设计灵感来源于家中的USB小夜灯和小风扇。开源协议
:GPL 3.0
描述
* 1、项目功能介绍
这个作品是一个多功能语音的小夜灯,我们可以通过语音和台灯进行互动,可以让他开灯,关灯,调节亮度。控制面板上有2个红外发射管,因此也可以语音让其控制家电。USB插座可以插入任何USB供电设备,最大供电为5V/2A (尽量不要接近2A,实际大概最多1.5A!)。
小台灯内置一个900mAh的可充电锂电池,可以使用家里常用的手机typec充电器来进行充电,有了电池就可以随身携带,也不用有一根线限制着小台灯的摆位,让其随时随地出现在你身边。台灯的设计非常符合人性化,在没有唤醒小台灯时,他处于休眠状态,点阵屏不会亮表情,这就可以在睡觉时候常开着放在床边,随时呼唤。唤醒小台灯后,他会像人类一样眨眼,做表情,这些为小台灯增添一点灵性。面板上配置一个按钮,单击切换灯光开关状态,双击显示电池剩余电量。除此之外,控制面板上还有一个蓝色的充电指示灯,当进行充电时会亮起,充电结束后会灭掉,这样可以方便观察到电池状况,方便使用。
小台灯外壳用纸皮制作(因为不会3D建模)。
语音小台灯我叫他为小B,只需要呼喊小B,他就会亮表情与你互动。下面是小风扇模式和小夜灯模式的造型。
语音指令如下
语音呼唤指令 | |||||||
小B | 开灯 | 关灯 | 开风扇 | 关风扇 | 降低亮度 | 升高亮度 | 降低风速 |
升高风速 | 开电视 | 关电视 | 继续 | 暂停 | 返回 | 讲个故事 | 卖个萌 |
电视降低音量 | 电视调高音量 |
小B为唤醒词,其余是字面意思。 继续,暂停,返回是利用红外控制我家的天猫盒子,看视频的时候,可以语音控制视频暂停和继续。(所有效果在工程附件上有视频演示)
*2、项目属性
原创项目,首次公开
* 3、开源协议
GPL3.0
*4、硬件部分
硬件部分非常简单,利用排针排母将两块板子拼合而成,分为以下几个模块。
1、 ESP12F最小系统
这个是主控,电路也是固定的
2、 tp4056充电电路
电路图中的R8使用的是3k,这个电阻控制的是充电电流的大小,因为tp4056的1A充电实在太烫,所以使用的是偏小的400mA的充电。
3、DCDC 5V升压,3.3V 线性稳压
电源供电部分,没什么特别的地方。
4、 CH340电路
和8266连接,方便烧录,外加一个typec口和一个mircro口,两种数据线均可以为单片机烧写程序。
5、 NMOS驱动电路
这个电路图中,C1和C3可以去掉,这个是调试用的焊盘。焊上去也不影响电路工作。
6、 供电切换电路
采用的是P沟道实现的,当有外部充电器输入时,供电方由电池转为usb。
硬件验证:
按照原理图能完美实现所有功能,验证过后并无错误。下面是裸机外形。
*5、软件部分
软件部分还算是比较简单,因为使用的是8266来主控。软件部分主要分为下面几部分的任务。
1、ASRCheck()
即是通过对语音模块串口数据的读取,来判断具体识别了哪条指令,进而发出什么响应的任务。这是主循环的重要函数,红外发射等操作都写在了对应的响应中。
2、breath() sleep() LEDShow()
前两个即是对点阵屏表情进行控制的任务函数,breath()通过millis()实现的定时器效果,让眨眼特效能更加真实,sleep()是一个进入休眠的表情管理函数,进入休眠是为了让这个小夜灯更有实用性,表情不可能一直亮着,不然就不叫小夜灯了。当语音模块发出离开指令时,小台灯就会进入休眠状态,表情变为睡眠状态,然后过2秒后点阵屏熄灭。最后LEDShow则是自己编写的点阵屏显示函数,更方便我的使用。
经过调试后,4秒眨眼一次,0.4秒睁眼的时间效果最佳,眨眼特性让他变成了一个有灵性的小台灯。
(具体效果可以看视频)
3、click() doubleclick()
这两个分别是按键单击和按键双击的事件响应函数,使用Arduino的OneButton库可以轻松实现按键单击双击响应。
4、checkbat()
这个函数是双击按键后调用的查看电量功能,很简单,就是用ADC检测电池电压,对电压进行处理,进而得到对应的电池图形,显示在点阵屏中。下图为满电情况。
5、lightset()
这个函数是对灯光的 调光/亮灭进行管理的函数,也是在主循环的主要函数。我们使用的是pwm调光,因此使用analogWrite即可进行调光,或亮灭操作。
6、主循环loop
因此有了上述等的函数,构成了下面的主循环,可以看到代码的层次清晰,可读性较好,这些代码很完美的将这个作品的功能全部实现了。
(唯一遗憾的是,这个小夜灯的功耗还算是比较大,静态电流190mA,只能续航5-6个小时,尽管关闭了8266的WIFI电路功能也需要耗电这么多的电流,同样语音模块的功耗也是有,因为我不会写两个模块的低功耗,因此后续可能可以研究一下,延长续航时间。)
*6、BOM清单
*7、大赛LOGO验证
* 8、演示您的项目并录制成视频上传
(项目源码为工程附件中的Taideng_V2)
评论