标签存档: 电子DIY

成了,ESP32 卫星不完全复刻指南

前段时间分享了一个国外 Maker 制造的 ESP32 卫星(见 https://mp.weixin.qq.com/s/IYBiLbzDh12QjvQngUoUtA),我也花了点时间完成了复刻,为了制作方便,也做了一些小修改,这里整理了一下需要注意的地方以及一些小技巧

铜丝有紫铜和黄铜

一开始没注意,搜索了一下直接买了个紫铜丝,做了一半才发现原来铜丝还分紫铜丝和黄铜丝,原作者使用的黄铜丝,不过既然已经做了也不管了,紫铜丝的颜色看起来也不错。

PS. 铜丝需要买 2 米。框架加内部搭桥要用掉的铜丝比想象中更多一些,加上浪费的 2 米刚好够用。

esp32-satellite-tutorial-2

esp32-satellite-tutorial-3

电铬铁,一定要好的

一开始用的电铬铁是很久之前买的一个内热式电铬铁,60W 功率,但是焊接的时候总是不上锡,每次在先给铜丝加热好久,然后锡才能到铜丝上。

后来挑了个便宜的德力西 75W T12 电铬铁,效果好多了,真的能有作者视频中那效果一碰就能上锡的效果。

加商品

先折弯再焊接

1mm 粗的铜丝还是有点硬的,建议先比划好尺寸,并且先裁剪好一个模块所有对应搭桥的铜丝,再进行焊接。

对于要连接的焊盘的部分,可以多留一点,这样在没有对齐的情况下可以重新调整,焊接时再剪掉多余的部分。

esp32-satellite-tutorial-4

太阳能其实没啥用

之前找 DeepSeek 算过,这个尺寸的太阳能电池板在室内只有 1mW 的发电功率,纯粹图一乐。因此完全没有必要添加太阳能充电模块,可以省不小焊接工作量 😃。

当然也不能直接断接太阳能电池板的正负极,我加了个 100K 电阻在正极铜丝上,然后直接连接到负极了,测试过电流只有 50uA,不会影响啥。

esp32-satellite-tutorial-5

其他模块要省也可以省

太阳能充电没有意义之后,那这个光靠一个小小的锂电池也没办法续航特别久了。如果作为一个常开的桌面摆件,还要频繁充电,不如直接插电使用。

这样的话就可以去掉不少模块了:

  • 锂电池:不需要电池了
  • 电池指示器:没必要了
  • 开关:都插电了,想断电直接断电源就行了


阅读全文 »

为了 DIY 更带劲,用 CH339 手搓一个四路电流检测、独立开关的 USB Hub,全开源~

在相当长一段时间里,玩电子 DIY 的时候我用的 USB Hub 都是之前用 CH334R 做的一个 4 位 USB 2.0 Hub(见 听人劝吃饱饭,试试CH334R来做USB 2.0 Hub),不过逐渐发现常规 USB Hub 一些不方便的地方,特别是在调试一些设备的时候,需要拔插 USB 连接,一手要按住 BOOT 按钮,一手要拔插 USB 基本上不太现实

因此就想着再做一些更符合自己需求的、更方便辅助电子 DIY 的 USB Hub。

项目介绍

为了更好地辅助电子 DIY 中的调试工作,先列举一下痛点:

  • 需要自带 UART 调试接口,这样可以省掉一个 USB 转串口工具。虽然一些 MCU 也可以通过 USB CDC 进行调试日志输出,但是在 RESET


阅读全文 »

用 ESP32-S3 跑 BASIC 解释器,这比当年比尔盖茨用的电脑配置高多了

之前我做了个 AI 生成外形的复古小电脑,并且同样使用 AI 生成了 3D 模型,塞了 ESP32-S3 开发板 + 0.96 英寸 OLED 进去,顺手做了个能播放《Bad Apple》的固件(见《3 步从 nana banana AI 生成的复古小电脑到真实桌面小玩具》)。

esp32-s3-arduinobasic-2

最近在 GitHub 上看到一个 ArduinoBASIC 项目,一个还算完整的 BASIC 语言解释器,支持 BASIC 语言中常用的特性,这不刚好用来把这个复古小电脑变成真的可以写代码的小电脑吗 😃。

PS. 当年比尔·盖茨和保罗·艾伦为 Altair 8800 写 BASIC 时,机器 CPU 是 2 MHz 的 Intel 8080,只有 4 KB



阅读全文 »

3 步从 nana banana AI 生成的复古小电脑到真实桌面小玩具

先看看有屏幕的地方就有的 Bad Apple:

PS. 音乐是后期加进去的 🙈。

源起

这一些源于之前在 MakerWorld 上看到的摸鱼小副屏,对这种可交互的小玩具特别感兴趣,我还复刻了一个,并且把内部改造了一下,换成香橙派开发板,跑了一下 Mac OS 9,虽然有点慢 😃(见:摸鱼小电脑能跑 MacOS 了,就是速度慢到怀疑人生)。

一直以来建模只会搞横平竖直简单类型的模型,对于这种带造型的模型,完全没有能力,不过最近 nana banana 很火,突然想到现在各种 AI 工具已经相当成熟了,是不是也可以借助 AI 来实现呢,说干就干。

PS. 稍微标题党了一下,这从 AI 生成到完成 3D 打印,也用到了其他平台,以及最终加装 MCU + 屏幕也花了额外的时间 🥳。

第 1 步:让 AI 生成期望的模型

这一步一开始是让 Gemini 2.5 Flash nano banana 生成的,但是感觉可能因为没有 Thinking,效果不是很好,后来换成 ChatGPT …

阅读全文 »

不到 1 元,64K Flash + 8K RAM:CH32V006 直驱彩色 TFT LCD,100 FPS 无压力

上上周发了篇文章介绍了一下用 CH32V003 做过的项目(那些年用 7 毛钱单片机 CH32V003 做过的 DIY 项目),总的感觉用起来还是很舒服的,不过最近也了解到沁恒推出了差不多加量不加价的 CH32V006,资源不止翻倍, 价格在某宝上也只要 8 毛钱一颗

稍微研究了下,发现 CH32V006F8P6 和我在用的 TSSOP20 封装的 CH32V003F4P6,可以算是能 Pin2Pin 替换,这连开发板都可以直接用之前自己画的 V003 的开发板 PCB 😃。

0.96 寸 TFT LCD 驱动实测

之前用 CH32V003 的时候,即使它有 SPI 总线,但是 16KB Flash 实在有些捉襟见肘,即使驱动像 0.96 寸 TFT LCD 这样的小尺寸屏幕,分辨率为 160x80,色深为 16 位,一张全屏背景图就要消耗 …

阅读全文 »

汇报一下基于 CH32V003 + 电子墨水屏的超低功耗 Tag 续航测试结果

在 5 月份的时候,分享了一个基于沁恒 CH32V003 + 电子墨水屏的一个超低功耗时间 Tag 项目(见 电流15uA续航一年?CH32V003低功耗应用尝试 ),想借此学习了一下低功耗嵌入式开发,到上周,这个测试设备的终于支撑不住,已经差不多耗尽了电池。

回顾一直技术方案

之前的文章已经介绍了大概的技术方案,使用 CH32V003 作为主控 MCU,电子墨水屏作为显示设备,PCF8563 作为 RTC 时钟保存时间,CH32V003 使用待机模式,每 10 分钟唤醒一次,从 RTC 读取时间并刷新电子墨水屏,然后通过 PMOS 将电子墨水屏的供电断开。

在实际测试过程中,不刷新电子墨水屏且 CH32V003 处于待机状态时,电流大概是 17uA,在 CH32V003 唤醒且刷新屏幕时,电流大概是 15mA。回去看了下之前的文章,发现把刷新屏幕的电流算小了,原先用的 5mA,这次刷新期间使用 15mA 来计算。

综合刷新屏幕所使用的时间和次数,估算整体电流消耗大概是 142uA。

配合一个 450mAh 的电池,理论续航时间是 450 / .142 / 24 =132 天

RTC



阅读全文 »

那些年用 7 毛单片机 CH32V003 做过的 DIY 项目

在去年了解到沁恒 7 毛钱的 MCU CH32V003 之前,一直都是玩的乐鑫的 ESP32 系列,从 ESP8266 到 ESP32、ESP32-S2、ESP32-S3,从来没有为 MCU 的 Flash 和 RAM 资源发愁过。

但是在某些场景下,不需要这么强大的 CPU 能力,也不需要 Wi-Fi 或蓝牙连接能力,再用 ESP32 就有点杀鸡用牛刀了,刚好这个时候了解到了 CH32V003,首先就是价格相当便宜,然后在做一些简单的项目时,资源也足够使用了,并且外围电路太简单了,设计和焊接 PCB 都压力小了很多。

然后在相当长一时间里,做啥 DIY 项目,都会首先想 CH32V003 能不能用,经过了一年多,回头看也用它搞了不少好玩的东西。

注:当然现在沁恒也推出了价格相近,但是资源更丰富的 CH32V006 系列,65K Flash,8K SRAM,如果对 MCU 资源要求更高可以尝试一下。

USB 电流表 & USB PD 诱骗器

第一个尝试使用 CH32V003 的项目,学习了一下 I2C 通信、ADC、GPIO …

阅读全文 »

百元成本,DIY 一个 ESP32-S3 驱动的炫酷 IV-18 荧光管时钟

前段时间分享了 HV5812 驱动 IV-18 荧光管(见 使用 C 语言位运算和宏,编写一个可自由配置的 HV5812 + IV-18 荧光管驱动),这段时间把固件和外壳搞了搞,总算是差不多做完了,桌上又多了个吃灰的摆件 😃。

在这次开发过程中,固件也是继续尝试了使用 AI 编写,体验还不错,不再需要为配网 + Web 配置界面这些烦琐的事花太多时间了。

成品效果

 

元件选型

做这个 IV-18 桌面时钟,元件中主要的成本就是 IV-18 荧光管本身了,占了绝对的大头。

  • 荧光管:IV-18 真空荧光管透明基板版本,约 95 元
  • 主控:ESP32-S3 Zero 开发板,21 元
  • DCDC 升压芯片:XL6007,7 毛
  • LED 高压驱动:HV5812,6 元
  • 其他阻容:算 5 元吧

PCB 还是老样子,嘉立创每月两样免费打样,外壳 3D 打印也不算了,总成本大约在 130 …

阅读全文 »

Wokwi + VSCode 插件在线仿真 ESP32 更好用,值得一试

之前在《玩 ESP32 和 Arduino 的同学一定不能错过这个在线仿真网站》这篇文章中分享了 Wokwi 这个在线仿真平台,它支持 ESP32、STM32、树莓派等众多 MCU,还有相当丰富的外设库,在手边没有硬件设备时临时调试一下固件代码还是很方便的。

不过之前测试的是使用 Wokwi 的在线编译功能,作为免费用户,经常会碰到服务器编译超时错误,然后导致无法调试,又或者是固件项目依赖了太多的三方库,编辑项目相当麻烦。

这个时候想到了它还有一个 VSCode 插件,似乎可以在本地编译固件再进行仿真,尝试了一下发现还真挺好用,妈妈再也不用担心手边没硬件了。

操作演示

这里以我本地编译了一个 ArduinoBASIC 项目进行测试,可以看到整个使用过程还是相当流畅的,完全不用等待 Wokwi 的服务端编译时间了。

安装插件

要安装 Wokwi 的插件也很简单,直接在 VSCode 中的插件市场搜索 wokwi 或者通过以下链接安装即可:

https://marketplace.visualstudio.com/items?itemName=wokwi.wokwi-vscode

wokwi-vscode-simulator-1

在安装完成后,就可以通过 Command + Shift + P 呼出 VSCode 命令窗口,再搜索 wokwi 找到 Wokwi: Start Simulator 就可以开始使用了。

获取免费授权

在第一次使用 Wokwi …

阅读全文 »

使用 C 语言位运算操作,编写一个简单高效的单片机 OLED framebuffer 驱动

在之前做 CH32V003 系列项目时,总是会用到 0.96 寸 12864 OLED 屏幕,用来显示数据和进行用户交互操作。一开始是直接用了 CH32V003-GameConsole 项目中的 oled_min.c,不过那个是只用来显示一个位图,并且还不太能支持任意位置显示,因此就需要改造一番。

另外之前在做电流表项目时,也找了好多点阵字体,发现都是用了一个 DCfont 的结构体,如果能兼容这个格式,后续项目中使用不同字体时就可以很方便的替换了。

至于为什么要自己写这个库,是因为这个是在 CH32V003 上用的,16KB Flash + 2KB SRAM 的资源相当紧张,没办法使用 Arduino 中成熟的库,只好自己写一个,顺便学习一下。

字体及位图数据结构

DCfont 这个数据结构如下所示。

struct DCfont {
    uint8_t *data;
    uint8_t width;
    uint8_t height;
    uint8_t min, max;
};

刚好对于单色 XBMP 图像来说,在渲染时也差不多是需要相同的参数,刚好用同一个函数来同时兼容绘制 DCfont 和 XBMP 了。…

阅读全文 »