WS2812B with ROS

Dependencies:   mbed ros_lib_kinetic_led PololuLedStrip

Committer:
Luka_Danilovic
Date:
Sun May 19 21:38:11 2019 +0000
Revision:
2:f3d47d1e19c3
Final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Luka_Danilovic 2:f3d47d1e19c3 1 #ifndef __LED_H__ //Inclusion safeguards
Luka_Danilovic 2:f3d47d1e19c3 2 #define __LED_H__ //Definition of the inclusion
Luka_Danilovic 2:f3d47d1e19c3 3 /*============================================================================*/
Luka_Danilovic 2:f3d47d1e19c3 4
Luka_Danilovic 2:f3d47d1e19c3 5 /* Libraries */
Luka_Danilovic 2:f3d47d1e19c3 6 #include "mbed.h"
Luka_Danilovic 2:f3d47d1e19c3 7 #include "PololuLedStrip.h"
Luka_Danilovic 2:f3d47d1e19c3 8 #include <string>
Luka_Danilovic 2:f3d47d1e19c3 9 #include <ros.h>
Luka_Danilovic 2:f3d47d1e19c3 10 #include <std_msgs/String.h>
Luka_Danilovic 2:f3d47d1e19c3 11 #include <geometry_msgs/Twist.h>
Luka_Danilovic 2:f3d47d1e19c3 12
Luka_Danilovic 2:f3d47d1e19c3 13 /* Definitions */
Luka_Danilovic 2:f3d47d1e19c3 14 #define LED_COUNT 30
Luka_Danilovic 2:f3d47d1e19c3 15 #define LED_F_PIN PC_9
Luka_Danilovic 2:f3d47d1e19c3 16 #define LED_B_PIN PC_8
Luka_Danilovic 2:f3d47d1e19c3 17 #define MaxVelocity 0.5f
Luka_Danilovic 2:f3d47d1e19c3 18
Luka_Danilovic 2:f3d47d1e19c3 19
Luka_Danilovic 2:f3d47d1e19c3 20 /* Declarations */
Luka_Danilovic 2:f3d47d1e19c3 21 extern rgb_color colors[];
Luka_Danilovic 2:f3d47d1e19c3 22 int LEDBrightness;
Luka_Danilovic 2:f3d47d1e19c3 23 float led_tmp;
Luka_Danilovic 2:f3d47d1e19c3 24 int led_num;
Luka_Danilovic 2:f3d47d1e19c3 25
Luka_Danilovic 2:f3d47d1e19c3 26 extern string audio_state;
Luka_Danilovic 2:f3d47d1e19c3 27 extern float vel;
Luka_Danilovic 2:f3d47d1e19c3 28 extern float ang;
Luka_Danilovic 2:f3d47d1e19c3 29
Luka_Danilovic 2:f3d47d1e19c3 30
Luka_Danilovic 2:f3d47d1e19c3 31 /* Instantiations */
Luka_Danilovic 2:f3d47d1e19c3 32 PololuLedStrip ledStripFront(LED_F_PIN);
Luka_Danilovic 2:f3d47d1e19c3 33 PololuLedStrip ledStripBack(LED_B_PIN);
Luka_Danilovic 2:f3d47d1e19c3 34 ros::NodeHandle nh;
Luka_Danilovic 2:f3d47d1e19c3 35 std_msgs::String status_msg;
Luka_Danilovic 2:f3d47d1e19c3 36 ros::Publisher status_pub("status", &status_msg);
Luka_Danilovic 2:f3d47d1e19c3 37 ros::Subscriber<std_msgs::String> AudioStatus("audio_status", &AudioStatusCB);
Luka_Danilovic 2:f3d47d1e19c3 38 ros::Subscriber<geometry_msgs::Twist> cmd_vel_sub("cmd_vel", &cmdVelCB);
Luka_Danilovic 2:f3d47d1e19c3 39
Luka_Danilovic 2:f3d47d1e19c3 40 /* Function Prototypes */
Luka_Danilovic 2:f3d47d1e19c3 41 void AudioStatusCB(const std_msgs::String &status);
Luka_Danilovic 2:f3d47d1e19c3 42 void cmdVelCB(const geometry_msgs::Twist &twist);
Luka_Danilovic 2:f3d47d1e19c3 43 float Map(float x, float in_min, float in_max, float out_min, float out_max);
Luka_Danilovic 2:f3d47d1e19c3 44
Luka_Danilovic 2:f3d47d1e19c3 45 /*============================================================================*/
Luka_Danilovic 2:f3d47d1e19c3 46 #endif // End of inclusion