并非没有运动的一天-2:重新编程中国手镯

对于从事体育运动的人来说,经常跑步或骑马的伴侣是具有各种应用程序的智能手机。借助自行车,您可以更轻松地将智能手机固定在方向盘上,并观看来自传感器的数据。但是,如果您正在跑步或滑雪,该怎么办?您可以将智能手机固定在手上,为此有特殊的保护套(包括旋转保护套)。但这是不便的,有时是麻烦的。另外,俄国英雄不直接走。

互联网上有很多文章,发烧友可以在上面制作智能手表。自制或印刷外壳。进行填充。但是速卖通上有很多现成的设备。例如,如下图所示。如果您相信这些说明,那么它就是直接的超级设备:它可以测量心率,压力,卡路里和其他东西。


让我们打开看看里面有什么。



实际上
. . Random() . , , , .


该手镯的大脑是来自中东王国丰家微电子有限公司制造商的PHY6202芯片。内部有一个Cortex-M0和一组标准外围设备。内存:512kB闪存,138kB SRAM和128kB ROM。 ROM包含BLE堆栈和UART引导加载程序,如下所示通过UART的可编程芯片。中国同志认真地提出了UART的联系方式。要切换到UART模式,引导加载程序需要将TM输出拉至高电平并复位芯片。

可以在此处找到PHY6202(以及他的哥哥PHY6212)的实用程序和SDK

直接提供芯片编程实用程序PhyPlusKit。该文档包含命令列表:擦除,写入等。以上链接中的文档PHY62XX_UART_FlashWrite_Protocol(中文)中提供了详细信息。老实说,命令列表不完整。PhyPlusKit使用另一个rdreg命令(读取任何寄存器)。

让我们开始吧。我们拆卸,将必要的触点焊接到UART-USB适配器上,然后进行

SDK包含许多示例。我认为它本身是弯曲且潮湿的。有时您必须编辑源代码,因为 它们并非仅用于“外部”使用。这是电池服务提供的电池电量计量功能。为什么她在那里根本无法理解。

static uint8 battMeasure( void )
{
  uint8 percent;
  percent = 95;
  return percent;
} 

不是SDK,而是一个可靠的示例。
手镯的引脚排列为:
1)加速度计SDA P32
SCL P33
2) LCDSDA P25
SCL P31
RS P00
Reset P01
CS P02
LED P34
3)P03
4)P20
5) USB Vin ( USB)P15
6) VbatP14/AIO3
7) Green LED ( )P23
显示屏为ST7735上的标准显示屏(在速卖通上完整显示),分辨率为80 * 160。由SPI驱动。有现成的库,但是最好根据字体大小和字符来制作自己的简易版本。显示器是彩色的,但是在大街上并不太相关,因为低对比度(让人回想起西门子电话的透反射式显示屏)。是的,有色玻璃。我们将使用白色来显示文本,这是最好的看法。

触摸按钮位于Tontec TTP233D-HA6芯片上。

加速度计是未知的,但是对I2C总线的扫描显示,它像所有ST加速度计一样使用寄存器。最重要的是,它类似于LIS2DH12。似乎所有控制寄存器都对应。

为了在手镯上显示我们的信息,我们需要我们自己的BLE服务进行数据传输。SPP一样此外,您可以通过BLE添加电池服务和固件更新。

作为项目的基础,我们以更新OTA的固件为例,并根据需要对其进行重新制作。添加电池服务。要传输数据,您可以使用从SDK实施自定义服务的示例。它使用一项服务FF01,并使用一项特征FF02。

扰流板
SDK GPIO 0, . . , . , pull-up pull-down ( 100 ) . . 40 , «» pull-down, 15 ( ).

我们加强工作服务:

  1. 通过触摸按钮中断处理。除了打开屏幕和打开/关闭手环本身之外,我们还将通过FF02特性传输命令来进行单点和双击识别。
  2. 从智能手机接收的数据通过相同的特性输出到显示器。
  3. 简短包含振动马达,以引起注意。
  4. 使用加速度计,用一挥手就打开屏幕(这很难设置,因为在跑步时会挥动手)。

好了,手镯准备好了。我们通过nRFConnect进行检查,它允许您读取和写入特征值。在屏幕上显示脉冲,时间,距离和另一个计时器(例如,显示时滞或超前图表,即一种起搏器,但这只能从您的应用程序中获得)。


现在我们需要将数据传输到某个地方。我目前正在使用Strava应用程序,尽管我越来越不喜欢它。也许是从她那里获取跑步时间以及从状态栏中的通知获取距离(尽管四舍五入到100 m)的最简单方法。为此,您需要编写一个带有用于监听通知的服务的应用程序。这并不困难。但是我们将直接从BLE或ANT +皮带读取脉冲。好吧,由于手镯上有关于按下按钮的通知,因此我们需要在某个地方使用它们。例如,您可以通过BroadCastReceiver发送消息来暂停Strava并重新启动它。而且最好是有一天让您的Strava充满风铃。该应用程序需要访问该位置的权限(这对于使用BLE是必需的)和访问通知的权限。

仍有待核实此案。不幸的是,冬天在2月结束,因此本文开头图片的周期已经结束。但是你可以去跑步。加速度计通常会不必要地打开屏幕,也许应该将其完全关闭。触摸按钮可以对从额头掉落的水滴做出反应。




最后,好消息。工厂已出厂的手镯可通过PhyApp应用程序支持OTA更新(它与SDK位于同一位置,原为中文)。因此,即使没有现成的固件,也不需要拆卸表链。闪烁并使用。为此,您需要安装应用程序,将固件放入手机的“根目录”(HEX,而不是HEXF,因为后者包含了我们出厂时已经拥有的引导程序),连接到手环并使用OTA按钮将固件上传到手环。闪烁后,手环将关闭,要打开它,您需要按住按钮2秒钟。

通常,PHY62上的手表和手镯可以轻松转换为任何东西。

参考文献:

  1. android应用程序的源代码和APK(它是在Android 8.1下编写的,似乎可以在9下运行,在其他情况下却没有检查)
  2. 通过BLE的HEX固件文件,通过UART的HEXF-用于通过UART的固件(我不介意源,但我需要理解的是,我可以通过许可协议上传该文件,并且谁不在此特殊范围内)+ PhyApp固件的固件应用程序OTA。
  3. 在这里买了一条手镯,但我不能保证填充量是一样的,因为 外观很多相同,但芯片不同。有一些带有较大屏幕的选件,也有PHY6202。通常,有些手表/手镯的芯片不同(Phy +,Telink甚至nRF)。


PS通常,看来PHY62的SDK是基于Texas Instruments SDK的BLE芯片创建的。

All Articles