Simple piece of code for simulation sensor inputs of a hoverboard to do basic control of wheels.
Dependencies: WiiNunchuck mbed-dev
This program is inspired by this site:
http://drewspewsmuse.blogspot.co.at/2016/06/how-i-hacked-self-balancing-scooter.html
Here you can get more information of the protocol revervse engineering.
This program uses a Wii nunchuk connected over I2C to controll the speed. Speed is controlled by a closed loop P controller. Feedback is done by counting HALL events from the brushless motor. Some more pictures are available here:
https://github.com/tyler123durden/hoverboard-hardware
Basically you need a serial TX and 3 HALL IRQs per motor side.
Wiring of the board. Gyro boards are not used, input is generated from nucleo board. Motor board has still the HALL connections. Nucleo board just also reads HALL inputs to get speed information for closed loop controll.
HallDecoder.h
- Committer:
- Thomas_H
- Date:
- 2016-10-23
- Revision:
- 2:6e0dfe2caf48
- Parent:
- 1:5acd27cb1857
File content as of revision 2:6e0dfe2caf48:
#ifndef HALLDECODER_H #define HALLDECODER_H #include "mbed.h" class HallDecoder { public: HallDecoder(PinName hall1, PinName hall2, PinName hall3); int32_t getticks(); void resetticks(); void hall1_handler(); void hall2_handler(); void hall3_handler(); private: InterruptIn _int1; InterruptIn _int2; InterruptIn _int3; volatile int32_t _ticks; volatile uint8_t _lastint; }; #endif