ROS中使用arduino连接ultrasonic sensor
来源:互联网 发布:手机淘宝忘记登录密码 编辑:程序博客网 时间:2024/06/06 12:26
ultrasonic sensor与arduino接线方式:
1、使用Arduino采用数字引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能;
2、触发后,模块会自动发送8个40KHz的超声波脉冲,并自动检测是否有信号返回。这步会由模块内部自动完成。
3、如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用pulseIn()函数获取到测距的结果,并计算出距被测物的实际距离。
代码如下:#include<ros.h>#include<sensor_msgs/Range.h>ros::NodeHandle nh;sensor_msgs::Range range_msg;ros::Publisher pub_range("range_data",&range_msg);const int TrigPin = 2;const int EchoPin = 3;char frameid[] = "/ult_ranger";float getRange(int pin_num){ int sample; sample = pulseIn(pin_num,HIGH)/5882.00; return sample;} void setup() { nh.initNode(); nh.advertise(pub_range); pinMode(TrigPin,OUTPUT); pinMode(EchoPin,INPUT); range_msg.radiation_type = sensor_msgs::range::ULTRASOUND; range_msg.header.frame_id ="utl_ranger"; range_msg.field_of_view = 0.1; range_msg.min_range = 0.002; range_msg.max_range =4;}void loop() {digitalWrite(TrigPin,LOW);delayMicroseconds(2);digitalWrite(TrigPin,HIGH);delayMicroseconds(10);digitalWrite(TrigPin,LOW);range_msg.range = getRange(EchoPin);range_msg.header.stamp = nh.now();pub_range.publish(&range_msg);nh.spinOnce();delay(1000);}编辑完以上代码后,下载到自己用的arduino中,在terminal中输入以下命令,即可看到超声波测距的结果:
roscore
rosrun rosserial_python serial_node.py /dev/ttyACM0
rostopic echo /range_data
0 0
- ROS中使用arduino连接ultrasonic sensor
- Arduino: Ultrasonic Sensor & Motor Car
- 在ROS中使用Arduino
- ROS与Arduino-Arduino IDE 安装和使用
- Arduino implement pressure sensor
- 37 sensor kit. Arduino
- arduino中使用watchdog
- ROS学习(十七)安装ARDUINO IDE使用rosserial
- ROS+PI+ARDUINO
- ROS arduino JY901
- PIR Motion Sensor with Arduino
- Arduino开发之Light Sensor
- ROS中Hokuyo_node使用
- ros中使用摄像头
- ros中使用串口
- ROS中使用串口
- ROS中使用URDF
- Arduino 中使用定时中断
- 修改eclipse workspace的历史记录
- DOM基础
- spring task定时任务实现
- env: ruby_executable_hooks: No such file or directory
- Eclipse自动生成作者、日期注释等功能设置
- ROS中使用arduino连接ultrasonic sensor
- DICOM3.0影像文件中的平面和立体坐标信息
- 交叉编译 小米路由器mini 的 python
- appium之pip安装
- 查找Android应用当前界面所对应的activity名称
- ZYNQ平台学习--(1)新建工程
- oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法
- Oracle数据文件大小限制原因
- 纯js模仿博客评论