Integration of multiple sensors with ROS Serial
Dependencies: mbed HCSR04 VEML7700
main.cpp@2:b847309a754d, 2021-10-23 (annotated)
- 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?
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 | 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 | } |