This program is for an autonomous robot for the competition at the Hochschule Luzern. http://cruisingcrepe.wordpress.com/ We are one of the 32 teams. http://cruisingcrepe.wordpress.com/ The postition control is based on this Documentation: Control of Wheeled Mobile Robots: An Experimental Overview from Alessandro De Luca, Giuseppe Oriolo, Marilena Vendittelli. For more information see here: http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf
Fork of autonomous Robot Android by
Diff: ActuatorsSensor/Hallsensor.h
- Revision:
- 12:235e318a414f
- Parent:
- 11:775ebb69d5e1
- Child:
- 15:cb1337567ad4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ActuatorsSensor/Hallsensor.h Sun Apr 07 08:31:51 2013 +0000 @@ -0,0 +1,74 @@ +#ifndef HALLSENSOR_H +#define HALLSENSOR_H + +#include "mbed.h" + +/** + * @author Christian Burri + * + * @copyright Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe + * All rights reserved. + * + * @brief + * + * Interface to count the Hallsensor input from a EC-Motor. + * + */ +class Hallsensor +{ + +private: + + /** + * @brief Update the pulse count. + * Called on every rising/falling edge of Hall 1-3. + * Reads the state of the channels and determines whether a pulse forward + * or backward has occured, updating the count appropriately. + */ + void encode(void); + + InterruptIn hall1_; + InterruptIn hall2_; + InterruptIn hall3_; + + int prevState_; + int currState_; + + volatile int pulses_; + +public: + + /** + * @brief Constructor of the class <code>Hallsensor</code>. + * + * Reads the current values on Hall1 , Hall2 and Hall3 to determine the + * initial state. + * Attaches the encode function to the rise/fall interrupt edges of + * Hall1, Hall2 and Hall3. + * @param hall1 mbed pin for Hall1 input. + * @param hall2 mbed pin for Hall2 input. + * @param hall3 mbed pin for Hall3 input. + */ + Hallsensor(PinName hall1, PinName hall2, PinName hall3); + + /** + * @brief Reset the encoder. + * Sets the pulses and revolutions count to zero. + */ + void reset(void); + + /** + * @brief Read the number of pulses recorded by the encoder. + * @return Number of pulses which have occured, given in [count] + */ + int getPulses(void); + + /** + * @brief Read the number of revolutions recorded by the encoder. + * @return Number of revolutions which have occured on the index channel. + */ + int getRevolutions(void); + +}; + +#endif