![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
BeaconAvoid code for AHRC competition.
Dependencies: MODSERIAL PiSlingers m3pi mbed
IRBehaviorController.h@0:9ac4a91b71fa, 2012-04-04 (annotated)
- Committer:
- mpanetta
- Date:
- Wed Apr 04 17:07:49 2012 +0000
- Revision:
- 0:9ac4a91b71fa
- Child:
- 4:369caebdf5dc
Initial commit. Avoidance code complete, beacon code still needs to be added.
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 | 0:9ac4a91b71fa | 36 | |
mpanetta | 0:9ac4a91b71fa | 37 | void dumpDebug(Serial *debug); |
mpanetta | 0:9ac4a91b71fa | 38 | |
mpanetta | 0:9ac4a91b71fa | 39 | private: |
mpanetta | 0:9ac4a91b71fa | 40 | |
mpanetta | 0:9ac4a91b71fa | 41 | void scanIR(void); |
mpanetta | 0:9ac4a91b71fa | 42 | |
mpanetta | 0:9ac4a91b71fa | 43 | Serial *debug; |
mpanetta | 0:9ac4a91b71fa | 44 | |
mpanetta | 0:9ac4a91b71fa | 45 | IRObjDetector ird; |
mpanetta | 0:9ac4a91b71fa | 46 | PID *pid; |
mpanetta | 0:9ac4a91b71fa | 47 | |
mpanetta | 0:9ac4a91b71fa | 48 | float activationThreshold; // Brightness threshold at which behavior is active. |
mpanetta | 0:9ac4a91b71fa | 49 | float brightness; |
mpanetta | 0:9ac4a91b71fa | 50 | float centeroid; |
mpanetta | 0:9ac4a91b71fa | 51 | |
mpanetta | 0:9ac4a91b71fa | 52 | float output; |
mpanetta | 0:9ac4a91b71fa | 53 | }; |
mpanetta | 0:9ac4a91b71fa | 54 | #endif |