6244|5

1297

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【一起玩MicroPython】06 基于手势控制的PY FM Radio V1完工 [复制链接]

 
好了,前面已经把显示、手势和收音机各个模块的驱动都做完了,下面就要开始应用设计了。先说说硬件环境,使用的是STM32F4DISCO(自带加速度)+Si4703+LCD5110。软件设计上,虽然应用的核心功能是收音机了,但是和大部分的应用相似,没有良好的用户交互界面,使用体验是要大打折扣的。所以下面的文字大部分都集中在用户交互设计上。

首先是控制部分,加速度计可以提供上下左右4个方向的控制,在应用中给音量增减和电台下上切台使用。由于敲击功能没有实现,因此电台的开关交给了开发板上的用户按键。用户按键原计划使用callback来实现功能,但是测试木有成功啊。不过既然加速度值也是用polling的话,那不如按键也一起好了。扫描使用最原始的方式,扫描到以后,延时10ms,然后再判断是否按下。加速度计在使用时,也存在类似的抖动,因此也使用了相同的逻辑来消抖。同时,通过测试,给定了一个加速度计倾转的阈值:g=0.3,也就是说当某个方向(不含z)的g大于0.3,表示有用户动作发生。

接下来就是显示界面了。整个5110有6行高度为8的字符可用,每行84个点。应用要显示的核心内容是电台频率和音量,内容不多,因此可以适当放大。最终频率选择了12*24的字体,占用3行,又不会把整行撑满;音量做了以模拟的bar显示,用竖条|||||||的多少表示音量的打下,占用两行;这样还多出一行,用来显示一个固定字符串“PY FM Radio”。整体界面如下图所示:


事先用其他方式确定了若干个本地效果较好的电台,放到了radiolist中。当发现有左右手势的时候,取出radiolist中的下一个电台频率值,发送给Si4703,并更新显示界面,电台频率是绕圈改变的,也就是说到了radiolist的最后一个,下一次就回到了第一个。当发现有上下手势时,对volume进行响应的改变,并发送给Si4703,并更新显示界面。音量最大15,最小0(表示静音)。当发现有用户按键动作时,在开关状态之间切换。关闭时,清除屏幕,关闭Si4703;开机时,正常显示,FM工作。

设计过程中发现了浮点数运算的精度问题。比如频率99.6Mhz,在list当中是存成996的,显示的时候,通过运算channel=str(996/10),将电台转为浮点字符串99.6。前期调试的时候,用的电台较少,没有问题。后面把所有电台都加上时,发现有些电台,比如890,做了除法运算以后,变成了89.0001,导致显示行方向溢出。最后通过字符串截取的方式取到自己想要的长度。python似乎没有printf?

目前还有一些小问题,比如加速度识别的抖动有时候还会出现,音量有时候会有跳变等等。最后通过视频看下具体效果吧。main.py见附件,写的有点low,大神多提意见。

main.py (1.73 KB, 下载次数: 22)

main.py (1.73 KB, 下载次数: 22)


最新回复

汇总帖在此: 【一起玩MicroPython】—by johnrey https://bbs.eeworld.com.cn/forum ... 9205&fromuid=536508   详情 回复 发表于 2016-6-30 09:41

赞赏

2

查看全部赞赏

点赞 关注
 
 

回复
举报

1万

帖子

2853

TA的资源

管理员

来自 6楼
 
汇总帖在此:
【一起玩MicroPython】—by johnrey
https://bbs.eeworld.com.cn/forum ... 9205&fromuid=536508

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

沙发
 
不错,好玩,哈哈,不过这个叫手势么,应该叫重力感应吧
个人签名HELLO_WATER
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
很好玩的样子。

就是还缺几个py文件。如果在增加几个图片和原理图就更完整了。
 
 
 

回复

168

帖子

0

TA的资源

一粒金砂(中级)

4
 
真地道,不赖。。。。
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

5
 
en ,nice
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表