1. 硬件
Arduino控制板:1个;
直流电机:1个;
杜邦线:若干;
UN2003LA: 1个
1.1 接线方式
接线方式为:ULN2003 arduino主板
1脚 9
8脚 GND
9脚 VCC
ULN2003正面从左右到右,从下到上引脚为1~8 16~9。
ULN2003的16脚接直流电机的任意一个脚,直流电机的另外一个脚接arduino主板的+5v。
来张实际的照片(略麻烦):
2 程序
#include <ros.h>
#include <std_msgs/Int16.h>
const int U=9;
int re_data=0;
ros::NodeHandle nh;
void messageCb(std_msgs::Int16 message)
{
re_data = message.data;
}
ros::Subscriber<std_msgs::Int16> sub("motor",&messageCb);
void setup()
{
nh.initNode();
nh.subscribe(sub);
}
void loop()
{
analogWrite(U,re_data);;
nh.spinOnce();
}
2.1 程序下载和运行
首先:roscore
其次:rosrun rosserial_python serial_node.py /dev/ttyACM0
/dev/ttyACM0 这个是自己的端口号
最后:rostopic pub -1 /motor/Int16 0
rostopic pub -1 /motor/Int16 125
rostopic pub -1 /motor/Int16 255
来张图片: