Latest version of my quadcopter controller with an LPC1768 and MPU9250.

Dependencies:   mbed

Currently running on a custom PCB with 30.5 x 30.5mm mounts. There are also 2 PC apps that go with the software; one to set up the PID controller and one to balance the motors and props. If anyone is interested, send me a message and I'll upload them.

Revision:
0:0929d3d566cf
Child:
4:fab65ad01ab4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Filters/LPfilter.cpp	Mon Jul 09 16:31:40 2018 +0000
@@ -0,0 +1,41 @@
+#include "LPfilter.h"
+
+float LPfilter::run(float input) {
+	filterbuffer[2] = filterbuffer[1];
+	filterbuffer[1] = filterbuffer[0];
+	filterbuffer[0] = input*LP_A + filterbuffer[1]*LP_B + filterbuffer[2]*LP_C;
+
+	out = filterbuffer[0]*LP_D + filterbuffer[1]*LP_E + filterbuffer[2]*LP_F;
+	return out;
+}
+
+float LPfilter2::run(float input) {
+	filterbuffer1[2] = filterbuffer1[1];
+	filterbuffer1[1] = filterbuffer1[0];
+	filterbuffer1[0] = input*0.003762202981699 + filterbuffer1[1]*1.893415601023 + filterbuffer1[2]*-0.9084644129493;
+	
+	out_temp = filterbuffer1[0] + filterbuffer1[1]*2.0f + filterbuffer1[2];
+	
+	filterbuffer2[2] = filterbuffer2[1];
+	filterbuffer2[1] = filterbuffer2[0];
+	filterbuffer2[0] = out_temp*0.003533495923378 + filterbuffer2[1]*1.778313488139 + filterbuffer2[2]*-0.7924474718329;
+	
+	out = filterbuffer2[0] + filterbuffer2[1]*2.0f + filterbuffer2[2];
+	return out;
+}
+
+float LPfilter2_1::run(float input) {
+	filterbuffer1[2] = filterbuffer1[1];
+	filterbuffer1[1] = filterbuffer1[0];
+	filterbuffer1[0] = input*0.007954132308248 + filterbuffer1[1]*1.836787188551 + filterbuffer1[2]*-0.8686037177835;
+	
+	out_temp = filterbuffer1[0] + filterbuffer1[1]*2.0f + filterbuffer1[2];
+	
+	filterbuffer2[2] = filterbuffer2[1];
+	filterbuffer2[1] = filterbuffer2[0];
+	filterbuffer2[0] = out_temp*0.007277930990548 + filterbuffer2[1]*1.680637168775 + filterbuffer2[2]*-0.7097488927369;
+	
+	out = filterbuffer2[0] + filterbuffer2[1]*2.0f + filterbuffer2[2];
+	return out;
+}
+