我的首个硬件开发

我的首个硬件开发

故事背景

人到30,岁月的痕迹就会在身上体现出来。老婆大人一直很在意她的颈纹,说很难看(我倒是没有很在意啦😅),然后刷小红书看到颈纹治疗仪,看了下价格动辄上千,有的有2 3千,而且效果怎么样也不是很清楚。然后跟我说了这个事,也让我看下原理啥的。

经过一番调查,发现红光(波长720纳米左右)对于胶原蛋白确实有一定的促进左右,现在也有医院有专门的红光治疗,但是要排队,收费也不便宜。顺便说下搜索到的信息里也提到蓝光对于治疗痔疮有一定效果。而胶原蛋白在一些文章里也提到确实对于治疗颈纹有一定的效果。但是如果想完全靠这种方式治疗颈纹也是不可能的,更多的应该靠日常的行为(少低头玩手机📵)来规避,不过作为一种辅助治疗方法每天坚持下去应该还是有少许效果的(起码对于心理上有很大的提升作用,心美了人才美😄)。

先看最终效果



制作手法非常简陋,请将就😜。

前期准备

迫于昂贵的费用(穷),我决定还是自己来做一个吧。本来我自己对于动手类的手作就蛮有兴趣的,正好趁机也可以购入我人生的第一台3D打印机😍。这是我第一次真正意义上做和硬件有关的东西,之前的都是玩玩。于是我开始了疯狂购物的时间,总共买了这些东西:

  • AnyCubic Mega S FDM 3D打印机和PLA耗材
  • STM32F103C8T6 最小系统开发板一个(事后了解到也许AtTiny 85是个更小的实现方案,不过还需要Arduino板子来做上传器,以后有机会再试试吧)
  • 200mAh的锂电池3节(我已经不记得怎么计算电功率了😅,凭感觉买的,事后证明200mAh大概能用4-5次的样子吧)
  • 锂电池充电模块2个(用来给锂电池充电,虽然锂电池带了充电保护模块,但是方便使用。不过买回来发现买的是Micro USB的口,家里差点没有这种USB线,应该买Mini USB的,相关知识准备不足)
  • 电阻包一份(实际用的是47欧姆的电阻,也是不清楚用多大的电阻合适,凭感觉的😅)
  • 红光LED 二极管若干(只要是补库存,之前的都用掉了)
  • 开关(其实开关也买错了😭,买成了按下去会弹上来的那种一次性reset按钮,应该买自锁开关的)
  • 电烙铁套装(电烙铁一直不太会保养,之前的2个30W的都不好用了,这次换了可调功率的黄花电烙铁,用着趁手一些)
  • 其它库存小零件,包括杜邦线、铜线、无源蜂鸣器、皮筋以及蓝丁胶

那在开始之前,我们先定义自己的产品名称就叫做“DIY颈纹理疗仪”吧(好土🤣),以下简称理疗仪。

开工之3D列印

鉴于以前自学过一些3D建模的知识便自信满满的开始了理疗仪的3D设计,然后被现实各种打脸。我比较喜欢那种简单的,上手就能用的软件,所以一开始就用的 TinkerCad,但是它更偏向于简单应用,对于复杂点的就不太适用,而且转动操作很难受。第一次用它设计了一个打印出来后发现尺寸不对,而且转动结构也有问题,原件在这,大概是这样:

初版

后来我就开始重新搜索好用的3D设计工具,solidworks算很常用的工业设计工具了,但是Mac电脑上没法用,最终投入了onshape的怀抱,作为一款在线设计工具,支持中文,界面也算简洁,找了几个视频学习了下也就开始上手了。其实3D设计也是常用形状/路径+各种布尔运算,和2D设计没有太多本质上的差别(个人理解,请轻喷)。在熬了几个夜后做出了第二版,原件在这,大概是这样的:

这次对转轴结构做了修改,对尺寸也做了重新计算(事后发现其实有点高了,可以再矮一点),挖了2个孔用来放元件(挖孔这里花费了很多时间,实现的也不是很好)。衔接部分采用一边挖孔,一边沾上一个可以插进去的方式实现。

切片,开机,打印。在经过近一天的打印后发现了一些问题,2边半环在填充方式的实现上不一致,后来查看切片预览发现也确实不一样,不知道为什么,一边合理,一边不太合理,可能是有挖孔的原因。另外因为切片工具默认是有支撑的,所以打印完成后还需要手动去除掉一些支撑,尤其是挖洞的支撑很难去掉,挺麻烦的😞。我就在考虑要不要下次打印的时候去掉支撑,但是不加支撑的话一些悬空打印的地方肯定要出问题,所以还是加上吧。最让我开心的是转轴部分是OK的,我看着打印的时候总感觉要坏,毕竟是悬空的结构,也是吓死我了,如果这个结构再设计大一些应该会好很多。

Emmm~ 忘记拍照了,真实效果直接看成品吧。

电路设计和组装

我在3D打印机到之前就先组装好了LED灯组,直接用的裸铜丝接的,最后通电的时候竟然搞错并联电路的接法,实在惭愧,高中学的知识全都还给老师了😂。总共用了16个(原定20个的)LED发光二极管,用了非常简陋的方式并联起来,用热熔枪固定在一个纸片上,极其简陋和随心。然后用2节1.5V电池驱动用了2天,开关都是直接用铜线接触电池并用胶布裹着的最原始的方式使用的,还经常接触不灵。

后来买的元件陆陆续续到了,我也就开始了电路学习和制作之坑。我是先从锂电池充放电开始的,这个模块说起来应该是最简单,最顺利的了,直接锂电池接充电模块的2个IN接口并公用这2个接口作为输出就可以了。

鉴于开关买错了,只能另辟蹊径,用公母杜邦头的组合来做一个简易的开关,后面还是要买个自锁开关给它换掉。然后插电,测试充放电都OK,LED正常点亮。其实到这一步已经可以用了,但是我还是希望能加个简单的功能,就是10分钟提醒下,20分钟再提醒下。因为我查到的一些文章里也都提到LED照射时间不宜过长,15到20分钟就差不多了。所以我就开始折腾起开发板来了。

对于一个写惯了高级开发语言的程序员来说,写C语言代码还是稍微有那么一些不习惯,但是我们用到的功能也非常简单,都是照着Demo改改,上手还算快。不过这里的难点还是STM32开发板各种资料和IDE混乱,上网搜索发现有各种方式来开发,导致我一头雾水,一会这种方式试试,一会那种方式试试。我最后用的是基于Arduino的方式来开发STM32,但Arduino IDE非常原始,没有提示,没有校验,有哪些库可用,函数功能什么的都没有。后来换用VSCodePlatformIO插件来开发,但PlatformIO创建项目时又因为网络问题耽误了很久。所以最终就是一会用用这个,一会用用那个,很烦😣。

在测试的时候发现上传(我用的是USB转TTL的方式)也是很头疼的事,经常上传失败,有时又能成功,一直没发现规律,直到我把阵脚焊接固定住才发现之前可能是阵脚接触不良导致的,真是蠢,当时应该买STLink的上传烧录器。

还有我原来想实现一个简单的倒计时,但是搜索后发现delay函数并不精准,想要精确可以用时钟,然而时钟这块我看了N篇文章,每一篇讲的都是非常基础知识,涉及到很多基础概念,什么晶振、预分频、频率计算等等,至今我都没搞明白,试了几个demo也没成功,最终还是放弃了😅,还是选用最蠢的delay累加实现(管它精准不精准,差不多就可以了,20分钟范围内也差不了多少)。

接着是要实现无源蜂鸣器的震动,一开始也是搜索文章,发现很多也是从基础的PWM讲起,实现代码也很复杂啰嗦,看着我就头晕。直到我测试了tone这个函数,发现这TM才是我要的简单库函数啊😘,非常符合我们普通开发者使用,简单、直达效果,之前倒计时要是也能这么简单多好。

最终代码是这样的(我在PlatformIO里写的,去掉第一行直接放到Arduino IDE里应该也可以编译):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <Arduino.h>

int buzzerPin = PB10;

int m10 = 10 * 60;
int m20 = 20 * 60;

int sec = 0;

void notify(int times) {
long frequency = 300;
for (int i = 0; i < times; i++) {
tone(buzzerPin, frequency, 500);
delay(500);
noTone(buzzerPin);
delay(500);
}
}

void runTask() {
++sec;
delay(1000);
// Serial.println(sec);
if (sec == m20) {
notify(5);
// PWR_EnterSTANDBYMode();
__WFI();
} else {
if (sec == m10) {
notify(1);
}
runTask();
}
}

void setup() {
// Serial.begin(115200);
pinMode(buzzerPin, OUTPUT);
runTask();
}

void loop() {}

总结

最终我们的理疗仪算是实现了,老婆大人也很开心😃,每天美滋滋的挂在脖子上理疗个20分钟,隔个3-4天充一下电就可以了。

对我来说这次制作蛮有意思的,不仅仅是东西做出来了,更多的是学习的过程,现在我也会学习一些物理知识,学习一些焊接技巧,没事再找点3D模型或者自己做一个打印出来玩玩。但我也意识到,对于完全没接触过的领域,靠着自己那薄弱的知识储备必然要踩很多坑,如果有一个引路人会好很多(虽然这次也认识了一个做硬件开发的,但是段位太高,不适合教我,而且人家也很忙,不过提醒了我一句:初学者还是用Arduino开发比较好)。所以在做没接触过的事情前1要多学习多了解,2是找相关领域的人去沟通,把盲点在前期抹掉才能避免后续的坑。

作者

二锅头

发布于

2021-02-15

许可协议

CC BY-NC-SA 4.0

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×