[原创] SensorTile智能怀表

dcexpert   2017-4-26 00:36 楼主
演示视频:




经过几个月的反复修改,SensorTile第一版完成了。首先感谢EEWORLD和ST提供了这次活动机会,可以尝试新的想法,并最终实现了。加深了对ST的传感器、低功耗MCU的认识,同时也感觉micropython真的很好用。

在DIY过程中,遇到不少问题,好在都一一解决了,还学到不少新东西。首先是移植micropython中遇到问题,发现不能驱动GPIOG。经过自己研究修改,发现是没有打开PORTG的时钟,micropython终于可以运行在SensorTile上了。这个问题也反馈到官方,并在micropython的源码中改进了。

接着发现传感器接口使用了三线方式的SPI(半双工),而mpy上不支持这种方式。仔细研究后发现,幸好传感器支持I2C/SPI两种接口,使用软件I2C方式,也可以很好的驱动传感器。

然后就是sensorTile怎样安装到怀表中。怀表的空间很紧凑,SensorTile虽小,但是加上USB小板、OLED和电池,就装不下了。最后经过反复考虑和比较,只好不用SensorTile自带的USB小板,而是自己扩展,并且替换了更薄的电池。

调试硬件中,突然发生了一个严重问题,USB突然无法识别出设备,怎么也连不上SensorTile了。经过仔细检查,发现是SensorTile上的LDO没有输出了,因为系统是宽压的,将3.3V直接提供给sensortile,暂时解决了电源问题。

硬件完成了,编写软件时又遇到bug,发现mpy在STM32L4上低功耗有bug,外中断和RTC都不能唤醒,而在STM32F405/F411上都是正常的。因为时间关系,这个问题只好先放下,等修正后在补上了。

还有一个遗憾是调试OLED时发现显示的时候偶数行没有显示出来(程序是没有问题的,在另外OLED上验证了)。应该是安装时碰到了OLED的排线,暂时没有办法拆开修了。幸好通过调整字体大小和位置,还能看清。

使用micropython编程很方便,这一次再次验证了这一点,很快就完成了界面部分和主要功能,包括:
  • 电池充电状态
  • 电池容量
  • 气压传感器
  • 三轴传感器
  • 陀螺仪传感器
  • 时间

运行识别、蓝牙通信、数据保存等功能还没有加上,等后面有空时补上了。
因为这次只需要做一个原型机,所以没有专门做PCB,而是完全手工方式打造,这样就不太方便。下一版预备重新设计电路,专门做一个PCB,不但方便使用,也可以容易添加功能。

DIY过程的一些图片:
22.jpg

19.jpg

23.jpg

24.jpg

25.jpg

26.jpg

27.jpg

02.jpg

原理图:
sch.jpg


源码:
SensorTilePocketWatch.zip (112.66 KB)
(下载次数: 26, 2017-4-26 00:14 上传)


源码也已上传Github:
https://github.com/shaoziyang/SensorTilePocketWatch

使用方法:

先通过接口板将MicroPython固件下载到SensorTile中,然后才可以通过MicroPython编程。因为MicroPython官方还没有支持SensorTile,所以SenSorTile的MicroPython固件需要自己移植,可以使用我移植好的,也可以自己编译源码。下载固件时,需要注意不能使用dfu方式,因为目前的dfu工具对于STM32L476存在问题,下载后的程序不完整,不能运行。目前可以通过STLink和STM32 ST-LINK Utility进行下载。

https://github.com/shaoziyang/MicroPython_firmware/tree/master/SensorTile

然后将源码文件复制到SensorTile的PYBFLASH磁盘,就可以运行了。
怀表的按钮兼作唤醒、开盖、功能切换,一键多用。

01.jpg






  • 01.jpg

回复评论 (19)

大赞啊   这个怀表,屏幕还能显示其他的哪些啊
点赞  2017-4-26 08:43
好牛好牛。。。。。。。
点赞  2017-4-26 08:52
真棒
So TM what......?
点赞  2017-4-26 09:23
漂亮                                                               
点赞  2017-4-26 10:07
膜拜
点赞  2017-4-26 10:20
漂亮
疏雨客晚归,荒烟乱,几许江南无晴!又落花,残香织梦,莫  莫  莫,白首衷肠……
点赞  2017-4-26 10:23
引用: 柠檬酸钠 发表于 2017-4-26 08:43
大赞啊   这个怀表,屏幕还能显示其他的哪些啊

目前完成的显示内容还不太多,主要是时间和传感器参数。

因为使用MicroPython编程,所以扩展起来是非常方便的。后面可以加上手势判断、气象预报(Casio手表里就是用气压判断天气变化)、温度变化等。
点赞  2017-4-26 18:14
高价回收银浆,银焊条,银粉,擦银布,硝酸银,氯化银,金盐,金水,金渣,925银等金银废料 电话:13827231929
点赞  2017-4-27 15:55
点赞  2017-4-28 10:52
邵工干的都是细致活,做出来的东西都非常精美,值得学习这种DIY精神!
点赞  2017-4-28 19:32
引用: strong161 发表于 2017-4-28 19:32
邵工干的都是细致活,做出来的东西都非常精美,值得学习这种DIY精神!

多谢夸奖。

点赞  2017-4-28 22:28
引用: dcexpert 发表于 2017-4-26 18:14
目前完成的显示内容还不太多,主要是时间和传感器参数。

因为使用MicroPython编程,所以扩展起来是非 ...

厉害了,还可以加计步啊,运动识别啊什么的
点赞  2017-5-2 16:16
挺详细,完成度很高啊,怀表漂亮。
默认摸鱼,再摸鱼。2022、9、28
点赞  2017-5-3 14:52
引用: freebsder 发表于 2017-5-3 14:52
挺详细,完成度很高啊,怀表漂亮。

是micropython用起来很方便。
点赞  2017-5-3 15:37
引用: dcexpert 发表于 2017-5-3 15:37
是micropython用起来很方便。

过段时间和你学学mpy
默认摸鱼,再摸鱼。2022、9、28
点赞  2017-5-3 16:13
引用: freebsder 发表于 2017-5-3 16:13
过段时间和你学学mpy

欢迎一起来玩mpy。

点赞  2017-5-3 18:25
古典美和科技的完美结合
点赞  2017-5-10 17:21
古老而神秘
点赞  2017-5-16 13:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复