久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2516|回復: 0
打印 上一主題 下一主題
收起左側(cè)

第七屆工訓賽物流組小車電控程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:882006 發(fā)表于 2021-8-6 12:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
第七屆工訓賽物流組資料(小車電控程序)
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "timer.h"
  6. #include "encoder.h"
  7. #include "motor.h"
  8. #include "dataprocess.h"
  9. #include "steer.h"
  10. #include "show.h"
  11. #include "oled.h"
  12. #include "exti.h"
  13. #include "DataScope_DP.h"
  14. #include "adc.h"
  15. #include "dma.h"
  16. #include "steercontrol.h"


  17. u8 Mode_All=1;                                                                                                        //總模式標志,0,控制電機,1,控制舵機
  18. u16 Time_Count=0;                                                                                        //時間計數(shù)變量
  19. u16 Distance_F,Distance_L;                                                //前方距離和左邊距離

  20. u16 LocationInit_X,LocationInit_Y;                //初始坐標
  21. int Location_X,Location_Y;                                                //當前坐標
  22. float Yaw ;                                                                                                                //航向角

  23. int Encoder_Left,Encoder_Right;
  24. int Distance_Left=0,Distance_Right=0;        //用于更新坐標(單位時間內(nèi)【50ms】左輪前進距離和右輪前進距離)
  25. u8 state=1;                                                                                                                //mode=0,停止;mode=1,直行;mode=2,右轉(zhuǎn)90度;mode =3,左轉(zhuǎn)90度;mode=4,左轉(zhuǎn)180度
  26. u16 Voltage;                                                                                                        //電池電壓
  27. u16 AD_Value[2];                                                                                        //電池電壓ADC轉(zhuǎn)換的結(jié)果

  28. u8 Turn_Flag;                                                                                                        //轉(zhuǎn)向標志,如果某一次轉(zhuǎn)向完成,則置1,反之,置0

  29. u8 Task=2;                                                                                                                //通過掃描二維碼得到的任務

  30. unsigned char FSM_Status = 0;                                        //狀態(tài)機的狀態(tài)變量

  31. float Target1=750,Target2=750,Target3=750,Target4=750,Target5=835,Target6=750;     //電機目標值
  32. float TargetX=0.2,TargetY=0,Target_Beta=-10,Target_Alpha=0,Target_Gamma=-5;   //姿態(tài)目標值,Target_Beta 1號舵機旋轉(zhuǎn)角度,Target_Alpha,云臺角度,Target_Gamma,6號舵機角度
  33. u16 Angle1=90,Angle2=90,Angle3=90,Angle4=90,Angle5=90,Angle6=105;

  34. int main(void)
  35. {
  36.         u16 i;
  37.         delay_init();                                                                //延時函數(shù)初始化
  38.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  39.         LED_Init();                                                                        //LED初始化
  40.         OLED_Init();                                                                //OLED初始化
  41.         uart_init(128000);                                        //串口一初始化
  42. //        uart4_init(9600);                                                //測距串口初始化
  43. //        uart5_init(115200);                                        //openmv串口初始化
  44. //        AdcInit();                                                                        //電池電壓采集
  45. //        MYDMA_Config();                                                        //DMA1采集ADC
  46. //        IIC_Init();                 //=====模擬IIC初始化
  47. //  MPU6050_initialize();       //=====MPU6050初始化
  48. //  DMP_Init();                 //=====初始化DMP
  49.         
  50.         Encoder_Init_TIM2();                                //編碼器初始化        ,右輪,為正值
  51.         Encoder_Init_TIM3();                                //編碼器初始化        ,左輪,為負值
  52.         Motor_Init();                                                                //電機控制IO口初始化
  53.         Motor_PWM_Init(7199,0);                        //電機pwm初始化,10KHz
  54.         TIM1_PWM_Init(9999,144);    //舵機PWM初始化,50Hz,T=20ms
  55.         TIM8_PWM_Init(9999,144);    //舵機PWM初始化,50Hz,T=20ms
  56. //        TIM6_Int_Init(499,7200);                //50ms定時中斷
  57.         TIM7_Int_Init(99,7200);                //10ms定時中斷
  58.         EXTIX_Init();                                                                //按鍵外部中斷初始化
  59. //        EXTI_PC5_Init();                                                //mpu6050INT引腳中斷初始化

  60. //        SetSteer(95,90,90,90,90,105);
  61. //        delay_ms(1000);
  62. //        delay_ms(1000);

  63. //        SetSteer_PID(95,155,90,180,90,130);

  64.         while(1)
  65.         {
  66.                 oled_show();               
  67.                 delay_ms(50);


  68.         }
  69.         while(1)
  70.         {
  71.                 state =1;//直行
  72.                 oled_show();
  73.                 if(Location_X == 0 && Location_Y >= 200)
  74.                 {
  75.                         state=0;//停
  76.                         break;
  77.                 }
  78.         }
  79.         for(i=0;i<20;i++)
  80.         {
  81.                 oled_show();
  82.                 delay_ms(50);
  83.         }
  84.         while(1)
  85.         {
  86.                 state = 2;        //右轉(zhuǎn)90                90
  87.                 oled_show();
  88.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  89.                 {
  90.                         state = 0;        //停
  91.                         Turn_Flag =0;
  92.                         break;
  93.                 }
  94.         }
  95.         delay_ms(300);
  96.         while(1)
  97.         {
  98.                 state = 1;//直行
  99.                 oled_show();
  100.                 if(Location_Y >= 200 && Location_X >= 1800)
  101.                 {
  102.                         state =0;
  103.                         break;
  104.                 }
  105.         }
  106.         delay_ms(300);
  107.         while(1)
  108.         {
  109.                 state = 2;        //右轉(zhuǎn)90                180
  110.                 oled_show();
  111.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  112.                 {
  113.                         state = 0;        //停
  114.                         Turn_Flag =0;
  115.                         break;
  116.                 }
  117.         }
  118.         delay_ms(300);
  119.         while(1)
  120.         {
  121.                 state = 2;        //右轉(zhuǎn)90                        -90
  122.                 oled_show();
  123.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  124.                 {
  125.                         state = 0;        //停
  126.                         Turn_Flag =0;
  127.                         break;
  128.                 }
  129.         }
  130.         delay_ms(300);
  131.         while(1)
  132.         {
  133.                 state = 1;//直行
  134.                 oled_show();
  135.                 if(Location_Y >= 200 && Location_X <= 900)
  136.                 {
  137.                         state =0;
  138.                         break;
  139.                 }
  140.         }
  141.         while(1)
  142.         {
  143.                 state = 2;        //右轉(zhuǎn)90                        0
  144.                 oled_show();
  145.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  146.                 {
  147.                         state = 0;        //停
  148.                         Turn_Flag =0;
  149.                         break;
  150.                 }
  151.         }
  152.         delay_ms(300);
  153.         while(1)
  154.         {
  155.                 state = 4;//左轉(zhuǎn)180                                                -180
  156.                 oled_show();
  157.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  158.                 {
  159.                         state = 0;        //停
  160.                         Turn_Flag =0;
  161.                         break;
  162.                 }
  163.         }
  164.         delay_ms(300);
  165.         while(1)
  166.         {
  167.                 state = 2;        //右轉(zhuǎn)90                                                -90
  168.                 oled_show();
  169.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  170.                 {
  171.                         state = 0;        //停
  172.                         Turn_Flag =0;
  173.                         break;
  174.                 }
  175.         }
  176.         delay_ms(300);
  177.         while(1)
  178.         {
  179.                 state = 1;//直行
  180.                 oled_show();
  181.                 if(Location_Y >= 200 && Location_X <= 0)
  182.                 {
  183.                         state =0;
  184.                         break;
  185.                 }
  186.         }
  187.         while(1)
  188.         {
  189.                 state = 3;        //左轉(zhuǎn)90                                        -180
  190.                 oled_show();
  191.                 if(Turn_Flag == 1)//轉(zhuǎn)向完成
  192.                 {
  193.                         state = 0;        //停
  194.                         Turn_Flag =0;
  195.                         break;
  196.                 }
  197.         }
  198.         delay_ms(300);
  199.         while(1)
  200.         {
  201.                 state = 1;//直行
  202.                 oled_show();
  203.                 if(Location_Y <= 0 && Location_X <= 0)
  204.                 {
  205.                         state =0;
  206.                         break;
  207.                 }
  208.         }
  209.         while(1)
  210.         {
  211.                 Led_Flash(50000);
  212.                 oled_show();
  213.                 delay_ms(50);
  214.         }
  215. }

復制代碼

代碼下載,如有錯誤,請指正: stm32程序.7z (313.44 KB, 下載次數(shù): 25)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人激情视频 | 超碰成人在线观看 | 国产精品一区二区三区在线 | 国产一二三区电影 | 日韩精品一区二区三区中文在线 | 一区二区中文字幕 | 国产亚洲日本精品 | 欧美一区二区三区视频 | а_天堂中文最新版地址 | 免费在线视频一区二区 | 精品成人一区二区 | 夜久久 | 成人精品一区二区三区中文字幕 | 亚洲一区二区三区免费视频 | 欧美一级黄色网 | 欧美日韩中文字幕在线播放 | 亚洲综合色视频在线观看 | 国产一区在线免费观看 | 波多野结衣精品在线 | 久久久久久色 | 成人免费黄视频 | 久久99精品国产自在现线小黄鸭 | 国产精品揄拍一区二区久久国内亚洲精 | 婷婷五月色综合 | 噜噜噜噜狠狠狠7777视频 | 精品一区二区三区四区在线 | 黄色大片视频 | 国产精品久久久乱弄 | 久久久久午夜 | 欧美一区二区三区四区视频 | 福利社午夜影院 | 激情自拍偷拍 | 色欧美综合 | 美女视频. | 久久精品色欧美aⅴ一区二区 | 一级欧美视频 | 91天堂| 久久国产亚洲 | 久久久久久久久毛片 | 欧美日韩亚洲一区 | 国产精品久久久久aaaa樱花 |