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) 程序设计
当时的程序也很简单,就是每次连续脉冲结束后判定这一段脉冲总的时长和脉冲节拍数,算出频率从而得出代表的数字。使用状态机跳转,当最后一位的密码也是正确的时候,驱动电机转动。

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

  1. 200行代码如何实现人脸识别开锁应用?

    多种条件限制之下,如何完成真人实景游戏场景下的人脸识别开锁功能?云加社区邀请到腾讯科技产品经理-高树磊,分享他是如何用200行代码,从系统架构.硬件选型.到系统搭建,一步步地实现此精致小巧的人脸识别开 ...

  2. 基于树莓派实现人脸识别开锁

    人脸识别的环境搭建可以看一下https://blog.csdn.net/weixin_48856218/article/details/124407139?spm=1001.2014.3001.550 ...

  3. V831——人脸识别开锁

    V831 文章目录 V831 前言 一.读取模型文件 二.识别人脸 1.找人脸 2.添加人脸 3.识别人脸 三.代码实现 总结 人脸开锁 前言 前面做了关于人脸识别的项目,后续会发出来,下午顺便做了一 ...

  4. 登陆 manager app显示不是私密链接_小米上线了一款靠指静脉识别开锁的私密箱,打造你的私人存储空间...

    印象中的保险箱体积大.价格昂贵.开锁繁琐,一直都认为那是企业老板.成功人士的标配,对于普通家庭来说存在的价值.或实用性方面并不是很高.往常遇到长时间外出旅行,也会担心家里重要的证件.首饰等贵重物品的安 ...

  5. 生活小程序摩拜单车为啥投开锁功能?生活小程序是趋势?

    这段时间,我和家里人一直都在使用摩拜单车这个目前在生活小程序中最火的小程序,几乎现在武汉大街小巷都有摩拜单车的身影!我妈也是下班天天骑单车,我也开心不少.而且我妈还告诉我让我去下载个APP叫亿里财,这 ...

  6. iphone开蓝牙wifi上网慢_为啥我开锁总是比别人慢?

    说起手机的蓝牙功能,大家都不陌生,在还没有wifi,网速超级慢,流量也贵得害怕的年代. 蓝牙传送是两台手机之间传输文件最快也最方便的方式,堪称当年手机界的"黑科技"功能.多年过去后 ...

  7. 实训9——蓝牙修改开锁密码

    实训九 : 蓝牙修改开锁密码 一.实验目的 通过ESP32,按键模块和SG90舵机,实现蓝牙发送相应的命令修改按键密码 二.实验内容 1.连接ESP32和按键模块的引脚,以及ESP32和SG90舵机的 ...

  8. 魔兽世界盗贼开锁技能哪练_百度知道

    你是BL的还是LM的?? 一般练LM的多,给你个LM的 1.湖畔镇 受开锁任务的时候有一堆练习开锁的箱子. 2.湖畔镇 湖畔镇的湖中有不少箱子, 可以继续练习. 基本上分布在桥东湖的南边一带. 3.湿 ...

  9. 智能锁方案PCBA原理图PCB单片机开发板源码wifi远程开锁。 提供全套技术资料,包括原理图,PCB图,程序源码,bom清单,说明书等

    智能锁方案PCBA原理图PCB单片机开发板源码wifi远程开锁. 提供全套技术资料,包括原理图,PCB图,程序源码,bom清单,说明书等. 该指纹密码锁具有如下功能: 一.指纹开门 二.触摸密码开门 ...

  10. 基于Wio Terminal的简易智能家居中控系统(初代版本)

    经过不断地踩坑(学习),初代的简易智能家居中控系统已经做好了,在申请项目时填写的功能都做出来了,但是有些功能不是用Wio Terminal实现的(一方面是因为代码量太大,会给Wio Terminal的 ...

最新文章

  1. SAP EWM - 其他主数据 - 供应链单元
  2. java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表
  3. 散度与梯度在图像中的应用
  4. 利用filter替换字符串中的空格
  5. 2018-2019-2 网络对抗技术 20165314 Exp7 网络欺诈防范
  6. paip.python错误解决13
  7. 用冰封服务器安装系统,如何使用冰封一键在线重装系统
  8. 自定义OrderedMap
  9. 联想笔记本电脑E570永久禁用触摸板
  10. 机器朗读发音电脑说话
  11. Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列
  12. VUE动态展示表格字段
  13. 存储基础知识——SAN
  14. kubernetes 日志收集
  15. 基于leftlet的旅游地图相册
  16. 小游戏项目及分工情况
  17. 五笔字典序列编码(腾讯面试)
  18. 电脑通过Putty远程连接树莓派
  19. 自动驾驶汽车涉及哪些技术?
  20. 2022年计算机二级考试MySQL数据库程序设计冲刺题及答案

热门文章

  1. Themeforest上销量第一的WordPress高级企业主题
  2. It seems like the kubelet isn‘t running or healthy
  3. pollard_rho算法
  4. [生存志] 第134节 兵锋十万踏匈奴
  5. Eclipse设置编辑器为绿豆沙颜色
  6. TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)
  7. Python基本数据类型之数字
  8. 【EagleEye】2020-ECCV-EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning-论文详解
  9. JavaScript中类似java常量constants使用方法
  10. 中国大学慕课《数据挖掘与python实践》期末测验版本3