
本帖最后由 丿灬幸灬 于 2018-11-17 12:10 编辑 0 \/ L. h/ U( P PyWatch1 f; N' S, z7 v: o7 c$ R. J 基于STM32的蓝牙手表,运行Micropython! ![]() / j0 A2 T9 k- x9 l f/ I9 ^. Z$ h 0 e& T. x' Y Y* n2 p 描述2 S- y, n9 J ^) a% X3 ] 有大量的圆形OLED显示器使用MIPI DSI协议进行通信,ST推出了具有板载OLED的STM32L4R9。 2 E" I3 C. }. z2 W 这是一个在该处理器上运行μPython的项目,并通过他们构建一个手表。 D3 c+ Z1 q2 |: E6 ? ( @+ U/ ^1 c* Z0 P 板卡启动演示8 Q' T$ Q5 H3 H, E. s5 s* F7 w 因为我对使用GUI工具有点过敏,讨厌Java,并且不理解IDE,所以到目前为止,我一直在努力让STLink工具或OpenOCD能正常的工作。 我正在使用的芯片stm32L4R9X太新了,这两种软件还都没有被官方发布 e% n8 G j) f- U9 K 我能够将芯片添加到stlink的芯片description中,但是写入flash目前不正常。我知道openocd最近在flash algo上做了一些工作,所以下一步是在那里添加芯片标识符和细节,看看我能否用openocd让它正常flash写入。& T0 d4 D4 |; Z7 I3 b' Q2 S- @% O OpenOCD在我的经验中也会有错误,但是我有一个非常好的方法来添加STLink (一个实现了另一个芯片的方法)。 1 i- b5 s4 L. a/ } 当前的照片只是运行演示案例里的程序。我可能还需要一段时间才能有任何类型的视频驱动与屏幕进行通信。令人鼓舞的是,他们的一个演示应用程序正是我试图做的,只是用了一种不同的方式。 目标是在最后有一块可用的手表,2 a" @9 [" x. ] 包括: ' c K0 {. m& ?' T, W0 f 从云端获取时间的一些方法 / ~, H- s: r ~6 X 用于步数/健身的加速度计 " s# ]! N3 ?1 `4 l 用于自动亮度检测的环境光传感器4 y! a5 G7 D. s4 \- H5 ^; S 用于在开发的扩展接口5 A7 `. C% S" R# ] ' m" V* |' u) U! g 便于扩展/修改的Python源代码 触摸边框-手表表面周围的触摸按钮环,用于用户界面(触摸屏太精致了)7 B; b( I4 |* k o k 4 W/ M7 L4 Y0 f& A 防水(组装后) 所以不是很多,对吧?5 @; Z( u& q" e/ ~ 显著进展6 h9 ~3 {: m: H# ? 过去几周进展显著。我用stlink识别芯片ID并开始flash写入,但由于某种原因,最后一步失败了。我不知道该怎么做,只能阅读应用笔记,希望能找到一两条线索。& [! b3 I8 g" G$ V& k" B A# [ ST发布了写入Flash的示例代码,我会在继续尝试让它工作。这也可能是一个编译问题,在构建μpython时,我需要做一些不同的事情。0 t1 w4 J. I# I4 `# d# o7 R0 Z3 w & _: H/ Y" o" n D/ J0 g& } & R; c) u8 r Z/ S8 f* T% A 上传成功!# ]/ f) x3 K/ [) B( ?4 F4 K1 B3 l 所以,我最后一件没有做的事情是写入flash之前擦除芯片;它必须在单独的步骤中完成,我不知道这一点。因此,项目待办事项列表现在看起来像: *让μpython通过USB OTG进行对话 4 v( q0 y. i5 W. r *编写某种可从python访问的frambuffer驱动程序9 @$ Q; e9 {! i' Z, M3 I . R, o5 c# V+ N4 B *打造一个手表界面) M, v& i" i( f* X- o + ^% e% W; U+ M( I, ~: Q *设计/构建电路PoC (可能采用LGA 144封装,便于焊接) % U% e, Z% t4 y* V0 C *设计/构建实际可穿戴电路 , _6 ]0 G& {' R *构建案例( k' y7 u$ j7 }% r+ ^* L 更多资料请见hackaday $ ?" \+ _; c" b' @+ o% C 7 l, |3 w5 Q9 v& t$ M1 x* r |