
本帖最后由 丿灬幸灬 于 2018-11-17 12:10 编辑 ' q, n9 Q6 ]# ^$ b2 d$ ? PyWatch, [, g( }, ^8 T+ U8 z( N1 `8 z 基于STM32的蓝牙手表,运行Micropython!4 M( O% U) |/ n: ?' E: \8 T ![]() 6 E) R K' V3 \1 M 描述1 p& ^7 ~% _* v3 o1 x7 Z 有大量的圆形OLED显示器使用MIPI DSI协议进行通信,ST推出了具有板载OLED的STM32L4R9。 这是一个在该处理器上运行μPython的项目,并通过他们构建一个手表。 5 ^( p d% T3 L" r5 g! r " r9 L8 d1 l C4 X5 `( X- |7 O 板卡启动演示 因为我对使用GUI工具有点过敏,讨厌Java,并且不理解IDE,所以到目前为止,我一直在努力让STLink工具或OpenOCD能正常的工作。8 e: a. G* N( u# `9 n& | 我正在使用的芯片stm32L4R9X太新了,这两种软件还都没有被官方发布4 t7 n8 D0 M C, I 我能够将芯片添加到stlink的芯片description中,但是写入flash目前不正常。我知道openocd最近在flash algo上做了一些工作,所以下一步是在那里添加芯片标识符和细节,看看我能否用openocd让它正常flash写入。% C- l0 v5 f5 `) Y3 c$ I# a; D' j OpenOCD在我的经验中也会有错误,但是我有一个非常好的方法来添加STLink (一个实现了另一个芯片的方法)。 当前的照片只是运行演示案例里的程序。我可能还需要一段时间才能有任何类型的视频驱动与屏幕进行通信。令人鼓舞的是,他们的一个演示应用程序正是我试图做的,只是用了一种不同的方式。 目标是在最后有一块可用的手表,5 Z' C( w9 m% e/ N, M o 包括:! Y6 _% f- Y8 j2 p% F 从云端获取时间的一些方法/ |: k8 Z: p( ?6 F @/ d 4 z' n% d0 {9 O6 J6 e' x4 S' r8 W R6 q 用于步数/健身的加速度计4 @. a% ^! Q3 m3 D9 R# Z7 }2 {- D 用于自动亮度检测的环境光传感器 ( k/ a5 N2 c! U% g$ v' V$ e6 l) ` 用于在开发的扩展接口* _9 c: X+ X' |& t0 p) J 便于扩展/修改的Python源代码 8 L/ q% v5 j& k2 u; z5 T 触摸边框-手表表面周围的触摸按钮环,用于用户界面(触摸屏太精致了)4 K! ?5 t6 H1 y/ P k8 C1 x9 x$ X/ j9 H 防水(组装后) / G8 `3 j8 r5 Q 所以不是很多,对吧? W' a! Z* g8 I 显著进展 过去几周进展显著。我用stlink识别芯片ID并开始flash写入,但由于某种原因,最后一步失败了。我不知道该怎么做,只能阅读应用笔记,希望能找到一两条线索。# _/ a$ i s* [8 |$ y0 b6 f/ _: t ST发布了写入Flash的示例代码,我会在继续尝试让它工作。这也可能是一个编译问题,在构建μpython时,我需要做一些不同的事情。$ g' i+ r& S8 U5 l 0 n# \2 Y: Z7 ?. K 上传成功! R3 y5 @9 w- n0 a" v) r+ T; B9 P2 B 所以,我最后一件没有做的事情是写入flash之前擦除芯片;它必须在单独的步骤中完成,我不知道这一点。因此,项目待办事项列表现在看起来像:" R7 h( X; g) J6 T% u9 E- o *让μpython通过USB OTG进行对话1 P1 k. Z) |' B0 `- C *编写某种可从python访问的frambuffer驱动程序 *打造一个手表界面 9 ]1 L h. L+ I7 } *设计/构建电路PoC (可能采用LGA 144封装,便于焊接) 3 R; S$ L6 @) T3 T1 L *设计/构建实际可穿戴电路 *构建案例 V3 L; v' E. H $ u- @4 W+ \# {( w 更多资料请见hackaday & S4 W0 m1 k% u 7 B* `" o9 R3 b& }9 R7 ~ ( K0 |/ }! c8 z& }' T |