Jika pada tutorial sebelumnya kita mengirim data dari arduino ke ros, maka pada tutorial kali ini kita kan membuat sebaliknya yaitu mengirim data dari ros ke arduino. Disini kita akan membuat data yang dikirim kan dari ros ke arduino akan mempua lampu di arduino hidup/mati
1. copy coding berikut :
#include <ros.h> #include <std_msgs/Empty.h> ros::NodeHandle nh; void messageCb( const std_msgs::Empty& toggle_msg){ digitalWrite(13, HIGH-digitalRead(13)); // blink the led } ros::Subscriber<std_msgs::Empty> sub("led", &messageCb); void setup(){ pinMode(13, OUTPUT); nh.initNode(); nh.subscribe(sub); } void loop(){ nh.spinOnce(); delay(1); }
2. compile dan upload koding tersebut.
3. jalankan ros anda dengan mengetikkan perintah roscore
4. Kemudian jalankan node rosserial_client yang berfungsi untuk menerima dan mengirimkan data melalui serial, pastikan anda memilih port yang sesuai dengan port arduino anda, disini port arduino yang saya yaitu /def/ttyACM0
5. Setelah berhasil terhubung, maka kita dapat mengirim data melalui ros ke arduino. ketikkan perintah berikut
rostopic pub led std_msgs/Empty
lagi maka lampu led akan mati
PENJELASAN KDOING ARDUINO
#include<ros.h>
#include<std_msgs/Empty.h>
cara berikut:
rosmsg show std_msgs/Empty
ros::NodeHandler nh;
void messageCb(const std_msgs::Empty& toggle_msg){ digitalWrite(13,HIGH - digitalRead(13)); }
ros::Subscriber<std_msgs::Empty> sub("led", &messageCb);
void setup(){ pinMode(13, OUTPUT); nh.initNode(); nh.subscribe(sub); }
nh.initNode(); nh.subscribe(sub);
0 Komentar