电子说
关于这个用Arduino做超声波雷达的项目,我在Create Arduino上见过很多次,这里就自己做出来试试。
主要原理是利用超声波测距,然后使用Processing在屏幕上绘制出雷达图,总体比较简单。
成品
准备
硬件
- 舵机
- 超声波模块 HC-SR04
- Arduino
- 杜邦线若干
- 其它材料
软件
Arduino IDE
Processing(下载地址:Download Processing)
接线和安装
接线主要分两大部分:超声波模块和舵机。
超声波模块的针脚旁的标注很清晰,小心不要把GND和Vcc接反,否则可能会烧坏模块。
舵机有的没有标注接线方式,一般来说是:橙色-信号,红色-正极,棕色-接地。
接线很简单,有一点是Arduino上只有一个5v供电的插脚,可以借助面包板扩展。舵机有可能会因为电压不足转动比较吃力,可以考虑给Arduino接9v电源货给舵机单独供电。
最终要实现扫描功能,所以需要把超声波模块固定在舵机上,具体的实现就见仁见智了,这是我自己用木条+胶枪做的效果:
安装软件
先安装好前面提到的两款软件。
所有代码已经打包到网盘:百度网盘(代码来自:https://www.instructables.com/id/Arduino-RadarUltrasonic-Detector/)
解压后分别找到Arduino_Radar.ino和Arduino_Radar_Processing.pde。
在Arduino_Radar.ino里前一部分定义针脚等信息,里面的针脚是和前面的接线图对应的,如果你连到其它针脚上,需要在这里改一下。
#include《Servo.h》 const int soundTriggerPin = 2; //Trig const int soundEchoPin = 3; //Echo const int motorSignalPin = 12; //舵机信号线 const int startingAngle = 15; //初始角度 const int minimumAngle = 15; //最小角度 const int maximumAngle = 165; //最大角度 const int rotationSpeed = 1; //旋转速度 …………
编译刷写到Arduino中,然后打开端口监视器,如果看到以下输出且舵机转动,说明代码工作正常:
接下来打开Arduino_Radar_Processing.pde,在Arduino_Radar_Processing.pde里需要修改一下串口的端口号,修改为Arduino正在使用的串口。
import processing.serial.*; import java.awt.event.KeyEvent; import java.io.IOException; Serial myPort; PFont orcFont; int iAngle; int iDistance; void setup() { size(1350, 760); smooth(); myPort = new Serial(this, “COM5”, 9600); //修改此处 myPort.clear(); myPort.bufferUntil(‘ ’); orcFont = loadFont(“OCRAExtended-30.vlw”); } void draw() …………
修改完后点击左上方的开始键,启动程序,如果一切没有错误,可以看到:
如果白屏的话,需要切到编辑器,点击左上角的终止键,此时一般会在下方的红条上给出错误信息,按照错误信息修改(一般是串口错误导致)。
全部0条评论
快来发表一下你的评论吧 !