Arduino

制作Arduino 超声波雷达

关于这个用Arduino做超声波雷达的项目,我在Create Arduino上见过很多次,这里就自己做出来试试。
主要原理是利用超声波测距,然后使用Processing在屏幕上绘制出雷达图,总体比较简单。

成品

准备

硬件

- 舵机
- 超声波模块 HC-SR04
- Arduino
- 杜邦线若干
- 其它材料

软件

接线和安装

接线主要分两大部分:超声波模块和舵机。

超声波模块的针脚旁的标注很清晰,小心不要把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('\n'); orcFont = loadFont("OCRAExtended-30.vlw");
}
void draw()
…………

修改完后点击左上方的开始键,启动程序,如果一切没有错误,可以看到:

如果白屏的话,需要切到编辑器,点击左上角的终止键,此时一般会在下方的红条上给出错误信息,按照错误信息修改(一般是串口错误导致)。

最终效果

(0)

本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!

关键词:

热评文章

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.