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
ActuatorsSensor/Hallsensor.h
- Committer:
- chrigelburri
- Date:
- 2013-04-26
- Revision:
- 15:cb1337567ad4
- Parent:
- 12:235e318a414f
- Child:
- 38:d76e488e725f
File content as of revision 15:cb1337567ad4:
#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 an 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