BeaconAvoid code for AHRC competition.

Dependencies:   MODSERIAL PiSlingers m3pi mbed

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?

UserRevisionLine numberNew 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