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

Dependencies:   mbed

Fork of autonomous Robot Android by Christian Burri

Committer:
chrigelburri
Date:
Fri Apr 05 10:58:42 2013 +0000
Revision:
11:775ebb69d5e1
Parent:
6:48eeb41188dd
doku soweit gut ohne android

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chrigelburri 3:92ba0254af87 1 #ifndef HALLSENSOR_H
chrigelburri 3:92ba0254af87 2 #define HALLSENSOR_H
chrigelburri 3:92ba0254af87 3
chrigelburri 3:92ba0254af87 4 #include "mbed.h"
chrigelburri 3:92ba0254af87 5
chrigelburri 3:92ba0254af87 6 /**
chrigelburri 3:92ba0254af87 7 * @author Christian Burri
chrigelburri 3:92ba0254af87 8 *
chrigelburri 11:775ebb69d5e1 9 * @copyright Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe
chrigelburri 3:92ba0254af87 10 * All rights reserved.
chrigelburri 3:92ba0254af87 11 *
chrigelburri 11:775ebb69d5e1 12 * @brief
chrigelburri 3:92ba0254af87 13 *
chrigelburri 3:92ba0254af87 14 * Interface to count the Hallsensor input from a EC-Motor.
chrigelburri 6:48eeb41188dd 15 *
chrigelburri 3:92ba0254af87 16 */
chrigelburri 3:92ba0254af87 17 class Hallsensor
chrigelburri 3:92ba0254af87 18 {
chrigelburri 3:92ba0254af87 19
chrigelburri 6:48eeb41188dd 20 private:
chrigelburri 6:48eeb41188dd 21
chrigelburri 6:48eeb41188dd 22 /**
chrigelburri 11:775ebb69d5e1 23 * @brief Update the pulse count.
chrigelburri 6:48eeb41188dd 24 * Called on every rising/falling edge of Hall 1-3.
chrigelburri 6:48eeb41188dd 25 * Reads the state of the channels and determines whether a pulse forward
chrigelburri 6:48eeb41188dd 26 * or backward has occured, updating the count appropriately.
chrigelburri 6:48eeb41188dd 27 */
chrigelburri 6:48eeb41188dd 28 void encode(void);
chrigelburri 6:48eeb41188dd 29
chrigelburri 6:48eeb41188dd 30 InterruptIn hall1_;
chrigelburri 6:48eeb41188dd 31 InterruptIn hall2_;
chrigelburri 6:48eeb41188dd 32 InterruptIn hall3_;
chrigelburri 6:48eeb41188dd 33
chrigelburri 6:48eeb41188dd 34 int prevState_;
chrigelburri 6:48eeb41188dd 35 int currState_;
chrigelburri 6:48eeb41188dd 36
chrigelburri 6:48eeb41188dd 37 volatile int pulses_;
chrigelburri 6:48eeb41188dd 38
chrigelburri 3:92ba0254af87 39 public:
chrigelburri 3:92ba0254af87 40
chrigelburri 3:92ba0254af87 41 /**
chrigelburri 11:775ebb69d5e1 42 * @brief Constructor of the class <code>Hallsensor</code>.
chrigelburri 3:92ba0254af87 43 *
chrigelburri 3:92ba0254af87 44 * Reads the current values on Hall1 , Hall2 and Hall3 to determine the
chrigelburri 3:92ba0254af87 45 * initial state.
chrigelburri 3:92ba0254af87 46 * Attaches the encode function to the rise/fall interrupt edges of
chrigelburri 3:92ba0254af87 47 * Hall1, Hall2 and Hall3.
chrigelburri 3:92ba0254af87 48 * @param hall1 mbed pin for Hall1 input.
chrigelburri 3:92ba0254af87 49 * @param hall2 mbed pin for Hall2 input.
chrigelburri 3:92ba0254af87 50 * @param hall3 mbed pin for Hall3 input.
chrigelburri 3:92ba0254af87 51 */
chrigelburri 3:92ba0254af87 52 Hallsensor(PinName hall1, PinName hall2, PinName hall3);
chrigelburri 3:92ba0254af87 53
chrigelburri 3:92ba0254af87 54 /**
chrigelburri 11:775ebb69d5e1 55 * @brief Reset the encoder.
chrigelburri 3:92ba0254af87 56 * Sets the pulses and revolutions count to zero.
chrigelburri 3:92ba0254af87 57 */
chrigelburri 3:92ba0254af87 58 void reset(void);
chrigelburri 3:92ba0254af87 59
chrigelburri 3:92ba0254af87 60 /**
chrigelburri 11:775ebb69d5e1 61 * @brief Read the number of pulses recorded by the encoder.
chrigelburri 3:92ba0254af87 62 * @return Number of pulses which have occured, given in [count]
chrigelburri 3:92ba0254af87 63 */
chrigelburri 3:92ba0254af87 64 int getPulses(void);
chrigelburri 3:92ba0254af87 65
chrigelburri 3:92ba0254af87 66 /**
chrigelburri 11:775ebb69d5e1 67 * @brief Read the number of revolutions recorded by the encoder.
chrigelburri 3:92ba0254af87 68 * @return Number of revolutions which have occured on the index channel.
chrigelburri 3:92ba0254af87 69 */
chrigelburri 3:92ba0254af87 70 int getRevolutions(void);
chrigelburri 3:92ba0254af87 71
chrigelburri 3:92ba0254af87 72 };
chrigelburri 3:92ba0254af87 73
chrigelburri 3:92ba0254af87 74 #endif /* Hallsensor_H */