这是一款cortex m4 f的智能手表。
描述4 Q9 f5 i% m3 Q- c 这款智能手表是基于stm32l4,配备了1.44英寸的tft触摸屏、32位STM32 ARM处理器、额外的QSPI flash和加速度计,所有这些都在一个简洁的盒子里。' |9 l8 g2 R! @9 N% c 这个想法是基于Retrowatch和Piwatch。 它有一个230毫安的锂电池。& V6 |& f- \0 Z. L8 K 8 @% i$ Q; G* ]5 F8 j2 \# [ 细节$ ]# _$ c0 @2 W' d$ ~$ [% ? 作为pix项目中的“zerowatch”的后续产品,Pix-Watch应运而生。 Pix-Watch使用ST单片机,使用Arduino IDE,并为其编写了定制软件。
它的硬件规格是:0 A) U4 H8 i& O& [3 c# C+ K2 @; ~ -最高80mhz皮质M4F单片机+ f9 Y0 u1 s7 v( z6 l - 128kb RAM - 512kb系统FLASH,主机固件 - 1.44英寸高彩色tft屏(ili9163,128 *128px),电容式触控输入) G u2 ^% V$ s -额外flash (4mbyte)& p# C$ t) q+ y, j/ r; F6 \# `8 I- t - 3轴加速度计2 {( d* u; @( Q7 f! f! T- x ——振动电机; ?7 ]6 b* \, N% F6 P7 I x5 Q8 G- y& ]; L 一些特点: ——framebuffer$ p; \. e5 Y/ U) N ——快速绘图 ——易于扩展api ——阿尔法混合 ——开源软件和硬件2 R, L& T% H; W$ y8 G) p ' ^/ A H% |6 N { 目前已完成的工作:1 ^: }) B. z+ W4 t! O/ t1 N ——建立开发平台 . F0 d$ s7 `4 \4 K 正在进行的工作:" p/ ?, S- P% C1 ? ——内联应用框架 ——案例设计 ——编写初始测试代码- O$ }* k% d5 |2 q7 u , M, \# U$ w- @. o7 r7 b 目前需要做的工作:2 L4 {3 T, ]/ U D5 N* z -pcb设计3 ]- u8 G1 G9 E1 e9 b -更好的图形命令集 -暂时使用机载RTC, F- o" G9 M% X9 P% D1 F -外部flash图像/应用程序加载支持 -创建SDK4 P1 h# v N* l2 i' K6 C* z -应用程序eeprom存储(在eeprom仿真中存储变量). x3 C9 v" p$ E4 U5 E- x -应用程序同步和闪烁使用USB) N, @# J- I' P& ^ # F9 x& ~3 M1 @" v6 s. K- j 组件 1×pix-watch板 主板 1×230 mah锂电池 30 x20x5mm 1×外壳 3 d印制 1×Ili9361c 电容触摸1 D3 ?! `0 A- e% o$ a/ G+ S & _6 Z4 r1 ]! U, ]$ n tft速度测量1 c& j- p% W7 @* @) T, C& Y* A 我只是想分享我对面包板系统的基准。 全屏刷新(fillScreen命令):15ms(66fps) 使用sdfat lib从microsd加载的全屏幕(128*128)位图:略大于125ms(即8fps) 您可能想知道为什么位图加载如此低效? 因为我们从缓冲区中的microsd读取了一条水平的像素数据线,将其绘制到屏幕上,并对每条垂直线(总共128x)重复这个过程 q8 W# u# _1 h' e. B 这真的想要我去一个framebuffer,加载整个位图到它,然后调整像素在需要的地方,然后像fillScreen命令一样推送它。" B7 v' X! R4 r2 X% B! ? 这将大大加快速度。 然而,它也有它的缺点:单个framebuffer都会消耗50%的RAM。4 {6 E# A, O% u - i( A' S8 D; V$ l3 W1 ^8 Y 注意:我们不能从屏幕上读取,没有味噌线在屏幕上,否则我们可以使用,作为framebuffer,拯救我们32 kb的内存的成本30-40ms(猜测)绘制速度framebuffer内部ram(如果我们做我需要像20-25ms(猜测))6 p3 `5 M9 j! Z " j4 A0 Q" j% q, @3 C1 K6 v 告诉我们你认为最好的是什么,不加帧缓冲还是用帧缓冲? # Q! Z- s; ?1 z; S( r `/ ]! F+ Y" z pcb越来越小 6 l# ^* I% K& l 6 [& }9 j+ V, s2 @+ a+ T. n 我得到的pcb长度从50mm到43.5 mm,但仍然具有相同的功能(移动轨迹和组件) 也就是说它只比我的zerowatch项目长3.5毫米(它的长度为40mm) 仍然想要一个framebuffer。 f ~1 R4 F* t+ b+ W* q# b 9 D) z. r8 {: f2 e* A$ V :framebuffer都恢复正常了,电池续航时间很长0 [" H( u) }' \/ ^8 ^& p3 z" \4 ` 几天前我又在手表上工作了,脑子里有两件事:framebuffer和延长电池寿命* D3 E- V" ?( E$ ?2 S8 q 我在这两方面都取得了成功,主要是在电池寿命方面:370小时待机(17小时运行@ 24mhz)时间(还没有加速度计)(总功耗:1.35mA) 这相当于500毫安时的15天待机时间!( m1 Y, h5 r9 }1 M& g* g 现在我正在移植所有使用framebuffer的图形命令。7 g) S; _ x. t5 ` framebuffer的唯一缺点是:它消耗了teensy 3.2的一半RAM。 但是多亏了rossum的microtouch框架,我们仍然可以为应用程序提供9kb的RAM,这比Arduino兆字节多1/8 !! V$ |2 } D' t 同样,framebuffer很酷的一点是:alpha混合是可能的,有些人可能看过我演示的视频。但对于那些没看过的人,这个是视频4 H+ i1 B, S- Z, @! _! O# U6 j . ]' _7 @4 |" F, |( k+ g . g7 O* x- _# Z# R, S* o3 V 切换蓝牙模块0 a) N7 M$ L+ c _) I! O( w" ~" b 5 ]- u1 f0 b6 v+ \ 现在我遇到了一个新的蓝牙模块,即ble113模块,它是蓝牙低能量的,并且有非常低的功率模式(几百nA)。2 b% A1 h4 d4 f4 r- w# y 与hc06相比,它的尺寸只有hc06的1/2,耗电量更少。% r1 K6 Z) V+ z8 K- c5 I! Y 这也导致了更小的pcb尺寸(理论上)。 到目前为止,我还没有进一步研究编码。但是我很快就会恢复编程(希望在一周内)/ M' G3 B9 J K ? P3 L3 H# u 是的,这个项目还远远没有结束! 话题:我只是看了看时间,凌晨3:45,我该睡觉了。 注释和图形 & e- M# |+ T4 N4 s4 H# M0 K# d 因为ble113很难正常(Atomsoft是这么说的)(它需要pcb上一个额外的swd来编程),所以我们放弃了它,转而使用BC118模块,该模块也可以在uart上工作,在睡眠模式下只使用9uA 这两个模块的价格大致相同(在digikey上为11刀),所以这不是问题。7 Y" {+ N" ?' h* M3 Y5 U8 L. M1 t 我还开始清理代码,并将其分散到多个库中,否则我们将拥有一个包含1500多行代码的库。 希望代码很快就会出现。 我还创建了一个图形命令,即:循环加载条(log结尾的demo vid),并在RAM中添加了同样多的图形命令,因为它可以简单地加快速度。 我也尝试过超时计时,它稳定运行到144mhz,任何更高的将会导致系统失败(我认为是在mcu的电压下)。+ f# X6 O; [7 D2 v5 W# D. Z 请注意,这是推荐的mcu clockspeed的200%,所以我不建议超过96mhz(这在teensy上已经是超频了)。: e; T, b- E; c0 ]! N 圆形加载条图的视频8 S" p; s3 ?- R' @0 j 7 ]* X8 v N! {! U , y' n. q; r" R4 L , X8 S/ q7 D9 ^# s0 t$ e9 J 缺乏动力和延迟 2 O5 Y x- z- I# O- K6 _8 T! _5 C1 l 你们可能已经注意到这个项目最近没怎么更新,因为我实在找不到继续下去的动力。(别担心,项目会完成的!) Atomsoft(谁会做pcb设计)没有让我知道任何关于设计的当前状态遗憾。(到现在已经超过两周了) 总之,在某种程度上是积极的:& c" H9 ?' h4 L& |, P/ r ! a8 Q8 ~, _2 M2 A. J& w 我有一些时间来重做一小部分代码,我计划一旦我得到我的动机重新做内联应用程序API。 现在,有一个视频演示一些图形化命令,包括反别名圆圈。 ' W z$ m I- U. b' w7 e 改变计划!/ f, W4 P: [4 Q 1 }1 \+ o/ C# u& p 正如一些人可能已经注意到的,我不满意teensy作为单片机,并将切换到stm32l4单片机,我已经有了显示工作,我将抛弃蓝牙,因为我想保持它的简约。 9 |$ Y# B9 ]3 c) O; I8 |. f2 t8 Y0 h 智能按钮将被电容式触摸屏所取代,其行为方式与Android wear类似(基本手势控制!)4 W% W* M6 Y" Q! o 另一个设计变化是整个PCB,我的目标是34*15mm 4层。& _& X8 v3 ^7 P. S& [, d 我将尽我最大的努力使它有点防水(pogo针充电/编程它使用一个码头,没有按钮应该允许我实现这一点。 另外,teensy 3.2没有fpu,因此alpha混合速度非常慢,这可以通过切换MCU来解决,在同一个MCU时钟上增加7x的增益=)" v) Y5 W A' G 性能提升; Y6 l+ R5 h6 }( L9 V {! f" W. ]& X/ w U: Z- B% k# ?0 {5 Z# X a- S0 X; g+ b9 g& B; i 我只是想说明在最初的设计(teensy 3.2)和新设计(stm32l4)之间的浮点数(alpha混合/反混叠)每瓦特的性能增加 首先,我想指出的是stm32l4至少是teensy 3.2规范中节能3倍 实际上更像4x的teensy 3.2需要一个单独的引导装载程序ic,它也使用电源。3 W8 S2 k) t- G* K) @% n: E& X 然后浮点数学....teensy 3.2根本没有fpu,所以计算肯定会很慢,但是在stm32l4上,速度比teensy要快7倍,因为stm有fpu。# D' T: ^2 ?3 l8 ~: Q: k# P% P 与功率效率相比,这大约是28倍(fpu数学/瓦特)% u% o" p" {, ` 5 t) T6 M$ x3 s1 C! q8 _; G& @ 此外,未来可能会从stm32l476改为stm32l496,使用320k的sram,用于更大的应用程序,而且它也更节能。(91微安/兆赫与100微安/兆赫); S" [9 N; Z& S$ A+ ^2 W+ A5 [ $ O* @" h- D# K/ h5 I P pix-watch相关资料% j5 h! e0 Z7 S. ]5 ~ 4 h- H1 l" R) j5 V8 f 0 U. a' E- s; b. p6 X" O9 @0 s/ S 原文请见hackaday; }: q4 j [: H% r 1 s2 Q j8 n4 B. ?6 t/ F |
| 考虑过stm32l496芯片的体积了吗,整体设计看上去和arduin的比例,感觉还是太大了,可以看到目前市场上免费领取的儿童手表手机,还带有一个GPS,功能十分强大,已经成熟的商品化了。 |
微信公众号
手机版