今までのジョイスティックの入力を段階分けしていた方式から、アナログ値をできる限りそのまま使用する方式に変更しました。

Dependencies:   mbed-rtos mbed

Fork of ControlMain2017 by albatross

Revision:
16:336e8b102555
Parent:
15:c5ade23e5de4
Child:
17:e6d7bdf2c5f6
Child:
18:31722545ecf1
--- a/main.cpp	Sat Mar 11 11:10:35 2017 +0000
+++ b/main.cpp	Sat Mar 11 21:32:50 2017 +0000
@@ -7,7 +7,7 @@
 #define SEND_DATAS_CAN_ID 100
 #define SEND_DATAS_TIME 0.5
 #define THRESHOLD_OH_VALUE 0.14
-#define SUM_UP_NUM 25
+#define SUM_UP_NUM 20
 #define SAMPLE_INTERVAL 0.05
 
 //-----------------------------------(resetInterrupt def)
@@ -61,9 +61,19 @@
 
 void InputControlValues()
 {
-    *(float *)inputDatas_R = get_analogin_ave(pichPin) + get_analogin_ave(rollPin);
-    *(float *)inputDatas_L = get_analogin_ave(pichPin) - get_analogin_ave(rollPin);
-     pc.printf("input_R:%f   input_L:%f\n\r",*(float *)inputDatas_R,*(float *)inputDatas_L);
+    *(float *)inputDatas_R = get_analogin_ave(pichPin) * (2.0/3.0) + get_analogin_ave(rollPin) * (1.0 / 3.0);
+    *(float *)inputDatas_L = get_analogin_ave(pichPin) * (2.0/3.0) - get_analogin_ave(rollPin) * (1.0 / 3.0);
+
+    if(*(float *)inputDatas_R < 0)
+        *(float *)inputDatas_R = 0;
+    else if(*(float *)inputDatas_R > 1)
+        *(float *)inputDatas_R = 1;
+    if(*(float *)inputDatas_L < 0)
+        *(float *)inputDatas_L = 0 ;
+    else if(*(float *)inputDatas_L > 1)
+        *(float *)inputDatas_L =1;
+
+    pc.printf("input_R:%f   input_L:%f\n\r",*(float *)inputDatas_R,*(float *)inputDatas_L);
     inputDatas_R[4] = (char)drug_R;
     led4 =! led4;
     pc.printf("%c",*(char *)inputDatas_R[4]);