WS2812B with ROS
Dependencies: mbed ros_lib_kinetic_led PololuLedStrip
Diff: led.h
- Revision:
- 2:f3d47d1e19c3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/led.h Sun May 19 21:38:11 2019 +0000 @@ -0,0 +1,46 @@ +#ifndef __LED_H__ //Inclusion safeguards +#define __LED_H__ //Definition of the inclusion +/*============================================================================*/ + +/* Libraries */ +#include "mbed.h" +#include "PololuLedStrip.h" +#include <string> +#include <ros.h> +#include <std_msgs/String.h> +#include <geometry_msgs/Twist.h> + +/* Definitions */ +#define LED_COUNT 30 +#define LED_F_PIN PC_9 +#define LED_B_PIN PC_8 +#define MaxVelocity 0.5f + + +/* Declarations */ +extern rgb_color colors[]; +int LEDBrightness; +float led_tmp; +int led_num; + +extern string audio_state; +extern float vel; +extern float ang; + + +/* Instantiations */ +PololuLedStrip ledStripFront(LED_F_PIN); +PololuLedStrip ledStripBack(LED_B_PIN); +ros::NodeHandle nh; +std_msgs::String status_msg; +ros::Publisher status_pub("status", &status_msg); +ros::Subscriber<std_msgs::String> AudioStatus("audio_status", &AudioStatusCB); +ros::Subscriber<geometry_msgs::Twist> cmd_vel_sub("cmd_vel", &cmdVelCB); + +/* Function Prototypes */ +void AudioStatusCB(const std_msgs::String &status); +void cmdVelCB(const geometry_msgs::Twist &twist); +float Map(float x, float in_min, float in_max, float out_min, float out_max); + +/*============================================================================*/ +#endif // End of inclusion \ No newline at end of file