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:
Thu Nov 19 18:47:27 2015 +0000
Revision:
8:609a2ad4c30e
Parent:
0:37f0c1e8fa66
made I2C-Sensors working in parallel, added rolling buffer for PID derivative, played with the PID and frequency parameters in main

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 }