ofo的智能锁初代方案:声波频率识别开锁

ofo的智能锁初代方案:声波频率识别开锁

2015年8月份,我收到本科同学的微信,说是开发一个智能自行车锁项目。项目要求是模仿支付宝的声波支付功能,手机发出一段音频,能将电子锁打开。要求我在两个星期内做出硬件的样品,两个星期…我当时很懵,觉得基本上不可能。问有没有什么具体的项目要求,她说没有,我就更懵了。恩没有关系,既然没有具体需求那就自己发挥吧,毕竟有钱拿。要做这个项目的公司就是ofo,当时还只是在北大校园内做自行车共享,在五道口旁边的一间居民楼里面办公。
从那天开始,我就成了ofo的兼职电子硬件工程师,也是第一个电子工程师。当时没有想到共享自行车能成为风口,不然绝对就留下来了。后来一直关注着这家公司,看着曾经的老板和同事这么快变成了媒体上的人物,很是感慨。无论ofo会怎样,它还是深刻地改变了我们的城市和我们的生活。当时我想过共享单车终会有天出现在大街小巷,只是这一天来的太快,快到ofo的创始人和员工们都措手不及。对我来说是来的太快,还没反应过来就匆匆别过。
这是当时设想的方案,锁舌上有齿槽,接收到开锁指令后电机转动,将锁舌打开。用户骑行结束后,按一下按键,电机再次转动将锁舌归位。现在回想一下这个方案真的是很天真,第一是用户可以用强力把锁舌拉开。第二是自动关锁的时候很有可能打到自行车钢条。
在这里插入图片描述
我做的电子硬件方案是:利用声音的频率和时长的组合来代表不同的密码数字,当接收到正确的密码后,驱动电机进行转动。知乎上有声波支付的介绍,当时参考了这个的原理,至于传输效率,安全性都不是当前要考虑的问题。很可惜当时用洞洞板做的电路已经找不到了。(https://www.zhihu.com/question/20946901?rf=20935169)
首先讲一下我设计的电路的原理,首先通过运放将咪头接收到的微小信号进行放大,通过带通滤波器进行滤波。使用比较器电路对波形进行整形,输出方波信号,发送给单片机。单片机通过在固定时间内对上升沿中断计次数,来达到测频率的目的。
(1) 信号放大电路
这是我在multism中搭建的信号电路仿真图,信号发生器模拟咪头的信号输出。在这个电路中使用单电源供电,可以简单的将交流直流分开分析,+端有直流电压偏置,使得可以在单电源供电的情况下对交流信号进行放大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2) 带通滤波电路
最开始没有准备做这一部分,主要原因是需要正负电源供电。
在这里插入图片描述
(3) 电压比较电路
最初为了简单,我直接用LMV358运放来做了个比较器,但其实这种方法不可取
https://baijiahao.baidu.com/s?id=1611666324025518842&wfr=spider&for=pc
主要原因是运放专为闭环稳定范围进行优化,降低了速度.在下图进行了比较
在这里插入图片描述
在这里插入图片描述
密码设定:
本来准备将音频设定在20K左右,结果发现很多手机无法发出那么高的频率。因此将频率设定为4档,分别为用12KHz,13 KHz,14 KHz,15 KHz来代表低2位的00,01,10,11.每个频率的声音时长同样设为4档,分别为100ms,150ms,200ms,250ms来代表高2位的00,01,10,11.
密码的每一位是16进制数,比如说数字’b’即1011,用时长为200ms的15KHz的声音来表示。
在这里插入图片描述

(4) 电机驱动
因为是样品,所以只要驱动随便一个电机转动了,我买了个这货,淘宝上最便宜的电机。使用ULN2003驱动它。
在这里插入图片描述
在这里插入图片描述
(5) 程序设计
当时的程序也很简单,就是每次连续脉冲结束后判定这一段脉冲总的时长和脉冲节拍数,算出频率从而得出代表的数字。使用状态机跳转,当最后一位的密码也是正确的时候,驱动电机转动。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值