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

最近在例行刷某宝时,看到一个复古录音机很有意思,体积很小,只有 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



阅读全文 »

25块售价成本多少?拆一个500合1游戏机

最近在刷某宝的时候看到一个游戏机,掌机尺寸,可以玩 NES 游戏,3.0 寸屏幕,还支持第二个手柄一起双打,用完券只要 25 块钱包邮,要知道之前用 ESP32-S3 做一个游戏机模拟机光 BOM 成本都得 60 块了 😂。

这不马上下单,买来拆开看看是咋做到的。

关于 DIY 游戏机的内容可以看这篇文章:成本60元,用ESP32-S3做个开源游戏机,能玩FC/NES、GameBoy,还有专属彩色PCB

包装

外包装也没啥品牌,就是一个直白的 Game Box。

我当时买的双人版,除了主机之外,还有电视 S 端子线、一个额外的手柄、BL-5C 充电电池、Micro USB 充电线。

开机使用

通过一个拨动开关开机,就可以看到游戏列表了,很像以前盗版游戏卡带的界面。

屏幕 3.0 寸的,但是可视角度并不是特别好,应该是那种本身设计为竖向观看的,横着使用的时像素排列看起来不舒适。

当然这么便宜的游戏机,操作什么的就不要太讲究了,能玩。

感受过游戏之后, 就可以拆开来看看到底咋做到这么低的成本了 😂。

拆解

从背面取下 6 颗螺丝,就可以拆开整个主机了。

直接看到的就是一个单面板 PCB,不知道相比双面板,单面板 PCB 能省多少钱。

全拆开,整体就是三明治结构,主要部件:

  • 3.0 寸 TFT 屏幕,看排线应该是


阅读全文 »

做了个徕芬电动牙刷旅行盒

前段时间用了很久的飞利浦电动牙刷坏了,在群里朋友们的推荐下买了 laifen 徕芬扫振电动牙刷,用起来的确不错。不过有一点不太方便的地方,就是徕芬的牙刷没有附送一个牙刷盒,在出门玩的时候,如果要携带这个电动牙刷就不太方便。

然后我就去 MakerWorld 上找了一下,没找到太合适的模型,不是太大,就是没有牙刷头需要拆下来存放,用起来不太方便,刚好也学了下建模,就自己搞一个了。

旅行牙刷盒特点

我设计的这款旅行牙刷盒主要特点如下:

  • 体积小巧,仅比牙刷本体宽 1cm,厚 0.5cm
  • 带牙刷头存放,省去拆装牙刷头步骤
  • 隐藏式转轴,减少侧面突起
  • 磁吸设计,使用 4 颗 5x2mm 圆形磁铁扣住牙刷盒
  • 充电孔开孔设计,需要充电时也可以直接将牙刷盒作为充电座使用

模型下载地址

最终模型已经放在了 MakerWorld 上,欢迎下载打印,如果能点赞助力就更好了 😃。

文末原文链接也可以直接跳转到中国站地址。

PS. 模型打印需要 80 克左右材料,转轴处可以使用 2 根 60mm 的耗材丝作为转轴塞进去,建议使用 PETG,另外也可以使用模型中的转轴覆盖件防止耗材丝掉出来。

实物效果图

牙刷盒正面

牙刷盒打开

这里设计了牙刷是牙刷头安装好后一体存放,横着在牙刷盒中放置,两个方向都可以,另外在连接处设计了一个取牙刷的凹槽。

这里用了 4 颗圆形磁铁来扣住牙刷盒。

牙刷盒转轴

隐藏式转轴设计,另外提供了一个转轴覆盖件,用胶水粘住之后可以整个融为一体。

底部充电孔



阅读全文 »

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 连接及电源

这个数字小键盘用了 …

阅读全文 »

做一个基于 ChatGPT 的语音助手吧~

虽然有点晚了,但是还是分享一下之前折腾的本地运行一个大语言模型(LLM)语音助手的过程~

做这个来源于在推上看到有人分享了使用大语言模型搭建的语音助手,刚好也想试试大语言模型相关的库和代码什么的。

diy-chatgpt-based-voice-assistant

然后我参照推主的介绍,也使用相关的框架搭建了一个本地的语音助手,不过因为没有 GPU 以及测试的时候小参数量的大语言模型也不是很好用,因此 LLM 这块是使用的 OpenAI 的 API。

整体介绍

这个语音助手主要使用以下几个框架和服务:

  • snowboy:用于声音检测、声音录制等功能,并且还支持静音检测(VAD)
  • faster-whisper:用于语音转文本,这个是使用了 OpenAI 的 whisper 模型,并且重新实现的库,速度比官方的快很多
  • SpeechRecognition:用来进行录音,在使用 snowboy 识别到唤醒词后,就用这个库来将后续的对话进行录制,交给 whisper 语音转文本
  • EmotiVoice:文本转语音,将用户的对话内容通过 API 询问 GPT 之后,再将返回的文本内容生成语音并播放
  • OpenAI:用来分析用户的对话并给出对应的回答

其中 fast-whisper 如果想要速度快的话,最好还是要有 Nvdia 的 GPU,使用 CPU 的话速度会慢不少,不过我在 M1 MacBook 上测试勉强能用。

snowboy

项目主页:https://github.com/Kitt-AI/snowboy

Snowboy is a customizable hotword detection engine



阅读全文 »

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 …

阅读全文 »

3D打印一个黑悟空照片吧~配上背光效果很不错~

之前就已经在搞 3D 打印照片的灯板,刚好黑神话悟空发布了,蹭个热点,搞个 3D 打印的黑悟空的照片,配合灯板做个灯光画。

成品效果

3d-photo-light-1

材料清单

这个灯光画涉及的东西有点杂,不过总体成本也不高,可以控制在 20 元以内。

  • 3D 打印灯光照片,耗材不到 20 克,成本不到 1 元
  • PCB 需要的元件加起来不到 5 元,主要是 LED 灯珠、LED PWM 驱动芯片、充电芯片
  • PCB 可以用嘉立创的免费打样券
  • 3D 打印外壳,耗材使用在 40 克左右,成本大概在 2 元左右
  • 磨砂亚克力扩散板,100x100mm 大小,2mm 厚,需要 3 片,可以买一块大的裁切一下

3D 打印照片

最早的时候要生成一个反相照片 STL 模型文件还是比较麻烦的,不过 MakerWorld 上有一个作者搞了个比较好用的脚本,可以一键生成 OpenSCAD 源文件再导出成为切片软件可以用的 STL,并且参数可配置。

MakerWorld 项目地址: https://makerworld.com.cn/zh/models/194195

阅读全文 »

不要浪费闲置机箱风扇,5元把它变成无级调速桌面小风扇

之前拆机箱的时候,闲置了两个 12 厘米的散热风扇,看了下接口还是 4PIN 带调速线的,刚好办公室里缺一个桌面小风扇,这不得顺手改造一个。

机箱散热风扇是 12V 的,因此需要一个升压电路将 USB 输入的 5V 升压到 12V,另外因为风扇本身是支持 PWM 高速的,还需要一个电位器 + PWM 转换芯片来控制转速,整体还是相当简单的一个电路。

成品效果

为了在桌面使用,在 MakerWorld 上找了个可调节角度的 12 厘米风扇支架,刚好配合这个风扇使用。

不过因为原始设计是直接给祼风扇使用的,并没有考虑下面会加额外的 PCB,因此我对支架做了加高处理,要不然风扇的外壳会超出支架。

diy-desktop-fan-1

最终效果如图,使用时感觉还不错。

原理图设计

整个 PCB 仍然是使用立创 EDA 专业版设计的,在更新了 2.2 版本之后,终于流畅度有了不少提升,使用起来舒适了不少。

调速风扇整体电路很简单,就是一个升压 + PWM 输出,其中升压芯片使用了 HX3608,PWM 输出使用了 GP9101。

diy-desktop-fan-2

其中一些可能会有疑问的地方:

  1. HX3608 升压反馈电阻使用了 16K 和 1K,实际升压电压为 10V,驱动 12V


阅读全文 »

来了来了,用单片机 ESP32-S3 跑 RISC-V 模拟器运行 Linux,这次启动只要 8 秒

在之前一篇文章 《用 7 毛钱的 CH32V003 单片机跑 Linux,启动需要 5 分钟》 中介绍了开源项目 linux-ch32v003mini-rv32ima,可以在 7 毛钱的单片机 CH32V003 上配合外置 PSRAM 来运行一个 RSIC-V 模拟器,并且可以运行一个裁剪过的 Linux 系统镜像。

但是 CH32V003 的性能不太强劲,按作者介绍启动 Linux 系统需要 5 分钟,为了更好地学习一下 RSIC-V 模拟器,我决定把它移植到 ESP32-S3 来试一下看看。

PS. 搞这个也是仅供娱乐了,毕竟 ESP32-S3-N16R8 20 多元的价格,可以买像 V3S 这样正经 ARM SoC 来跑 Linux 了。

移植 mini-rv32ima

在上一篇文章中,已经大概介绍了移植 …

阅读全文 »