This project aims at hacking a remote controlled car by replacing the tx/rx and navigation systems. This project implements the pc side.
Dependencies: mbed-rtos mbed ssWi
For the related information, consult the wiki documentation at:
Import programrover_car
This project aims at hacking a remote controlled car by replacing the tx/rx and navigation systems. This project implements the car side.
joystick/joystick.hpp
- Committer:
- mariob
- Date:
- 2013-03-12
- Revision:
- 0:1b4c3bbaf102
File content as of revision 0:1b4c3bbaf102:
#ifndef __JOYSTICK_HPP__ #define __JOYSTICK_HPP__ #include <limits> #include "mbed.h" #include "rtos.h" #define JOYSTICK_SX_X 1 #define JOYSTICK_SX_Y 0 #define JOYSTICK_DX_X 2 #define JOYSTICK_DX_Y 3 class Joystick { AnalogIn* channels[4]; float values[4]; Mutex mutexes[4]; struct RangeJoystichChannel { float maxV; float minV; float center; RangeJoystichChannel () { maxV = std::numeric_limits<float>::min(); minV = std::numeric_limits<float>::max(); center = 0.0; } }; RangeJoystichChannel ranges[4]; void update(int channel); public: Joystick (PinName pinSX_X, PinName pinSX_Y, PinName pinDX_X, PinName pinDX_Y) { channels[JOYSTICK_SX_X] = new AnalogIn(pinSX_X); channels[JOYSTICK_SX_Y] = new AnalogIn(pinSX_Y); channels[JOYSTICK_DX_X] = new AnalogIn(pinDX_X); channels[JOYSTICK_DX_Y] = new AnalogIn(pinDX_Y); } void tuneCentring (int nOfSamples, int channel); void tuneChannel (int nOfSamples, int channel); void update(); float read(int channel); ~Joystick () { delete channels[JOYSTICK_SX_X]; delete channels[JOYSTICK_SX_Y]; delete channels[JOYSTICK_DX_X]; delete channels[JOYSTICK_DX_Y]; } }; #endif //__JOYSTICK_HPP__