STM32 NUCLEO板方案设计——居家小伴侣
本帖最后由 netlhx 于 2015-1-28 15:53 编辑方案名称:居家小伴侣设计理念:简单、实用、易实现功能概述:
[*]环境灯,白天不显示,夜晚根据环境光显示类似小夜灯效果,PWM自动调光。
[*]闹钟功能,6组闹钟设置
[*]语音播报,整点报时,温湿度报告,空气质量报告
[*]人来检测,人来灯亮,离开熄灯
[*]万年历显示,背光可控
扩展性,后续可能添加内容:
[*]添加网络模块
[*]外部存储模块SD卡,实现电子像册功能
[*]视频模块(得换U?)
[*]设计专用PCB板,加个小外壳
按这个思路,可以将产品设计成一个小纪念品。大家献策,完善产品,到时如果社区能提供赞助(ST就是有钱;P),免费派发给社区网友,可好?
实现
用到的端口引脚,见图
IPs使用情况
Pins配置
面包板图
手机太渣,就不上视频了,关键画面都截图,见谅!
完整工程文件包:
一、显示模块
使用的液晶显示模块如上图所示。液晶基本参数:
[*]接口:串行接口
[*]分辨率:320X240
[*]驱动IC:ILI9341
[*]数据宽度:8/16位混合模式
由于NUCLEO F072的存储容量及时钟频率相对较低,该MCU在驱动LCD时效率并不高。最初逐点画数据时,刷屏速度比较慢。所以在实现该模块时,主要的工作应该放在显示优化上。STM32系列MCU在驱动LCD时,主要的优化方法有如下几方面的考虑:
[*]采用并行接口
[*]FMC/FSMC
[*]DMA
由于F072并没有FMC/FSMC接口,LCD也是串行工作模式,所以唯一的优化方法就只剩下DMA方面考虑了。
下面是DMA显示代码,速度还是不错的。
下面是测试的刷屏效果:
详情参见:https://www.stmcu.org.cn/module/forum/thread-599314-1-1.html
二、万年历模块
做为家居伴侣,日历是必不可少的部件。利用开源万年历算法,在液晶显示的基础上实现万年历显示,还可以加上其它的问候及指示用语!当然也可以显示图片,做为数码相框使用!
下面是部分效果
由于NUCLEO板没有提供电池接口,所以断电后日历信息都会丢失,实际应用中应该考虑外接VBAT。
详情参见:https://www.stmcu.org.cn/module/forum/thread-599613-1-1.html
三、人来检测
该模块检测人体热红外辐射,输出相应的信号。这里使用的是成品模块,连接到MCU的GPIO口,根据检测到的信号高低来控制LED灯的输出。
HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。
实际上,该模块能单独使用。考虑到外部干扰及其它一些因素的影响,这里根据模块输出的信号,进行相应的判断之后,再控制LED灯的输出,能有效的防止干扰。
效果图,画面背景上手手伸到传感器的前面,不是很清楚。
代码就不贴了,见完整的项目内容。
四、环境光检测
演示环境光检测,使用了最简单的光敏二极管。随着外部光线的强弱变化,光敏二极管的电阻也相应的变化。利用STM32 MCU的AD转换,将光敏电阻两端的电压信息实时采集,并根据采集的电压值来调整照明灯的PWM输出信息。
下面是检测到光敏电阻两端电压值,通过ADC采样,依据该值来调整食人鱼LED灯的亮,使用PWM输出亮度值,由于没有视频,效果不明显。
五、温、湿度检测
定时报告室内温、湿度,或通过外接相应的控制电路来调整相应的温、湿度,将为我们提供更好的居家环境。
由于手头只有DS18B20,所以就只能检测温度了。
效果:
详情参考:
https://www.stmcu.org.cn/module/forum/thread-599639-1-1.html
自我评价:
学习为主,实现了一些基础功能,欢迎指教!
继续努力:
1. 用QT写一个上位机,利用USART来管理MCU及设备
2. 加个空气质量模块
3. 存储及语音模块
4. 使用FREERTOS来调度作业
5. 遥控及互连功能
……
这些需要管理员来加的。:)我已经帮你加上拉 八错。。 看了描述就知道很实用了 不错啊:) :lol顶一下LZ 比较实用吧 万里-363223 发表于 2015-1-9 11:01
比较实用吧
都是些基础的东西,呵呵 楼主后续呢?进展如何啦 沐紫 发表于 2015-1-13 17:11
楼主后续呢?进展如何啦
正在做,只是没有及时更新