标签存档: 电子DIY

还记得那个信用卡大小的纯 PCB 键盘吗,这回有固件了~

之前分享了一个纯 PCB 实现的键盘 《一个开源纯 PCB 键盘项目,只有信用卡大小》,不过原作者分享的 PCB 中存在不少问题,包括 MCU GND Pad 未连接、天线设计可能不合理等,以及作者一直没有完成可工作的固件,因此一直也没能让它真正跑起来。

不过最近在 GitHub 上找到另外一个开源实现,设计还是参考了原作者,但是新方案更换了 MCU 为 CH585,并且是实际打板验证过了的纯 PCB 键盘,也已经有一个可运行的固件可供使用。

项目地址: https://github.com/openwch/ch585

CH585 介绍

官方产品介绍: https://www.wch.cn/products/CH585.html

CH585 是集成 BLE 无线通讯和高速 USB 及 NFC 的 RISC-V MCU 微控制器。片上集成了 2Mbps 低功耗蓝牙 BLE 通讯模块、USB 全速控制器及收发器、USB 高速控制器及收发器(480Mbps)、NFC 近场通信无线接口、段式 LCD 驱动模块、LED 点阵屏接口、2 个 SPI、4 …

阅读全文 »

电流15uA续航1年?CH32V003低功耗应用尝试

在几周前,我尝试了用 CH32V003 这颗几毛钱的 MCU 来驱动电子墨水屏(文章见 《7毛钱的 MCU CH32V003 驱动 1.54 寸电子墨水屏》),主要是为了想试试低功耗应用的开发。

之前一直玩的 ESP32,总体来说功耗还是比较大,在查了 CH32V003 的手册之后,看到它的待机模式电流可以到小于 10uA,就准备试试看。

PS. 这篇主要是从一个新手的角度去了解了一下低功耗应用开发,以及记录在功耗优化中踩的坑,如有不足或差错,还请指点。

应用设计功能目标

之前已经完成了墨水屏的驱动,大概设计了一些这个设备的功能目标:

  • 每 10 分钟更新一次屏幕,显示与标记时间的间隔
  • 如果没有按住功能键,唤醒时只更新屏幕
  • 续航可以到达半年以上

另外这里用了 RTC 芯片作为时钟,查了数据手册,功耗 0.1uA 以内,就不用额外考虑了 🙈。

最近一直在用的 MCU 是 CH32V003,比较熟悉,主控还是选它了。

CH32V003 的低功耗模式

CH32V003 官网:https://www.wch.cn/products/CH32V003.html

根据 CH32V003 的数据手册,它提供了两种低功耗模式:

  • 睡眠模式
  • 待机模式

这里因为应用本身在大部分时间里,MCU 都不需要工作,也不需要刷新屏幕,为了达到最长续航时间,就选用待机模式了。

ch32v003-low-power-dev-2

待机模式电流

在数据手册里可以看到,3.3V …

阅读全文 »

开源了,智能UV胶紫外线固化灯复刻教程

上周分享了一个基于 CH32V003 的紫外线固化灯,《7毛钱MCU能做啥,搞个智能UV紫外线固化灯》,周末整理了一下相关的资料,把这个项目开源出来,有需要的朋友可以复刻一个~

make-smart-uvled-1

元件列表

MCU、风扇、屏幕等可以在淘宝购买,其他 PCB BOM 中的元件基本上都可以在立创商城找到。

  • CH32V003F4P6:淘宝购买,一般 7 毛的样子
  • OLED:0.96 英寸,分辨率 128x64,引脚顺序 GND、VCC、SCK、SDA
  • 风扇:5V 超薄铝散热风扇,PH2.0 接口,尺寸 4x4x1.2cm
  • LED 驱动 DX1240:立创商城购买
  • UVLED:原理图不对,实际型号 JNJ-L-3535EW90-36530-SL-G1,立创商城购买
  • 船形开关:10.5x15mm 规格两脚的,立创商城有
  • 自攻螺丝:M2x16,M2x5,两种规格
  • 锂电池:503040 规格,PH2.0 插头
  • NTC 电阻:10K 3950 线上 10cm,需要自己做 PH2.0 的插头

其他元件使用 BOM 表里面的就可以了。

总共成本大概在 50 左右。

PCB

这个项目需要两块 PCB,一个使用铝基板的 LED 灯板,一块主控板。…

阅读全文 »

7毛钱MCU能做啥,搞个智能UV紫外线固化灯

之前在做网红电气灯的时候,外壳的亚克力板是 UV 胶水粘接的,这个时候就需要使用紫外线固化灯了。虽然在买 UV 胶水的时候,卖家也送了一个紫外线固化灯,但是那个灯实在太弱了,照半天 UV 胶表面还是粘粘的。

这个时候就想到去自己做一个 UV 紫外线固化灯,刚好在立创开源平台看到一个结合了紫外线 LED 恒流驱动 + MCU 智能控制 + 风扇散热的项目,就参考了一下来做个自己的智能 UV 紫外线固化灯。

成品效果

操作视频

固化使用

diy-smart-uvled-1

功能设计

自己搞的紫外灯,功能肯定是按自己的需求设计了,最重要的一点就是紫外线 LED 功率要大,为了方便使用,也要支持电池供电。

在梳理常用的使用场景以及结合大功率灯珠的限制之后,就可以大概知道整体的功能范围了:

  • 使用 2W UVLED 灯珠,支持 PWM 调光控制亮度
  • 使用风扇散热,支持风扇电源控制
  • 支持设置 LED 亮度、自动倒计时照射固化
  • 支持灯珠温度检测,自动控制风扇开启关闭
  • 支持电池供电移动使用,支持电池电压检测

硬件选型

针对功能需求,大概的硬件选型也可以定下来了,屏幕不用显示太复杂的信息,用了 0.96 OLED,风扇和 LED 铝基板直接借用了立创开源项目选的元件,其他的都换掉了。

  • 主控 MCU:CH32V003
  • 屏幕:SSD1306 128x64 OLED


阅读全文 »

分体式键盘 ErgoX 改进一点点~

我在之前分享了一个分体式键盘 ErgoX,先复刻了一把,在使用了一段时间之后,也发现了一些问题,就根据自己的使用习惯改了点东西,重新搞了把新的。

ergox-split-update-1

原理图

ergox-split-update-2

相比原作者开源的版本,主要修改以下几个地方:

  • 把两个编码器移动到了 F 功能键这一行, 这样在 B 和 N 不习惯对应手指去按的时候可以有个替代,或者是这个位置也可以当成额外的快捷键使用,食指还是比较容易触达这个区域的
  • 替换了一下 3.5mm 耳机连接器的元件,并且没有采用交叉连线的方式,而是直接 TX 对 TX,RX 对 RX,这点修改的原因有两个:
    • 一个是 QMK 固件里说明了如果 MCU 支持的话更推荐使用 Half-duplex
    • 另外就是在买了 3.5mm 音频线后才发现大部分音频线其实没有 4 个通道,只有 3 个通道,这样如果使用全双工的话反而固件会不工作
  • 增加了两个识别电阻,用于左右手键盘的识别,这样可以实现 USB 数据线随意插,不用固定在左手或右手的键盘上

另外虽然还加了一个 12832 OLED 的接口,但是还没有研究明白分体式键盘屏幕咋整,就先留着焊盘没真正用起来了。

PCB 设计

ergox-split-update-3

PCB 整体跟之前一样,除了编码器位置移动之后,还把 MCU RP2040 的位置移动了一下。

这是因为原作者是直接用的三明治式亚克力外壳,但是我尝试给键盘做封闭式外壳,在建模的时候发现,MCU 和按键离得太近了,没办法加上左侧的墙壁,要露出来一条缝,就把 MCU …

阅读全文 »

摸鱼小副屏,把它变成摸鱼小电脑~

有段时间一起想搞一个 Macintosh 造型的小副屏,但是苦于不会建模,在 Thingiverse 上也找不到合适的模型,比较常见的天气小电视又有些小,一直没能搞成。终于后来在 MakerWorld 上看到一个摸鱼小副屏,适配 2.8 寸 LCD 屏幕,瞬间觉得有救了。

不过原作者推荐的 HDMI 转接板对 macOS 的支持不太好,总是选不到正确的分辨率,刚好之前想搞个小电脑,就顺便拿手上的 H616 开发板来改造一下了~

diy-h616-micro-pc-1

用来看个视频也没啥问题,不过尝试打开 iQIYI 啥的卡死了……

放个普通视频还可以的~

硬件列表

2.8 寸 LCD + HDMI 转接板

螃蟹方案,可以支持触摸,还有 OSD 支持,不过这个场景下选最便宜的套餐就行了。

diy-h616-micro-pc-2

香橙派 Pi Zero 2W 开发板

我买的时候还是全志 H616,现在似乎升级到 H618 芯片,四核 ARM 开发板,自带 Wi-Fi。

diy-h616-micro-pc-3

HDMI 软排线 转接头

diy-h616-micro-pc-4

原作摸鱼小副屏

模型地址:https://makerworld.com.cn/zh/models/655031

阅读全文 »

爆改复古小玩具,打造迷你收音机

最近在例行刷某宝时,看到一个复古录音机很有意思,体积很小,只有 4x6x2.5cm 大小,自带了播放歌曲片段以及录音回放功能,不过这功能虽然有趣但有点单调,就想着能不能改造一番。

刚好之前在 OSHwHub 看到过一个收音机项目,使用了 RDA5807 芯片,使用起来相当简单,就拿这个复古录音机来个爆改收音机。

RDA5807 介绍

RDA5807 是一个用起来相当简单的收音机芯片,既可以使用 I2C 控制,也可以直接使用自带的 GPIO 来控制,不需要额外的电路就可以实现待机、搜台、音量调节功能。

The RDA5807FP series is the newest generation single-chip broadcast FM stereo radio tuner with fully integrated synthesizer, IF selectivity, RDS/RBDS and MPX decoder. The tuner uses the CMOS process, support multi-interface and require the



阅读全文 »

Arduino玩家必备,SimulIDE电路模拟器

玩电子 DIY 时入门最常用的就是 Arduino 了,Arduino 封装了大量的库,而且社区也有各种外设的库,对于开发应用来说相当便捷。再加上现在嘉立创的免费打样服务,玩电子 DIY 可以很方便地做出一个像模像样的产品。

不过在编写固件时,可能还是会踩很多坑,如果在 PCB 生产完后再验证,万一出点问题就又是漫长的等待,中间手工焊接的时间也会浪费掉。如果用面包板,又需要连接一大堆杜邦线,有些时候手头没有对应的元件,或者是不方便连接杜邦线时,还不好测试。

这个时候,我就去找了一下有没有电路的模拟器,就找到了 SimulIDE。

SimulIDE 介绍

simulide-introduce-1

SimulIDE 官网: https://simulide.com/p/

SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students to learn and experiment with analog and digital electronic circuits and microcontrollers.
It supports PIC, AVR , Arduino



阅读全文 »

做个基于STM32+QMK的茶轴机械数字小键盘,带编码器和OLED屏幕~

之前为了验证 STM32F103 作为键盘 QMK 固件的主控是否可行,顺便学习一下 QMK 固件的配置和开发,做了个带编码器和 OLED 屏幕的数字小键盘。不过因为一直没搞定在 OLED 上显示动画,就一直没发。

周末花了点时间学习了一下终于把在 QMK 里面显示动画搞定了。

对于在 QMK 固件中怎么使用 STM32F103 当主控,可以看之前的文章:整个带屏数字小键盘吧,先搞定 QMK 固件支持 STM32F103 的 I2C Remap

成品效果

为了充分得用嘉立创免费打样券,PCB 的尺寸直接拉满到 10cm * 10cm 了,刚刚好够数字小键盘 + 2 个 EC11 编码器 + 1 个 12832 OLED 屏幕。

stm32-qmk-numpad-1

原理图设计

USB Type-C 连接及电源

这个数字小键盘用了 …

阅读全文 »

DIY电动V8发动机桌面模型,油车和电车都沉默了

先来看看视频,这个桌面 V8 发动机动起来效果怎么样的~

之所以要做这个东西,也是源于在 MakerWorld 上找一些有意思的 3D 模型玩玩的时候,看到一个 V8 发动机模型,对这类东西简直毫无抵抗力啊,立马打印了一个。

diy-v8engine-toy-3

不过原作者设计的模型虽然可以动,但是需要靠自己用的去转一个摇杆,这明显玩起来不够尽兴,刚好手上有一个有刷电机,接上电就可以让这个模型全自动运转起来了,美滋滋。

另外,作为一个发动机,怎么少得了变速呢,搞个变速箱可能比较麻烦,但是给有刷电机调个速还是比较简单的,先拿 DC-DC 降压模块测试了一下,没啥问题,直接画块板子开干。

材料配件

除了 PCB 和 3D 打印的东西之外,还需要其他的一些配件

  • F280 电机:电机不建议买太强力的,电流会比较大,容易超过 DC-DC 降压芯片的工作电流范围
  • 双轴按键摇杆模块:用于调速,让 DC-DC 芯片的电压反馈电阻形成不同比例来调整输出电压

diy-v8engine-toy-3

不过这个摇杆模块的精度也是有点差的,中间行程的电阻值变化不是很线性,不过这个电机调速也不需要那么精确,能有个变速的感觉就可以了 😂。

调速原理

有刷电机的调速靠调速输入电压就可以了,这里用的降压芯片是 SY8088,根据数据手册里给的公式,再根据摇杆模块电阻值的范围,就基本可以确定该如何选择对应的反馈电阻值了。

diy-v8engine-toy-4

在计算电阻前,已经使用可调电源模拟了一下,需要多大的电压驱动电机比较合适,最后试下来是 0.7V 到 0.9V 就差不多了。

然后摇杆模块的电阻值范围是在 5K-1K,为了使得摇杆居中时电压低,摇杆推到底时电压高,得好好算一下 R1 和 R2 的取值。

根据电压范围,最后确定 R1 和 R2 都是 1K,并且摇杆模块串联在 R2 …

阅读全文 »