NHK2020_master_program

Dependencies:   mbed QEI

Revision:
0:e06e8c048454
Child:
1:496ab5127b06
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Oct 19 12:43:59 2020 +0000
@@ -0,0 +1,109 @@
+#include "mbed.h"
+#include "pin_config.h"
+#include "QEI.h"
+
+Serial pc(USBTX,USBRX,115200);
+//Serial serial(PC_10,PC_11,9600);
+
+AnalogIn finger[]={
+    AnalogIn(A_IN_7),
+    AnalogIn(A_IN_6),
+    AnalogIn(A_IN_5),
+    AnalogIn(A_IN_3),
+    AnalogIn(A_IN_2)
+};
+
+/*
+AnalogIn wrist_bent[]={
+    AnalogIn(A_IN_),
+    AnalogIn(A_IN_)
+};
+
+AnalogIn wrist_twist[]={
+    AnalogIn(A_IN_)
+};
+
+AnalogIn elbow_bent[]={
+    AnalogIn(A_IN_)
+};
+
+QEI shoulder_rotation[]={
+    QEI(QEI_1_A,QEI_1_B, NC, 360,QEI::X4_ENCODING),
+    QEI(QEI_2_A,QEI_2_B, NC, 360,QEI::X4_ENCODING)
+}
+*/
+DigitalIn b(USER_BUTTON);
+
+typedef struct {   
+    float close_val;
+    float open_val;
+    float now_val;
+    uint8_t percentage;
+} status_t;
+
+class status_provider{
+    public:
+    status_t status;
+    void percentage_calculation();
+};
+
+void status_provider::percentage_calculation(){
+    status.percentage = (1 - (status.now_val - status.close_val) / (status.open_val - status.close_val)) * 255;
+    if(status.open_val <= status.now_val) status.percentage = 0;
+    if(status.close_val >= status.now_val) status.percentage = 255;
+}
+
+
+status_provider status_[11];
+
+void get_all_data(int mode){
+    int i;
+    
+    if(mode==1){
+        for(i=0;i<5;i++)status_[i].status.close_val = finger[i].read();/*
+        for(i=5;i<7;i++)status_[i].status.close_val = wrist_bent[i-5].read();
+        for(i=7;i<8;i++)status_[i].status.close_val = wrist_twist[i-7].read();
+        for(i=8;i<9;i++)status_[i].status.close_val = elbow_bent[i-8].read();
+        for(i=9;i<11;i++)status_[i].status.close_val = shoulder_rotation[i-9].getPulses();*/
+    }
+    if(mode==2){
+        for(i=0;i<5;i++)status_[i].status.open_val = finger[i].read();/*
+        for(i=5;i<7;i++)status_[i].status.open_val = wrist_bent[i-5].read();
+        for(i=7;i<8;i++)status_[i].status.open_val = wrist_twist[i-7].read();
+        for(i=8;i<9;i++)status_[i].status.open_val = elbow_bent[i-8].read();
+        for(i=9;i<11;i++)status_[i].status.open_val = shoulder_rotation[i-9].getPulses();*/
+    }
+    if(mode==3){
+        for(i=0;i<5;i++)status_[i].status.now_val = finger[i].read();/*
+        for(i=5;i<7;i++)status_[i].status.now_val = wrist_bent[i-5].read();
+        for(i=7;i<8;i++)status_[i].status.now_val = wrist_twist[i-7].read();
+        for(i=8;i<9;i++)status_[i].status.now_val = elbow_bent[i-8].read();
+        for(i=9;i<11;i++)status_[i].status.now_val = shoulder_rotation[i-9].getPulses();*/
+    }
+}
+int main()
+{
+    uint8_t *data[11];
+    int i;
+    
+    
+    for(i=0;i<11;i++)data[i] = &status_[i].status.percentage;
+    get_all_data(1);
+    while(bool first_loop=1){
+        bool b_ = b;
+        get_all_data(2);
+        if(!b_){
+            while(bool second_loop=1){
+                get_all_data(3);
+                for(i=0;i<11;i++){
+                    status_[i].percentage_calculation();
+                    pc.printf("[%d]:%d,",i,*data[i]);
+                }
+                pc.printf("\n\r");
+                
+            }
+                
+        }
+    }
+    return 0;
+}
\ No newline at end of file