0. 前言
该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹,电动车进入P档等待时计时,计时超过5min则自动锁车,计时过程中按刹车可中断P档状态,同时中断锁车计时。改项目我称之为“芝麻”,取自芝麻开门(明明是车,哪里来的“门”,因为插钥匙的地方被修车师傅称之为“电门锁”)。
专栏目录:快速导航
视频地址:b站链接
软件、硬件、机械原件存放位置:https://gitee.com/sunkai64/zhima
1. 功能规划
芝麻项目最基本的功能诉求就是能够通过指纹模块来打开电动车,在使用过程中,要能够添加指纹和删除指纹,这样能够确保同一台电动车,可以给多个人使用。第2个功能就是把电动车的电瓶当做一个大的充电宝。第3个功能就是电动车能够自动关机。灵感就来源于地铁口一台忘记拔掉车钥匙的车主,还有外卖小哥。外卖小哥为了赶时间,在送上楼送外卖时一般都不会锁车,也不会拔掉钥匙,这个行为是基于对大家的信任做出的,大家也没有辜负这份信任。但是如果电动车能够在进入P档后,等待一段时间自动关机,那不更好了。
2. 硬件设计
除了绘制基于芯片的最小系统外,我们还需要绘制如下图中的几个关键原理图。电源电路,我的小电车是48V的电瓶,但是实际测量时电压会达到50+V,所以这部分电路器件选择就需要考虑50+V的工作电压,以防出现元器件损坏的场景。指纹模块电路,指纹模块需要比较稳定的电压,否则会影响其工作的准确性。继电器模块,通过调研,我选用的是5V控制的继电器,无法直接通过IO口控制,我设计了基于光耦隔离电路的继电器控制电路。按键模块,简单的IO口操作,只需要注意输入电流即可。P档输入识别,电路上同按键模块,无需添加特殊的电路。
3. 软件设计
软件设计的开展串在了硬件设计之后。如果需要尽早开展软件设计,那么至少需要先将硬件设计相关的接口定义好,才能基于已定义的接口编写程序。从下图的顺序也可以看到,软件设计时,我是先从最简的IO口控制开始调试,然后是继电器、指纹锁,最后才是产品的功能逻辑代码编写。
关于产品功能设计,我大致列了一下流程图,可以参考下图。不过值得一提的时,在开发产品功能前,我们需要对每个模块进行单独的测试,已保障在做功能设计时因为某个小模块问题增加为题定位时间。这部分测试就是开发者测试,DT。测试部分,除了DT之外,在功能初步设计完成之后还需要做系统测试,ST,这样就能保证在上车前尽可能多的排查出问题,减少后续问题定位成本。
4. 机械设计
本专栏【设计-2】项目可行性分析中已经给出了机械设计的整体规划,电动车控制部分和用户交互部分分离,这样电动车控制部分,也就是电路板的主体,可以放置到电车头当中,不需要设计独立的外壳。此时只需要考虑将用户交互的按键、拨码开关和指纹模块放置到一个独立的机械结构内就可以。
考虑到易用性,最终打算设计一个简洁的圆形结构,将按键和指纹模块固定在靠近电车把手的地方。除了将按键、指纹模块固定牢靠外,在设计时也需要考虑如果将电路板和电门锁、电路板和交互界面的接口做成可拔插的,这样就能在某部件出问题时,方便的拔插后修复。
5. 时间安排
因为都是一个人做,所以所有的事务都是按照串行执行的。硬件设计 -> 电路板制作 -> 元器件采购 -> 硬件测试 -> 软件设计 -> 软件测试 -> 机械设计 -> 机械结构测试 -> 视频制作 -> 视频宣传 -> 项目小结。同时在项目推进的过程中记录关键时间节点,最后好方便统计每个关键阶段花费了多少时间,这样做的好处就是,以后做项目的时候能够更好的估算时间成本。
---------------------【芝麻】项目相关文章都会收集在此专栏----------------------
感谢你看到这里,如果不介意的话,帮忙点个赞、关注支持一下~