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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2122|回復: 1
打印 上一主題 下一主題
收起左側

bb-8機器人制作源碼(stm32f103)

[復制鏈接]
跳轉到指定樓層
樓主
ID:160860 發表于 2021-8-17 11:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. //   PA0,PA1, 對應四個引腳對應測速的四個角,TIME2
  2. //   PC4,PC5,電機A,   PWMA--PB6
  3. //   PC2,PC3,電機B    PWMB--PB7
  4. //   PB11--TX,  PB10--RX   藍牙
  5. //   PB5             舵機
  6. /*
  7.      OLED接線定義:
  8.                                         VCC--3.3V/5V
  9.                                         GND--GND
  10.                                         SCL--PB8
  11.                                         SDA--PB9
  12. */

  13. #include "delay.h"
  14. #include "sys.h"
  15. #include "usart.h"
  16. #include "CeSu.h"       //測速文件
  17. #include "DianJi.h"     //電機文件
  18. #include "Duoji.h"      //舵機文件
  19. #include "LanYa.h"      //藍牙文件
  20. #include "oled_iic.h"

  21. #define High_speed 90
  22. #define Low_speed 50
  23. #define DuoJi_JiaoDu_Init 85

  24. //extern int16_t LunSuDu[4];     //實際值
  25. //extern int16_t COUNT[4];       //脈沖計數

  26. extern u8 receive_data[10];
  27. extern u8 ChuLi_data[10];      //藍牙命令

  28. char   Buf[128];       

  29. int v=Low_speed,v0=0;    //默認初始速度
  30. int angle=90;      //舵機初始角度
  31. //float i;           //測量電壓

  32. //藍牙命令處理
  33. void MingLing_ChuLi(u8 *MingLing)
  34. {
  35.        
  36.     if(MingLing[0]=='v')  //檢測電壓  
  37.                  {
  38.                         //        i=analogRead(sensor)*5;i=i/1024*3;            //analogRead(sensor),從指定的模擬引腳中讀取值。

  39.                         MingLing[0]='t';
  40.                  }              
  41.          
  42.     else if(MingLing[0]=='h')   {v=High_speed;}//高速模式  
  43.    
  44.     else if(MingLing[0]=='l')   {v=Low_speed;}//中速模式
  45.                
  46.     else if(MingLing[0]=='1')
  47.                 {
  48.                         //v0=Low_speed;
  49. //                        DuoJi_KongZhi(110);          //舵機110°
  50.                         motor(v,v);
  51.                        
  52.     }
  53.                
  54.     else if(MingLing[0]=='2') {motor(v,-v);}  //左轉
  55.                
  56.     else if(MingLing[0]=='3') {motor(-v,v);}  //右轉
  57.                
  58.     else if(MingLing[0]=='4')
  59.                 {

  60. //                        DuoJi_KongZhi(70);          //舵機110°
  61.                         motor(-v,-v);
  62.                 }                       
  63.                
  64.     else if(MingLing[0]=='5')         //舵機角度增加
  65.           {
  66.                                                 if(angle<120)
  67.                                                 {
  68.                                             angle++;
  69.                                                         MingLing[0]='0';
  70.                                                 }
  71.                                                 else {
  72.                                                         angle=120;
  73.                                                 }
  74.                                             DuoJi_KongZhi(angle);
  75.                                             delay_ms(50);
  76.                                         }   
  77.                                        
  78.     else if(MingLing[0]=='6')        //舵機角度減少
  79.           {
  80.                                                 if(angle>60)
  81.                                                 {
  82.                                             angle--;
  83.                                                         MingLing[0]='0';
  84.                                                 }
  85.                                                 else {
  86.                                                         angle=60;
  87.                                                 }
  88.                                             DuoJi_KongZhi(angle);
  89.                                             delay_ms(50);
  90.                                         }                 
  91.                                        
  92.     else if(MingLing[0]=='7')   {DuoJi_KongZhi(DuoJi_JiaoDu_Init);}                                   //舵機回到90度
  93.                
  94.     else if(MingLing[0]=='8')   {motor(v-40,v);}                             
  95.                
  96.     else if(MingLing[0]=='9')   {motor(v,v-40);}
  97.                
  98.                 else if(MingLing[0]=='t')
  99.                 {
  100.                         Dj_A_FangXiang(3);
  101.                         Dj_B_FangXiang(3);
  102.                         TIM_SetCompare1(TIM4,0);
  103.                         TIM_SetCompare2(TIM4,0);
  104.                         DuoJi_KongZhi(DuoJi_JiaoDu_Init);
  105.                 }
  106.                
  107.    
  108. }


  109. int main(void)
  110. {       
  111.    
  112.         delay_init();                     //延時函數初始化          
  113.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  114.         uart_init(115200);             //串口初始化為115200
  115.         OLED_Init();                         //OLED屏幕初始化                  
  116.     MOTOR_Init();                  //電機PWM控制初始化
  117.           DianJi_PWM_Init();
  118.     Uart3_Init(9600);
  119.           TIM3_PWM_Init(200-1,7200-1);   //PWM分頻
  120.     DuoJi_KongZhi(DuoJi_JiaoDu_Init);   //舵機90度;
  121.                  OLED_Clear();       
  122.          
  123.          TIM_SetCompare1(TIM4,0);
  124.          TIM_SetCompare2(TIM4,0);
  125.          
  126. //    TIM2_CAP_Init(0XFFFF,72-1);      //這里以1us頻率捕獲脈沖
  127. //           TIM4_Int_Init(1000,72);                  //不分頻。T=10MS,采集單位時間輪速   

  128.        while(1)
  129.        {
  130.                                   //超聲波測距
  131.                                  
  132.                                   //紅外循跡
  133.                            
  134.                                         //接收藍牙串口數據
  135.                                         MingLing_ChuLi(ChuLi_data);

  136.     //顯示代碼                               
  137.         sprintf(Buf,"Receive: %s",receive_data);       
  138.         OLED_ShowCH(0,0*2,(u8 *)&Buf);
  139.        
  140.         sprintf(Buf,"Data: %s",ChuLi_data);
  141.         OLED_ShowCH(0,1*2,(u8 *)&Buf);


  142.    }
  143.    
  144. }
復制代碼

代碼下載: bb-8_stm32源碼.7z (201 KB, 下載次數: 7)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2021-8-18 22:19 | 只看該作者
本帖最后由 51hei團團 于 2021-8-18 22:42 編輯

樓主你好 能分享一下原理圖嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本粉嫩一区二区三区视频 | 亚洲一区二区视频在线播放 | 欧美精品久久久 | 国产美女黄色片 | 久久精品日产第一区二区三区 | 精品久久精品 | 精品网站999www | 久久9精品| 久久久久久亚洲国产精品 | 午夜精品久久久久久久久久久久久 | 亚洲一区二区精品视频 | 91色综合| 欧美日韩国产在线观看 | 国产成人精品一区二区三区视频 | 91国内精品久久 | 日韩和的一区二在线 | 免费特黄视频 | 色网站视频 | 欧美视频二区 | 亚洲欧美一区二区在线观看 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 精品欧美一区二区在线观看欧美熟 | 日韩在线小视频 | 亚洲在线免费观看 | 国产超碰人人爽人人做人人爱 | 天天影视亚洲综合网 | 日本午夜免费福利视频 | 日本精品久久久久久久 | 高清视频一区二区三区 | 欧美精品福利视频 | 伊久在线| 中文在线视频 | 午夜天堂精品久久久久 | 精品国产一区二区三区性色av | 国产一级久久久久 | 一区日韩 | 亚洲一区二区三区免费在线观看 | 91精品国产综合久久久久久丝袜 | 伊人99| 伊人热久久 | 久久精品视频网站 |