机电文盲,摸索只使用python,来操作Lilygo T-WATCH-S3 可编程手表
一、背景个人只学过python编程没学过任何单片机之类的机械电子知识觉得可编程的手表就是随身携带的“小电脑”有更大的使用空间。看到相关的广告便购买了Lilygo T-WATCH-S3这一款可编程手表。折腾两三天机缘巧合下摸索才有所成果留下些记录来分享一些避免弯路的方法。购买之后淘宝的Lilygo官方店铺提供的官方资料及指导极其有限差不多就是从零开始。零基础的朋友可以参考一下。广告图片二、初步准备1、打开并熟悉电源位置(因为之后可能要常用)按照只有一页的纸质“说明书”用指甲叩开手表背面塑料壳图中圈出的电源部件小心地向上方推动来打开电源再按usb插口旁的电源开关圆钮2秒就打开了手表显示什么都做不了的、只能划着切图标玩的原厂系统。(忽略为什么说有两个“电源开关”我也不知道底细。)2、下载编程和操作工具Thonny这是专用的编程平台网址https://thonny.org/esptool操作工具。学过python电脑里自然装了python直接“pip install esptool”下载这个工具包。3、下载真的官方工具淘宝客服提供的有限的教程资料什么VScode(PlatformIO)、Arduino的github.com/Xinyuan-LilyGO/TTGO_TWatch_Library/tree/t-watch-s3好复杂看不懂不会用困难、陌生到像是假的——没事这不是我们只敢用python的人必须要用的。一条龙服务式的真正的官方工具是 LILYGO-Spark 下载下来就好https://github.com/Xinyuan-LilyGO/LILYGO-Spark/releases(我非常好奇为什么淘宝Lilygo官方客服根本不给我说这个东西非要人自己摸索。)三、链接电脑和烧录系统把手表的usb插口用数据线连接到电脑右下角显示“USB JTAG/serial debug unit”之类的是正常的。经过“刷固件”之后它就会变成一个u盘。“此电脑”右键“管理”打开“设备管理器”看“端口”。查看手表插入的“端口”是多少必须要用到例如“com8”。(其实电脑上只插了这个手表的话就这一个用到的端口也自然能分辨出来。)1、先把手表原厂系统删除按winR键输入cmd在黑框输入“esptool --chip esp32s3 --port COM8 erase_flash”(端口例子“com8”自己电脑上要替换成自己电脑上所显示的端口)。等待一会出现黑框出现“Chip erase completed successfully in 40.1 seconds. Hard resetting via RTS pin...”的字眼就是把手表原厂系统删除了此时手表应该关机黑屏。2、装能用python编程的新的手表系统LILYGO-Spark打开找到对应的“固件”。(不懂名词也没关系这就相当于是手表的windows系统。)“烧录”新的“固件”就是装能用python编程的新的手表系统。“Circuitpython”就是这个(并不是淘宝广告上写的“micropython”)下载选之前的设备端口点“烧录”。3、最核心——这里可能因为“烧录”而出现各种问题。手表闪烁、手表关机死机等等都是因为没“烧”好解决方法是除掉“烧坏”的之后重新“烧录”。而且必须在确保手表和电脑处于链接的情况下即右下角要显示着“USB JTAG/serial debug unit”之类的才能“烧录”。烧坏了能补救不必担心一般器件都能烧上万次呢。手表不正常我们要重装系统再来一次不行就再来再来再来……直到插入电脑的手表在电脑上显示成和u盘插入一样“我的电脑”里多了一个盘这才是烧好了python编程的系统。LILYGO-Spark下面有个“factory”就是原厂系统先下载一会儿要烧录我们要回到原点。像之前一样按winR键输入cmd在黑框输入“esptool --chip esp32s3 --port COM8 erase_flash”(例子记得com8可能要替换掉)。这是擦除“烧坏”的坏系统。要是不擦除“烧坏”的系统呢手表存储器的特性决定了不能直接 无擦除直接覆盖否则会导致数据错误或程序运行异常。(烧录工具其实可能会帮你完成了擦除步骤但亲自再擦除一次总没错。)按严重情况分如果是手表闪烁等看似可控的局面那就在重新擦除后直接烧录“Circuitpython”。如果是手表死机关机等看似棘手的局面那我们就要回退到原厂系统来检测一下有没有更严重的问题。用指甲叩开背面塑料壳图中圈出的电源部件小心地向下方推动再向上推动来重启电源。没亮屏就再长按usb插口旁的电源开关圆钮试试。(忽略为什么说有两个“电源开关”我也不知道底细。)期间如果手表和电脑断开连接了就反复长按usb旁边的电源圆钮直到重新连接上。在确保手表和电脑处于链接的情况下即右下角要显示着“USB JTAG/serial debug unit”之类的烧录“T-Watch S3 Factory Firmware-SX1262 (Sub 1G LoRa)”这原厂系统来恢复出厂时的状态——以确保没有其他更严重的质量问题。恢复原厂系统了很好接着再擦除再重新烧录“Circuitpython”没有恢复原厂系统保持住希望再尝试几次上面的流程——最终折腾大半天都不行的话那就只能遗憾地找淘宝售后了。不行就再次烧录先擦除烧坏的再烧Circuitpython——不行就再次烧录先擦除烧坏的再烧Circuitpython——不行就再次烧录先擦除烧坏的再烧Circuitpython…………就是打铁、炼丹一样反反复复反复无常。这里就是机缘巧合发生的地方需要幸运和耐心。因为其实我也不清楚手表的连接与唤醒的真正机制大部分都是猜想和推测——但底层逻辑就是确保烧好没烧好就擦除烧坏的重新烧直到烧好。直到手表上显示了密密麻麻的英语细看其中有一句“hello world”。这就是烧好了这就成功了电脑也显示有一个u盘插入了此时相应的端口号应该也会变。四、准备python编程这是Circuitpython官方提供的编程用的各种包即“lib”https://circuitpython.org/libraries看一眼这里烧的python系统的bin文件显示是10.x就下10.x的。(如果是9.x就下9.x。)下载解压解压出的文件夹中的lib文件夹内容全都复制到插入的手表化成的u盘里的lib文件夹。这里面就是如同numpy、pandas之类的python调用包手表的python编程系统要用到。用之前的Thonny平台打开手表u盘化后的文件夹中的code.py再在右下角“配置解释器”选好对应的解释器和端口。(此时端口号已经变了记得选好对应的。)这就能正常python编程了——那又实际上怎么具体地编程的什么语句语法啊——把lib目录结构发给ai大模型它们会知道的。什么引脚什么包它们都可以通过对话试出来的。什么“目录结构”——就是问ai怎么让它知道文件夹里的内容这就八仙过海——各显神通了。之后的编程真的全靠ai的领悟力了天高任鸟飞。五、一些闲话经验之谈可能对于其他的Lilygo产品或者esp单片机之类的都没什么严肃的参考价值了。此篇文章也肯定是漏洞百出错误连篇臭不可闻。我拷打ai和被ai拷打了好几天了才找出这一点门道。觉得挺珍贵的便发出来了。也肯定有其他大神大佬做的更好——但愚蠢的我没能让那些高尚的ai发掘出来这些伟大的知识从而学习到真是太遗憾了。