자율주행/ROS기반 자율주행모형차 개발

(9) 아두이노 펌웨어

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#if (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
 
#include <Servo.h> 
#include <ros.h>
#include <std_msgs/UInt16MultiArray.h>
 
ros::NodeHandle  nh;
 
Servo servo;
 
int dir = 8;
int pwm = 11;
int val = 0;
int angle = 100;
 
void servo_cb( const std_msgs::UInt16MultiArray& cmd_msg){
  val = cmd_msg.data[0]; //set servo angle, should be from 0-180 
  angle = cmd_msg.data[1];
  servo.write(angle);
  digitalWrite(13, HIGH-digitalRead(13));  //toggle led  
}
 
 
ros::Subscriber<std_msgs::UInt16MultiArray> sub("control", servo_cb);
 
void setup(){
  pinMode(13, OUTPUT);
  pinMode(dir,OUTPUT);
  pinMode(pwm,OUTPUT);
  nh.initNode();
  nh.subscribe(sub);
  servo.attach(6); 
}
 
void loop(){
  digitalWrite(dir,LOW);
  analogWrite(pwm,val); 
  nh.spinOnce();
  delay(1);
}
cs

 

'자율주행 > ROS기반 자율주행모형차 개발' 카테고리의 다른 글

result  (0) 2019.03.11
(10) 카메라 세팅 및 Opencv 설치  (1) 2019.03.05
ROI 성공  (0) 2018.10.30
opencv roi  (0) 2018.10.30
(8) motor_control 노드 작성  (0) 2018.07.22