数码之家

 找回密码
 立即注册
搜索
查看: 3968|回复: 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 06:03:58 | 显示全部楼层
牛,有创意,可以申精了
回复 支持 反对

使用道具 举报

发表于 2023-7-25 07:07:32 来自手机浏览器 | 显示全部楼层
从作案时间上来看,很可能不是一个人干的,当地真是民风淳朴
回复 支持 1 反对 0

使用道具 举报

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

                         ,.---.   
               ,,,,     /    _ `.
                \\\\   /      \  )
                 |||| /\/``-.__\/
                 ::::/\/_
{{`-.__.-'(`(^^(^^^(^ 9 `.========='
{{{{{{ { ( ( (  (   (-----:=
{{.-'~~'-.(,(,,(,,,(__6_.'=========.
                 ::::\/\
                 |||| \/\  ,-'/\
                ////   \ `` _/  )
               ''''     \  `   /
                         `---''怎么活
回复 支持 反对

使用道具 举报

发表于 2023-7-25 07:30:49 来自手机浏览器 | 显示全部楼层
盲猜一波,这里附近应该有个挺大的工厂,三班倒的,应该是附近村庄在工厂里上班的人上下班的时候偷了楼主的收成,不然也不会半夜三更去偷虾
回复 支持 反对

使用道具 举报

发表于 2023-7-25 07:37:06 来自手机浏览器 | 显示全部楼层
免除了肢体接触的烦恼
回复 支持 反对

使用道具 举报

发表于 2023-7-25 07:43:19 | 显示全部楼层
一天三波,真是民风淳朴
回复 支持 2 反对 0

使用道具 举报

发表于 2023-7-25 07:54:03 | 显示全部楼层
差点以为你要整个远程报警
回复 支持 反对

使用道具 举报

发表于 2023-7-25 08:01:37 | 显示全部楼层
不过龙虾是越来越迷你了,这样下去虾没法活了
回复 支持 反对

使用道具 举报

发表于 2023-7-25 08:04:48 | 显示全部楼层
高手高手高高手
回复 支持 反对

使用道具 举报

发表于 2023-7-25 08:17:48 | 显示全部楼层
这个真的是高,实在高手
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-25 08:17:48 来自手机浏览器 | 显示全部楼层
淳朴村民欲哭无泪
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-25 08:21:33 | 显示全部楼层
要是我就直接把网下下去,不留任何线在外面,这样从外面就看不到你的网下在那里(前提是浑水),下网的地方自己做个不起眼的标记方便自己辨别
回复 支持 反对

使用道具 举报

发表于 2023-7-25 08:31:05 | 显示全部楼层
半夜3点,来段防盗音乐,渗人
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-25 08:49:03 | 显示全部楼层
科技改变生活~
回复 支持 反对

使用道具 举报

发表于 2023-7-25 08:51:15 | 显示全部楼层
老兄吃点小龙虾,长枪短跑都用上了。干得漂亮~!
回复 支持 反对

使用道具 举报

发表于 2023-7-25 09:09:35 | 显示全部楼层
助人为乐的坛友喜出望外!
回复 支持 反对

使用道具 举报

发表于 2023-7-25 09:23:16 来自手机浏览器 | 显示全部楼层
抓虾高科技啊!
助人为乐者每次来都是空网,简直怀疑人生。
有没有正好遇到助人为乐者呢?
回复 支持 反对

使用道具 举报

发表于 2023-7-25 09:25:53 | 显示全部楼层
欲擒故纵咯
回复 支持 反对

使用道具 举报

发表于 2023-7-25 09:29:07 | 显示全部楼层
有技术的大神干啥都超前啊,让民风淳朴的村民怎么想
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-6 06:01 , Processed in 0.218401 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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