Kouki Suzuki
/
NHK2020_master
NHK2020_master_program
Diff: main.cpp
- 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