From 602bfc209892118aca079ba485da5538be71cc7b Mon Sep 17 00:00:00 2001
From: Aaron John Sabu <aaronjohnsabu1999@gmail.com>
Date: Fri, 15 Oct 2021 11:49:54 -0700
Subject: [PATCH] Recommit

---
 .../Localization.cpp                          |   1 +
 .../feather_main_test_PID_Lidar_Full.ino      |  67 +++++++++++++-----
 Code/Control/Main_Code/.vs/Main_Code/v16/.suo | Bin 0 -> 15872 bytes
 .../Main_Code/.vs/Main_Code/v16/Browse.VC.db  | Bin 0 -> 290816 bytes
 .../Main_Code/.vs/ProjectSettings.json        |   3 +
 .../Main_Code/.vs/VSWorkspaceState.json       |   7 ++
 Code/Control/Main_Code/.vs/slnx.sqlite        | Bin 0 -> 90112 bytes
 .../{ColorDetect.cpp => ColorDetect.h}        |  12 +++-
 Code/Control/Main_Code/Constants.cpp          |   9 ---
 Code/Control/Main_Code/Constants.h            |  30 ++++++++
 Code/Control/Main_Code/{Debug.cpp => Debug.h} |  43 +++++++----
 Code/Control/Main_Code/{LIDAR.cpp => LIDAR.h} |   5 ++
 .../{Localization.cpp => Localization.h}      |  27 +++++--
 Code/Control/Main_Code/Main_Code.ino          |  42 +++++++----
 .../Main_Code/{Mesh.cpp.bkp => Mesh.h.bkp}    |   0
 Code/Control/Main_Code/{PID.cpp => PID.h}     |  35 +++++----
 .../{Propulsion.cpp => Propulsion.h}          |  11 ++-
 Code/Control/Main_Code/utilities.h            |   3 +-
 18 files changed, 217 insertions(+), 78 deletions(-)
 create mode 100644 Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/Localization.cpp
 create mode 100644 Code/Control/Main_Code/.vs/Main_Code/v16/.suo
 create mode 100644 Code/Control/Main_Code/.vs/Main_Code/v16/Browse.VC.db
 create mode 100644 Code/Control/Main_Code/.vs/ProjectSettings.json
 create mode 100644 Code/Control/Main_Code/.vs/VSWorkspaceState.json
 create mode 100644 Code/Control/Main_Code/.vs/slnx.sqlite
 rename Code/Control/Main_Code/{ColorDetect.cpp => ColorDetect.h} (89%)
 delete mode 100644 Code/Control/Main_Code/Constants.cpp
 create mode 100644 Code/Control/Main_Code/Constants.h
 rename Code/Control/Main_Code/{Debug.cpp => Debug.h} (72%)
 rename Code/Control/Main_Code/{LIDAR.cpp => LIDAR.h} (95%)
 rename Code/Control/Main_Code/{Localization.cpp => Localization.h} (54%)
 rename Code/Control/Main_Code/{Mesh.cpp.bkp => Mesh.h.bkp} (100%)
 rename Code/Control/Main_Code/{PID.cpp => PID.h} (85%)
 rename Code/Control/Main_Code/{Propulsion.cpp => Propulsion.h} (91%)

diff --git a/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/Localization.cpp b/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/Localization.cpp
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/Localization.cpp	
@@ -0,0 +1 @@
+
diff --git a/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/feather_main_test_PID_Lidar_Full.ino b/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/feather_main_test_PID_Lidar_Full.ino
index 3a05f2f..a619a07 100644
--- a/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/feather_main_test_PID_Lidar_Full.ino	
+++ b/Code/Control/Feather Code - Zhaoliang/feather_main_test_PID_Lidar_Full/feather_main_test_PID_Lidar_Full.ino	
@@ -1,8 +1,7 @@
-
 #include <SparkFun_VL53L1X.h>
 #include <Wire.h>
 #include <Adafruit_MotorShield.h>
-
+#include <Adafruit_MPL3115A2.h>
 #include "LedPanel.h"
 #include <Arduino.h>
 #include <string>
@@ -18,7 +17,13 @@ SFEVL53L1X distanceSensor;
 int budgetIndex = 4;
 int budgetValue[7] = {15, 20, 33, 50, 100, 200, 500};
 int LED = LED_BUILTIN;
-// 
+
+float groundLevel = 120;
+float lowHeightBarrier  = 4;
+float highHeightBarrier = 4;
+float ceilingHeight = 20;
+
+Adafruit_MPL3115A2 baro;
 
 //Identify all the global constants that will be used by the robot
 const int BAUD_RATE = 115200;
@@ -37,6 +42,8 @@ int displayTracking = 0;
 int8_t threshold[6] = {0, 0, 0, 0, 0, 0};
 int BASE_SPEED = 70; //125;
 
+int hoverAltitude = -1;
+
 //The debug LEDs that we will be using. Description at:
 const int DEBUG_STATE = 31;
 const int DEBUG_KP = 30;
@@ -86,6 +93,7 @@ void setup() {
   PID_x.SetMode(AUTOMATIC);
   PID_y.SetMode(AUTOMATIC);
   // ============== lidar part =====================
+  /*
   pinMode(LED, OUTPUT);
   digitalWrite(LED, HIGH);
   if (distanceSensor.begin() == 0)
@@ -93,6 +101,12 @@ void setup() {
   distanceSensor.startRanging();
   distanceSensor.setIntermeasurementPeriod(budgetValue[budgetIndex]);
   digitalWrite(LED, LOW);
+  */ 
+  if (!baro.begin()) {
+    Serial.println("Barometer not found"); 
+    while(1);
+  }
+  baro.setSeaPressure(1016);
 }
 
 
@@ -120,19 +134,19 @@ void loop() {
 
   //if the demo is still ongoing, check to see if there is a desired-color blob
   panel.singleLED(DEBUG_STATE, 10, 0, 0); //standby
-  
+  Serial.println("Standby");
   //========== lidar part =========
   int dist = 0;
   int ball_cap = 0;
-  dist = distanceSensor.getDistance();
-  Serial.println(dist);
-  if ((dist < lidar_thres) && (dist > 0)){ // if we capture the ball 
-    ball_cap = 1; 
-    Serial.println("find ball");
-  }else{
-    ball_cap = 2;
-    Serial.println("no ball");
-  }
+//  dist = distanceSensor.getDistance();
+//  Serial.println(dist);
+//  if ((dist < lidar_thres) && (dist > 0)){ // if we capture the ball 
+//    ball_cap = 1; 
+//    Serial.println("find ball");
+//  }else{
+//    ball_cap = 2;
+//    Serial.println("no ball");
+//  }
   // ========== goal finder =========
   int id = -1;
   int tx = 0; int ty = 0; int tz = 0;
@@ -141,10 +155,19 @@ void loop() {
 
   int x = 0;
   int y = 0; 
+  Serial.println("Calculate Altitude");
+  float altitude = altitudeCalc();
+  Serial.println("Altitude Calculated");
+  if (hoverAltitude > 0){
+	moveVertical(150*(hoverAltitude-altitude));
+  }
+  Serial.println("Moved to hoverAltitude");
   
-  if (ball_cap == 1){ // if we catch the green ball
+//  if (ball_cap == 1){ // if we catch the green ball
     // we go find the goal
+  
   if(cam.exe_goalfinder(goal[0],goal[1],goal[2], id, tx, ty, tz, rx, ry, rz)){
+    Serial.println("Goal Found");
     panel.singleLED(DEBUG_STATE, 0, 10, 0);
     Inputx = tx/1.00;
     Inputy = ty/1.00;
@@ -157,6 +180,11 @@ void loop() {
     Serial.print("y: ");
     Serial.println(Outputy);
     */
+	
+	if (hoverAltitude == -1){
+	  hoverAltitude = altitude;
+	}
+	  Serial.println("hoverAltitude Set");
     Serial.println("moving toward goal");
     moveVertical(Outputy);
     moveHorizontal(Outputx, BASE_SPEED);
@@ -164,7 +192,9 @@ void loop() {
       seeking(); 
       Serial.print("catched the ball and seeking");
     }
+/*
   }else { // we keep searching for the green ball
+  hoverAltitude = -1;
   if(cam.exe_color_detection_biggestblob(threshold[0], threshold[1], threshold[2], threshold[3], threshold[4], threshold[5], x, y)){
 //    if (displayTracking > 0){
 //      displayTrackedObject(x, y, RESOLUTION_W, RESOLUTION_H); //THIS NEEDS WORK   
@@ -184,8 +214,8 @@ void loop() {
     seeking();
     Serial.println("seeking the ball ");
   }
-    }
-
+ }
+*/
 
 
 }
@@ -453,3 +483,8 @@ void debugPIDConstants(int lednum, double oldval, double newval){
     panel.singleLED(lednum, 10, 10, 10);
   }
 }
+
+
+float altitudeCalc(){
+  return (baro.getAltitude() - groundLevel);
+}
diff --git a/Code/Control/Main_Code/.vs/Main_Code/v16/.suo b/Code/Control/Main_Code/.vs/Main_Code/v16/.suo
new file mode 100644
index 0000000000000000000000000000000000000000..8433dddbd650d01c91cbda78ae193bedfecb1970
GIT binary patch
literal 15872
zcmeI3&vR2%6vuBt6#NPDLqwEN5kU#IrG*v+%a8Iy8(Js@bvlD>l0u<rI!Viq1vBpb
z2i&@L#m<ErT{@1iaCD1*f(uuU;OBc^ZgcaRq%R4Ai9Mb3^4@*tzH@(^bM86k-rl>r
z?*7+zw)}2FaM-Lg4<4>DPkZHU-o06C%o?6m_Tb^ehkB)ZZkM5nM&O*u@;7H<X28tw
zn=`jGm62hSS+y|dtCpyBKh_ib^ZVc0o`>#>jREm69JA)CISuzo?gq@wCB9PndXrhP
zz+b~&`nLSjD8-1c1;<}}XU#M%$eA=a!dQ%h=>lD)pB-jJn?K!^==}0iJY)(5LuMW>
z(`JhP3om<|k5iKKE0(zz|EDNl0Y>frS!kVJzry|Beg_KouNJ<iN9ng<Gi5J;FM=<D
z8pCzq%iwx&1E^_z4SWuK9aP;d{BA1T>pSAD-(`66Bk(x&|MMH23;N&x1oi(s^0%!2
z3<BUJP_|okK>8}ZeFj_&N^eD@@@Kh^qW^C|C;eBwav=S8Hl^JA<+8^&0-A?vC?8Mn
zHJ@6yqs+f#M(c{!3#}uv|5_8af|4!C$2KqqZU@`JH^Cj?Ti{OcZEzR38+-?R7u*BJ
z!M)&nU<cR<c7glAZm<X34;}z}!9MUH_&)dncnCZU`h7mi^D*!^I1qYwI`r(<t91YP
zX0LHhNAY;F<{JLUIKIX;&-<X`5nwC+hx~rYhFTM$iW!DTb1OIx-#mN=@pbZeLL=si
z^}*&$(t1YufUM$G{?AI@$~HyiKLo98o8SU7KMeoN=8`!A&pFz09j{OR;2aW>#w*P8
zt`n(~yoI3y&r5Rd>}2?Txo63ZEBE=!2i6#j^Q(5q|D0kpW@uTC7OEZlLhb0K|I#t_
zCu;xC6zJ84Av1yZo#5*^Mnb&g^Xi&sY@|Wep&kD61!Wha^8W~0`Ky9s_`Z?=ahrnk
zjYX{p=qg>Af6G_A1(oRha)11f)90kQ2=5t_;{FEGkfk+K3uB)*=V(`kQq9Z+?e${<
z#^3tCS}&vWKMAeult2<TfuvvNPjSaZJL^fbAWbWlhFBf_Kf!0^s|&*XkJ5%TZMcTq
zXYHs+5-P(k=6^k}-Fjb{viRl*w;N<MfG~gQU6K~edgC8ZmcQ<-qyPPU%ISYO{(%Oh
zXhq7}fokp9Pygl5XuXR%{~uQ2f1)6XBaHq$b0OZ<fd02B2Ge{-<u6;=E`<fc{V(#r
zh0IUTis^u`!nL09FV(+N`A^Va>6-EozE)O}!98`%zvf;sfFRue^78MuB&g@E-HgBd
znr&dz@przpz7gghaMCIeWFn5B3A5N|S!UTJmHHt06JPmQQTa<=l`{}j@?l*0vj4aA
z7`d_Xe>E4)03%qKBx|0saMzJAS-l)ShV0L@^}qrTWG^0CmUSUz*XMcbAxM4>*P(ys
zsORi&E&Syt%o%B@JS44=#`GiqiYXLdXuSDZ5=NkK^1mc;1Ok7aBalCGl1BLZmMvk&
zb-dt-?8W}d3z@-3oVCAN55v$^$NbA*clnoU{Es1jfhEkClU73KX~`K{nV~(wicpXI
z$@f&eB8bZWJkl?XkVmeFz`;S}Pc||JMwLGoFX<cd`IGcbV>@L%!6~?;&_Jz(GmO9~
zJ1Z$lgZ!{+6@m4~@^vy$d{h0d;C@vnittwB*vPjUtuHxhgunbI)h~Wywx7qy&}jQ3
zGpayXY<C5M2*oZI^GO>i^S=}IUi0_^c#Le#SYbU<Oe$TE8F{6OyYk%cB0}gT$Fm!{
z1m)5mMQmC2kF<}aI5Lmkj8h|K^BMD2x3bW85yN+q6B@ItScY$FC6ixui!#OHV|a#v
zrsug&P(LW`B)hbi`h8sY@s$p)2cVEnCgCI=X`YSwu?2dO#21*ez4^HXdXqsOG)K9X
znV&rJD*0?qosq^$y7K%cn|4mZy|{@@>Ta3dC>xxyy}8$f79cz~No;!HX9ZU6rxxhb
z6f2O{L0N%cTA)9He|wFYQtmIXZq2xshGkC?%yi4l(seAhv?)iQ6t777er*BiQ@?W7
z8&rg+_)<M<M%$-dqiK3DY1dY_#=7TL>Qm6u)|jWoaRlNQ0ouICH3In}l1B4jZG3Sx
zmy<SbOW>Er$Z6-$A?>1$**#Td4VBebtR}mz{j@wNA46HZF*8c!H3)5->i|*LC^Tb4
zeM9^nF`pLdXh$m8nUnp|ZlS)G=L_SYw0D|)D@BZo7W-Ho$5{21*A({&t~od;2J9jV
zj8h^TmSMe#(~hjYOQSu-y}uw%3?e(XJE~|?_FUOA&Dtd!OS<T9(Eu+|pz&)2w2$}~
z3AG(Po!zOP$pfA7{oNhOcz0?d9q&y}_QgAs6Ma3CeO>8}-VU4QDCMa9h4ya+elBB_
zXHlL~sO$g57oMu$`E_*vFM;;H5_aY_ZzIf}q-u_m*+LfKDint}&8)1WPJxudS{~Qi
zB6?doG^K<Uo*LDkM(claSG#%jgR&d3g^^052g;!gGm1&8OWKu=p)Eb+J<3fY=O1c5
z|Ehfw*WwYr@9cnfx#TU$K4{-lrx4CElhWHj+Xwj-MG<uV!R0=q=3jmO)$+f?R=;Q9
zpTZUexhR)+b}eB4t>*meDk@9Y1l9Oousxr%XJjT8PROW6iZQstNZ9?4n)yrSl=l=Y
zpa1!PpZ}?4|E(4G{}Nc6Q7l||zthh-2bxm;TF?21^L)zbfBCQ0R$8n5^S^!^8{?lp
zDu4dLuTgscA2|P0v;FU<3vT~8-2dR*pVl6EbWL&o$Nmq7?0MAnPaZ@2qdWg&$G^P>
z{{H$K9{=U@KZ+^j<2;`8KRXtA0NP`_V4eKn%&SgVSBAFAuWEX8b@a~d&EI_YRZW#3
z&WumZeD=qex9hF%;vadW_3;08sN+N<{A=y+qo!~6`ET~|f7J6?>-TCof38?fnfXiP
zPh2#p^Edi`j_qL7^(O(XTYuepo5Sj9$G*7J@BTA0h)G@cC5Q@3&fnA=|CFvjI{!US
z?kD)NACE0Q3BGuA75^%Sp#O=C+W$dlRYwr^JA-~s660N_Rf;*4*U;`&dEoqO+eThF
PAFw=CY3av2x>)`n-WuQ@

literal 0
HcmV?d00001

diff --git a/Code/Control/Main_Code/.vs/Main_Code/v16/Browse.VC.db b/Code/Control/Main_Code/.vs/Main_Code/v16/Browse.VC.db
new file mode 100644
index 0000000000000000000000000000000000000000..837165e36d8e259d1a8d00631b75fffec7d37b11
GIT binary patch
literal 290816
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

literal 0
HcmV?d00001

diff --git a/Code/Control/Main_Code/.vs/ProjectSettings.json b/Code/Control/Main_Code/.vs/ProjectSettings.json
new file mode 100644
index 0000000..0cf5ea5
--- /dev/null
+++ b/Code/Control/Main_Code/.vs/ProjectSettings.json
@@ -0,0 +1,3 @@
+{
+  "CurrentProjectSetting": "No Configurations"
+}
\ No newline at end of file
diff --git a/Code/Control/Main_Code/.vs/VSWorkspaceState.json b/Code/Control/Main_Code/.vs/VSWorkspaceState.json
new file mode 100644
index 0000000..f814bde
--- /dev/null
+++ b/Code/Control/Main_Code/.vs/VSWorkspaceState.json
@@ -0,0 +1,7 @@
+{
+  "ExpandedNodes": [
+    ""
+  ],
+  "SelectedNode": "\\Constants.h",
+  "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git a/Code/Control/Main_Code/.vs/slnx.sqlite b/Code/Control/Main_Code/.vs/slnx.sqlite
new file mode 100644
index 0000000000000000000000000000000000000000..8e3e7640afad073acdd4ee7734b574de7781eee4
GIT binary patch
literal 90112
zcmeI5TWllOd4Oj`iWDi5htgi?STQ`lVa4u_mbc+$9RuZ3)Goagr6s9dZ#IlDoH<-E
zOOY~3t*zDts@>Q~W7MsIJmsl<aSS9y8>A>w^dTwQBB+bDDA1yHb9re4w1C?HZJHo;
z3-p}1&yZTm+FHKkAMB1e=RcSKeCPkqoXe0?yIO7!G1uz#x5XisWWo%~GQY@i48!=y
z|I_5Zew-j5-1-Ii%UV7k^wGyGrMPJt8NEy6%%gV$ZwA7%SNyN}UY+@_*X6nDdVT6=
zQ`M<w56S|<KQaVnsHXc*hP;vMJiC9j-Iei+wY}|Tud|F>?QVP6?sYfSkKJ1<?G7%<
zo27A)P@!7P*Na@KvRr(QyLqTQ8bLotj<w2Y{06sp(_U;Nx_>I@jTDHQm&U7E5x4Pp
z<w6sbGgD4biAHR2g|%{-*0r)$$k&R|m!AoEBRtQ3kspf94t7@Ec^%Z0spl`2i(_gY
z^e?JhMj)2t2H{&TUMg0(^=fG~U%kOyDc<1n8}+qPg=D*0tkj8C<o`ywd``<{z2Cdj
zmT}*jT92bfp^Z>2t`w`qN}*WeZt5wD-C=vU*H|<HNET5u32C>D^<@fzU?}95i#E}6
zv0OAox-u%j%C&s8a5-OHOb9~MP}sp$PqMPx>FizI6+7)#8_VM|u(yYv?h3IIlb2p&
zU7D99JQ%c_?GCM?fz=t!VS^*_%qm*}Qb(!n4TgBzK<EsjC^<9rQCOCHl1Tlt+I!*P
z3h0pvz0U4-cQjtmAKgDc>y2y@zuHv%O3_pjyItHbh|(6`993QQGH1kq-OHTf1M{)?
zoHGrvz0uMe(R&+y#p7OSC?4lb<-DG?dz@2D%GW*4DYE*^Av{iN&~ZACSdPu(lyWB<
z%!ApB?$*{y>Gp2ZMvrJ1uO2Ys|Kpv!zPCeqNxi4ii_kr<-rmN8p}4)%;ArPjFRhZE
zl=N5B5_z9Daz4u5MT#Zr#nSvX=}8Yz74vJ&x=|@z-7xMvdK@E>#k_QxRxxsq(L+>~
z9UX}wy@vY(;%Fm1|6OLr8;M5QdrvENsAr~TZ@=={ZO|^XSfDPjHqs$1Pqhp~VYNDD
zHyfMS%j)GCRXt2%+GH2J-bj(xo6Kp*o9kj9cZZv_+jh!k#<rg`mNf@UQ#zy30mHbv
z^Eq-mQ&ey!ptih!(c_KWCOzMt+4EVvP%C;grKSI~ME7d-(S|_IWD|0mP`CS3;?%Tt
zSTs^Br7~V&&jf|dloOO22R?f5vRmz>3uY&6q2<(b+U_7uvBgE4qNBNrs<Ub3hZu<*
z*al`_r}SfVJVlQq3<(~rhc68%n+A8WG&&3{i-X}>bAbDIFc}t^J+C%e<d%yo`Hga&
zlXm-x#}4&wnmBpS<&DG_*!@QpH>u&_u-(0-__Q|ORzuu&dm4?Wn2|EvR}&oMw9)k`
zPvq=b_J(3PgXhT@4Q~$c^Sii9Ms4;>m(6Y*!o@Bz{&OT{bpI0TjVvs%cd?SErknO>
z%9h7XE!1LiTF9|k+BLDWOWM(4of~AXHs=qLvnTLL2K@{A7Wzuyt-x2v1sp&C2mk>f
z00e*l5C8%|00{it5!j#cOf!Z323gJd9F~TKUbof0wcA&giECu)*Ou@v(<$cTT7-+c
z?T&1VHF*32ceA0a)jeJtiv8j4juw|rEv?dmI#IMoBB{G%y*}vwmB*&tOkr*rH+OH<
z#r`ck9Bh!ur#6uqT)}%c8!vy_J<UA*s*g@hOXj9hO<jB*#I%E_e;p@NhMRIu#wk9L
zkT9Q0WaGRj$Z1|`#xmJVE`?JhIMGa{a&jxpr<-w^kH_U4Pb3n}Q_dxYY)&MyB*s!K
zosjr=DxKt0nQV*~lakEiv=GO!oRCRl65LECq;xjJlY%5ZC8cFvOo(wlDQ7dOW=l-S
zDVfhSlTBHWlYBOrP7s|kGEa&~@tIVjmB5LFkd_jBHYOx90#QOv$5VVN-V#WpT#^^E
zsbmYMlUU3q_*}D<%{6lpk8?69E|y7>;*wO?Of!+mwuHEp;YFMvRgwf=!igBkNf!BB
zT#ON&QYkT$7Kp+vUP>pj>5L@t>5Q1=Q#mQki#a()(BM`wos+Z8R)#=prLsaQ!^fI9
zO=>3-HA#JWDV~s9NkPUqm*YvzQdum-cqyABic13Kv*~o2&!poxA(Oht;+U6niFiU1
zWImS>L{c2dPRs~NKG71g>1M0hie)mq+>$avE}rAFvPd{JQxe~lQvx4P3v!|<wbHG0
zoX2uDPFgR+Cu4%Zr_xfK&$V!ja7s&3PDsX*@feR=xh!txVtlieYmx>g_Rwq!2|kvM
z#S*cYloN@9twd683e5zckz-la3dBq-r&&QWjZ;a9Z)F52n`y>)Sr$m`TIm>{OA{-Q
z<dz&uX9=D}f<%%rtu0YkCPs%7A}_|1q#lVxycy5rNE_nQE;n-?DP~O^h;B9&db{0W
z{LGY_;gf|v7Kd0~>u>DH^g}#$J}#V3#1e5X9>0*vT!^Jlvu@^0q(*jNwnc4KHolZx
z66pNjjeeg&|B1ej-Xb6100KY&2mk>f00e*l5C8%|00;m9AOHkD6a-GXT|BEiw_<s)
zGC1dQMSWy(KzTe@eQ50DlpfLYsLcE<>sny7r8AG8)X0Oj81#?m3+PYLn`jID=tEIS
zPyz@50U!VbfB+Bx0zd!=00AHX1c1Otkies^0;@gxVtYbHdyd9K<@b5KWqQH&G<(34
zE$&mU^X$l@0j`r|?(cjsU@Gi7<Fh>kK==RWLr>D@|Njd80s1ofRV1MmbQYZq{dedG
zp>K!28hS1CLg+K05{U!{5C8%|00;m9AOHk_01yBIKmZ7QtO-0Z?_mVi=h5b``nN8Y
zJ~!xf=Vspi&A_Ktum9!ToQFBV%y^dW43waYKYjfZVGr{J<MWUSFZqd<?r^ZQMMdZT
z_{*10ArG@aM9P%c3|<I%m@`U>POra=hvZu)rtn12!$gR1y|iowelp-;q9l<1GEt}f
zOUidsOzFe39_A^Uq~F`w?a*IcF=Y?=J<MZ7wu%Q^OIu6L+dGDGK2^DLX*pjt6MSMu
zt<LU{{>)PwTdK3*RrNMS(vFecf=3muitX-Zp(o>|cDJXO_0Y7cMH$QMVi$MJ;vROZ
zx*HNpmZx1F<`JTMf&3srUo_J^G^OUIg<DgwYKo;>?cr^V4dv+m|9t2j2K^XKqaUJw
zKv5J#kD%|MZ=x4b5xs%h=;_cq=sENy^!bmqkwfKx01yBIKmZ5;0U!VbfB+Bx0zlwn
zL*OBopzp!k)-dM1t`jU-x0pk&Cs@m3MR=AxD6g$hpgGqWBC{+@gnX_DtE@!?=Uq|O
zz5o#jyPl$D8LJMnA=hK9xzymNS!?SHK3c4~a<DZ+i!!gtB;HFyY|958nw_ySur*DK
zGcHLAcfj=stFI2YXk>FqU~1O&h)-V!Q0D*W4F>%W`YHMk^l#)jfPX?iKyRbJMSo3x
z58%(xx6vPw=K{WtzD6R!0R(^m5C8%|00;m9AOHk_01yBIKmZ85j|8S&EIT*vb}{T6
zJ%#BB(Nl<?g7g%ir&)UP)02;$X6VUFPab-jrYAQ&x#(%i<zjs5{{P$L_y0maCNuxP
zLkpq*MIrPj=o_eqa_G0vCRz%;jaJdGqnF;t3PRRE00;m9AOHk_01yBIKmZ5;0U!Vb
zjz-{Nx4@3w?Vp>Uai3t6{r<4~3C6bJA8;=)#*Y8I`wW#@xBUI?2&3)!pKwPR=cfOh
z`za!}?)oG5V~lm%UnxM}_g9KHH~P0`loHJVy7R9D*|+|cJdMr%t!brH<C<>%2i=bl
z&9(0axRm&o?f(Fg8vFnB`~NKZbB6qb0|)>CAOHk_01yBIKmZ5;0U!VbfB+EquoDo-
z3;s6F9OnIo@$^z`DH#{y!csa-_y1Y+7DN8Q0R(^m5C8%|00;m9AOHk_01yBIKmZ7Q
z=m`k!jWfRYJpZTr|3P$`LH~}vN51d>P4bI>UqW}$4*D!AqYG$}h~NMMKmZ5;0U!Vb
zfB+Bx0zd!=00AKIF(nWtuNq)|tS9WEztf-mtoz9@dCve1L2AgSfAUV4yjy^Vgw&85
zKfD_zZxo;*K{e#L-|>dYn*?Y`Kn=ORx)mlb5uhQnYDo2VCrsWQKtp_L$ko~Jg~<y8
zXoy!0S^L_RFnLP=4Vh6xR)6m|!sP7$G{mKbtbFx%!{nU+G{mij6rVaBCT|0vA=7He
zr=GkWCT{_tAyaBd`i(id{~tu(V9>khU(t`yf1&S_Ujg`g^f%})$Z!9B3;iJx!2tw-
z01yBIKmZ5;0U!VbfB+Bx0zd!=96tg2V}RixJ);0Uhi2(H=%?p^kDg~|=-KC`XD^xl
zv+T??J-giW>~_)f^pxAh`ljgqKNCLwN<fJ~00;m9AOHk_01yBIKmZ5;0U!VbfWYw)
zp!@$Y|35z7P!bRT0zd!=00AHX1b_e#00KY&2mpZ(f&k3_KM3kjCJ+DuKmZ5;0U!Vb
zfB+Bx0zd!=0D<Er0MGv)FK;Lf2mk>f00e*l5C8%|00;m9AOHk_zz0Eq&j0;h7lYEF
ze+~@-ZwA7%SNyN}UY+@_*X6nDdVT6=Q`M<wKM2jB%#SJo_tzuWd3OJ5yDQ@tYkS+x
zUS}D%+THfB-Ro|uAG^0!+8tbyH%sFpp+dEouNS#eWx4nqck@trG=hGP9BY-)_ziCH
zroGrkbpKS)8z~SqFO65TB5vdH%7rE<XQrH>5{=m43Tx#ut!rhikgpY^FFzCTMtGk6
zB0m(H9qg>S^E#+0Q_o*47su2*=wDR1j6f{O4Z^oxyi}}m>($a~zIubZQoO<CH|lGp
z3dwf0Sg8}O$p4LU`J9%^dcSw4E#tm5wH`-}LK~r4Tq#zIl|r$`-PBVQyTkTyud!$Z
zkSwBR64GuP>&p}b!BEIA7j2^DV!3FFbY)b4m23HG;c~vZm=J`hp|FFio@8aW)7iVa
zD|XtgHkQX_U~dmS-4$XbCNI6lx->6Icra);+Z|d(1FJKd!v;s<nN_v|q>fVC8w~Nb
zfzTO5QF3PLqp&RZB$4`OwfDlo70@FUdY#?v?r6NAKe~T@)*IO*ezmFim7=L6cDuM=
z5Tz}=IjXwqWzL8JyO%k|2j*k(IcFMTd!wZ{qW3oZipRauP(03=%6UC&_c*7Rl&^c7
zQ)Km-LwKClpyPBNu^gMnDdkQ!m<O{L-L0*a((T=*jULf3UOiyM|HnIdeQ$^Kl6p_2
z7omGzy}gYGLveej!O_m6URotRDe14MCGtLR<b0I9ixf-Li>3K((vu#bD(2Ukb)!<c
zx?$XT^f*Q$i+SlXtzzUJqlc&}J310WdJXpn#L-52{=3YKHxiAq_nublP|r-w-hSn?
z+n`-&u|Qp5ZKOk3o@yC}!fJKQZZ<Ztm(|NPs(P5jw8<`by^$iXH<{CrH`m2J?hZF;
zx9yb8jBP(>ENc#yrgTQ51BP*T=X2zCrl{adKy7*dqQ@J#O?tjPv*)vTp;q*0N=yG|
ziSE_vqYZ(a$tL7Bp>Fr7#HnfPuxO-MN@cvlo(T$@DJLj54t(_9Ww+W%7tBuDLd&V=
zwB13RVvCD7MMrZLRcF)64>1xsuno+<PU*+!c#0lJ7!o{K4__KkHVy7#X>=G^76-$%
z<^cEaU@|N+dtPm{$SoIF@*CwkC++qXj~(jWG;#8t%NvO=u=|fHZc@X;VY_=v@o8<m
zt%kVm_B0w#F(YNTuO>LiX`|~?p2*p=><z_o2G5f*8r~e>=XY_JjN0s%E}Pvrgo|Bb
z{O3r@=>8?v8(COj?_woSO*ie&lr4{&TByb3w2))7v}<B#m$ak9I@Oz`GXG~@V^AgV
z+U!qe*Jk40mptEbmtDV20+0Q8C4AC*isxruy?&>SU!Y_4b#b_*+yUEo;Jns2Un>=_
zb50p24ubycrTS&!H-(LAt#qw88Yf@VhHBKmYGjI0sB@$J0hh0F7sY{X3|^AYaR)gt
zjbBjhUX7yO!D$lOP1wZ4EpDZ{wmMR(>A7S)vQ{xKRV~eHs`>iT81?K?R%%P{UEPr^
z6!l+vi97R|GaUJ|zGPIB)Wcfq;g*?Jt)HVQY3y|~PN`BMv(RVBymN#Ejk!`I(|R*D
zsmz#Gdd8{`?R0ePq{|8V_13K|{lYni-UGuhg8us{dl)5&st4&d+D61cFOzBVcw^y8
zHDw^Xzj(qMxfx~mZ#YI3%i>Txa290pq0vs;yHdOGz&ys@rfGJxqc!u;F*l;0e{o(J
z!2a4<$32=RG853NQ}#a6F0^!&cEQnlOfwHdRr40B-LOpKI>K%C0cYO&VA)zbeVSvt
z>+2EKYTR!n<$g0M^ENPf9DjsijdruC7oW2)9M#4CEj%1|7dl|2rqJsS@r#E^K_?E0
zIkM`Iw5>WQ!^0|WVbU2$c+>bq?Ll97G;PBWpFGG}j2Ppy8tX1b8q!+EXH@|*VMv50
zDZPw$a90+)!wE{Cn5^{JtR^b$NY#kGvVgpiWRiW=vRYy%J%(xcAa^&IjP-d#I_kKG
zn8oVrC%W5=^RMxKucw&oXzzK+(#iAxw<j{IbCe}O1Gi?NrfwhXM8u{S9S}A+qkB1^
z^LQV78)N0kzAmM$IXxNj!sbVb?&(;%7U!nLfipGO{D94mBdv5i;1EpT*ZBF{{DANO
zANwK)6bJ->01yBIKmZ5;0U!VbfB+Bx0zlx{3BdgS*pWklKmZ5;0U!VbfB+Bx0zd!=
z00AHX1dg2m{QlpuBZmTk01yBIKmZ5;0U!VbfB+Bx0zd!=96JHn|37x*P#_Qh0zd!=
W00AHX1b_e#00KY&2mpa&C-8qC_+=dc

literal 0
HcmV?d00001

diff --git a/Code/Control/Main_Code/ColorDetect.cpp b/Code/Control/Main_Code/ColorDetect.h
similarity index 89%
rename from Code/Control/Main_Code/ColorDetect.cpp
rename to Code/Control/Main_Code/ColorDetect.h
index 8805715..282f542 100644
--- a/Code/Control/Main_Code/ColorDetect.cpp
+++ b/Code/Control/Main_Code/ColorDetect.h
@@ -1,6 +1,14 @@
+#ifndef COLORDETECT_H
+#define COLORDETECT_H
+
 #include <string>
+using namespace std;
+
+// Function Declarations
+void translateCodetoThreshold(int code);
+void setColorThreshold(String msg, int8_t thres[], int arraySize);
 
-void ColorDetect_Setup(){
+void ColorDetect_Setup(int findcolor){
   translateCodetoThreshold(findcolor);
 }
 
@@ -75,3 +83,5 @@ void setColorThreshold(String msg, int8_t thres[], int arraySize){
     }
   }
 }
+
+#endif
diff --git a/Code/Control/Main_Code/Constants.cpp b/Code/Control/Main_Code/Constants.cpp
deleted file mode 100644
index f332f03..0000000
--- a/Code/Control/Main_Code/Constants.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Identify all the global constants that will be used by the robot
-const int BAUD_RATE = 115200;
-const int MAX_SPEED = 255;
-const int SEEKING_SPEED = 70;
-const double RESOLUTION_W = 320.0;
-const double RESOLUTION_H = 240.0;
-const int ENDDEMO_TAG = 0;
-const uint32_t THISNODE_ID = 88789821;
-int BASE_SPEED = 50; //125;
\ No newline at end of file
diff --git a/Code/Control/Main_Code/Constants.h b/Code/Control/Main_Code/Constants.h
new file mode 100644
index 0000000..f43c1dc
--- /dev/null
+++ b/Code/Control/Main_Code/Constants.h
@@ -0,0 +1,30 @@
+#ifndef CONSTANTS_H
+#define CONSTANTS_H
+
+#include <vector>
+
+// Identify all the global constants that will be used by the robot
+const int BAUD_RATE = 115200;
+const int MAX_SPEED = 255;
+const int SEEKING_SPEED = 70;
+const double RESOLUTION_W = 320.0;
+const double RESOLUTION_H = 240.0;
+const int ENDDEMO_TAG = 0;
+const uint32_t THISNODE_ID = 88789821;
+int BASE_SPEED = 50; //125;
+
+// The debug LEDs that we will be using. Description at:
+const int DEBUG_STATE = 31;
+const int DEBUG_KP = 30;
+const int DEBUG_KI = 29;
+const int DEBUG_KD = 28;
+const int DEBUG_BASESPEED = 27;
+const int DEBUG_THRESHOLD_MIN = 26;
+const int DEBUG_THRESHOLD_MAX = 25;
+const int DEBUG_VERTICALSPEED = 17;
+const int DEBUG_RSPEED = 16;
+const int DEBUG_LSPEED = 24;
+
+int8_t threshold[6] = {0, 0, 0, 0, 0, 0};
+
+#endif
diff --git a/Code/Control/Main_Code/Debug.cpp b/Code/Control/Main_Code/Debug.h
similarity index 72%
rename from Code/Control/Main_Code/Debug.cpp
rename to Code/Control/Main_Code/Debug.h
index c29f469..4b51312 100644
--- a/Code/Control/Main_Code/Debug.cpp
+++ b/Code/Control/Main_Code/Debug.h
@@ -1,19 +1,13 @@
+#ifndef DEBUG_H
+#define DEBUG_H
+
 #include "LedPanel.h"
-#include "Constants.cpp"
-
-LedPanel panel(NUMPIXELS,PIN_PIXELS);
-
-//The debug LEDs that we will be using. Description at:
-const int DEBUG_STATE = 31;
-const int DEBUG_KP = 30;
-const int DEBUG_KI = 29;
-const int DEBUG_KD = 28;
-const int DEBUG_BASESPEED = 27;
-const int DEBUG_THRESHOLD_MIN = 26;
-const int DEBUG_THRESHOLD_MAX = 25;
-const int DEBUG_VERTICALSPEED = 17;
-const int DEBUG_RSPEED = 16;
-const int DEBUG_LSPEED = 24;
+#include "Constants.h"
+
+LedPanel panel(NUMPIXELS, PIN_PIXELS);
+
+// Function Declarations
+void debugPIDConstants(int lednum, double oldval, double newval);
 
 void Debug_Setup(){
   panel.beginPanel();
@@ -44,6 +38,23 @@ void Debug_GoalSeeking(){
   panel.singleLED(DEBUG_STATE, 10, 10, 10);
 }
 
+void Debug_SetPIDConstants(double &p_constant, double &i_constant, double &d_constant, double new_p, double new_i, double new_d){
+  unsigned long t = millis();
+  debugPIDConstants(DEBUG_KP, p_constant, new_p);
+  debugPIDConstants(DEBUG_KI, i_constant, new_i);
+  debugPIDConstants(DEBUG_KD, d_constant, new_d);
+
+  p_constant = new_p;
+  i_constant = new_i;
+  d_constant = new_d;
+  
+  while(millis() < t+2000); //debugging LED will light up for 2 seconds
+  
+  panel.singleLED(DEBUG_KP, 0, 0, 0);
+  panel.singleLED(DEBUG_KI, 0, 0, 0);
+  panel.singleLED(DEBUG_KD, 0, 0, 0);
+}
+
 void displaySpeed(int lspeed, int rspeed){
   //Serial.println("display speed");
   if (lspeed < 0){
@@ -84,3 +95,5 @@ void debugPIDConstants(int lednum, double oldval, double newval){
     panel.singleLED(lednum, 10, 10, 10);
   }
 }
+
+#endif
diff --git a/Code/Control/Main_Code/LIDAR.cpp b/Code/Control/Main_Code/LIDAR.h
similarity index 95%
rename from Code/Control/Main_Code/LIDAR.cpp
rename to Code/Control/Main_Code/LIDAR.h
index 4c08a21..c5cab0b 100644
--- a/Code/Control/Main_Code/LIDAR.cpp
+++ b/Code/Control/Main_Code/LIDAR.h
@@ -1,3 +1,6 @@
+#ifndef LIDAR_H
+#define LIDAR_H
+
 #include <SparkFun_VL53L1X.h>
 
 // LIDAR
@@ -30,3 +33,5 @@ float LIDAR_BallCapture(){
     Serial.println("no ball");
   }
 }
+
+#endif
diff --git a/Code/Control/Main_Code/Localization.cpp b/Code/Control/Main_Code/Localization.h
similarity index 54%
rename from Code/Control/Main_Code/Localization.cpp
rename to Code/Control/Main_Code/Localization.h
index ee447c4..54be7c9 100644
--- a/Code/Control/Main_Code/Localization.cpp
+++ b/Code/Control/Main_Code/Localization.h
@@ -1,4 +1,7 @@
-#include "Constants.cpp"
+#ifndef LOCALIZATION_H
+#define LOCALIZATION_H
+
+#include "Constants.h"
 #include <Adafruit_MPL3115A2.h>
 
 float groundLevel = 120;
@@ -8,7 +11,12 @@ float ceilingHeight = 20;
 
 Adafruit_MPL3115A2 baro;
 
-void LocalizationSetup(){
+float hoverAltitude = -1;
+
+// Function Declarations
+float altitudeCalc();
+
+void Localization_Setup(){
   if (!baro.begin()) {
     Serial.println("Barometer not found");
     while(1);
@@ -16,16 +24,27 @@ void LocalizationSetup(){
   baro.setSeaPressure(1016);
 }
 
-void LocalizationInit(){
+float Localization_Init(){
   float altitude = altitudeCalc() - groundLevel;
+  return altitude;
 }
 
-void Localization_GoalFound(){
+void Localization_GoalFound(float altitude){
   if (hoverAltitude == -1){
     hoverAltitude = altitude;
   }
 }
 
+void Localization_BallDetected(){
+  hoverAltitude = -1;
+}
+
+float altitudeControl(){
+  return hoverAltitude;
+}
+
 float altitudeCalc(){
   return baro.getAltitude();
 }
+
+#endif
diff --git a/Code/Control/Main_Code/Main_Code.ino b/Code/Control/Main_Code/Main_Code.ino
index bb99f2f..a359a37 100644
--- a/Code/Control/Main_Code/Main_Code.ino
+++ b/Code/Control/Main_Code/Main_Code.ino
@@ -1,23 +1,34 @@
+#include "PID.h"
 #include <string>
 #include <vector>
 #include <Wire.h>
+#include "Debug.h"
+#include "LIDAR.h"
 #include "Camera.h"
-#include "Constants.cpp"
 #include <Arduino.h>
+#include "Constants.h"
 #include "utilities.h"
+#include "Propulsion.h"
+#include "ColorDetect.h"
+#include "Localization.h"
 // #include "Adafruit_VL53L0X.h"
+using namespace std;
 
 //Identify all the variables that will be used by the robot
 int findcolor = 1; //based on the same code from openMV. Determine the color you want to find
 char newPTCL = '1';
-int pause = 0;
+int pauseState = 0;
 int displayTracking = 0;
-int8_t threshold[6] = {0, 0, 0, 0, 0, 0};
 
 int ballCapture = 0;
 int ballDetect  = 0;
 int goalFind    = 0;
 
+float altitude  = 0;
+
+// Function Declarations
+
+
 //Create the interface that will be used by the camera
 openmv::rpc_scratch_buffer<256> scratch_buffer; // All RPC objects share this buffer.
 openmv::rpc_i2c_master interface(0x12, 100000); //to make this more robust, consider making address and rate as constructor argument
@@ -30,26 +41,26 @@ void setup() {
   AFMS.begin();  // create with the default frequency 1.6KHz
   interface.begin(); //communication between ESP and OpenMV
     
-  ColorDetect_Setup();
+  ColorDetect_Setup(findcolor);
   Debug_Setup();
   PID_Setup();
   LIDAR_Setup();
   Localization_Setup();
-  #ifdef MESH_CPP
+  #ifdef MESH_H
     Mesh_Setup();
   #endif
 }
 
-void loop() {  
+void loop(){
   Debug_LoopStart();
-  #ifdef MESH_CPP
+  #ifdef MESH_H
     MeshUpdate();
   #endif
   
   /* --------- PAUSE STATE --------- */
-  while(pause == 1){
+  while(pauseState == 1){
     Serial.println("pause");
-    #ifdef MESH_CPP
+    #ifdef MESH_H
       Mesh_PauseState();
     #endif
     Debug_PauseState();
@@ -66,11 +77,13 @@ void loop() {
   /* -------- STANDBY STATE -------- */
   Debug_StandbyState();
   /* ------ END STANDBY STATE ------ */
+
+  altitude = Localization_Init();
   
   /* --------- INTERRUPTS ---------- */
-  altitudeBarrier();
+  altitudeBarrier(altitude);
   
-  if(insideWindyArea){
+  if(insideWindyArea()){
     // leave windy area
     // flip horizontal inputs
   }
@@ -86,7 +99,7 @@ void loop() {
 	  if(goalFind){ // Ball captured and Goal found
       Debug_GoalFound();
       PID_GoalFound(tx/1.00, ty/1.00);
-      Localization_GoalFound();
+      Localization_GoalFound(altitude);
 	    Propulsion_GoalFound();
     }
     else { // Ball captured but Goal not found
@@ -97,6 +110,7 @@ void loop() {
   else { // Ball not captured
 	  if(ballDetect) { // Ball not captured but detected
       Debug_BallDetected();
+      Localization_BallDetected();
       PID_BallDetected(x/1.00, y/1.00);
       Propulsion_BallDetected();
     }
@@ -116,3 +130,7 @@ void altitudeBarrier(int altitude){
     moveVertical(((ceilingHeight - highHeightBarrier) - altitude)*255/highHeightBarrier);
   }	
 }
+
+float insideWindyArea(){
+  return 0;
+}
diff --git a/Code/Control/Main_Code/Mesh.cpp.bkp b/Code/Control/Main_Code/Mesh.h.bkp
similarity index 100%
rename from Code/Control/Main_Code/Mesh.cpp.bkp
rename to Code/Control/Main_Code/Mesh.h.bkp
diff --git a/Code/Control/Main_Code/PID.cpp b/Code/Control/Main_Code/PID.h
similarity index 85%
rename from Code/Control/Main_Code/PID.cpp
rename to Code/Control/Main_Code/PID.h
index 1cd5a69..fa548ce 100644
--- a/Code/Control/Main_Code/PID.cpp
+++ b/Code/Control/Main_Code/PID.h
@@ -1,3 +1,9 @@
+#ifndef PID_H
+#define PID_H
+
+#include <string>
+#include "Debug.h"
+#include "Constants.h"
 #include <PID_v1.h>
 
 double Setpointx, Inputx, Outputx;
@@ -9,6 +15,9 @@ double Kpy=2, Kiy=0.1,  Kdy=0.25;
 PID PID_x(&Inputx, &Outputx, &Setpointx, Kpx, Kix, Kdx, DIRECT);
 PID PID_y(&Inputy, &Outputy, &Setpointy, Kpy, Kiy, Kdy, DIRECT);
 
+// Function Declarations
+void Debug_SetPIDConstants(double &p_constant, double &i_constant, double &d_constant, double new_p, double new_i, double new_d);
+
 void PID_Setup(){
   Setpointx = 160.0; 
   Setpointy = 120.0; //the values that the PID will try to reach
@@ -25,10 +34,10 @@ void PID_GoalFound(int InputxVal, int InputyVal){
   PID_x.Compute();
   PID_y.Compute();
 
-  Serial.print("Outputx: ");
-  Serial.println(Outputx);
-  Serial.print("Outputy: ");
-  Serial.println(Outputy);
+//  Serial.print("Outputx: ");
+//  Serial.println(Outputx);
+//  Serial.print("Outputy: ");
+//  Serial.println(Outputy);
 }
 
 void PID_BallDetected(int InputxVal, int InputyVal){
@@ -111,18 +120,8 @@ void setPIDConstants(String msg, double &p_constant, double &i_constant, double
     }
   }
 
-  //DEBUGGING SECTION
-  unsigned long t = millis();
-  debugPIDConstants(DEBUG_KP, p_constant, new_p);
-  debugPIDConstants(DEBUG_KI, i_constant, new_i);
-  debugPIDConstants(DEBUG_KD, d_constant, new_d);
-
-  p_constant = new_p;
-  i_constant = new_i;
-  d_constant = new_d;
-  
-  while(millis() < t+2000); //debugging LED will light up for 2 seconds
-  panel.singleLED(DEBUG_KP, 0, 0, 0);
-  panel.singleLED(DEBUG_KI, 0, 0, 0);
-  panel.singleLED(DEBUG_KD, 0, 0, 0);
+  // DEBUGGING SECTION
+  Debug_SetPIDConstants(p_constant, i_constant, d_constant, new_p, new_i, new_d);
 }
+
+#endif
diff --git a/Code/Control/Main_Code/Propulsion.cpp b/Code/Control/Main_Code/Propulsion.h
similarity index 91%
rename from Code/Control/Main_Code/Propulsion.cpp
rename to Code/Control/Main_Code/Propulsion.h
index 0854722..663c317 100644
--- a/Code/Control/Main_Code/Propulsion.cpp
+++ b/Code/Control/Main_Code/Propulsion.h
@@ -1,8 +1,15 @@
-#include "Constants.cpp"
+#ifndef PROPULSION_H
+#define PROPULSION_H
+
+#include "Constants.h"
 #include <Adafruit_MotorShield.h>
 
 int zero = 0;
 
+// Function Declarations
+void moveVertical(int vel);
+void moveHorizontal(int vel_hori, int base_speed);
+
 // Create the motor shield object with the default I2C address
 Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 
 Adafruit_DCMotor *motor_VL = AFMS.getMotor(2); 
@@ -75,3 +82,5 @@ void moveHorizontal(int vel_hori, int base_speed){
   motor_HL->setSpeed(min(MAX_SPEED, abs(rspeed)));
   motor_HR->setSpeed(min(MAX_SPEED, abs(lspeed)));
 }
+
+#endif
diff --git a/Code/Control/Main_Code/utilities.h b/Code/Control/Main_Code/utilities.h
index a1ad9ad..cfd5b6b 100644
--- a/Code/Control/Main_Code/utilities.h
+++ b/Code/Control/Main_Code/utilities.h
@@ -1,8 +1,7 @@
 #ifndef UTI_H
 #define UTI_H
 
-void lab2rgb( float l_s, float a_s, float b_s, float& R, float& G, float& B );
+void lab2rgb(float l_s, float a_s, float b_s, float& R, float& G, float& B );
 void translateCodetoThreshold(int code);
 
-
 #endif
-- 
GitLab