为黑猫警长制作电扫相控阵火控雷达
有一日,老夫在家教儿子玩microbit编程,让娃用舵机和超声波探头+巨硬makecode图形编程做了个简单的机械扫描雷达:
儿子表示这东西要是能锁定一个目标跟踪就厉害了。老夫一想,这样不就成了火控雷达了么。于是忽悠道:不仅能做,老爹我还能给你做个最先进的电扫相控阵火控雷达,就是055驱逐舰上用的那种
。傻小子听了两眼放光,表示若此事能成,他定能成为全班最靓仔
。
牛吹出去了就得实现。在拖了一个多月,磨磨蹭蹭配齐各种华强北电子元件后。经过了一个下午的捣鼓,终于完成了战斗力爆表的黑猫警长全自动无人炮塔:

以下视频是工作时的样子,技术真是太过先进,遥遥领先
如果刨去那些乐高积木和上影厂原版黑猫警长手办,全部的电子元件成本大概在23块左右。
主控板我选择的是上海合宙的RP2040开发板(树莓派Pico平替),价格9块9包邮可叠加签到红包:

这块小板子使用树莓派自研的RP2040单片机,其中包含双核32位ARM Cortex-M0 133MHz处理器,264k SRAM,4M闪存。性能强大到溢出,可以把16MHz的8位单核AVR Arduino Nano按在地上肆意摩擦:

大脑有了,接下来就是眼睛。还需要2个HC-SR04超声波探头,差不多3块钱一个。买单芯片的新款更便宜还更好用。因为老款只能5V供电,新款还同时兼容3.3V容易供电:

肌肉部分为一颗4块钱的SG90舵机,驱动自动武器站的炮塔。舵机一定要买180度版本的,这种才能编程控制其旋转的角度:

最后还要几块面包板和若干杜邦线来连接电路,几块钱搞定:

电路原理图如下。实际要控制的只有两个超声波探头的发射和接收信号,以及舵机的1个PWM控制信号共5个GPIO引脚:

这玩意的工作机制与基于相位控制的相控阵雷达没啥关系——用的只是简单的三角定位原理。由于SR04超声波探头有30度左右的测量角度,所以如果将两个探头稍微拉开一点距离并略形成一个夹角让两个波束重合,就能在一定区间内进行平面三角定位:

也就是像这样布置探头和舵机:

这样我们就把跟踪定位算法转化为一道简单的中学几何题:
已知LR(探头间距)、LT(左探头测距值)、RT(右探头测距值)和RS(舵机与右探头间距),求∠S(即舵机的角度):

首先对ΔLTR应用余弦定理可以求得∠L;然后再对ΔLTS应用余弦定理可求得黑猫警长与目标之间的距离ST:

得到ST后,再对ΔLTS应用正弦定理最终求得∠S以设定炮塔舵机的角度:

单片机程序只要循环进行双路超声波测距,再代入上面这几个式子计算求得舵机角度即可,非常简单。整个过程中唯一的坑是两个超声波探头一定要间隔50毫秒以上测距,不能跟太紧。否则前一个探头发出的超声波可能在房间里被各种反射后正好被第二个探头收到,产生飘忽不定的诡异现象。我之前一直以为是算法错了一度对自己的高中数学水平产生了怀疑,折腾了好久才最终定位到这个坑爹的回波干扰问题
有兴趣的可以玩玩试试。用手头的任何单片机开发板都可以实现,这个小玩意用不着多少算力。
源代码:https://github.com/megatops/arduino_toys/tree/main/radar
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

realx
校验提示文案
值友4255578141
校验提示文案
值友8111271499
校验提示文案
老周师傅
校验提示文案
ctrl1234
校验提示文案
一九一五
校验提示文案
tempp
校验提示文案
值友7619255053
校验提示文案
欧阳_凤
校验提示文案
值友4255578141
校验提示文案
值友8111271499
校验提示文案
值友4255578141
校验提示文案
值友4255578141
校验提示文案
欧阳_凤
校验提示文案
值友7619255053
校验提示文案
realx
校验提示文案
tempp
校验提示文案
一九一五
校验提示文案
老周师傅
校验提示文案
ctrl1234
校验提示文案