色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

聚豐項目 > 基于AB32VG1的自平衡自行車

基于AB32VG1的自平衡自行車

基于AB32VG1開發板設計的自平衡自行車機器人,具有一定的觀賞性。車體姿態通過串口陀螺儀WT931獲取,由S3010舵機控制前輪轉向,使用RS-385電機和絕對值編碼器實現后輪速度閉環控制,使用直流減速電機驅動動量輪。硬件部分測試穩定,利用STM32裸機平臺完成了整機控制。現階段軟件控制部分利用RTT Studio完成了串口陀螺儀角度數據獲取,單極性電機驅動控制。對于RTT了解還不夠深入,有待后續積累經驗。

zhuyshuang zhuyshuang

分享
1 喜歡這個項目
團隊介紹

zhuyshuang zhuyshuang

團隊成員

zhuyshuang 學生

分享
項目簡介
基于AB32VG1開發板設計的自平衡自行車機器人,具有一定的觀賞性。車體姿態通過串口陀螺儀WT931獲取,由S3010舵機控制前輪轉向,使用RS-385電機和絕對值編碼器實現后輪速度閉環控制,使用直流減速電機驅動動量輪。硬件部分測試穩定,利用STM32裸機平臺完成了整機控制?,F階段軟件控制部分利用RTT Studio完成了串口陀螺儀角度數據獲取,單極性電機驅動控制。對于RTT了解還不夠深入,有待后續積累經驗。
硬件說明
  1. 電源模塊

    1. 電池:電池采用3300mah 2s航模電池,該類型電池具有高效的利用率和穩定的性能,一直被作為各種航模、電動車等的供電設備

    2. 穩6V電源模塊:使用TI公司開關電源TPS5430降壓到6V供舵機使用。電路原理圖如圖所示。

    3. 穩5V電源模塊:TPS7350是TI公司生產的高性能線性穩壓芯片,其使用方便,電路的設計原理如圖所示。

    2.電機驅動模塊:本設計的驅動電路由4片mos管構成H橋。通過控制4個MOS管的導通和關斷來實現正反轉,并通過控制輸入的PWM波的占空比來調節電機兩端的平均電壓,達到控制電機的轉速的目的,具體電路圖如圖所示

    3.陀螺儀:陀螺儀使用維特智能的WT931串口陀螺儀模塊,模塊集成高精度的陀螺儀、加速度計、地磁場傳感器,采用高性能的微處理器和先進 的動力學解算與卡爾曼動態濾波算法,能夠快速求解出模塊當前的實時運動姿態。



軟件說明
  1. QQ截圖20211215212648.png

  2. 車模速度控制:車模速度采用PID控制,P為比例參數,I為積分參數,D為微分參數,P項使輸出隨誤差大小變化,I項消除由于摩擦力等因素導致的速度的穩態誤差,使得實際速度始終跟隨目標速度,提高車模運行速度的穩定性,D項提高速度的動態響應能力及降低超調,使速度響應及時且平順。

  3. 車模姿態獲?。?/span>

    參考WT931的操作手冊寫串口定長數據接收處理即可,以下為與上位機通信代碼,用于實際調試。

  4. void SCI_Send_Datas()
    {
        static unsigned short int send_data[3][4] = { { 0 }, { 0 }, { 0 } };
        short int checksum=0;
        unsigned char xorsum=0,high,low;

        send_data[0][0] = (unsigned short int)(Roll);
        send_data[0][1] = (unsigned short int)(90);
        send_data[0][2] = (unsigned short int)(0);
        send_data[0][3] = (unsigned short int)(0);

        send_data[1][0] = (unsigned short int)(output);
        send_data[1][1] = (unsigned short int)(0);
        send_data[1][2] = (unsigned short int)(0);
        send_data[1][3] = (unsigned short int)(0);

        send_data[2][0] = (unsigned short int)(0);
        send_data[2][1] = (unsigned short int)(0);
        send_data[2][2] = (unsigned short int)(0);
        send_data[2][3] = (unsigned short int)(0);

        rt_sprintf(tx_buf0, "%c",0x53);
        rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );
        rt_sprintf(tx_buf0, "%c",0x54);
        rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );

        for (int i = 0; i < 3; i++)
        for (int j = 0; j < 4; j++)
        {
          low=(unsigned char)(send_data[i][j] & 0x00ff);
          high=(unsigned char)(send_data[i][j] >> 8u);

          rt_sprintf(tx_buf0, "%c",low);
          rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );
          rt_sprintf(tx_buf0, "%c",high);
          rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );

          checksum+=low; checksum+=high;
          xorsum^=low; xorsum^= high;
        }

        rt_sprintf(tx_buf0, "%c",(unsigned char)(checksum & 0x00ff));
        rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );
        rt_sprintf(tx_buf0, "%c",xorsum);
        rt_device_write(serial, 0, tx_buf0, (sizeof(tx_buf0)) );
    }

  5. 車模平衡控制:簡單的考慮是,不考慮舵機轉向和后輪電機速度對于單車平衡的影響,類比于兩輪平衡小車直立環、速度環和方向環的三環控制,單車采用角速度環和角度環串級作為直立環,直立環以動量輪為執行器,由舵機控制轉向,后輪電機提供動力。

    如果不考慮動量輪的作用,單車的運動控制此時是一個欠驅動系統。按照單車的運動模型,后輪電機速度對單車的直立環也會產生影響,速度越快,則向心力越大,所以不同速度下單車傾角所對應的前輪舵機打角也不同。假設在勻速狀態下的參數正好適合,我們想到可以配合加減速來輔助直立環,在單車過彎道時減速,過彎后及時加速使單車回正,這樣的策略可以讓單車在過彎時起到壓彎的效果。

    實際情況是舵機與兩個電機相互耦合作用,值得深入研究研究。

    通過動量輪實現單車平衡控制算法:

        

        void balance_pid(float turn)
        {
             float idata  servo_bias,gyro_bias;
             static float idata last_output=0,last_g_output=0;
             static float  servo_bias_last,gyro_bias_last;
             static float  servo_integration;
             static float gyro_integration;
             float actual;
             //角度環
             servo_bias = Roll- pid.balance_init0-turn;
             servo_integration+=servo_bias;

             if(servo_integration>600)//外環積分限幅
               servo_integration=600;
             else if(servo_integration<-600)
               servo_integration=-600;

             pid.output= pid.balance_P * servo_bias + pid.balance_I * servo_integration  + pid.balance_D * ((float)gyro[0]/16.4);//+center.result;

             //角速度環
              gyro_bias = pid.output -  ((float)gyro[0]/16.4);

    
             gyro_integration+=gyro_bias;
             if(gyro_integration>1000)//內環積分限幅
                  gyro_integration=1000;
             else if(gyro_integration<-1000)
                  gyro_integration=-1000;
             key.servo_pwm =pid.outside_P * gyro_bias +pid.outside_I*gyro_integration+ pid.outside_D * (gyro_bias - gyro_bias_last);
             gyro_bias_last = gyro_bias;
             servo_duty((unsigned short)((short)key.servo_pwm+970));//輸出到動量輪電機

}



演示效果

車模姿態的獲取

附件

(11.06 MB)下載

評論區(0 )
主站蜘蛛池模板: 女教师二十三歳| gogo免费在线观看| 久久精品影院永久网址| xxxx俄罗斯1819| 亚洲色欲H网在线观看| 日本69色视频在线观看| 久久人人玩人妻潮喷内射人人| 国产 欧美 亚洲 日韩视频| 18video性欧美19sex高清| 亚洲精品久久YY5099| 沈芯语麻豆0076 视频| 欧美videqsdesex0| 久久精品九九亚洲精品天堂| 国产成人无码视频一区二区三区 | 国产全肉乱妇杂乱视频| YELLOW日本动漫高清免费| 中俄两军在日本海等上空战略巡航| 午夜福利影院私人爽爽| 日本国产成人精品无码区在线网站| 泷泽萝拉首部av| 精品四虎国产在免费观看| 国产精品资源网站在线观看| 大桥未久电影在线| china18一19 第一次| 最新男同鸭子ktv| 在线播放免费人成毛片视频| 亚洲青青草原| 亚洲精品国产在线观看| 香蕉在线播放| 新香蕉少妇视频网站| 偷偷鲁手机在线播放AV| 十次啦中文网| 四虎免费影院| 少爷被多个暗卫肉高h| 日本美女论坛| 男女久久久国产一区二区三区| 妈妈的朋友5在线观看免费完整版中文| 久久www成人看片| 精品久久久久久电影网| 久久成人国产精品一区二区| 久久re热线视频精品99|