视频链接 -> 点我 :)
噻博柆圾.. 僅栱娯泺~( ̄へ ̄)
.
├── app
│ ├── apps 应用层
│ │ ├── app_desktop 桌面
│ │ ├── app_input_daemon 输入管理
│ │ ├── app_sleep_daemon 睡眠管理
│ │ ├── app_startup_anim 开机动画
│ │ ├── app_template App模板
│ ├── assets 静态资源
│ ├── hal HAL定义
│ └── shared 共享数据定义
└── platforms
├── desktop 桌面项目
├── python_api Python api
└── regina ESP32C6项目
python ./fetch_repos.py
sudo apt install build-essential cmake
mkdir build && cd build
cmake .. && make
cd desktop
要先 cd 过去,因为序列化时用的相对路径 :(
./app_desktop_build
cd platforms/regina
idf.py build
idf.py -p <YourPort> flash -b 1500000
parttool.py --port <YourPort> write_partition --partition-name=assetpool --input "path/to/AssetPool.bin"
静态资源是桌面端序列化出来的,如果运行过桌面端, AssetPool.bin
可以在 app_desktop_build
的旁边找到
或者 release 里下一个
在线接口测试 -> 点我 :)
设备名:Reginaaaa:)
自定义服务:2333
JS web api 参考,Python api 参考,具体如下:
特征值:2334
数据格式:bool, bool, bool, bool, uint8, uint8, int16, int16
对应:按键A、B、C、D、小轮值、大轮值、小轮增量、大轮增量
JS
btnA = value[0] !== 0;
btnB = value[1] !== 0;
btnC = value[2] !== 0;
btnD = value[3] !== 0;
dialAValue = value[4];
dialBValue = value[5];
dialACount = value.getInt16(6, true);
dialBCount = value.getInt16(8, true);
Python
unpacked_data = struct.unpack('<????BBhh', value)
特征值:2335
数据格式:float, float, float
对应:X、Y、Z轴
JS
let imuAccel = [0, 0, 0];
for (let i = 0; i < 3; i++) {
imuAccel[i] = value.getFloat32(i * 4, value);
}
Python
unpacked_data = struct.unpack('fff', data)
特征值:2336
其他和加速度一样
特征值:2337
数据格式:JSON UTF-8
相关 key 参考系统配置结构体
其中 ringtone
为 RTTTI 格式音频
此外可用特殊 key unixTimestamp
来设置 RTC 时间,value 用数字类型 unix 时间戳(ms)
特征值:2338
数据格式:JSON UTF-8
特征值:2339
数据格式:21 个 uint8
对应屏幕从左到右 21 个矩形,其中数值为 0~35
,对应该矩形的高度
- 现在不是真正的睡眠,只是关屏幕
- 字库非完整,用完整字库的话字体识别的高度不对,直接用lgfx的换行就寄了,懒得写了
- 启动器、设置、打砖块
立创链接 -> 点我 :)
板厚1MM
-
主控:ESP32C6
-
屏幕:中景园1.3寸OLED
-
编码开关:7.4寸贴片,带旋柄,16档
-
电池:402728 400毫安
-
电源管理:大佬的 mondraker/axp202
应该比较好焊,想偷懒可以不焊 RTC、IMU 和 MIC
我是铁板烧的屏幕这一面
如果编码开关方向焊反了,可以在程序里设置反转,具体在BLE接口的系统配置部分
麦克风用的模拟麦,不知道是我焊烂了还是电路不对,波形异常的平静~
STL 文件 -> 点我 :)
这次没有螺丝,后盖用滑槽和卡扣固定
间隙什么的根据拓竹 a1 mini 0.4 喷嘴调整的,树脂打印的话可能会有点松,没试过
组装时滑槽会有点顶 PCB,需要一些技巧~