序言:坚持原创硬件实战与嵌入式开发的初心
在信息碎片化、AI 生成内容泛滥的时代,深度、硬核且具有真实开发温度的技术笔记变得愈发珍贵。作为一名沉浸在嵌入式开发与硬件 DIY 领域的独立开发者,我深知从零到一构建一个硬件项目的艰辛。
Chaosgoo 的诞生,并非为了追求流量,而是为了给自己的折腾历程留下一份纯净、严谨且可追溯的技术档案。
这是一个个人维护的技术博客,主要分享和记录 ESP32、嵌入式系统以及硬件 DIY 相关的原创项目与学习笔记。
在信息碎片化、AI 生成内容泛滥的时代,深度、硬核且具有真实开发温度的技术笔记变得愈发珍贵。作为一名沉浸在嵌入式开发与硬件 DIY 领域的独立开发者,我深知从零到一构建一个硬件项目的艰辛。
Chaosgoo 的诞生,并非为了追求流量,而是为了给自己的折腾历程留下一份纯净、严谨且可追溯的技术档案。
在跨端开发里,有些场景是 Flutter 处理起来比较麻烦或者利用原生组件实现更高效。
这时候就得祭出 PlatformView 和 MethodChannel。不仅把一个 Android 原生 TextView 塞进了 Flutter 布局,还能实现Flutter和原生Android View的双向交互。
为了直观,我打算基于Flutter默认的计数器模板演示, 界面布局和悬浮按钮还是 Flutter 的,但中间显示的那个数字,换成安卓原生的TextView。
最近在做一个基于当前 GPS 坐标,通过输入目标经纬度来计算相对位置与距离的硬件装置。
在查阅相关算法时,我发现网上的推导过程大多较为碎片化或直接给出结论。为了彻底理解其底层的数学逻辑,我决定从零开始重新推导一遍,并将其系统地记录下来。
本文将完整呈现这一推导过程:从建立三维空间直角坐标系开始,利用向量点积导出球面余弦定律(Law of Cosines)。此外,我们还会深入探讨该公式在短距离场景下产生“精度丢失”的物理本质,以及如何利用半角恒等式引入 Haversine 公式 来修正误差。最后,我将分享如何通过数学化简,精简公式降低运算量,从而实现更高的运算效能。
最近为了优化站点体验, 我决定借助PageSpeed Insights的分析,专项优化站点性能表现.
本文起初基于Cactus主题进行优化, 从47分提高到了94分, 在撰写期间, 又将主题切换到了Icarus, 结果之前的部分优化失效.
不得不重新优化, 但是按照同样思路, 甚至把PageSpeed Insights的分数刷新到了97分.
几年前,我曾试过在 ESP32 上实现串流操作。
当时硬件搭建在面包板上,一快 1.14 寸的屏幕分辨率为 240x135,主控是初代 ESP32。
文章较为详细地描述了实现细节。
时隔五年,我决定重新制作一次,将硬件环境迁移到 M5Stack 家的 Cardputer。

做嵌入式的时候用过 LVGL,它的样式系统给我留下了深刻印象。LVGL 的 Border 是”实体”的——会占据布局空间,把内容往里挤。
安卓这边就没这么痛快了。ShapeDrawable 和 MaterialCardView 的边框更像是”装饰品”,想让边框、圆角、内边距各自独立可控?原生组件做起来挺别扭。
所以我干脆手搓了一个 BorderFrameLayout,把 LVGL 那套逻辑搬过来。
图中不同的颜色代表真实占用的空间。
绿色代表Border, 红色代表内部Padding, 蓝色代表Child可使用空间.