Integration of multiple sensors with ROS Serial

Dependencies:   mbed HCSR04 VEML7700

Committer:
zillkhan
Date:
Sat Oct 23 07:17:03 2021 +0000
Revision:
2:b847309a754d
Parent:
1:3a7e10c8a325
Child:
3:c23614e6262f
Adding ultrasonic sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zillkhan 0:d409714cebbf 1 #include <ros.h>
zillkhan 0:d409714cebbf 2 #include <std_msgs/Float32.h>
zillkhan 0:d409714cebbf 3 #include <std_msgs/String.h>
zillkhan 0:d409714cebbf 4 #include "SHARPIR.h"
zillkhan 2:b847309a754d 5 #include "hcsr04.h"
zillkhan 0:d409714cebbf 6
zillkhan 0:d409714cebbf 7
zillkhan 1:3a7e10c8a325 8 //Sharp IR sensor analog pin defination
zillkhan 1:3a7e10c8a325 9 SHARPIR Sensor(A0);
zillkhan 1:3a7e10c8a325 10
zillkhan 2:b847309a754d 11 //Ultrasonic sensor pin defination
zillkhan 2:b847309a754d 12 //D8 TRIGGER D9 ECHO
zillkhan 2:b847309a754d 13 HCSR04 sensor(D8, D9);
zillkhan 2:b847309a754d 14
zillkhan 0:d409714cebbf 15 ros::NodeHandle nh;
zillkhan 0:d409714cebbf 16
zillkhan 1:3a7e10c8a325 17
zillkhan 1:3a7e10c8a325 18 //SharpIR publisher initialization
zillkhan 2:b847309a754d 19 std_msgs::Float32 data_ir;
zillkhan 2:b847309a754d 20 ros::Publisher sharpir("sharpir", &data_ir);
zillkhan 0:d409714cebbf 21
zillkhan 2:b847309a754d 22 //Ultrasonic sensor publisher initialization
zillkhan 2:b847309a754d 23 std_msgs::String data_ul;
zillkhan 2:b847309a754d 24 ros::Publisher ultrasonic("ultrasonic", &data_ul);
zillkhan 0:d409714cebbf 25
zillkhan 0:d409714cebbf 26 int main() {
zillkhan 1:3a7e10c8a325 27 float DistanceCM; //Variable to store distance in CM from SharpIR sensor
zillkhan 2:b847309a754d 28 char buffer[50]; // buffer for Ultrasonic sensor values
zillkhan 0:d409714cebbf 29
zillkhan 1:3a7e10c8a325 30 //Initalizing and advertising topics
zillkhan 0:d409714cebbf 31 nh.initNode();
zillkhan 2:b847309a754d 32 nh.advertise(sharpir); //SharpIR sensor
zillkhan 2:b847309a754d 33 nh.advertise(ultrasonic); //Ultrasonic Sensor
zillkhan 0:d409714cebbf 34
zillkhan 0:d409714cebbf 35 while (1) { //creates an eternal loop
zillkhan 0:d409714cebbf 36
zillkhan 2:b847309a754d 37 DistanceCM=Sensor.cm(); //Reading SharpIR sensor value from analog pin
zillkhan 2:b847309a754d 38 long distance = sensor.distance(); //Reading ultrasonic sensor value
zillkhan 2:b847309a754d 39 sprintf (buffer, "%d", distance); //converting value into string
zillkhan 0:d409714cebbf 40
zillkhan 2:b847309a754d 41 data_ir.data = DistanceCM;
zillkhan 2:b847309a754d 42 sharpir.publish( &data_ir );
zillkhan 2:b847309a754d 43
zillkhan 2:b847309a754d 44 data_ul.data = buffer;
zillkhan 2:b847309a754d 45 ultrasonic.publish( &data_ul );
zillkhan 0:d409714cebbf 46
zillkhan 0:d409714cebbf 47 nh.spinOnce();
zillkhan 0:d409714cebbf 48 wait_ms(1000);
zillkhan 0:d409714cebbf 49 }
zillkhan 0:d409714cebbf 50 }