Integration of multiple sensors with ROS Serial
Dependencies: mbed HCSR04 VEML7700
main.cpp@3:c23614e6262f, 2021-10-23 (annotated)
- 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?
User | Revision | Line number | New 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 | } |