BASIC4MCU | 질문게시판 | 답변 : 반복코드 수정하고싶습니다.
페이지 정보
작성자 master 작성일2019-08-26 17:30 조회6,795회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9793
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-08-26 오후 5:27:07// by Ok-Hyun Park//#include <DynamixelWorkbench.h>#include <math.h>//#define DXL_BUS_SERIAL3 "3" //Dynamixel on Serial3(USART3)<-OpenCM 485EXP#define DXL_BUS_SERIAL4 "/dev/ttyUSB0" //Dynamixel on Serial3(USART3)<-OpenCR//--------------------------------------------------------------------------------------------#define BAUDRATE 57600//--------------------------------------------------------------------------------------------const uint8_t handler_index=0;uint8_t dxl_id[6]={1,2,3,4,5,6};int32_t get_data[6]={0,};//--------------------------------------------------------------------------------------------DynamixelWorkbench dxl_wb;//--------------------------------------------------------------------------------------------int LC_Pin[6]={A0,A1,A2,A3,A4};int total[6],average[6];float power[6]=0,pgain[6]=0;//int minus=570,plus=580;//void print_position(int i){Serial.print(i+1); Serial.print("MX64 present position: "); Serial.print(get_data[i]); Serial.println(")");}//void setup(){Serial.begin(57600);dxl_wb.begin(DXL_BUS_SERIAL4,BAUDRATE);//for(int i=0;i<6;i++){dxl_wb.ping(dxl_id[i]); dxl_wb.currentBasedPositionMode(dxl_id[i],150); //dxl_wb.goalPosition(dxl_id[i],(int32_t)0);delay(200);}}//void loop(){for(int i=0;i<6;i++)dxl_wb.itemRead(dxl_id[i],"Present_Position",&get_data[i]);//Serial.print(0); Serial.print(" "); Serial.print(1023); Serial.print(" ");//for(int i=0;i<6;i++)total[i]=0;//for(int avr=0; avr<20; avr++){for(int i=0;i<6;i++)total[i]+=analogRead(LC_Pin[i]);}for(int i=0;i<6;i++)average[i]=total[i]/20;//for(int i=0;i<6;i++)pgain[i]=0;//--------------------------------------------------------------------------------------------for(int i=0;i<6;i++){ Serial.print(i+1); Serial.print("번 로드셀: "); Serial.print(average[i]); Serial.print(" "); }Serial.println();//-------------------------------------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@for(int i=0;i<6;i++){if(average[i]<minus){ //Rpower[i]=minus-average[i];pgain[i]=pow(0.04*power1,2.1)-70; pgain[i]=constrain(pgain[i],10,200);get_data[i]+=pgain[i];dxl_wb.goalPosition(dxl_id[i],get_data[i]); print_position(i);dxl_wb.goalPosition(dxl_id[i],get_data[i]);}else if(average[i]>minus&&average[i]<plus){dxl_wb.goalPosition(dxl_id[i],get_data[i]); print_position(i);}else{power[i]=average[i]-plus;pgain[i]=pow(0.04*power1,2.1)-200; pgain[i]=constrain(pgain[i],10,200);get_data[i]-=pgain[i];dxl_wb.goalPosition(dxl_id[i],get_data[i]); print_position(i);dxl_wb.goalPosition(dxl_id[i],get_data[i]);}}}
댓글 0
조회수 6,795등록된 댓글이 없습니다.