Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of 1TEST_Flight_Protocol by
main.cpp@0:c466d770ffa7, 2017-05-17 (annotated)
- Committer:
- skyyoungsik
- Date:
- Wed May 17 11:02:27 2017 +0000
- Revision:
- 0:c466d770ffa7
- Child:
- 1:e8a99f19604e
test1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| skyyoungsik | 0:c466d770ffa7 | 1 | #include "mbed.h" |
| skyyoungsik | 0:c466d770ffa7 | 2 | #include "ROBOFRIEN_GUI.h" |
| skyyoungsik | 0:c466d770ffa7 | 3 | #include <math.h> |
| skyyoungsik | 0:c466d770ffa7 | 4 | |
| skyyoungsik | 0:c466d770ffa7 | 5 | #define PI 3.14159265359 // This value will be used when calculating angles |
| skyyoungsik | 0:c466d770ffa7 | 6 | |
| skyyoungsik | 0:c466d770ffa7 | 7 | Timer MainTimer; |
| skyyoungsik | 0:c466d770ffa7 | 8 | DigitalOut myled1(LED1); |
| skyyoungsik | 0:c466d770ffa7 | 9 | DigitalOut myled2(LED2); |
| skyyoungsik | 0:c466d770ffa7 | 10 | DigitalOut myled3(LED3); |
| skyyoungsik | 0:c466d770ffa7 | 11 | DigitalOut myled4(LED4); |
| skyyoungsik | 0:c466d770ffa7 | 12 | ROBOFRIEN_GUI GUI; |
| skyyoungsik | 0:c466d770ffa7 | 13 | int cnt; |
| skyyoungsik | 0:c466d770ffa7 | 14 | int main() { |
| skyyoungsik | 0:c466d770ffa7 | 15 | GUI.Configuration_init(); |
| skyyoungsik | 0:c466d770ffa7 | 16 | while(1) { |
| skyyoungsik | 0:c466d770ffa7 | 17 | GUI.pc_rx_update(); |
| skyyoungsik | 0:c466d770ffa7 | 18 | if(GUI.rx_bool() == true){ |
| skyyoungsik | 0:c466d770ffa7 | 19 | cnt ++; |
| skyyoungsik | 0:c466d770ffa7 | 20 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 21 | //////////////////////////////////////////// [M/S] Mode and State /////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 22 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 23 | GUI.Mode1 = 8 * sin( PI/180 + cnt/50.0) + 8; |
| skyyoungsik | 0:c466d770ffa7 | 24 | GUI.Mode2 = 8 * cos( PI/180 + cnt/50.0) + 8; |
| skyyoungsik | 0:c466d770ffa7 | 25 | GUI.MissionState = 8 * sin( PI/180 + cnt/50.0) + 8; |
| skyyoungsik | 0:c466d770ffa7 | 26 | GUI.CurrentMarker = 11 * cos( PI/180 + cnt/100.0) + 10; |
| skyyoungsik | 0:c466d770ffa7 | 27 | GUI.Bat1 = 50 * sin(PI/180 + cnt/50.0) + 50; // 21.6 ~ 24.6 ( 6cell ) |
| skyyoungsik | 0:c466d770ffa7 | 28 | GUI.Bat2 = 50 * cos(PI/180 + cnt/50.0) + 50; // 11.1 ~ 12.6 ( 3cell ) |
| skyyoungsik | 0:c466d770ffa7 | 29 | // Button State is change automatically in "ROBOFRIEN_GUI.cpp" // |
| skyyoungsik | 0:c466d770ffa7 | 30 | // You Can not change this setting, just use it /// |
| skyyoungsik | 0:c466d770ffa7 | 31 | if(GUI.button[0] == true) myled1 = 1; |
| skyyoungsik | 0:c466d770ffa7 | 32 | else myled1 = 0; |
| skyyoungsik | 0:c466d770ffa7 | 33 | if(GUI.button[1] == true) myled2 = 1; |
| skyyoungsik | 0:c466d770ffa7 | 34 | else myled2 = 0; |
| skyyoungsik | 0:c466d770ffa7 | 35 | if(GUI.button[2] == true) myled3 = 1; |
| skyyoungsik | 0:c466d770ffa7 | 36 | else myled3 = 0; |
| skyyoungsik | 0:c466d770ffa7 | 37 | if(GUI.button[3] == true) myled4 = 1; |
| skyyoungsik | 0:c466d770ffa7 | 38 | else myled4 = 0; |
| skyyoungsik | 0:c466d770ffa7 | 39 | // if(GUI.button[4] == true) myled5 = 1; |
| skyyoungsik | 0:c466d770ffa7 | 40 | // else myled5 = 0; |
| skyyoungsik | 0:c466d770ffa7 | 41 | |
| skyyoungsik | 0:c466d770ffa7 | 42 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 43 | //////////////////////////////////////////////// [GPS] GPS ////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 44 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 45 | // GUI.utc_time = cnt * 10; |
| skyyoungsik | 0:c466d770ffa7 | 46 | // GUI.latitude = 35117030 + 10000 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 47 | // GUI.longitude = 129087896 + 10000 * cos( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 48 | // GUI.altitude = 22768 + 32768 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 49 | GUI.utc_time = GUI.Marker_Speed[0]; |
| skyyoungsik | 0:c466d770ffa7 | 50 | GUI.latitude = GUI.Marker_Lat[0]; |
| skyyoungsik | 0:c466d770ffa7 | 51 | GUI.longitude = GUI.Marker_Lng[0]; |
| skyyoungsik | 0:c466d770ffa7 | 52 | GUI.altitude = GUI.Marker_Alt[0]; |
| skyyoungsik | 0:c466d770ffa7 | 53 | GUI.SatNum = 10 + 10 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 54 | |
| skyyoungsik | 0:c466d770ffa7 | 55 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 56 | ///////////////////////////////////////////////// AHRS ////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 57 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 58 | GUI.rollx100 = 4500 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 59 | GUI.pitchx100 = -4500 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 60 | GUI.yawx100 = 18000 * sin( PI/180 + cnt/50.0) + 18000; |
| skyyoungsik | 0:c466d770ffa7 | 61 | GUI.roll_ratex100 = 30000 * sin( PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 62 | GUI.pitch_ratex100 = 30000 * sin( PI/180 + cnt/50.0 + PI/4); |
| skyyoungsik | 0:c466d770ffa7 | 63 | GUI.yaw_ratex100 = 30000 * sin( PI/180 + cnt/50.0 + PI*3/4); |
| skyyoungsik | 0:c466d770ffa7 | 64 | GUI.VXx100 = 1000 * sin(PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 65 | GUI.VYx100 = 1000 * cos(PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 66 | GUI.VZx100 = 1000 * sin(PI/180 + cnt/50.0 + PI/4); |
| skyyoungsik | 0:c466d770ffa7 | 67 | |
| skyyoungsik | 0:c466d770ffa7 | 68 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 69 | ////////////////////////////////////////////// [C/P] CAP/PWM //////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 70 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 71 | GUI.cap[0] = 100 * sin(PI/180 + cnt/50.0); |
| skyyoungsik | 0:c466d770ffa7 | 72 | GUI.cap[1] = 100 * sin(PI/180 + cnt/50.0 + PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 73 | GUI.cap[2] = 100 * sin(PI/180 + cnt/50.0 + 2*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 74 | GUI.cap[3] = 100 * sin(PI/180 + cnt/50.0 + 3*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 75 | GUI.cap[4] = 100 * sin(PI/180 + cnt/50.0 + 4*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 76 | GUI.cap[5] = 100 * sin(PI/180 + cnt/50.0 + 5*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 77 | GUI.cap[6] = 100 * sin(PI/180 + cnt/50.0 + 6*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 78 | GUI.cap[7] = 100 * sin(PI/180 + cnt/50.0 + 7*PI/8); |
| skyyoungsik | 0:c466d770ffa7 | 79 | GUI.pwm[0] = 100 * sin(PI/180 + cnt/50.0) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 80 | GUI.pwm[1] = 100 * sin(PI/180 + cnt/50.0 + PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 81 | GUI.pwm[2] = 100 * sin(PI/180 + cnt/50.0 + 2*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 82 | GUI.pwm[3] = 100 * sin(PI/180 + cnt/50.0 + 3*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 83 | GUI.pwm[4] = 100 * sin(PI/180 + cnt/50.0 + 4*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 84 | GUI.pwm[5] = 100 * sin(PI/180 + cnt/50.0 + 5*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 85 | GUI.pwm[6] = 100 * sin(PI/180 + cnt/50.0 + 6*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 86 | GUI.pwm[7] = 100 * sin(PI/180 + cnt/50.0 + 7*PI/8) + 100; |
| skyyoungsik | 0:c466d770ffa7 | 87 | |
| skyyoungsik | 0:c466d770ffa7 | 88 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 89 | /////////////////////////////////////////// [E/D] Extra & Debug ///////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 90 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 91 | GUI.DEBUGx100[0] = 9000 * sin(PI/180 + cnt/50.0) + 9000; |
| skyyoungsik | 0:c466d770ffa7 | 92 | GUI.DEBUGx100[1] += 100; |
| skyyoungsik | 0:c466d770ffa7 | 93 | if(GUI.DEBUGx100[1] >= 36000) GUI.DEBUGx100[1] = 0; |
| skyyoungsik | 0:c466d770ffa7 | 94 | GUI.DEBUGx100[2] = 25000 * sin(PI/180 + cnt/50.0) + 25000; |
| skyyoungsik | 0:c466d770ffa7 | 95 | GUI.DEBUGx100[3] = 11111; |
| skyyoungsik | 0:c466d770ffa7 | 96 | GUI.DEBUGx100[4] = 22222; |
| skyyoungsik | 0:c466d770ffa7 | 97 | GUI.DEBUGx100[5] = 33333; |
| skyyoungsik | 0:c466d770ffa7 | 98 | GUI.DEBUGx100[6] = 44444; |
| skyyoungsik | 0:c466d770ffa7 | 99 | GUI.DEBUGx100[7] = 55555; |
| skyyoungsik | 0:c466d770ffa7 | 100 | |
| skyyoungsik | 0:c466d770ffa7 | 101 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 102 | //////////////////////////////////////////////// Refresh //////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 103 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
| skyyoungsik | 0:c466d770ffa7 | 104 | GUI.Refresh(); |
| skyyoungsik | 0:c466d770ffa7 | 105 | |
| skyyoungsik | 0:c466d770ffa7 | 106 | } |
| skyyoungsik | 0:c466d770ffa7 | 107 | |
| skyyoungsik | 0:c466d770ffa7 | 108 | } |
| skyyoungsik | 0:c466d770ffa7 | 109 | } |
