Q
Dependencies: SRF05 ros_lib_kinetic TinyGPSPlus
PROJ515.hpp@2:7288dd12186e, 2019-05-02 (annotated)
- Committer:
- Luka_Danilovic
- Date:
- Thu May 02 11:37:55 2019 +0000
- Revision:
- 2:7288dd12186e
- Parent:
- 1:ea2ee36038e7
- Child:
- 3:cd1f2bde7ac2
No ROS - All U_Sensors working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Luka_Danilovic | 0:215bdd87b602 | 1 | #ifndef __PROJ515_H__ //Inclusion safeguards |
Luka_Danilovic | 0:215bdd87b602 | 2 | #define __PROJ515_H__ //Definition of the inclusion |
Luka_Danilovic | 0:215bdd87b602 | 3 | /*============================================================================*/ |
Luka_Danilovic | 0:215bdd87b602 | 4 | |
Luka_Danilovic | 0:215bdd87b602 | 5 | /* Libraries */ |
Luka_Danilovic | 0:215bdd87b602 | 6 | #include "mbed.h" // Mbed RTOS |
Luka_Danilovic | 0:215bdd87b602 | 7 | #include "hcsr04.h" // HCSR04 ultrasound sensor libary |
Luka_Danilovic | 1:ea2ee36038e7 | 8 | //#include "SRF05_sp.h" // SRF05 single pin ultrasound sensor libary |
Luka_Danilovic | 0:215bdd87b602 | 9 | #include "ros.h" // ROS Library |
Luka_Danilovic | 0:215bdd87b602 | 10 | #include "sensor_msgs/Range.h" // ROS Sensor Messages component |
Luka_Danilovic | 0:215bdd87b602 | 11 | |
Luka_Danilovic | 0:215bdd87b602 | 12 | /* Definitions */ |
Luka_Danilovic | 0:215bdd87b602 | 13 | #define LEDS_OFF 0x00 // LED bus all off |
Luka_Danilovic | 0:215bdd87b602 | 14 | #define LEDS_ON 0x07 // LED bus all on |
Luka_Danilovic | 1:ea2ee36038e7 | 15 | |
Luka_Danilovic | 2:7288dd12186e | 16 | #define USP_CF1T PG_1 // Cliff ultrasound 1 Trigger |
Luka_Danilovic | 2:7288dd12186e | 17 | #define USP_CF1E PB_11 // Cliff ultrasound 1 Echo |
Luka_Danilovic | 2:7288dd12186e | 18 | #define USP_CF2T PF_9 // Cliff ultrasound 2 Trigger |
Luka_Danilovic | 2:7288dd12186e | 19 | #define USP_CF2E PB_10 // Cliff ultrasound 2 Echo |
Luka_Danilovic | 2:7288dd12186e | 20 | #define USP_CF3T PF_7 // Cliff ultrasound 3 Trigger |
Luka_Danilovic | 2:7288dd12186e | 21 | #define USP_CF3E PE_15 // Cliff ultrasound 3 Echo |
Luka_Danilovic | 2:7288dd12186e | 22 | #define USP_CF4T PF_8 // Cliff ultrasound 4 Trigger |
Luka_Danilovic | 2:7288dd12186e | 23 | #define USP_CF4E PE_12 // Cliff ultrasound 4 Echo |
Luka_Danilovic | 1:ea2ee36038e7 | 24 | |
Luka_Danilovic | 2:7288dd12186e | 25 | #define USP_CB1T PE_6 // Curb ultrasound 1 Trigger |
Luka_Danilovic | 2:7288dd12186e | 26 | #define USP_CB1E PE_7 // Curb ultrasound 1 Echo |
Luka_Danilovic | 2:7288dd12186e | 27 | #define USP_CB2T PE_5 // Curb ultrasound 2 Trigger |
Luka_Danilovic | 2:7288dd12186e | 28 | #define USP_CB2E PE_8 // Curb ultrasound 2 Echo |
Luka_Danilovic | 2:7288dd12186e | 29 | #define USP_CB3T PE_4 // Curb ultrasound 3 Trigger |
Luka_Danilovic | 2:7288dd12186e | 30 | #define USP_CB3E PG_9 // Curb ultrasound 3 Echo |
Luka_Danilovic | 2:7288dd12186e | 31 | #define USP_CB4T PE_2 // Curb ultrasound 4 Trigger |
Luka_Danilovic | 2:7288dd12186e | 32 | #define USP_CB4E PG_14 // Curb ultrasound 4 Echo |
Luka_Danilovic | 0:215bdd87b602 | 33 | |
Luka_Danilovic | 0:215bdd87b602 | 34 | #define ROS_Baud 921600 // ROS Baud Rate |
Luka_Danilovic | 0:215bdd87b602 | 35 | #define frameID "ultrasound_range" // ROS frame ID |
Luka_Danilovic | 0:215bdd87b602 | 36 | |
Luka_Danilovic | 1:ea2ee36038e7 | 37 | #define ULTRASOUND 0x00 // Ultrasound |
Luka_Danilovic | 0:215bdd87b602 | 38 | #define PRINT_DATA 0x01 // Thread communication event to print data |
Luka_Danilovic | 0:215bdd87b602 | 39 | |
Luka_Danilovic | 1:ea2ee36038e7 | 40 | /* Namespaces */ |
Luka_Danilovic | 1:ea2ee36038e7 | 41 | using namespace std; // Make all std symbols visible |
Luka_Danilovic | 1:ea2ee36038e7 | 42 | using namespace ros; // Make all ros symbols visible |
Luka_Danilovic | 1:ea2ee36038e7 | 43 | using namespace sensor_msgs; // Make all sensor_msgs symbols visible |
Luka_Danilovic | 1:ea2ee36038e7 | 44 | using namespace std_msgs; // Make all sdt_msgs symbols visible |
Luka_Danilovic | 1:ea2ee36038e7 | 45 | |
Luka_Danilovic | 0:215bdd87b602 | 46 | /* Declarations */ |
Luka_Danilovic | 2:7288dd12186e | 47 | extern float cfDist1; // Distance returned by cliff u_sensor1 (m) |
Luka_Danilovic | 2:7288dd12186e | 48 | extern float cfDist2; // Distance returned by cliff u_sensor2 (m) |
Luka_Danilovic | 2:7288dd12186e | 49 | extern float cfDist3; // Distance returned by cliff u_sensor3 (m) |
Luka_Danilovic | 2:7288dd12186e | 50 | extern float cfDist4; // Distance returned by cliff u_sensor4 (m) |
Luka_Danilovic | 1:ea2ee36038e7 | 51 | |
Luka_Danilovic | 2:7288dd12186e | 52 | extern float cbDist1; // Distance returned by curb u_sensor1 (m) |
Luka_Danilovic | 2:7288dd12186e | 53 | extern float cbDist2; // Distance returned by curb u_sensor2 (m) |
Luka_Danilovic | 2:7288dd12186e | 54 | extern float cbDist3; // Distance returned by curb u_sensor3 (m) |
Luka_Danilovic | 2:7288dd12186e | 55 | extern float cbDist4; // Distance returned by curb u_sensor4 (m) |
Luka_Danilovic | 1:ea2ee36038e7 | 56 | |
Luka_Danilovic | 2:7288dd12186e | 57 | extern float wPeriod; // Wait period(ms) for ROS publisher |
Luka_Danilovic | 0:215bdd87b602 | 58 | |
Luka_Danilovic | 0:215bdd87b602 | 59 | /* GPIO */ |
Luka_Danilovic | 0:215bdd87b602 | 60 | DigitalIn bttn(USER_BUTTON); // Onboard blue user button |
Luka_Danilovic | 0:215bdd87b602 | 61 | BusOut leds(LED1, LED2, LED3); // Onboard LEDs bus |
Luka_Danilovic | 0:215bdd87b602 | 62 | |
Luka_Danilovic | 0:215bdd87b602 | 63 | /* Instantiations */ |
Luka_Danilovic | 2:7288dd12186e | 64 | HCSR04 USS_CF1(USP_CF1T, USP_CF1E); // Ultrasound sensor cliff 1 |
Luka_Danilovic | 2:7288dd12186e | 65 | HCSR04 USS_CF2(USP_CF2T, USP_CF2E); // Ultrasound sensor cliff 2 |
Luka_Danilovic | 2:7288dd12186e | 66 | HCSR04 USS_CF3(USP_CF3T, USP_CF3E); // Ultrasound sensor cliff 3 |
Luka_Danilovic | 2:7288dd12186e | 67 | HCSR04 USS_CF4(USP_CF4T, USP_CF4E); // Ultrasound sensor cliff 4 |
Luka_Danilovic | 1:ea2ee36038e7 | 68 | |
Luka_Danilovic | 2:7288dd12186e | 69 | HCSR04 USS_CB1(USP_CB1T, USP_CB1E); // Ultrasound sensor cliff 1 |
Luka_Danilovic | 2:7288dd12186e | 70 | HCSR04 USS_CB2(USP_CB2T, USP_CB2E); // Ultrasound sensor cliff 2 |
Luka_Danilovic | 2:7288dd12186e | 71 | HCSR04 USS_CB3(USP_CB3T, USP_CB3E); // Ultrasound sensor cliff 3 |
Luka_Danilovic | 2:7288dd12186e | 72 | HCSR04 USS_CB4(USP_CB4T, USP_CB4E); // Ultrasound sensor cliff 4 |
Luka_Danilovic | 2:7288dd12186e | 73 | |
Luka_Danilovic | 2:7288dd12186e | 74 | Serial usbSer(USBTX, USBRX); // Serial over USB OTG |
Luka_Danilovic | 0:215bdd87b602 | 75 | NodeHandle nh; // Instance for ROS Node Handler |
Luka_Danilovic | 0:215bdd87b602 | 76 | Range ultrasound_msg; // Instance for ROS NavSatFix message |
Luka_Danilovic | 1:ea2ee36038e7 | 77 | |
Luka_Danilovic | 2:7288dd12186e | 78 | // Instance for ROS publishers (Range message) |
Luka_Danilovic | 1:ea2ee36038e7 | 79 | Publisher ultrasound_pub("/ultrasound/cb1", &ultrasound_msg); |
Luka_Danilovic | 0:215bdd87b602 | 80 | |
Luka_Danilovic | 0:215bdd87b602 | 81 | /* Threads and Signals */ |
Luka_Danilovic | 0:215bdd87b602 | 82 | //Thread myThread (osPriorityNormal); |
Luka_Danilovic | 0:215bdd87b602 | 83 | //EventFlags myEventFlag; |
Luka_Danilovic | 0:215bdd87b602 | 84 | |
Luka_Danilovic | 0:215bdd87b602 | 85 | /* Function Prototypes */ |
Luka_Danilovic | 0:215bdd87b602 | 86 | //void myFunctionPrototype(); |
Luka_Danilovic | 0:215bdd87b602 | 87 | |
Luka_Danilovic | 0:215bdd87b602 | 88 | /*============================================================================*/ |
Luka_Danilovic | 0:215bdd87b602 | 89 | #endif // End of inclusion |