数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 4367|回复: 153

[AVR] 使用 AVR 记录虾网动作,借助赛博农业给早起的虾网小偷上一课(原创)

    [复制链接]
发表于 2023-7-25 03:19:35 | 显示全部楼层 |阅读模式
【背景】

去年夏天被疫情困在了村子里,闲来无事准备体验下传统的快乐:钓龙虾。
竹竿砍好了,肥肉绑好了,村后边水田水渠也找好了,啥都就绪唯独龙虾不上钩。一群人一下午钓个寂寞:



观察旁边的小水渠明显有放网的痕迹,索性跟随大家入手虾网,水渠周边造起来。



白天随便收个一两趟,就比折腾整个下午的收成还要好:



然而没过几天,严峻的问题开始浮出水面:收成骤减。
经观察应该是新虾网被淳朴的村民发现了,有助人为乐者帮我们提了虾笼,顺走了收成。


【方案】

目标是以最小代价恢复收成,因而任何牵扯上门沟通 / 暴力解决的手段都显得费事又没效率。
本只想安安静静吃个虾,最后搞到邻里不和,这样得不偿失。



航拍图可以看到,水渠周边小路不少,大多可以骑电瓶车通过。故助人为乐的很可能不止一人。

悄悄掌握助人为乐(们)的周期节律,适当保持领先相位,成为方案设计的重点。
一旦掌握,就可提前半小时下地收网,最大化收成的同时,给助人为乐们留一个惊喜。


方案1,装监控



这基本是最直接想到的方法,随时记录助人为乐的嘴脸,想来虾网也就无虞了。

抛开法律问题,最大障碍在于:
电源怎么搞? 荒郊野外的总不能扯高压线吧,用电池天天爬线杆也不是事。
再就是网络怎么搞? 荒郊野外的总不能拉根网线吧,用 WIFI 也不现实。

于是作罢。


方案2,假监控



监控的供电+网络不好搞,装个假的吓唬吓唬也行。再在虾网旁插个牌子“有监控,请自重”,简直太有画面感。

然而村民可能不识字,作罢。


方案3,放红外热释电



假若能在适当的位置放置红外热释电(PIR)传感器,就可以在虾网范围内检测人体活动。
采用射频/离线方式汇报+记录数据,可起到报警的效果。

然而同样面临供电问题,更要命的是热释电传感器范围较大,容易误报路过的行人/小动物。


方案4,放振动传感



既然逃不开传感器,野外供电的问题暂且搁置,最差堆上 18650 也能凑合用。
因而重点落在如何准确检测“助人为乐”行为。

思前想后,基于振动传感的动作检测,恐怕是最为稳妥的办法:
将振动传感器固定在虾网系绳上,当有人拉出水中的长网,系绳晃动触发传感。

传感器以及配套电路应尽可能小,避免被人顺走或损坏。


【选型】

确定好使用振动传感,需要选型一套尽可能迷你的系统板,以便于现场施工安装。
找来找去选定了 Arduino Digispark 的 ATTINY85 系统板:



主控 ATTINY85 片上有 0.5KB-EEPROM,可用于离线记录振动数据。

附上主控原理图,后期需要进行大概,仅保留 ATTINY85 主控,并安装 MΩ 上拉电阻以实现低功耗。
图中红色标记为关键改动位置:



振动传感选择最经典的滚珠式即可,选择双向触发可提升检测灵敏度。




【开干】

全新入手的蓝色 ATTINY85 主板 ¥13一片,带有 Arduino 的 Bootloader:



拆下一众没用的零件(参考原理图),降低整机功耗:



将 D- 的上拉电阻换为 1M,并在 D- 和 GND 之间焊接振动开关。
这样一来振动传感器也可以实现低功耗工作。



装上垃圾店里淘来的电池,大概有 50mAh 的容量,硬件完成:




【软件】

软件则是另一个大头,大致功能需求:

1. 可以连续监测 24h 内振动时刻,精度要达到分钟级;
2. 全离线工作,所有数据均存储于 ATTINY85 片上 EEPROM;
3. 锂电池低电压、EEPROM 填满后自动停机;
4. 整机要求低功耗工作。

AVR 有着非常棒的低功耗,同时休眠时支持诸如 PCINT 这样的异步边沿检测,使得编码并不复杂。

唯独需要注意 ATTINY85 只有 0.5KB-EEPROM 存储可用,需要略微压缩下记录格式,确保能存储超过 24h。
主采集逻辑如下:



ATTINY85 可以监测休眠过程中的 PCINT 而不唤醒 CPU,这样一来利用固定的休眠循环,就可以实现时间基准。
每 3min 晃动计数的总数写入 1 Byte,这样 0.5KB 能记录约 1500min,时长超过 1 天。

主代码依旧采用 ICCAVR 编写,皮实小巧又好用(Arduino IDE 哭瞎在路上):



编写好的代码,使用 USBASP 进行固化。由于已经刷掉了 Arduino-Bootloader,因而采用飞线直接凌空固化。
测试完成后,读取 EEPROM 数据也采用相同方式:



实测整机工作电流大约 0.26ma @4.2v,对于 50mAh 的软包锂电轻松工作好几天,续航达标。


【投放+回收】

找一个瓶盖,把充满电+烧录好+已启动的主板,连同防水袋一同卷进去,伪装成一个简单的浮漂:



来到现场,把传感器系在虾网系绳根部,确保传感器既不落水,又很容易被拽到拖动:



让助人为乐的村民多收几天虾吧,下次就改规矩了。一天后直接剪线回收,外层透明胶已被雨水+露水+渠水打湿,但内部电路完好:



断电导出 EEPROM 数据,大家的行踪尽在掌握哟。


【分析】

正常情况下虾网基本不会晃动,即使有动作也是稍纵即逝,对应 3min 区间内基本没有计数,或计数为零。
当有人扯动虾网时,ATTINY85 就会疯狂计数,振动开关的抖动全然都会被记录进去,临近 3min 区间将出现计数峰值。

一次典型的记录数据如图所示(WinHex 直读),上电、打包、出门、回收的动作都看得清清楚楚。
除了这些已知动作外,其余非零值均可认为是有热心村民在助人为乐:



由于软件算法采用等间隔记录(3min/byte),因而字节地址直接就是标准的时间轴。
数据处理时和额外记录的通电、断电时刻进行等比例缩放,即可得精确的振动记录时间。上图数据处理好时间轴如下:



对于竖轴(晃动次数)采用对数坐标,可以更好地反应晃动的激烈程度。
由图可见,凌晨 3:48、早上 7:30、中午 12:48、傍晚 18:30 前后为助人高峰时期。

初战告捷,接下来将连续几天的采样进行融合绘图,效果如下:



至此基本可以确认,凌晨 3:30-4:30,早晨 7:30、中午 12:30-13:30、傍晚 18:30-20:00,就是收成被顺走的时间段。

平均比这些热心村民早出门半小时,就可以收获满满,并给他们留下空网的惊喜。


【效果】

掌握了最佳出手时间后,基本就没空网过。

凌晨 3:00 出手(没错,就是要给 3:30 那个来点惊喜),不多会就凑齐一盘:



接连吃了大半个月的麻辣小龙虾,达成传说的吃虾自由:




果然赛博农业非常拉风。最后附上主固件:

链接:https://pan.baidu.com/s/1LLdbNMoiVh6FG7zhBW-Mig?pwd=dkpb
提取码:dkpb

--------------------------------------------------------------------------------------

以上,本来想安安静静放个虾笼,淳朴的村民非要来助人为乐。
索性用赛博农业的精神折腾一次,彻底改变玩法,收获夏天里最棒的大作战。

最后祝大家夏天都有好心情!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 12家元 +312 收起 理由
zto中通快递 + 27
wxhjsr + 30 優秀文章
jpdd521 + 30 吃了半个月麻辣,去医院噶痔疮了没。.
newnet1234 + 30 原創內容
北落师门 + 30 军备竞赛
aping365 + 30 優秀文章
hiovo + 6 现实应用 牛,复刻下监控很多场景.
jf201006 + 30 謝謝分享
hongo + 9 原創內容
cushion + 30 原創內容

查看全部打赏

 楼主| 发表于 2023-7-25 12:14:05 | 显示全部楼层
543624636 发表于 2023-7-25 06:03
牛,有创意,可以申精了

感谢支持!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:15:19 | 显示全部楼层
wfzdm 发表于 2023-7-25 07:07
从作案时间上来看,很可能不是一个人干的,当地真是民风淳朴

的确是的,尤其 3:30 和 7:30 的像两拨人。不经意间实现了人类观察....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:16:40 | 显示全部楼层
古路平 发表于 2023-7-25 07:16
捕龙虾都用上高科技了,你让

                         ,.---.   

龙虾表示,逮得光算我输
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:17:57 | 显示全部楼层
wfzdm 发表于 2023-7-25 07:30
盲猜一波,这里附近应该有个挺大的工厂,三班倒的,应该是附近村庄在工厂里上班的人上下班的时候偷了楼主的 ...

还别说,真就是三班倒工作制的集中地。 我都没注意到可以导出这个结论
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:19:16 | 显示全部楼层
xuelang1979 发表于 2023-7-25 07:37
免除了肢体接触的烦恼

必须的,社恐表示只想安安静静收虾
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:20:34 | 显示全部楼层
mitcher 发表于 2023-7-25 07:54
差点以为你要整个远程报警

最开始想过这方案,但发现成本和收益不对等,就放弃了。

反倒是离线回溯的方案,便宜好用又大碗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:21:27 | 显示全部楼层
aacyxjz 发表于 2023-7-25 08:17
淳朴村民欲哭无泪

借坛友的话,令其感受到了“降维打击”
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:23:23 | 显示全部楼层
猪小呆 发表于 2023-7-25 08:21
要是我就直接把网下下去,不留任何线在外面,这样从外面就看不到你的网下在那里(前提是浑水),下网的地方 ...

本来就是要藏网的,但备不住淳朴村民拿钩子捞啊,整条渠的勾过去。

所以索性在明面上搞个“钓鱼网”,看似捕虾,实则钓人
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:26:10 | 显示全部楼层
zzqqzzz 发表于 2023-7-25 08:51
老兄吃点小龙虾,长枪短跑都用上了。干得漂亮~!

Digispark 的板子超便宜,额外的收成很快就补齐了成本。

关键是很解气...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 12:28:04 | 显示全部楼层
11651189 发表于 2023-7-25 09:23
抓虾高科技啊!
助人为乐者每次来都是空网,简直怀疑人生。
有没有正好遇到助人为乐者呢? ...

前期遇到过,这才怀疑被人顺走了;

之后遇到就很少了。只听得村里传言,说现在的小年轻都不睡觉的,半夜去捞虾...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:51:10 | 显示全部楼层
无声注视 发表于 2023-7-25 12:38
居然没有把你的虾网给顺走,民风还算是淳朴的了。

可能是我网比较迷你,大家觉着划不来吧。龙虾就那么一个多月,后来大旱啥都没了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:51:39 | 显示全部楼层
loveggy 发表于 2023-7-25 13:07
楼主运用了,电子科技学,人类行为学,社会工程学,统计概率学,多维于一体啊。 ...

感谢支持!所以才能降维打击
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:52:12 | 显示全部楼层
grkuqq 发表于 2023-7-25 14:32
每天都有一盘虾,虾子长得真多。

大自然的馈赠,真多到吃满足
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:55:47 | 显示全部楼层
ksj197706 发表于 2023-7-25 15:16
有创意,不过你这是被动式防御,对方改变策略你又要重新分析数据重新部署, ...

是的,毕竟属于公共区域,低调行事。

在自家菜园就不这么整了,7x24 小时摄像不间断。
有次熊孩子乱搞被我打上码发到村的大群里了,效果立竿见影。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:56:51 | 显示全部楼层
wangxiangtan2 发表于 2023-7-25 15:22
你找个棍子、铁棍订到水里面的地上,把网的绳子系上去,别漏出水面不就行了, 自己记好位置, ...

后来才得知,热心的村民用铁钩子的....  藏不藏差别不大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 15:57:32 | 显示全部楼层
yujian8620 发表于 2023-7-25 15:49
除了这些已知动作外,其余非零值均可认为是有热心村民在助人为乐

热心村民没料到,有一只 AVR 默默记录下了一切...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-26 00:30:41 | 显示全部楼层
hiovo 发表于 2023-7-25 21:46
这个震动检测 低耗能可以应用很多地方啊

是的,这种低功耗非常适合现场嵌入式检测。

如果配合 18650 这种容量的锂电,松松工作一个月。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-26 00:31:55 | 显示全部楼层
dmhs31 发表于 2023-7-25 22:21
方法巧妙,应该也要记录打包时的时间,作为时间轴的原点吧?

对,严格来讲是【通电时间】以及【断电时间】。

虽然理论上是 3min,但实际 AVR 时钟会有偏差。利用起止时间段等比例缩放一下,就可以很准了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-26 14:46:16 | 显示全部楼层

此所谓 赛博农业
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-25 04:44 , Processed in 0.171600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表