BeaconAvoid code for AHRC competition.
Dependencies: MODSERIAL PiSlingers m3pi mbed
IRBehaviorController.h@4:369caebdf5dc, 2016-03-09 (annotated)
- Committer:
- mpanetta
- Date:
- Wed Mar 09 17:40:26 2016 +0000
- Revision:
- 4:369caebdf5dc
- Parent:
- 0:9ac4a91b71fa
Making Public
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mpanetta | 0:9ac4a91b71fa | 1 | #ifndef __IRBEHAVIORCONTROLLER_H__ |
mpanetta | 0:9ac4a91b71fa | 2 | #define __IRBEHAVIORCONTROLLER_H__ |
mpanetta | 0:9ac4a91b71fa | 3 | |
mpanetta | 0:9ac4a91b71fa | 4 | #include "mbed.h" |
mpanetta | 0:9ac4a91b71fa | 5 | #include "IRObjDetector.h" |
mpanetta | 0:9ac4a91b71fa | 6 | #include "PID.h" |
mpanetta | 0:9ac4a91b71fa | 7 | |
mpanetta | 0:9ac4a91b71fa | 8 | class IRBehaviorController |
mpanetta | 0:9ac4a91b71fa | 9 | { |
mpanetta | 0:9ac4a91b71fa | 10 | public: |
mpanetta | 0:9ac4a91b71fa | 11 | IRBehaviorController(PID *pid) : pid(pid) |
mpanetta | 0:9ac4a91b71fa | 12 | { |
mpanetta | 0:9ac4a91b71fa | 13 | debug = NULL; |
mpanetta | 0:9ac4a91b71fa | 14 | activationThreshold = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 15 | brightness = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 16 | output = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 17 | }; |
mpanetta | 0:9ac4a91b71fa | 18 | |
mpanetta | 0:9ac4a91b71fa | 19 | IRBehaviorController(PID * pid, Serial * debug) : debug(debug), ird(debug), pid(pid) |
mpanetta | 0:9ac4a91b71fa | 20 | //IRBehaviorController(PID * pid, Serial * debug) : debug(debug), pid(pid) |
mpanetta | 0:9ac4a91b71fa | 21 | { |
mpanetta | 0:9ac4a91b71fa | 22 | activationThreshold = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 23 | brightness = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 24 | output = 0.0f; |
mpanetta | 0:9ac4a91b71fa | 25 | }; |
mpanetta | 0:9ac4a91b71fa | 26 | |
mpanetta | 0:9ac4a91b71fa | 27 | void setAvoidanceBehavior(float threshold); |
mpanetta | 0:9ac4a91b71fa | 28 | void setSeekingBehavior(float threshold); |
mpanetta | 0:9ac4a91b71fa | 29 | |
mpanetta | 0:9ac4a91b71fa | 30 | void setActiveThreshold(float threshold); // Brightness level at which behavior is active. |
mpanetta | 0:9ac4a91b71fa | 31 | |
mpanetta | 0:9ac4a91b71fa | 32 | void runAvoidance(void); // Execute avoidance behavior |
mpanetta | 0:9ac4a91b71fa | 33 | void runSeeking(void); // Execute seeking behavior |
mpanetta | 0:9ac4a91b71fa | 34 | |
mpanetta | 0:9ac4a91b71fa | 35 | float getPower(void); // Returns the power value needed to execute the behavior. |
mpanetta | 4:369caebdf5dc | 36 | float getBrightness(void); |
mpanetta | 4:369caebdf5dc | 37 | float getCenteroid(void); |
mpanetta | 0:9ac4a91b71fa | 38 | |
mpanetta | 0:9ac4a91b71fa | 39 | void dumpDebug(Serial *debug); |
mpanetta | 0:9ac4a91b71fa | 40 | |
mpanetta | 0:9ac4a91b71fa | 41 | private: |
mpanetta | 0:9ac4a91b71fa | 42 | |
mpanetta | 0:9ac4a91b71fa | 43 | void scanIR(void); |
mpanetta | 0:9ac4a91b71fa | 44 | |
mpanetta | 0:9ac4a91b71fa | 45 | Serial *debug; |
mpanetta | 0:9ac4a91b71fa | 46 | |
mpanetta | 0:9ac4a91b71fa | 47 | IRObjDetector ird; |
mpanetta | 0:9ac4a91b71fa | 48 | PID *pid; |
mpanetta | 0:9ac4a91b71fa | 49 | |
mpanetta | 0:9ac4a91b71fa | 50 | float activationThreshold; // Brightness threshold at which behavior is active. |
mpanetta | 0:9ac4a91b71fa | 51 | float brightness; |
mpanetta | 0:9ac4a91b71fa | 52 | float centeroid; |
mpanetta | 0:9ac4a91b71fa | 53 | |
mpanetta | 0:9ac4a91b71fa | 54 | float output; |
mpanetta | 0:9ac4a91b71fa | 55 | }; |
mpanetta | 0:9ac4a91b71fa | 56 | #endif |