# EDC发电手电筒 **Repository Path**: dma/edc-generator-flashlight ## Basic Information - **Project Name**: EDC发电手电筒 - **Description**: 具有多种功能和照明模式的发电手电筒,红白双色灯珠,铝合金机身,具备完善的保护电路,体积小巧便携 - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-06-30 - **Last Updated**: 2024-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 具有多种功能和照明模式的发电手电筒,红白双色灯珠,铝合金机身,具备完善的保护电路,体积小巧便携。 ![](./doc/成品.jpg) 视频展示: https://www.bilibili.com/video/BV1X7mFY7EkG 硬件工程: https://oshwhub.com/code504/edc-power-generation-flashlight 软件代码: https://gitee.com/dma/edc-generator-flashlight ## 功能说用 * 初次使用或长时间未使用请转动手柄发电,当电量达到最低使用限度后白灯会闪烁两次,此时可继续发电或进行照明 * 关机状态下2分钟转300圈可充约60%,3分钟转450圈可充约80%(实际发电效率受转速影响有一定偏差) * 接近满电时继续转动发电效率降低,不建议继续发电,满电后继续发电保护电路会开始工作,无须担心电容过充问题 * 正转或反转摇柄均可发电,无须关心方向问题 * 电量不足时,亮度会逐渐减弱并熄灭 * 关机后电路待机会消耗一定电量,超级电容本身也存在自放电现象,长时间(3天以上)不用手电筒没电属于正常现象 ## 按键说明 * 单击点亮手电筒,开机后默认白色微亮 * 照明模式下单击切换亮度,其他模式单击无效,共4档亮度:微亮、低亮、中亮、高亮 * 双击切换模式,在以下模式中循环切换:照明、单闪(每秒闪烁1次)、双闪(每秒闪烁两次)、爆闪、SOS * 三击切换颜色,有白色和红色两种颜色,任何模式下都可切换颜色 * 长按关机 ## 硬件参数 * 机身主体尺寸`43mm*31mm`(含摇臂,不含钥匙环) * 电容规格:2.7F,10F * 白光高亮照明时长:满电状态下开始照明到亮度明显减弱前约2分钟(受不同批次元件性能影响,实际略有偏差) * 关机耗电:2.6V时关机电流约15uA,理论关机时长1天以上(受不同批次元件性能影响,实际略有偏差) # 制作说明 话说在前:这么个小玩意五金零件和电子元件算一起还不到50个,但涉及的细节可不少,很多问题我都踩过坑,这里毫无保留地分享给大家(罗嗦一句:像我这么良心的文章真的不多见吧?!) ## 硬件说明 ### 电子元件 #### 超级电容 留给电容的理论空间是`13mm x 24mm`,实际可用的最大电容规格为`12.5mm x 20mm` 不同厂家的电容性能可能不同,这是我收集到的部分资料,可供参考 | 直径x长度(mm) | 容量(F) | | --------------- | ---------------- | | 8 x 20 | 3.3 | | 10 x 20 | 5 | | 10 x 20 | 7(高容量型) | | 12.5 x 20 | 10 | | 12.5 x 20 | 12(中高容量型) | | 12.5 x 20 | 15(高容量型) | 理论上最大可以选购尺寸为12.5x20的15F超级电容,但是这个规格的超级电容价格远高于小容量的,因此比较推荐选择容量少小一些的超级电容 我选用的是12.5 x 20,10F的电容 ##### 电容计算 电容所携带的能量为 `E=(1/2)*C*V^2` 理论上一个2.7V 10F的电容所携带的能量为36.45J 实际因为有电容保护电路,只能充电到2.6V左右,电压降低至0.9v以下时,升压芯片的输出功率会迅速减小,0.5v以下时升压芯片不工作,算上升压电路的损耗,真正可用的能量大概60%,约22J LED高亮时的供电电压为3.0V,电流约50mA,理论工作时长为`22/(3*0.05)=146`秒 #### 减速电机 规格是N20减速电机。选型要注意以下几点: * 根据我们小学二年级就学过的闭合电路欧姆定律可知,电源的内阻越小,电源的效率越高,所以我们要找一个电机线圈内阻最小的减速电机来做发电机 * 如何查看电机内阻?电压一定的条件下堵转电流越大内阻越小。商家如果没有详细参数那就看转速,电压一定的条件下转速越高内阻越小。还不行就买一批用万用表量,这种电机的内阻一般在几欧到几十欧左右 * 电机内阻小,发电效率高,但会导致拧起来太轻松,感觉有劲无处使,手感不好 * 电机内阻大,拧的时候手上感觉“有劲”,但发电效率低,会有较多电能被线圈自身发热消耗了,长时间拧手酸(连续拧5分钟手不酸的是狠人) * 选择减速比1:100的,减速比太小手拧的转速不足以发电,减速比太高很容易拧坏初级齿轮(对,别问,我已经拧坏两个了,都崩齿了) 综上所述,我选择的是3v150转,1:100减速比的电机,这个电机在电容没电时拧起来手感比较好,电快满时拧起来会变得轻松手感略差(对,别问,我买了十几个不同参数的电机,都是亲自试过的,就是为了让大家少走弯路)。不过手感这种东西,每个人的体验都不一样,我的想法仅供参考,大家也可以选择转速不同转速的减速电机来换取合适的手感。 #### 其他元件 选用的按键高度为1.5mm 超级电容保护芯片的型号为BW6101(截止编写本文时,立创商城没有上架此芯片,需要自行采购) 其他元件看原理图,略 #### PCB 板厚1.2mm,板厚1.2mm,板厚1.2mm,重要的事情说三遍!!! 如果打算自己重新画PCB,记得尺寸要小一点,理论上PCB的尺寸是13mm x 28mm,如果真按照这个尺寸画PCB,大概率会因为加工误差的原因装不进外壳,所以要稍微小一点,比如12.8mm x 27.8mm PCB主板两侧的排针间距是精心调整过的,排针塑料底座的间距要略小于2.5mm,组装外壳时螺丝的牙正好会咬入排针的塑料底座,巧妙实现了外壳与电路板之间的固定,排针附近不要放电子元件,避免螺丝顶到元件。 ### 金属零件及其他零件 #### 面板 ##### 打印参数 PET,底面打印,3M9448A(通用款),高透明,按键无鼓包,厚度0.2mm ##### 面板说明 面板中一共有4种图案,H形的支架,前面板,星火计划Logo后面板,使用说明后面板 两款后面板可以按自己的需要进行选择,本作品参加星火计划,我自己使用的都是星火计划Logo后面板,大家也可以自行设计 H形的面板是用来做支架的,用来垫在前面板下面,大概需要垫4或5层,主要作用是避免按键时前面板变形过大 #### 金属外壳 去某电商平台找铝方管加工定制,铝方管规格为30mm x 15mm,壁厚1mm,让商家切割成32mm长,在短边的两面距边框4mm的居中位置打一个直径2.5mm的孔。三视图如下,可直接给商家进行加工。有需要的话还可以做喷砂、阳极氧化等表面处理工艺,当然价格也会更贵。我所咨询的某商家报价为,10个无任何表面处理90元,100个无任何表面处理260元,此价格仅供大家参考。 ![](./doc/shell.png) 为了节约成本,我选择了不做表面处理自己贴蒙皮的方案,大家也可以换更好看的蒙皮,不差钱的直接做喷砂加阳极氧化。 铝方管的理论长度是`1.2(PCB厚度)*3+2.5(排针高度)+1.5(按键高度)+15(电机高度)+9(齿轮箱高度) = 31.6mm` 实际因为PCB有阻焊层、覆铜层、丝印层,厚度会稍微厚一点点,再加上组装误差、加工误差之类的,干脆取整32mm,这样也方便加工,如果追求极致的话,可以考虑做31.8mm。 #### 其他零件 | 名称 | 规格 | 说明 | 数量 | 参考价格 | | ------------ | ------- | ------------------------------------------------------------------------------------- | ---- | -------- | | 铝合金舵机臂 | 开孔3mm | 无 | 1 | 4元 | | 螺丝 | m1.6 | 长度3mm或4mm都行,更长会顶到减速电机的齿轮 | 2 | 100个2元 | | 自攻螺丝 | m2.5 | 长度4mm或5mm都行,更长会顶到PCB的元件,也可购买近似尺寸如m2.3或m2.6等,m2的太小拧不上 | 2 | 100个3元 | | 不锈钢钥匙环 | 10mm | 直径10mm,也可自行购买其他相似规格 | 1 | 0.5元 | | 不锈钢钥匙环 | 25mm | 直径25mm,也可自行购买其他相似规格 | 1 | 0.8元 | **注意事项:螺丝和钥匙环都建议使用不锈钢材质,铁镀锌或铁刷漆的长时间使用容易掉漆生锈,变得难看** ## 软件说明 软件请参考源码,源码每次提交都附带有最新的hex文件,可直接烧录 ### 烧录说明 #### 准备工作 主板中有超级电容保护电路和升压电路,直接使用常见的3.3V电源供电会导致超级电容保护电路工作,且使得升压电路的输入电压高于输出电压,因此建议使用以下几种方式进行烧录 * 最优方案:使用如视频中所示的,使用支持调节电压的串口板进行烧录 * 次选方案1:常见的串口供电3.3v,在VCC串接1个或2个普通的二极管,使电压降至2.7V以下1.2V以上,烧录完成后将二极管拆除。(缺点:电源电压已降至2.7V以下,但是串口电压仍然是3.3V,有烧坏单片机的风险,STC比较皮实,应该问题不大) * 次选方案2:使用可调电源将电压调至1.2V至2.6V进行供电(缺点同上,烧录时可调电源地、串口地、单片机地三者一定要共地,这是新手经常犯、老手偶尔也犯的错误) * 次选方案3:不焊超级电容放电电阻使用3.3V进行烧录,烧录完成后再焊(缺点:麻烦) * 最次方案:不管了,就3.3V供电直接烧录(我试过,也能烧录,如有损坏与我无关) #### 下载设置 * STC-ISP官网下载地址:https://www.stcai.com/gjrj * 初次下载需要给单片机手动上电,之后的开发调试过程中如需重新下载都不需要手动上电,因为代码里做了不断电下载的功能。 * 初次下载勾选【本次下载需要修改硬件选项】 * 为了尽可能节约电力降低功耗,这里将IRC主频设置为了1.3824MHz,其实主频可以设置得更低,但对降低功耗的收益不大。其他参数保持默认。 * 之后的调试开发过程中,除非修改了系统时钟,否则都不需要勾选【本次下载需要修改硬件选项】 * 如果出现串口乱码、LED闪烁频率不对等情况,大概率是主频错了,记得检查一下代码里设置的MCU主频,烧录时也要选择正确的主频 ## 组装说明 详细组装步骤请参考视频后半部分 # 缺陷 * 电路图中设计的用ADC做低压提示,充满提示等,实测发现ADC输出值波动较大,难以准确测量超级电容的电压,在当前极其有限的PCB布局下内难以改善,此功能不再开发 * 为什么不用BW6101的报警引脚做满电检测,理论完全可行,用可调电源测试也没问题,但实际不可行。报警引脚要到2.75V才输出,但保护电路在2.65V就开始放电了,手拧发电多出来的电全被被保护电路消耗了,几乎无法达到2.75V。我测试过,手拧根本达不到这个电压,只有外接电钻才能达到,加大BW6101的放电电阻阻值也行,但是如果加得太大多出来的电无法被快速消耗那也就失去了保护的意义 * 外观太方正,边边角角比较膈手 # Q&A ## 成本大约多少 如果量很少,比如10个以内,那么单个成本大约在70元;量比较大,比如100个,单个成本可以控制在50元以内。 所以如果是个人制作的话,只做一两个能亏死,建议最少5个起步或者10个起步,自己留2个,剩下3个卖给其他有需要的朋友。 ## 为什么不用 STM32G0 或 STM32C0 系列的单片机? 当然可以用,如果是随便做一个玩玩确实可以用STM32,STM32功能强大,开发便捷,是非常好的选择。但如果从量产角度出发,显然需要在满足功能的前提下选择尽可能便宜的单片机。以编写本文时的立创报价为准,stm32c011j4系列或stm32c011f4系列的单颗单价在8到10元左右,100颗单价在4到6元左右,而本项目中使用的STC8G1K08A五颗单价为1.6元,150颗单价不到1.2元,STC官方的手册中的价格甚至低至0.69元。 ## 能不能做个大功率的?能给手机充电的那种? 一部手机的电池容量按20wh计算,算上生物能到机械能、机械能到电能、电能到化学能等各种能量转换的损失,估计需要发出40wh的电能,即14400焦耳,即34416卡路里,约34千卡。现在带上你的智能手环去运动,跑步、爬楼梯、骑车什么运动都行,等你消耗34千卡体力以后再来回答这个问题。现在你还愿意消耗这么多体力给你的手机充电吗?真的吗?真的愿意吗?你真的真的愿意吗?(来自作者吐槽:拉倒吧,减肥都不愿意运动,更不要说通过运动给手机发电充电了) ## 能不能量产?我想买 不能,白天要上班,晚上要加班,周末要家务,打工人真的没时间。目前只有立创集市和B站工房有少量成品出售,售完为止,其他销售渠道均非本人。欢迎广大爱好者进行复刻或改进。本作品允许在符合开源协议的情况下商用。严正谴责违反开源协议的商用行为,或其他未经授权的商业行为。 ## 有交流群吗? 没有,制作复刻过程中有任何问题都欢迎留言或私信。提问请注意网络社交礼仪,不懂礼仪的请前往 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way 学习。不要问“在吗?”这种问题,更不要问文档中能找到答案的问题,诸如此类问题即使我看见也不会回答。