pythonarduino超声波测距(基于labview的超声波测距)
这是我在arduino上用hc-sr04超声波测距的代码,但是结果一直都是0.00,不知道哪里错了,求大神解答
#include Wire.h
#include "MPU6050.h"
#include Ultrasonic.h
#include "I2Cdev.h"
#define LED_PIN 13 //指示灯
//MPU6050陀螺仪
//MPU6050 my_gyro(3);
//使用ax, rx来获取二轮车姿态
//x轴加速度 偏转角
short ax,rx;
//short = int16_t
//HC-SRO4超声波传感器
//TRIG_PIN ECHO_PIN
Ultrasonic my_hcsr(5,6);
float distance;
int startTime;
void setup() {
pinMode(LED_PIN,LOW);
//加入I2C总线
Wire.begin();
//初始化串口通信频道
Serial.begin(9600);
//初始化模块
//my_gyro.initialize();
my_hcsr.measure();
startTime = millis();
//初始化完成后指示灯常亮
pinMode(LED_PIN,HIGH);
}
void loop() {
//获取车身姿态
//ax=my_gyro.getAccelerationX();
//rx=my_gyro.getRotationX();
//获取前方障碍物距离
my_hcsr.measure();
distance=millis()-startTime;
distance/=1000;
distance=my_hcsr.get_cm();
Serial.print(distance,3);
Serial.println("cm");
delay(50);
}
Arduino 超声波测距+OLED+RGB
1、通过超声波测距模块进行距离测量
2、将测量的结果显示在OLED屏幕上
3、当测量距离 20cm 时,RGB模块显示红灯报警
arduino超声波可以干什么
测量传感器距离障碍物的距离,但能测的距离比较短,可用于避障小车之类的制作。超声波测距传感器由超声波发生器,接收器以及一块小芯片组成。
arduino向传感器芯片发出指令使超声波发生器发出超声波,arduino开始计时。超声波遇到障碍物会反射,超声波接收器接收到后芯片向arduino报告,arduino停止计时。再由
距离=声速*时间
算出距离,空气中的声速一般按340米/秒来算。
如果要测较长(1米以上)的距离,最好用激光测距传感器(有点贵就是了)。
树莓派通过C语言和python操作超声波测距模块
? ? 树莓派利用两个gpio来操作超声波测距模块,一个gpio操作发送超声波,另一个超声波接受返回的超声波,时间差与声音传播速度的积即为距离数值。模块可以测量 3cm – 4m 的距离,模块包括 超声波发射器、超声波接收器和控制电路三部分。 4 个引脚,由 2 个电源引脚(Vcc 、GND)和 2 个控制引脚(Trig、Echo)组成。Trig 引脚用来接收来自树莓派的控制信号,Echo 引脚用来发送测距结果给树莓派。
? ? V端口是5V供电,G是负极,T为板卡端口38(gpio28),E为板卡端口40(gpio29)。
? ? 原理为时间差乘以速率来计算距离。
gcc? distance_sensor.c -o? distance_sensor? -lwiringPi? #编译C语言
./distance_sensor? #运行程序
运行程序? python distance_sensor.py
最后试了试将程序改为labview通过LINX嵌入式部署到树莓派,最后测试有问题。感觉是时间控制方面有问题,夜深了,留待下次解决吧。