友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com
这是一个简单的自制雷达项目,过程中会用到Intel Edison开发板、HC-SR04超声波测距传感器和辉盛Tower Pro微型舵机。
接下来让我们一起动手来做吧。
第一步:准备材料
- Intel Edison开发板
- Arduino原型扩展板
- HC-SR04超声波测距传感器
- 辉盛Tower Pro微型舵机
- 主轴可以固定超声波传感器,同时方便跳线连接传感器。主轴尺寸根据实际情况选择。(选用)
第二步:固定传感器
准备一个长为15cm的4孔主轴。
将传感器焊接到主轴的一端,连接跳线,然后将连接器焊接到主轴的另一端。这样固定传感器操作简单但是非常结实。
第三步:接线
在此,我使用了Arduino的原型开发板,为的是所有的线能保持整洁有序。
将外部电源接入Intel Edison开发板,为超声波测距传感器和伺服电机供电。(因为伺服电机需要恒定的电流,而且电流相对较大,所以开发板USB端提供的电源无法满足伺服电机。)
传感器连接Intel Edison开发板方法如下:
Vcc——————-Edison Vcc
GND—————–GND
Echo—————- Pin 6
Trigger————–Pin 5
伺服电机连接Intel Edison开发板方法如下:
Vcc—————–Vcc
GND—————GND
Signal———— Pin 9
将所有的跳线焊接好后,我将微型伺服电机粘到了原型扩展板上。
最后将主轴和电机粘到一起,并用束线带扎好。
第四步:将组装好的组件插入Intel Edison开发板,然后编程
这段代码非常简单,只需要控制电机左右往复旋转,然后控制超声波传感器测量依据声速测量距离。
用串口收集位置信息,然后根据数据绘图。
代码如下:
定义SR04连接的Edison的引脚和设置全局变量。
define ECHOPIN 6 define TRIGPIN 5 include Servo myservo; int pos = 0;
初始化
void setup() { Serial.begin(115200); myservo.attach(9); pinMode(ECHOPIN, INPUT); pinMode(TRIGPIN, OUTPUT); }
接下来是主程序。你可以调整pos=10 和pos=170来调节电机的旋转角度。
这段程序主要定义电机旋转速度和旋转位置的关系,如下:
oid loop() { myservo.write(10); delay(1000); for(pos = 10; pos <= 170; pos = 3) { myservo.write(pos); Print(Distance() , pos); delay(15); } delay(1000); for(pos = 170; pos>=10; pos-=3) { myservo.write(pos); Print(Distance() , pos); delay(15); } }
然后我们编译了几段子程序,方便上面的循环调用。这样主程序看起来会更简洁些。
void Print(int R , int T) { Serial.print(R); Serial.print(", "); Serial.print(T); Serial.println("."); delay(100); } float Distance() { digitalWrite(TRIGPIN, LOW); delayMicroseconds(2); digitalWrite(TRIGPIN, HIGH); delayMicroseconds(10); digitalWrite(TRIGPIN, LOW); // Distance Calculation float distance = pulseIn(ECHOPIN, HIGH); distance= distance/58.2; return(distance); }
第五步:运行程序
下载Processing 2,将下面的代码写入程序,随开发板一起运行,这样就能得到上图的结果了。
via
评论列表