1. 硬件
Arduino控制板:1个;
遥控器:1个;
红外接收头:1个;
杜邦线:若干;
1.1 接线方式
红外接收头有三个引脚如下图:
用的时候将VOUT接到模拟口(11),GND接到实验板上的GND,VCC接到实验板上的+5v。
来张实际的照片(略麻烦):
2 程序
#include <IRremote.h>
#include <ros.h>
#include <std_msgs/Char.h>
ros::NodeHandle nh;
std_msgs::Char data;
ros::Publisher chatter("chatter1",&data);
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
nh.initNode();
nh.advertise(chatter);
irrecv.enableIRIn();
}
void loop(){
if (irrecv.decode(&results)) {
data.data = results.value;
chatter.publish(&data);
irrecv.resume(); // Receive the next value
}
nh.spinOnce();
}
2.1 程序下载和运行
首先:roscore
扫描二维码关注公众号,回复:
3867049 查看本文章
其次:rosrun rosserial_python serial_node.py /dev/ttyACM0
/dev/ttyACM0 这个是自己的端口号
最后:rostopic echo /chatter1
备注:接收到的char数据乱码较多,后期还需要进一步的校正。
来张图片: