标签存档: DIY

DIY USB 电流表(4):PCB 焊接与调试

在前一篇 DIY USB 电流表(3):PCB 免费打样详解 中,我们已经完成了 PCB 的下单,坐等几天就可以将生产完成的 PCB 拿到手了。在 PCB 到手之前,可以先把焊接组装需要的元器件先采购起来,毕竟这个也需要两天时间才能快递到手。

等到焊接 PCB 所需要的元器件都到手之后,就可以将我们的 PCB 组装起来了。

PS. 我也还是一个初学者,如果文章中有一些错误或不足,还请多多指教。

元器件采购

在采购元器件前,我们可以先在立创 EDA 中将物料清单(俗称 BOM)导出,在立创 EDA 中使用 导出》物料清单(BOM)... 菜单就可以导出 BOM。

物料清单 (BOM),也称为产品结构,是构建、制造或维修产品或服务所需的所有物料的列表。物料清单充当集中式源,包含从原材料阶段制造产品所需的所有信息。

diy-usbmeter-bom-1

BOM 导出后是一个 Excel 文件,打开后就可以看到它包含了这块 PCB 所需要的全部相关元器件:

diy-usbmeter-bom-2

如果直接在立创商城购买这些元器件,可以在导出 BOM 对话框中选择 元件下单,这样就会将 BOM 上传到立创商城,并开启 BOM 配单服务,可以自动根据 BOM 表中的内容匹配到合适的元器件,省去了一个一个查找并添加到购物车的过程。

diy-usbmeter-bom-3

当然立创商城购买元器件的价格并不一定是最优的,淘宝上很多商家也提供配单服务。不过立创商城的东西比较齐全,对于一些低价元器件,还是可以考虑直接在立创商城一站配齐的,对于差价比较大的元器件,我也都是选择在淘宝上购买。

例如这个 …

阅读全文 »

DIY USB 电流表(2):PCB 布局布线

在前一篇 《DIY USB 电流表(1):元件选型和原理图绘制》 中介绍了 DIY 一个 USB 电流表的需求列表,以及将它所需要的元件确定下来,并在立创 EDA 中将整体功能的原理图绘制完成,现在就可以开始在立创 EDA 中进行布局布线了。

PS. 我也还是一个初学者,如果文章中有一些错误或不足,还请多多指教。

布局布线效果预览

pcb preview

转换原理图到 PCB

通过立创 EDA 的 设计>更新/转换原理图到PCB 菜单,就可以将原理图中所有元件放置到 PCB 设计页面中,并且已经都将每个元件的网络配置且连接好。

pcb design 1

布局布线

设计预期外形

我们首先需要做的就是将元件根据用途大概放置到对应的区域,先来根据目标的形态绘制一个草图。

pcb design 2

初步确定布局

首先使用放置板框功能,画一个 PCB 的边框,可以根据实际预期 PCB 大小,将板框设置成那个尺寸,例如这里先设置成 45mm*70mm。

这里可以使用立创 EDA 的交叉选择功能,在原理图中选择对应功能区域的元件,然后按 Shift+X,就可以在 PCB 设计页面中选择对应的元件,方便将归属于同一功能的元件都选中,然后放置到目标位置去。

pcb layout

这样就可以大概将整体布局确定下来,后续就可以在这个基础上进行布线了,当然最终效果会比这个紧凑很多,可以在布线过程中不断调整。

精细调整布局

在初步确定布局之后,就可以根据每个模块的功能,将它们目标的布局确定下来,例如这里 DC-DC 模块,就可以根据一般 DC-DC 模块布局的需求,先把相关电阻、电容、电感的位置放置完毕,再进行最后的布线。

像 …

阅读全文 »

DIY USB 电流表(1):元件选型和原理图绘制

USB 电流表在电子 DIY 中还是比较常用的,可以用它来观察目标设备的实时电流、电压以及功耗。

作为电子 DIY 爱好者,做一个自己的 USB 电流表也是一件顺理成章的事。这里把之前已经开源的一个 USB 电流表的原理图来添加一些详细说明,对于初学者来说可以大概搞明白一个简单设备的原理图该怎么画。

当然我也还是一个初学者,如果文章中有一些错误或不足,还请多多指教。

USB 电流表成品效果

电压、电流、功率、容量界面

ui-1

功率历史图表界面

ui-2

需求分析和元件选型

在最开始搞一个入门 DIY 的产品,还是不要搞太复杂,尽量从简单的开始,先确定一下需求范围,降低整体开发难度,一方面减少原理图绘制之类的工作量,另外一方面,也可以增加成功率,防止半路弃坑 🤣。

需求分析

作为一个 USB 电流表,主要功能就是电流、电压等指标的采集,以及作为现在已经普及度非常高的 USB Type-C 接口和 USB PD 充电都需要支持一下,然后再通过屏幕展示出来采集的数据就可以了。

因此根据需求大概确定以下功能点:

  • USB Type-C 输入与输出
  • PD 协议透传
  • 支持 5~20V 电压检测
  • 支持 0~5A 电流检测
  • 支持功率计算、容量统计
  • 支持功率历史图表显示
  • 支持统计数据记录与清除
  • 按键切换电压电流数据与功率历史图表
  • 使用 12864 OLED


阅读全文 »

将节省进行到底,使用激光雕刻机和牛皮纸 DIY SMT 钢网

将节省进行到底

自从有了嘉立创 PCB 免费打样之后,我玩电子 DIY 基本上都是直接上 PCB 而不是洞洞板 + 模块了。在打样完 PCB 之后,一般都是选择手工焊接元件,以前都是直接使用针筒式锡膏点锡的方式来进行上锡,然后再用电铬铁或者加热台完成手工焊接操作。

但是在面临越来越复杂的 PCB,并且使用了 0603 甚至 0402 封装的元件之后,针筒式锡膏就很难控制挤出量了,并且一块板子几百个焊盘需要点锡的话,工作量实在太大了。

这个时候就可以按照 SMT 标准流程,使用钢网刷锡膏的方式来给焊盘上锡了。最开始也是使用了嘉立创的钢网服务来配备钢网,但是他们的费用还是比较高的,不管板子大小,一个钢网就需要 50 元,打样都已经白嫖的,再花 50 元似乎不太值。

后来再在淘宝上找到了一些钢网制作店铺,可以针对打样的 PCB 大小制作钢网,价格就便宜不少,加上运费在 15 元左右,这个价格也还算实惠了。

不过在 B 站看到一些视频使用 3D 打印机制作钢网的视频之后,启发了我,想到闲置的那台激光雕刻机,似乎也可以用激光雕刻机来完成钢网的制作。

最终在尝试几次之后,选择了 90 克覆膜牛皮纸来作为制作钢网的材料,毕竟一般激光雕刻机的功率并不够用来雕刻钢片。

准备工具

  • 激光雕刻机
  • 90 克覆膜牛皮纸
  • 立创 EDA 专业版
  • LaserWeb

制作激光雕刻 Gcode 文件

对于使用 …

阅读全文 »

万字长文,一个软件工程师的 2023 电子 DIY 总结

在去年这个时候,总结了一下 2022 年重新拾起电子 DIY 的经历《一个软件工程师的 2022 电子 DIY 小结》,翻了翻嘉立创 PCB 订单,今年也打了不少板子,虽然也有一些是取消的订单,但是总体还是打了不少板子,有一些旧的东西,也有一些新的东西。

相比去年,今年在电子 DIY 上又学习了一些新东西,再来总结一下在 2023 年得到的经验。当然这些都是我作为一个新手村玩家得到的经验,只能说在 DIY 这个领域,可以用来应付一些需求,与实际商业化产品开发过程中需要的经验,还是会有比较大的距离,因此这些经验也仅供大家参考。

经过这一年,看见什么数码产品,都想着自己能不能做一个,找找开源项目,找找对应芯片,然后搞出一个半成品 😆。

复刻项目

作为一个新手,2023 年整体还是以复刻为主,得益于立创硬件开源平台,总是可以看到各种很有意思的项目,这其中有一些算是玩具,有一些是开发相关的,有一些则是实际生活中会使用到的数码产品。

在复刻项目过程中,现在能更多地去理解原理图,知道每个部分的作用是什么,以及在它的基础上,是否可以做出一些符合自己需求的修改,例如以下这些基础的修改:

  • 元件封装是否方便手焊,0402 替换为 0603 或 0805
  • 布局是否方便使用加热台一次焊接,双面贴片变更为单片贴片
  • 元件选型是否和现在元件库存匹配,LDO、DCDC 等替换为库存已有型号
  • 主控是否可以替换为更熟悉的型号,例如 ATMEGA 替换为 ESP32

在经历过几个开源项目的复刻过程后,会逐渐对硬件项目的构成有一个更清晰的概念,也能对硬件项目中可能包含的功能模块了解更多一点,例如电源模块、充电模块、电机驱动等。

在知道和了解了硬件项目中的这些模块之后,在后续想要做自己的项目时,就可以参考和使用了,这跟在软件项目中使用开源库的原理也差不多。

SmartKnob - 基于 SimpleFOC 的无刷电机模拟旋钮

2023diy-smartknob1

项目地址:https://github.com/scottbez1/smartknob

关键词:无刷电机,SimpleFOC,PID,ESP32,TMC6300,磁编码器,SK6812…

阅读全文 »

一个软件工程师的 2022 电子 DIY 小结

在 2022 年中的时候,已经很久没有玩过 DIY 的我,在看到稚晖君以及其他一些 UP 主的视频之后,又对电子 DIY 捡起了兴趣。在这同时,又了解到了嘉立创的免费打样活动,因此也想在之前使用万用板和飞线的基础上,更进一步,能真正向产品化迈进一点,好好地做个东西出来。

在经过了几个月的学习、尝试,也在嘉立创打了快 30 块板子之后,目前也完成了几个小玩具的开发、组装、使用,也算是完成了一些里程碑。

学习路径

为了使 DIY 产品更像一个产品,就需要使用 PCB 了,因此需要系统地了解和学习硬件产品整体的开发流程。幸运的是,现在 B 站科技区很多 UP 主,在发布视频的时候,都给出了完整的实现方式,这就让我的整个学习过程有了比较详细的参考资料。

整体学习过程中,遵循了看视频》原理图学习》EDA 学习和操作》PCB 布线》项目复刻》自主从头实现这个路径。当然因为是业余 DIY,实践的时候都以满足基本需求为主,没有特别地去优化线路、优化功耗。

总的来说,在入门电子 DIY 的时候,还是遵循了实践大于理论的原则,很多时候并没有特别去深入原理性的东西,像模电的一些内容,并没有花太大精力去深入学习,更多还是直接使用了现成的模块。

EDA

在很久以前玩 Arduino 的时候,也去尝试过一些 EDA 软件,那个时候对整个电路,都比较费解,也不太能从头去画一个原理图,并且由于没有系统地去学习过原理图绘制,因此对于什么元件使用什么符号,各个元件所起的作用之类,都不太了解。

但是在接触到了立创开源硬件平台之后,就像是在 GitHub 上去阅读开源项目代码一样,可以成体系地去学习一下开源硬件项目了,自带的编辑器立创 EDA 可以直接打开项目。并且由于立创 EDA 相对其他 EDA 工具而言,功能还不太复杂,对于我这样的初学者来说,可以比较快的掌握并去画一些基础的原理图。

在使用立创 EDA 过程最大的感受就是,可以完全不需要了解各个元件的封装之类的参数,只需要在立创商城找到的元件,就可以直接放在画布中使用,各个参数、符号、3D 模型都是现成的,这也导致我现在使用立创 EDA 的时候还保留有一个习惯,元件选型的时候,只有有模型可以直接放置在画布的元件才会去选用,这样可以完全不用操心元件封装,还可以直接在 …

阅读全文 »

超简单 DIY – AirCube 空气检测站

源由

一直以来对家里的环境状态比较在意,在很多年以前,就使用万用板 + ESP8266 + 传感器组装了很多台空气检测节点放在家里,用于监控 PM 2.5 浓度、二氧化碳浓度、温度、湿度等环境状态。

配合 ESPEasy 固件 + Domoticz,可以很方便的采集环境状态的数值,从而配置 Domoticz 的脚本来完成一些自动化动作,例如打开新风、打开空气净化器等。

进一步,也可以通过 Domoticz 将采集到的数据保存到 InfluxDB 中,使用 Grafana 图形化的展示这些环境状态的变化趋势。

在知道嘉立创的 PCB 免费打样活动之后,就产生了将这些空气检测节点进行升级的想法。

目标

这次升级,主要是为了改进以前使用洞泂板,ESP8266 等老旧部件碰到的一些问题,主要有以下几点:

  • 更美观,原先使用万用板 + 亚克力面板太多飞线,不是很好看,整体空间利用也不充分,并且现在也有 3D 打印机,可以做一个更好看的外壳。
  • 更标准,原先每个节点的传感器选型都不太一致,从而导致每块万用板的飞线都不一致,组装存在出错可能,这次通过使用统一的 PCB,将所有传感器模块位置固定,每个节点的传感器都保持一致。
  • 更强大,原先使用的 ESP8266 模组,GPIO 数量较少,在传感器数量多的情况下,GPIO 就不够用了,这次更换为更先进的 ESP32,拥有更多 GPIO,性能也更为强大。并且因为 GPIO 数量更多,还可以额外增加一个屏幕,这样即使不借助 Domoticz 的情况下,也可以独立使用,查看当前环境数据。
  • 更灵活,原先使用的 ESPEasy 固件,所有的传感器是通过在它的网页配置界面来完成的,并且它的配置保存格式为自定义的二进制格式,很难阅读以及提前配置,这次更换为更灵活的


阅读全文 »

玩玩智能家居4:InfluxDB & Grafana

在接入了很多传感器到 Domoticz 之后,终于可以全面监控家里的各种环境参数了,例如温度、湿度、PM 2.5、二氧化碳浓度等等。

Domoticz 虽然已经自带了传感器数据日志,但是一来详细数据最多只能保存七天,二来只能单独查看每个传感器的数据,而不能将多个传感器数据放在一起对比查看,所以就需要使用其他方式去保存和展示传感器历史数据。

InfluxDB

InfluxDB 是一个时序数据库,很方便用来保存时间序列数据,而各种传感器数据其实就是一个时间序列化数据,InfluxDB 的介绍页面也说了很适合于 IoT Sensors 数据的保存。

使用 InfluxDB 最方便的方式就是用 Docker 了,直接在 DSM 的 Docker 中添加 influxdb 镜像,然后启动一个容器就可以了。

当然这里要记得添加一下端口映射,后面在配置 Domoticz Data Push 的时候需要用到。

Domoticz Data Push

部署好了 InfluxDB,就可以在 Domoticz 里面配置把接收到的传感器数据同时推送到 InfluxDB 中保存了。

Domoticz 提供了两种方式可以用来将传感器数据推送到 InfluxDB 中,一种使用 HTTP 调用 InfluxDB 的 HTTP API,还有一种是直接使用 Domoticz 内建的 …

阅读全文 »

玩玩智能家居3:PlatformIO

ESPEasy 虽然方便,但是毕竟很久没有维护了,里面对硬件的支持也不是很完全,并且在使用有些模块时,与 Domoticz 对接可能会有一些问题,例如 CO2 传感器在发送数据到 Domoticz 时,发送的数据字段就不正确。

在这个时候就需要自己来修改 ESPEasy 代码,重新编译并烧录到 NodeMCU 中,而修改代码就需要用到 IDE 了。ESPEasy 是一个 Arduino 项目,自然用 Arduino IDE 来开发是最直接的。

但是 Arduino IDE 是一个相当古老的程序了,虽然版本号更新到了 1.8,但是在使用的时候有很多功能都不够完善,例如代码自动补全、符号定位、语法着色等。

这个时候就在网上找到了 PlatformIO 这个项目,它提供了基于 Atom 或者 Visual Studio Code 的 IDE 项目 PlatforIO IDE。

PlatformIO IDE

要安装 PlatformIO IDE 很简单,在 Atom 的设置中打开 Packages,直接搜索 platformio ,安装platformio-ide …

阅读全文 »

路由器 DIY,加装液晶屏

嗯,这算是一个帖子引发的血案。之前在逛恩山的时候,看到一个帖子,《给tp-link wr941n增加一个液晶屏,散热片和USB口》,这就跨上了改造路由器的不归路。

先秀一下最终改造结果:

需要说明的是,改造路由器加装液晶屏,只能算是一个玩票的行为,实际意义不是特别大,成本相对路由器来说,也不低,所以只推荐喜欢折腾的人玩。

另外,这篇文章只介绍怎么去加装液晶屏,不涉及到加装 USB 口。

准备材料

要改造路由器,首先就需要去准备一个路由器,一般的路由器可不行。为了能在液晶屏是显示内容,需要有程序去控制液晶屏,而一般的路由器是不能运行自己的程序的,这就需要路由器可以刷机,可以刷 dd-wrt 或者 openwrt 等等的都可以。

我用的路由器是迅捷 fw300r,实惠,京东的价格在79左右浮动,比较便宜的另外一个好处就是折腾坏了不心疼,这篇文章的内容也是以 fw300r 为基础而写。我买的 fw300r 是 v2 版本,配置为 4M Flash 和 32M RAM。

加装液晶屏,再需要的当然就是液晶屏了。我这里选择的是 12864 液晶,分辨率是 128x64。

需要注意的是,一般买到的 12864 的接口都是并行或者SPI,并不能直接连接在路由器上使用。因此,在选购液晶的时候,要注意选择带 TTL 或者 UART 支持的,要不然还得加个单片机在路由器和液晶屏之间。如果是在淘宝上购买,可以找串口支持的 12864 液晶,但是特别注意,SPI 串口不是我们这里要用的串口,最好和卖家沟通之后再买。

液晶屏的电压也需要注意,路由器的 TTL 针脚一般也带电源输出,但是电压只有 3.3v,如果选购的液晶屏驱动电压是 5v 的话,那就需要安装额外的电源了。

液晶屏建议选择小屏,路由器本身体积不大,如果选择大屏的话,有可能装不下,要把液晶屏放在外面。

另外,路由器上需要加装 …

阅读全文 »