Successful acro and level mode now! Relying on MPU9250 as base sensor. I'm working continuously on tuning and features :) NEWEST VERSION ON: https://github.com/MaEtUgR/FlyBed (CODE 100% compatible/copyable)

Dependencies:   mbed

Committer:
maetugr
Date:
Tue Sep 08 13:38:10 2015 +0000
Revision:
0:37f0c1e8fa66
MPU9250 on the new Board works fine over SPI; RC is broken and works with FlyBed2 :(

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 0:37f0c1e8fa66 1 #include "LED.h"
maetugr 0:37f0c1e8fa66 2 #include "mbed.h"
maetugr 0:37f0c1e8fa66 3
maetugr 0:37f0c1e8fa66 4 LED::LED() : Led(LED1, LED2, LED3, LED4){
maetugr 0:37f0c1e8fa66 5 roller = 0;
maetugr 0:37f0c1e8fa66 6 }
maetugr 0:37f0c1e8fa66 7
maetugr 0:37f0c1e8fa66 8 void LED::shownumber(int number) {
maetugr 0:37f0c1e8fa66 9 Led = number;
maetugr 0:37f0c1e8fa66 10 }
maetugr 0:37f0c1e8fa66 11
maetugr 0:37f0c1e8fa66 12 void LED::ride(int times = 1) {
maetugr 0:37f0c1e8fa66 13 Led = 0;
maetugr 0:37f0c1e8fa66 14 for (int j = 0; j < times; j++) {
maetugr 0:37f0c1e8fa66 15 for(int i=0; i < 4; i++) {
maetugr 0:37f0c1e8fa66 16 Led = 1 << i;
maetugr 0:37f0c1e8fa66 17 wait(0.2);
maetugr 0:37f0c1e8fa66 18 }
maetugr 0:37f0c1e8fa66 19 }
maetugr 0:37f0c1e8fa66 20 Led = 0;
maetugr 0:37f0c1e8fa66 21 }
maetugr 0:37f0c1e8fa66 22
maetugr 0:37f0c1e8fa66 23 void LED::roll(int times = 1) {
maetugr 0:37f0c1e8fa66 24 Led = 0;
maetugr 0:37f0c1e8fa66 25 for (int j = 0; j < (times*2); j++) {
maetugr 0:37f0c1e8fa66 26 for(int roller = 1; roller <= 4; roller++) {
maetugr 0:37f0c1e8fa66 27 tilt(roller);
maetugr 0:37f0c1e8fa66 28 wait(0.1);
maetugr 0:37f0c1e8fa66 29 }
maetugr 0:37f0c1e8fa66 30 }
maetugr 0:37f0c1e8fa66 31 roller = 0;
maetugr 0:37f0c1e8fa66 32 Led = 0;
maetugr 0:37f0c1e8fa66 33 }
maetugr 0:37f0c1e8fa66 34
maetugr 0:37f0c1e8fa66 35 void LED::rollnext() {
maetugr 0:37f0c1e8fa66 36 if (roller >= 4)
maetugr 0:37f0c1e8fa66 37 roller = 0;
maetugr 0:37f0c1e8fa66 38 roller++;
maetugr 0:37f0c1e8fa66 39 tilt(roller);
maetugr 0:37f0c1e8fa66 40 }
maetugr 0:37f0c1e8fa66 41
maetugr 0:37f0c1e8fa66 42 void LED::tilt(int index) {
maetugr 0:37f0c1e8fa66 43 Led = Led ^ (1 << (index-1)); //XOR
maetugr 0:37f0c1e8fa66 44 }
maetugr 0:37f0c1e8fa66 45
maetugr 0:37f0c1e8fa66 46 void LED::set(int index) {
maetugr 0:37f0c1e8fa66 47 Led = Led | (1 << (index-1)); //OR
maetugr 0:37f0c1e8fa66 48 }
maetugr 0:37f0c1e8fa66 49
maetugr 0:37f0c1e8fa66 50 void LED::reset(int index) {
maetugr 0:37f0c1e8fa66 51 Led = Led & ~(1 << (index-1)); //OR
maetugr 0:37f0c1e8fa66 52 }
maetugr 0:37f0c1e8fa66 53
maetugr 0:37f0c1e8fa66 54 int LED::check(int index) {
maetugr 0:37f0c1e8fa66 55 return Led & (1 << (index-1));
maetugr 0:37f0c1e8fa66 56 }
maetugr 0:37f0c1e8fa66 57
maetugr 0:37f0c1e8fa66 58 void LED::operator=(int value) {
maetugr 0:37f0c1e8fa66 59 Led = value;
maetugr 0:37f0c1e8fa66 60 }