Integration of multiple sensors with ROS Serial

Dependencies:   mbed HCSR04 VEML7700

Committer:
zillkhan
Date:
Sat Oct 23 07:31:18 2021 +0000
Revision:
3:c23614e6262f
Parent:
2:b847309a754d
Child:
4:69cd9240fd74
Adding Ambient Light 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 3:c23614e6262f 4 #include <std_msgs/Int16.h>
zillkhan 0:d409714cebbf 5 #include "SHARPIR.h"
zillkhan 2:b847309a754d 6 #include "hcsr04.h"
zillkhan 3:c23614e6262f 7 #include "VEML7700.h"
zillkhan 0:d409714cebbf 8
zillkhan 3:c23614e6262f 9 #ifndef MSU_VEML7700_I2C_ADDRESS
zillkhan 3:c23614e6262f 10 #define MSU_VEML7700_I2C_ADDRESS 0x10
zillkhan 3:c23614e6262f 11 #endif
zillkhan 3:c23614e6262f 12
zillkhan 3:c23614e6262f 13 #define PIN_SCL D15
zillkhan 3:c23614e6262f 14 #define PIN_SDA D14
zillkhan 0:d409714cebbf 15
zillkhan 1:3a7e10c8a325 16 //Sharp IR sensor analog pin defination
zillkhan 1:3a7e10c8a325 17 SHARPIR Sensor(A0);
zillkhan 1:3a7e10c8a325 18
zillkhan 2:b847309a754d 19 //Ultrasonic sensor pin defination
zillkhan 2:b847309a754d 20 //D8 TRIGGER D9 ECHO
zillkhan 2:b847309a754d 21 HCSR04 sensor(D8, D9);
zillkhan 2:b847309a754d 22
zillkhan 0:d409714cebbf 23 ros::NodeHandle nh;
zillkhan 0:d409714cebbf 24
zillkhan 1:3a7e10c8a325 25 //SharpIR publisher initialization
zillkhan 2:b847309a754d 26 std_msgs::Float32 data_ir;
zillkhan 2:b847309a754d 27 ros::Publisher sharpir("sharpir", &data_ir);
zillkhan 0:d409714cebbf 28
zillkhan 2:b847309a754d 29 //Ultrasonic sensor publisher initialization
zillkhan 2:b847309a754d 30 std_msgs::String data_ul;
zillkhan 2:b847309a754d 31 ros::Publisher ultrasonic("ultrasonic", &data_ul);
zillkhan 0:d409714cebbf 32
zillkhan 3:c23614e6262f 33 //Ambient Light sensor publisher initialization
zillkhan 3:c23614e6262f 34 std_msgs::Int16 data_als;
zillkhan 3:c23614e6262f 35 ros::Publisher ALS("ALS", &data_als);
zillkhan 3:c23614e6262f 36
zillkhan 3:c23614e6262f 37 VEML7700 *veml7700 = 0 ;
zillkhan 3:c23614e6262f 38
zillkhan 0:d409714cebbf 39 int main() {
zillkhan 1:3a7e10c8a325 40 float DistanceCM; //Variable to store distance in CM from SharpIR sensor
zillkhan 2:b847309a754d 41 char buffer[50]; // buffer for Ultrasonic sensor values
zillkhan 0:d409714cebbf 42
zillkhan 3:c23614e6262f 43 //Initialization of Ambient light sensor
zillkhan 3:c23614e6262f 44 uint16_t als ;
zillkhan 3:c23614e6262f 45 veml7700 = new VEML7700(PIN_SDA, PIN_SCL, MSU_VEML7700_I2C_ADDRESS) ;
zillkhan 3:c23614e6262f 46 veml7700->setALSConf(0x0000) ;
zillkhan 3:c23614e6262f 47 veml7700->setPowerSaving(0x0000) ;
zillkhan 3:c23614e6262f 48
zillkhan 1:3a7e10c8a325 49 //Initalizing and advertising topics
zillkhan 0:d409714cebbf 50 nh.initNode();
zillkhan 2:b847309a754d 51 nh.advertise(sharpir); //SharpIR sensor
zillkhan 2:b847309a754d 52 nh.advertise(ultrasonic); //Ultrasonic Sensor
zillkhan 3:c23614e6262f 53 nh.advertise(ALS); //Ambient Light Sensor
zillkhan 0:d409714cebbf 54
zillkhan 0:d409714cebbf 55 while (1) { //creates an eternal loop
zillkhan 0:d409714cebbf 56
zillkhan 2:b847309a754d 57 DistanceCM=Sensor.cm(); //Reading SharpIR sensor value from analog pin
zillkhan 3:c23614e6262f 58
zillkhan 2:b847309a754d 59 long distance = sensor.distance(); //Reading ultrasonic sensor value
zillkhan 2:b847309a754d 60 sprintf (buffer, "%d", distance); //converting value into string
zillkhan 0:d409714cebbf 61
zillkhan 3:c23614e6262f 62 als = veml7700->getALS(); //Readinng ALS sensor value
zillkhan 3:c23614e6262f 63
zillkhan 2:b847309a754d 64 data_ir.data = DistanceCM;
zillkhan 2:b847309a754d 65 sharpir.publish( &data_ir );
zillkhan 2:b847309a754d 66
zillkhan 2:b847309a754d 67 data_ul.data = buffer;
zillkhan 2:b847309a754d 68 ultrasonic.publish( &data_ul );
zillkhan 0:d409714cebbf 69
zillkhan 3:c23614e6262f 70 data_als.data = als;
zillkhan 3:c23614e6262f 71 ALS.publish( &data_als );
zillkhan 3:c23614e6262f 72
zillkhan 0:d409714cebbf 73 nh.spinOnce();
zillkhan 0:d409714cebbf 74 wait_ms(1000);
zillkhan 0:d409714cebbf 75 }
zillkhan 0:d409714cebbf 76 }