基於ROS使用Arduino控制直流電機
阿新 • • 發佈:2018-11-01
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
來張圖片: