|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zhangqiangzi 于 2025-5-28 12:46 编辑
曾想过在门外控制门内的电机拉动门把手来开门, 但一直没找到合适扭矩的电机. 理想状态是一个电机在通电后拉动把手或舌簧, 断电后靠弹力自动复位.
但是试过几种都不太理想, 拉力不够或不能自动复位. 直到发现带有减速的步进电机.
可采用步进电机型号为24BYJ48(体积小一些, 扭力也很大)或28BYJ48, 都是三块多包邮的, 摄像头云台或空调摆页上常用, 扭矩足够, 能精确控制旋转的角度圈数, 就是速度略慢.
本想直接去拉动舌簧, 但发现锁体不太好拆, 也没有太多改造空间, 所以先试验直接让步进电机卷绕绳子去拉动把手.
试过多种方法, 比较理想的是直接在电机的扁状输出头上打个小孔, 套上鱼线(我们钓鱼佬的北海道鱼线), 电机转动, 形成很大的拉力去拉动门把手.
也可以用别的方式, 用3D打印个合适的轴最好了, 线不会脱出来, 还能增大轴直径, 提高开锁速度(因为扭矩余量足够).
为了不让线在旋绕的时候脱落, 这里打孔的位置靠近了根部. 同时用特氟龙管(普通吸管也行)和镍片制作了一个固定引导拉线的装置.
其实用这种特氟龙管和线可以制作一个类似自行车闸线的拉力传动装置, 可以灵活传道拉力, 比如放到锁体后面, 这样开门更快.
步进电机固定在一个电源盒子里, 盒子另一半借助门上原有的螺丝(门上两个螺丝非常长)和双面纳米胶固定在门上.
感觉门把手的力道还是挺大的, 拆下后发现里面有个"旋转弹簧", 卡住的是图片中红色的两个位置, 用点焊机和镍片做了一个卡住弹簧的套, 调整为蓝色的位置, 这样把手的扭力就小了很多, 防止步进电机的拉力不够. 这个环节是根据情况来定的, 如果不改动能拉动最好了.
机械部分就是这样了, 下面是电路部分. 最近有空学了下stm8, 就用它来做吧, 主要看中它可以宽电压供电, 直接单节锂电池供电, 不用升降压, 可低功耗运行, 直接寄存器编程简单.
这里的24BYJ48/28BYJ48是四相五线的. 中间的红线是两个线圈的中心抽头接在一起的(注意图片中红色部分被切断了, 切开后可作为四线电机用, 本帖不需要切), 记住这里的线序, 中间是共用的红色, 黄蓝是一个线圈的两端, 橙粉是另一个线圈的两端. 为了适应本帖提供电路板, 需要把步进电机插头的顺序调整为和这里一样顺序(中间红,两边黄和蓝, 红色两边橙和粉), 为了让步进电机转动, 需要红色接正极, 按照蓝粉黄橙的顺序依次给以接地脉冲就会转动, 按照蓝橙黄粉则反转, 可自行搜索步进电机原理,不再细述.
一开始用TO-252大封装的NMOS驱动这个电路, 后来发现SOT-23的AO3400就足够了, 所以电路板有些大, 上面有两种封装.
由于是感性负载, 当脉冲结束后, 本来应当由续流二极管提供续流, 但由于四相五线电机特殊结构, 电流可以从线圈另一端流过, 经过试验, 去掉续流二极管电机扭矩反而更大了. 同时程序里也调整了占空比, 所以续流二极管不再需要, 不用焊接了, 就算万一坏了, sot23的nmos和stm8s也都是廉价货, 测试期间长时间运行没有续流二极管也没问题.
为了进一步增加扭矩和适应低电压的电池, 用mt3608提升了电压, 那个10k和270k的是分压电阻, 实际上用的是91k和1m的电阻, 由0.6V分压反馈计算是7.2V, 如果用75K和1M则电压是8.6V, 对于额定5V的步进电机短时间超压运行是可以的. 同时大的分压电阻可以降低待机功耗.(即便mt3608的en关了, 还是有电流通过电感和二极管到后面了)
mt3608下面的二极管是sod-123封装的肖特基1N5819
电路板还有留有不通过升压电路, 而直接额外提供较高电压的接头, 标有12V地方就是. 一般两节锂电8.4V就足够了.
电路板上用的是0630封装的电感, 实际用0420的就足够了, 电感值2.2uH 3.3uH 4.7uH 大概率都可以.
mt3608高低压两边的电容各用0805 10uF + 0603 1uF即可.
四个NMOS的GS上并联一个1M的0603电阻.
STM8S003F3P6的下面需要两个1u的电容, vcap上的是必须的, 电源上的是可选的.
PC7 PC6 PC5 PC4 控制四个NMOS的G, PC7 PC4 对应蓝黄, PC6 PC5 对应 粉橙
PC3 控制mt3608升压使能.
A1 A2 A3那里只焊接A2和A3的电阻led作为指示即可. A1不需要了.
门外的密码输入部分采用单键模式, 用长按和短点来区分不同输入, 类似莫尔斯密码, 采用ttp223制作的触摸输入, 当然也可以用机械开关替代, 程序也做了消抖处理.
PA3作为输入, 记录的是上升沿和下降沿之间的间隔, 判断长按和短点. 程序做了灵活处理区分点和长按, 只要长按的时间比点的时间长即可, 不用介意长短.
根据提供的gerber文件, A3接ttp223小板的OUT, GND接GND 3V3接3V3.
若用机械开关则A3和GND并联一个1M电阻, A3和3V3接串联了几K电阻的开关.
ttp223小板上需要一个1u电容接电源和地, 一个20p到50p的电容作为触摸灵敏度调节.
一个几十K电阻和一个0603或0805的led翻过来摁进角上那个方洞里, 小板翻过来用那种纳米胶带贴在门上, 这样触摸指示灯朝外.
AHLB和TOG的电阻不用管, 空着就好. 小板两边都有1.27的OUT GND 3V3接口, 根据左开和右开的门灵活焊接排线.
触摸板的丝印本该是morse code, 写成了mose, 就当成是moses 摩西吧, 他是开红海离开埃及, 这里是开门, 都是走向更好的未来.
驱动板边上有B+ A+ 12V A- B-的地方焊接2.54的排针, 步进电机的XH2.54接头调整为和电机出线口的顺序一致即可, 插在驱动板板上, 只要红色在中间, 不分反正.
STM8S需要通过swim写入本帖提供的程序并通过串口进行配置密码等事项, 也可用串口写入程序(自行搜索吧).
这里仅提供linux用swim写入的方法, 硬件需要stlink, 软件是stm8flash
命令为 stm8flash -c stlinkv2 -p stm8s103f3 -w steplock.ihx
windows下的方法自行搜索吧.
由于电路板单片机部分使用了1.27的排针, 需要焊接排线或1.27的排针, 眼神差的可能有些不变, 抱歉.
建议D2和GND, RST和GND都个接一个开关, 方面后面的步骤.
写入固件后, 接上串口到电脑(波特率115200), 短接D2和GND上电或重新reset, 此时A2亮起, 表示进入配置模式. 此时可释放D2.
同时串口终端显示 cfgmode[1], 这是个简单的配置shell
直接回车或?回车后显示配置
id:0 s:0 m:000000000 v:0
0 表示未设置状态, 程序会使用预订值
s: 表示步进电机每次解锁是的步数, 预设1536, 28BYJ48每圈512步, 24BYJ48可能略少一些.
设置转两圈则输入
s 1024
m: 表示开门的莫斯密码 预设是 000111000 对应 ...---... 莫斯意思是 SOS
修改莫斯密码, 只能是9位, 三个一组很好记忆. 0是短点 1是长摁.
m 001001001
v: 表示低电压提示阈值, 预设 3650, 单位毫伏, 如果用铁锂电池或三节1.5V电池, 则要修改成其它值, 每当解锁并释放门把手后会检测电池电压, 若低于阈值则闪烁A2一段时间.
修改阈值电压输入, 毫伏整数
v 3700
为了方便调整拉绳的松紧和把手位置状态, 在配置模式下, 按触摸(拉高PA3)时, 步进电机会正转拉紧绳子, 若短接D2和GND再按触摸则会反转.
该固件需要解锁使用, 输入id回车后显示一串字符, 通过回复本帖 或私信 或邮件jarellczc#gmail.com 给作者, 作者回复一个类似 id 1234abcd 的东西, 终端下直接输入就解锁了.
如果没有解锁在使用一段时间后会有不能自动反转释放门把手的问题.
本帖只做学习折腾玩耍目的, 本帖不对导致的损失负责, 比如丢了金条和一捆捆的绿钞.
毕竟9位的长短输入只有512种可能, 如果接上专用的设备很容易破解的, 所以程序做了尝试次数限制, 当到了最大次数后即便输入正确密码也无法解锁了.
在驱动步进电机时, 程序会启动看门口, 防止程序跑飞导致电机线圈长时间通电发热起火, 但依然不能完全排除.
还要保留普通钥匙, 防止这套东西失效不能开门.
整套系统待机约20uA, mcu 9uA, 触摸6uA, 升压部分的分压电阻4uA, 每次开门用电也不少, 虽有低压阈值提示, 还是根据电池估计待机时间吧.
有任何问题或要改功能重新画板画板都可联系作者.
固件和pcb Gerber文件下载地址 magnet:?xt=urn:btih:b22be39dc14f0e977ac5b9dfabdc56d980f854e8
|
打赏
-
查看全部打赏
|