
这是一款cortex m4 f的智能手表。/ E3 E& N$ @. R1 V![]() 描述 这款智能手表是基于stm32l4,配备了1.44英寸的tft触摸屏、32位STM32 ARM处理器、额外的QSPI flash和加速度计,所有这些都在一个简洁的盒子里。/ ~& J$ u* M' A! b3 O/ J5 O 这个想法是基于Retrowatch和Piwatch。 它有一个230毫安的锂电池。/ @8 ]+ N2 `% e( ]1 P. D& G& N! h 1 N+ S& l" g5 \% A) [$ c 细节, J, G \! s, Y& ^; z/ w6 `1 V 作为pix项目中的“zerowatch”的后续产品,Pix-Watch应运而生。- A5 o9 v4 g1 ?4 q0 z% O Pix-Watch使用ST单片机,使用Arduino IDE,并为其编写了定制软件。3 @8 s. `( E1 E" A& J ![]() 它的硬件规格是: -最高80mhz皮质M4F单片机! ^) X6 Q1 o4 W2 B; E% t$ J+ K7 P - 128kb RAM - 512kb系统FLASH,主机固件: i9 W( w$ h3 U, N y" \8 | h) ~ - 1.44英寸高彩色tft屏(ili9163,128 *128px),电容式触控输入. F* w+ S& l; }0 Y% y -额外flash (4mbyte)- q2 |! Y2 G' t E+ _ - 3轴加速度计# x& [& U/ a9 N0 X5 n$ D ——振动电机7 f) @" S8 F9 G& U/ P2 G$ v9 r" d 一些特点: ——framebuffer ——快速绘图 ——易于扩展api: Z; N! C3 ~1 x$ e ——阿尔法混合. e4 Q% C/ v& x6 l' ` ——开源软件和硬件( \# m& h8 @6 { f ( B2 `0 ?( ?' V4 E ^5 I. j 目前已完成的工作: ——建立开发平台9 u0 }1 U% ?+ v) G( S 4 V% x& O+ j5 u2 E" {- i8 R' `) J : q; i2 k' Y5 V5 { 正在进行的工作: ——内联应用框架5 K3 D6 {; f2 A3 s3 v& @( V' C ——案例设计% n' `9 X; z6 P5 M- P) B4 B5 d ——编写初始测试代码6 ^/ L; y7 [( h/ j" T6 a # {# t/ z- B1 u/ F/ Y 目前需要做的工作: -pcb设计 -更好的图形命令集 -暂时使用机载RTC -外部flash图像/应用程序加载支持 -创建SDK3 U/ J/ e# A, l" e) @ f7 q, q# I -应用程序eeprom存储(在eeprom仿真中存储变量) -应用程序同步和闪烁使用USB ' t# O" u1 R2 `) p0 { 组件 1×pix-watch板 主板3 w" o: M( S5 P# w9 n6 G% _% t! j& j# { 1×230 mah锂电池 30 x20x5mm 1×外壳 3 d印制 1×Ili9361c 电容触摸 ) I, u( F9 ]1 Y2 B! X. `# K tft速度测量" D) t6 g& S: `* o5 [7 a: c1 ? 我只是想分享我对面包板系统的基准。 全屏刷新(fillScreen命令):15ms(66fps) 使用sdfat lib从microsd加载的全屏幕(128*128)位图:略大于125ms(即8fps)" H' H" y6 w; O! b$ d3 H, }% U+ ]+ l ; I1 ^% c+ z6 H4 f$ f 您可能想知道为什么位图加载如此低效?) x [! `, W8 w! E( t- E1 p 因为我们从缓冲区中的microsd读取了一条水平的像素数据线,将其绘制到屏幕上,并对每条垂直线(总共128x)重复这个过程6 j% m% E; E8 x 这真的想要我去一个framebuffer,加载整个位图到它,然后调整像素在需要的地方,然后像fillScreen命令一样推送它。. w# O5 L- c1 A' @6 g3 N 这将大大加快速度。 然而,它也有它的缺点:单个framebuffer都会消耗50%的RAM。1 A+ \- x$ r0 Q7 P' ^( r % k0 u0 x2 P5 L) q" d$ e- Y- y 注意:我们不能从屏幕上读取,没有味噌线在屏幕上,否则我们可以使用,作为framebuffer,拯救我们32 kb的内存的成本30-40ms(猜测)绘制速度framebuffer内部ram(如果我们做我需要像20-25ms(猜测))' Q3 O6 k: H: y- W) } ; f# J3 c. {4 ]6 P8 h1 Z 告诉我们你认为最好的是什么,不加帧缓冲还是用帧缓冲?9 A3 |/ X3 j' k5 \ pcb越来越小 5 a/ K! A+ M6 J1 _5 C 我得到的pcb长度从50mm到43.5 mm,但仍然具有相同的功能(移动轨迹和组件)3 P8 e) u" I! B" q9 |4 M$ P 也就是说它只比我的zerowatch项目长3.5毫米(它的长度为40mm) 仍然想要一个framebuffer。 :framebuffer都恢复正常了,电池续航时间很长( g+ `5 D& c6 E' b3 q; l + N6 d/ T5 R& F! G+ ~ 几天前我又在手表上工作了,脑子里有两件事:framebuffer和延长电池寿命 我在这两方面都取得了成功,主要是在电池寿命方面:370小时待机(17小时运行@ 24mhz)时间(还没有加速度计)(总功耗:1.35mA) 这相当于500毫安时的15天待机时间! 现在我正在移植所有使用framebuffer的图形命令。 & d3 q3 ?) c* o framebuffer的唯一缺点是:它消耗了teensy 3.2的一半RAM。$ o B+ n+ g/ M' y 但是多亏了rossum的microtouch框架,我们仍然可以为应用程序提供9kb的RAM,这比Arduino兆字节多1/8 !/ i7 Z" w7 i7 ^/ v; W! a+ m0 n 同样,framebuffer很酷的一点是:alpha混合是可能的,有些人可能看过我演示的视频。但对于那些没看过的人,这个是视频 ! ~$ Z$ H T; b) @$ K+ X; X5 ~ 9 g5 ]0 R/ e3 D% z M5 J! O# z' o 3 R$ F! {& k( p( ` 切换蓝牙模块4 W! E9 v Y; C! E 2 K, w) T8 j! n/ s' P; h" U' O 现在我遇到了一个新的蓝牙模块,即ble113模块,它是蓝牙低能量的,并且有非常低的功率模式(几百nA)。8 R0 V! X& m& ?9 v4 h* J 与hc06相比,它的尺寸只有hc06的1/2,耗电量更少。 这也导致了更小的pcb尺寸(理论上)。& h! c: w8 W* r5 l/ ~ 到目前为止,我还没有进一步研究编码。但是我很快就会恢复编程(希望在一周内)3 c; @1 y$ v3 |! k7 B2 e4 _ - G+ X5 M7 f8 e 是的,这个项目还远远没有结束! 话题:我只是看了看时间,凌晨3:45,我该睡觉了。 注释和图形 , Y) p2 [/ k7 j N- p 因为ble113很难正常(Atomsoft是这么说的)(它需要pcb上一个额外的swd来编程),所以我们放弃了它,转而使用BC118模块,该模块也可以在uart上工作,在睡眠模式下只使用9uA9 X0 v7 W4 I3 t# ^7 s 这两个模块的价格大致相同(在digikey上为11刀),所以这不是问题。4 ?7 h+ ?0 {7 C 我还开始清理代码,并将其分散到多个库中,否则我们将拥有一个包含1500多行代码的库。 希望代码很快就会出现。3 s O( v9 }5 X+ q 9 d7 n0 Z* z5 y1 K- X6 m/ O 我还创建了一个图形命令,即:循环加载条(log结尾的demo vid),并在RAM中添加了同样多的图形命令,因为它可以简单地加快速度。 我也尝试过超时计时,它稳定运行到144mhz,任何更高的将会导致系统失败(我认为是在mcu的电压下)。( ?+ v1 B/ e/ y5 { 请注意,这是推荐的mcu clockspeed的200%,所以我不建议超过96mhz(这在teensy上已经是超频了)。' |( o: d% G' A- B( Y 圆形加载条图的视频 5 e/ C- p2 b7 m 缺乏动力和延迟 你们可能已经注意到这个项目最近没怎么更新,因为我实在找不到继续下去的动力。(别担心,项目会完成的!) Atomsoft(谁会做pcb设计)没有让我知道任何关于设计的当前状态遗憾。(到现在已经超过两周了)8 T: g8 ~4 p, @" ^) [3 _4 E 总之,在某种程度上是积极的:/ N7 @+ I, l6 K 我有一些时间来重做一小部分代码,我计划一旦我得到我的动机重新做内联应用程序API。 现在,有一个视频演示一些图形化命令,包括反别名圆圈。 * D7 s+ h2 h$ K5 p3 H9 f& y4 s! M( f 改变计划! " G9 ^" W2 h# I; |2 c9 [2 _ 正如一些人可能已经注意到的,我不满意teensy作为单片机,并将切换到stm32l4单片机,我已经有了显示工作,我将抛弃蓝牙,因为我想保持它的简约。 ' o3 }; g, }- c, E: _6 R* d- _ 智能按钮将被电容式触摸屏所取代,其行为方式与Android wear类似(基本手势控制!) 另一个设计变化是整个PCB,我的目标是34*15mm 4层。4 Y8 d; Y: g( G1 Q: p 我将尽我最大的努力使它有点防水(pogo针充电/编程它使用一个码头,没有按钮应该允许我实现这一点。 另外,teensy 3.2没有fpu,因此alpha混合速度非常慢,这可以通过切换MCU来解决,在同一个MCU时钟上增加7x的增益=)# B) @" j2 B l& S 性能提升" B; g$ ^- _1 X7 A 我只是想说明在最初的设计(teensy 3.2)和新设计(stm32l4)之间的浮点数(alpha混合/反混叠)每瓦特的性能增加 q' }- Y. J" K 首先,我想指出的是stm32l4至少是teensy 3.2规范中节能3倍+ X5 B$ U+ H3 ?" o7 o; ~ 实际上更像4x的teensy 3.2需要一个单独的引导装载程序ic,它也使用电源。 J4 H7 \! J$ b/ A9 N4 X C; v 然后浮点数学....teensy 3.2根本没有fpu,所以计算肯定会很慢,但是在stm32l4上,速度比teensy要快7倍,因为stm有fpu。5 P. F/ v* G3 k& P 与功率效率相比,这大约是28倍(fpu数学/瓦特)( Z( y0 G1 u- y/ q9 b* h9 A/ f$ } 此外,未来可能会从stm32l476改为stm32l496,使用320k的sram,用于更大的应用程序,而且它也更节能。(91微安/兆赫与100微安/兆赫) . @. V2 K* Y) h2 `3 n+ V" r pix-watch相关资料 原文请见hackaday ' E0 y: t3 j& r+ @ k e8 k |
考虑过stm32l496芯片的体积了吗,整体设计看上去和arduin的比例,感觉还是太大了,可以看到目前市场上免费领取的儿童手表手机,还带有一个GPS,功能十分强大,已经成熟的商品化了。 |