<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>便携计算 on VibeRX360 Fun - 用 AI 做有趣的事</title>
    <link>https://viberx360.com/blog/tags/%E4%BE%BF%E6%90%BA%E8%AE%A1%E7%AE%97/</link>
    <description>Recent content in 便携计算 on VibeRX360 Fun - 用 AI 做有趣的事</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Fri, 07 Nov 2025 18:56:12 +0800</lastBuildDate><atom:link href="https://viberx360.com/blog/tags/%E4%BE%BF%E6%90%BA%E8%AE%A1%E7%AE%97/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>咖啡馆里的电池探险：一个周末的 Vibe Coding 故事</title>
      <link>https://viberx360.com/blog/lifestyle/%E5%92%96%E5%95%A1%E9%A6%86%E9%87%8C%E7%9A%84%E7%94%B5%E6%B1%A0%E6%8E%A2%E9%99%A9%E4%B8%80%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84-vibe-coding-%E6%95%85%E4%BA%8B/</link>
      <pubDate>Fri, 07 Nov 2025 18:56:12 +0800</pubDate>
      
      <guid>https://viberx360.com/blog/lifestyle/%E5%92%96%E5%95%A1%E9%A6%86%E9%87%8C%E7%9A%84%E7%94%B5%E6%B1%A0%E6%8E%A2%E9%99%A9%E4%B8%80%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84-vibe-coding-%E6%95%85%E4%BA%8B/</guid>
      <description>一个周末、一台口袋电脑、一杯咖啡，就这样解决了困扰社区数月的 4G 死机问题。这就是 Vibe Coding 的魅力。</description>
      <content:encoded><![CDATA[<h2 id="从这玩意儿又卡死了到我知道原因了">从&quot;这玩意儿又卡死了&quot;到&quot;我知道原因了&quot;</h2>
<p>你有过这样的经历吗？某个设备有个恼人的问题，论坛上众说纷纭，但没人真正知道答案。你想：&ldquo;我能不能自己搞清楚？&rdquo;</p>
<p>这就是我和 <a href="https://www.clockworkpi.com/uconsole">ClockworkPi uConsole</a> 的故事。一台口袋大小的 Linux 电脑，翻盖外壳，机械键盘，可以塞进背包——黑客的梦想。但它有个致命问题：</p>
<p><strong>开启 4G 模块 + 用电池供电 = 随机死机</strong></p>
<p>唯一的解决办法？拆掉电池，重启。再来一次。</p>
<h2 id="vibe-coding-的开始咖啡馆--便携设备--好奇心">Vibe Coding 的开始：咖啡馆 + 便携设备 + 好奇心</h2>
<p>某个周末下午，坐在咖啡馆里，我盯着又一次死机的 uConsole，突然有个想法：</p>
<blockquote>
<p>如果我直接在这台设备上构建诊断工具呢？不等回家，不用台式机，就在这里，用遇到问题的设备来解决它自己的问题。</p>
</blockquote>
<p>听起来有点疯狂，但也很有趣。于是我开始了。</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/uconsole-debugging-4g.jpg" alt="在 uConsole 上调试 4G 调制解调器问题" />
<p><em>在遇到问题的设备上构建解决方案——真正的 vibe coding 实践</em></p>
<h3 id="工具箱很简单">工具箱很简单</h3>
<ul>
<li><strong>uConsole 本身</strong>（用电池供电，运行 Ubuntu）</li>
<li><strong>Claude Code</strong>（AI 辅助开发，让我专注解决问题而不是语法细节）</li>
<li><strong>Next.js + TypeScript</strong>（快速原型，热重载，立即看到效果）</li>
<li><strong>一杯咖啡</strong>（重要！）</li>
</ul>
<p>没有复杂的实验室设备。没有昂贵的示波器。就是这些。</p>
<h2 id="构建中的乐趣实时监控--发现问题">构建中的乐趣：实时监控 → 发现问题</h2>
<p>第一步：我需要看到电池到底发生了什么。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 开发服务器启动</span>
</span></span><span class="line"><span class="cl">npm run dev
</span></span></code></pre></td></tr></table>
</div>
</div><p>几分钟后，一个简单的 Web 界面出现了：</p>
<ul>
<li>实时电压</li>
<li>实时电流</li>
<li>实时功率</li>
<li>实时电池百分比</li>
</ul>
<p>每秒更新的图表在浏览器里跳动。我开启 4G 模块，盯着屏幕&hellip;</p>
<p><strong>电压掉了！</strong> 从 3.7V 直接掉到 3.4V 以下。</p>
<p>&ldquo;等等，这不是功率问题，是<strong>电压</strong>问题！&rdquo;</p>
<h2 id="追根溯源数据手册不会说谎">追根溯源：数据手册不会说谎</h2>
<p>一番搜索后，我找到了 SIM7600G-H 4G 模块的规格表：</p>
<ul>
<li>工作电压范围：3.4V ~ 4.2V</li>
<li><strong>最低安全电压：约 3.45V</strong></li>
<li>峰值电流：传输时可达 2A</li>
</ul>
<p>谜底揭晓了：</p>
<ol>
<li>4G 模块突然抽取 2A 电流</li>
<li>电池内阻导致电压瞬间下降</li>
<li>电压低于 3.45V → 模块欠压</li>
<li>USB 总线挂起 → 系统死机</li>
<li>只能拆电池重启</li>
</ol>
<p><strong>关键洞察：</strong> 不是电池容量不够，是电压降得太快。</p>
<h2 id="更深的发现你的电池有一半用不上">更深的发现：你的电池有一半用不上</h2>
<p>我继续深挖，做了一个完整的放电测试：</p>
<ul>
<li>从 100% 放电到接近 0%</li>
<li>每秒记录电压、电流、能量</li>
<li>总共记录了 4,318 个数据点，跨度 2 小时 48 分钟</li>
</ul>
<p>然后我画了一张图：<strong>能量输出 vs 电压</strong>，并在 3.45V 处划了一条红线。</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-energy-output-with-threshold.jpg" alt="电池能量输出 vs 电压（带 3.45V 阈值）" />
<p><em>红线显示 4G 模块的最低电压。右侧的所有内容都无法用于 4G 连接。</em></p>
<p>结果令人震惊：</p>
<ul>
<li>电池总容量：24.79 Wh</li>
<li><strong>3.45V 以上可用</strong>：13.39 Wh（54%）</li>
<li><strong>3.45V 以下不可用</strong>：11.40 Wh（46%）</li>
</ul>
<p>换句话说：<strong>对于 4G 操作，你只能用约一半的电池容量。</strong> 剩下的 40-50%？电量还在，但对 4G 来说毫无意义。</p>
<h3 id="完整的放电数据">完整的放电数据</h3>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-battery-percentage.jpg" alt="FEB-4000 电池百分比" />
<p><em>完整的放电曲线从 100% 到约 2%</em></p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-voltage-current.jpg" alt="FEB-4000 电压和电流" />
<p><em>电压下降和电流峰值模式</em></p>
<h2 id="解决方案智能电源管理">解决方案：智能电源管理</h2>
<p>既然知道了原因，修复就很简单：</p>
<p><strong>降低电流消耗 → 减少电压下降 → 保持在 3.45V 以上</strong></p>
<p>我写了一个自动化脚本：</p>
<ul>
<li>检测 4G 模块是否激活</li>
<li>检测是否使用电池供电</li>
<li>如果两者都是：CPU 降频到 1.8GHz（从 2.4GHz）</li>
<li>更低的功耗 = 更少的电流 = 稳定的电压</li>
</ul>
<p>测试结果：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">之前：CM5 @ 2.4GHz + 4G + 电池 = 电压 &lt; 3.45V → 死机 ❌
</span></span><span class="line"><span class="cl">之后：CM5 @ 1.8GHz + 4G + 电池 = 电压 &gt; 3.45V → 稳定运行 ✓
</span></span></code></pre></td></tr></table>
</div>
</div><p>问题解决了！</p>
<h2 id="为什么这是-vibe-coding">为什么这是 Vibe Coding？</h2>
<p>回想整个过程，最让我兴奋的不是解决了问题（虽然这也很爽），而是<strong>过程本身</strong>：</p>
<h3 id="零上下文切换">零上下文切换</h3>
<ul>
<li>问题在这台设备上</li>
<li>解决方案在这台设备上构建</li>
<li>测试在这台设备上运行</li>
<li>一切都在同一个地方，同一时刻</li>
</ul>
<h3 id="即时反馈">即时反馈</h3>
<ul>
<li>改代码 → 保存 → 浏览器自动刷新 → 看到结果</li>
<li>从想法到验证只需几秒钟</li>
<li>没有编译等待，没有部署流程</li>
</ul>
<h3 id="地点自由">地点自由</h3>
<ul>
<li>咖啡馆</li>
<li>公园长椅</li>
<li>火车上</li>
<li>沙发上</li>
</ul>
<p>只要有 WiFi 和电源（或充满电的电池），哪里都是实验室。</p>
<h3 id="ai-辅助的乐趣">AI 辅助的乐趣</h3>
<ul>
<li>Claude Code 帮我快速搭建框架</li>
<li>不用纠结语法细节</li>
<li>专注于问题本质</li>
<li>更快的迭代，更多的尝试</li>
</ul>
<h2 id="这不只是给程序员的">这不只是给程序员的</h2>
<p>十年前，解决这种问题需要：</p>
<ul>
<li>工程实验室</li>
<li>数千美元的测试设备</li>
<li>交叉编译工具链</li>
<li>数天的准备时间</li>
</ul>
<p>今天？一台 200 美元的口袋电脑，一个专注的周末，就够了。</p>
<p><strong>这意味着更多人可以：</strong></p>
<ul>
<li>折腾电池供电的项目</li>
<li>调试硬件问题</li>
<li>测试和比较电池性能</li>
<li>在现场解决设备问题</li>
<li>边学边做，立即看到结果</li>
</ul>
<p>自己动手解决问题的门槛，正在快速降低。</p>
<h2 id="开源欢迎尝试">开源，欢迎尝试</h2>
<p>整个项目都是开源的（GPL v3）：</p>
<p><strong>项目地址：</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor</a></p>
<p><strong>快速开始：</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone https://hiwifi.denq.us:8418/denq/battery-monitor.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> battery-monitor
</span></span><span class="line"><span class="cl">npm install
</span></span><span class="line"><span class="cl">npm run dev  <span class="c1"># 访问 http://localhost:3000</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 安装智能电源管理（可选）</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> scripts
</span></span><span class="line"><span class="cl">sudo ./install-uconsole-power-regulator.sh install
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>你会得到：</strong></p>
<ul>
<li>实时电池监控仪表盘</li>
<li>电压/电流/功率图表</li>
<li>放电曲线分析（能量 vs 电压）</li>
<li>3.45V 阈值可视化</li>
<li>智能电源调节器（自动降频保护）</li>
<li>会话记录和数据导出</li>
</ul>
<h2 id="构建的乐趣">构建的乐趣</h2>
<p>在遇到问题的设备上构建解决方案，这种感觉很特别。</p>
<p>没有&quot;回头再说&quot;。没有&quot;等我有时间&quot;。就是现在，就在这里，直接解决。</p>
<p>uConsole 现在可以稳定地在电池供电下使用 4G 了。社区也理解了为什么某些电池更好用。整个解决方案在一个有趣的周末完成。</p>
<p><strong>这就是 Vibe Coding：</strong></p>
<ul>
<li>带着好奇心</li>
<li>在灵感迸发时</li>
<li>在任何让你舒服的地方</li>
<li>用现代工具和 AI 辅助</li>
<li>构建你需要的东西</li>
</ul>
<p>不是因为必须，而是因为<strong>可以</strong>，因为<strong>好玩</strong>。</p>
<p>工具已经存在。硬件价格实惠。AI 助手随时待命。</p>
<p>唯一的问题是：你准备好开始你的 Vibe Coding 之旅了吗？</p>
<hr>
<h2 id="社区反响">社区反响</h2>
<p><strong>分享你的结果：</strong></p>
<ul>
<li>用放电曲线工具测试你的电池</li>
<li>在论坛分享你的发现</li>
<li>帮助完善社区电池数据库</li>
</ul>
<p><strong>有问题？想贡献代码？</strong></p>
<ul>
<li>ClockworkPi 论坛：<a href="https://forum.clockworkpi.com/c/uconsole">https://forum.clockworkpi.com/c/uconsole</a></li>
<li>Gitea Issues：<a href="https://hiwifi.denq.us:8418/denq/battery-monitor/issues">https://hiwifi.denq.us:8418/denq/battery-monitor/issues</a></li>
</ul>
<hr>
<p><em>本文是 <strong>Vibe Coding Fun Series</strong> 的一部分，记录在便携设备上构建真实项目的故事。关注我们，看看当开发真正变得移动化时会发生什么。</em></p>
<p><strong>下一篇预告：</strong> 在咖啡馆用 AI 五分钟生成旅行海报</p>
<hr>
<p><strong>许可证：</strong> GPL v3</p>
<p><strong>项目链接：</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor on Gitea</a></p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
