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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6168|回復: 5
收起左側

電子設計大賽電磁炮STM32源代碼 兩軸云臺

[復制鏈接]
ID:467963 發表于 2019-8-28 00:21 | 顯示全部樓層 |閱讀模式
代碼,電賽基本要求可以完成。

spi讀取GY953數據,加上ANO6.5通訊協議,PWM_IN_OUT

單片機源程序如下:
  1. #include "stm32f10x.h"   // 相當于51單片機中的  #include <reg51.h>
  2. #include "bsp_usart.h"
  3. #include "delay.h"
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <math.h>
  7. #include "bsp_servo.h"
  8. #include "bsp_daba.h"
  9. #include "bsp_keyscan.h"
  10. #include "bsp_led.h"
  11. #include "oled.h"
  12. #include "bsp_keyscan.h"

  13. int16_t tim = 0;
  14. uint16_t volatile receivebuff[1024]={0};
  15. extern uint16_t aim_x,aim_y,flag;
  16. extern volatile uint16_t num;
  17. u8 key = 16,key1=16,single=1,select_yaw=0,select_d=0;
  18. u16 yaw=0,d=0,v0=5;
  19. u16 single_index=0;
  20. double pitch=0;
  21. u16 SINGLE[20]={30,35,40,45,50,55,60,65,70};//????
  22. u8 pattern_flag=1;
  23. u16 temp=0;
  24. extern int16_t aim_distances,aim_yaw;

  25. int main(void)
  26. {            
  27.         LED_GPIO_Config();                        
  28.         USART1_Config();
  29.         printf("串口成功!\n");
  30.         KeyBoard_Init();
  31.         OLED_Init();        
  32.         Servo_Init(20000, 72-1,1500,1500);//20ms周期  頭:600-2350(10-170度)  底座:500-2500(0-180度),    1500對應90度asddadasdsada
  33.         printf("222");
  34.         
  35.         while(1)
  36.         {
  37.                 oled_show();
  38.                                 //printf("%d",d);
  39.                 //key=Read_KyeValue();
  40.                 //printf("%d",key);
  41. //                delay_ms(100);
  42.    
  43.                 if((Read_KyeValue()==14) && (pattern_flag==1))//??1???
  44.                 {
  45.                         delay_ms(10);
  46.                         //LED1_TOGGLE        ;
  47.                         printf("123");
  48.                         LED1_OFF;//chongdianjidianqi
  49.                         LED2_ON;//fangdainjidianqi
  50.                         delay_ms(Tchong);//???
  51.                         LED1_ON;
  52.                         LED2_ON;
  53.                         //delay_ms(200);
  54.                         //printf("443");
  55.                         LED1_ON;
  56.                         LED2_OFF;
  57.                         delay_ms(100);
  58.                         LED1_ON;
  59.                         LED2_ON;
  60.                         
  61.                         
  62.                 }
  63.                 if((Read_KyeValue()==10))//????
  64.                 {
  65.                         delay_ms(5);
  66.                         
  67.                         ++pattern_flag;
  68.                         while(Read_KyeValue()!=16);
  69.                         if(pattern_flag==4)
  70.                         {
  71.                                 pattern_flag=1;
  72.                         }
  73.                 }
  74.                 /************************************************/
  75.                 if((Read_KyeValue()==11) && (pattern_flag==2))        //??2,????
  76.                 {
  77.                         delay_ms(10);
  78.                         if(Read_KyeValue()==11)
  79.                         {
  80.                                 d=0;
  81.                                 while(Read_KyeValue()!=16);
  82.                                 select_d=1;
  83.                                 while(select_d)
  84.                                 {
  85.                                         key=Read_KyeValue();
  86.                                         if(key!=16)
  87.                                         {                                       
  88.                                                 delay_ms(20);
  89.                                                 if(key!=16)
  90.                                                 {
  91.                                                         if(key!=12&&key!=13&&key!=11)//??0-9
  92.                                                         {
  93.                                                                 if(d==0){d=key;}
  94.                                                                 else if(d>0&&d<10){d=d*10+key;}
  95.                                                                 else{d=d*10+key;}
  96.                                                         }
  97.                                                         if(key==13)
  98.               {
  99.                                                           key=16;select_d=0;
  100.                                                         }//??
  101.                                                         if(key==11){key=16;d=0;}//??
  102.                                                 }
  103.                                                 delay_ms(20);
  104.                                                 while(Read_KyeValue()!=16);
  105.                                                 daba(d,1500);
  106.                                                 delay_ms(TG);
  107.                                                 LED1_OFF;//chongdianjidianqi
  108.                                                 LED2_ON;//fangdainjidianqi
  109.                                                 delay_ms(Tchong);//???
  110.                                                 LED1_ON;
  111.                                                 LED2_ON;
  112.                                                 //delay_ms(200);
  113.                                                 //printf("443");
  114.                                                 LED1_ON;
  115.                                                 LED2_OFF;
  116.                                                 delay_ms(100);
  117.                                                 LED1_ON;
  118.                                                 LED2_ON;
  119.                                                 
  120.                                         }
  121.                                 }
  122.                         }
  123.                         printf("%d",d);
  124.                 }
  125.                 /********************************/
  126.                
  127.                
  128.                 if((Read_KyeValue()==11) && (pattern_flag==3))        //3
  129.                 {
  130.                         delay_ms(100);
  131.                         if(Read_KyeValue()==11)
  132.                         {
  133.                                 d=0;
  134.                                 while(Read_KyeValue()!=16);
  135.                                 select_d=1;
  136.                                 select_yaw=1;
  137.                                 printf("rrrr");
  138.                                 while(select_d)
  139.                                 {
  140.                                         key=Read_KyeValue();
  141.                                         //printf("%d",key);
  142.                                         if(key!=16)
  143.                                         {               
  144.             //printf("juli");                                                
  145.                                                 delay_ms(5);
  146.                                                 if(key!=16)
  147.                                                 {
  148.                                                         if(key!=12&&key!=13&&key!=11)//??0-9
  149.                                                         {
  150.                                                                 if(d==0){d=key;}
  151.                                                                 else if(d>0&&d<10){d=d*10+key;}
  152.                                                                 else if(d>10&&d<100){d=d*10+key;}
  153.                                                                 else if(d>100&&d<1000){d=d*10+key;}
  154.                                                                 else {temp=d*10+key;}
  155.                                                         }
  156.                                                         if(key==13)
  157.                             {
  158.                                                           key=16;
  159.                                                                 select_d=0;
  160.                                                                 //select_yaw=1;
  161.                                                         }//??
  162.                                                         //if(key==11){key=16;d=0;}//??
  163.                                                 }
  164.                                                 delay_ms(5);
  165.                                                 while(Read_KyeValue()!=16);
  166.                                                 
  167.                                         }
  168.                                 }
  169.                         }               
  170.                         d=temp/100;
  171.                         yaw=temp%100;
  172.                         
  173.                         /****************************/
  174.                         /*if(USART_RXBUF[5] == '-')
  175.                                         {
  176.                                                 aim_yaw = (angle*9.3333)+1500;
  177.                                         }
  178.                                         else
  179.                                         {
  180.                                                 aim_yaw = 1500-(angle*12.3333);
  181.                                         }*/
  182.                         
  183.                         /*******************************/
  184.                         
  185.                                         if(yaw>=30 && yaw<=60)
  186.                                         {
  187.                                                 aim_yaw=yaw;
  188.                                                 aim_yaw=(aim_yaw-30)*9.3333+1500;
  189.                                         }
  190.                                         else if(yaw<30 && yaw>=0)
  191.                                         {
  192.                                                 aim_yaw=30-yaw;
  193.                                                 aim_yaw=1500-(aim_yaw*12.3333);
  194.                                         }
  195.                                         else
  196.                                         {
  197.                                                 aim_yaw=1500;
  198.                                         }
  199.                                        
  200.                         daba(d,aim_yaw);
  201.                         delay_ms(TG);
  202.                         LED1_OFF;//chongdianjidianqi
  203.                         LED2_ON;//fangdainjidianqi
  204.                         delay_ms(Tchong);//???
  205.                         LED1_ON;
  206.                         LED2_ON;
  207.                         //delay_ms(200);
  208.                         //printf("443");
  209.                         LED1_ON;
  210.                         LED2_OFF;
  211.                         delay_ms(100);
  212.                         LED1_ON;
  213.                         LED2_ON;
  214.                         
  215.                         printf("%d\n",d);
  216.                         printf("%d\n",yaw);
  217.                 }
  218.                
  219. //                if(Read_KyeValue()==13)//???
  220. //                {                        
  221. //                        delay_ms(5);
  222. //                        //printf("yaw:%d,d:%d\n",yaw,d);               
  223. //                        //pitch=(0.5*(asin(d*9.8/(v0*v0*100)))*180/3.14);//pitch=0.5*arcsin(d*g/(v0*v0));
  224. //                //        printf("yaw:%d,pitch:%f,single:%d\n",yaw,pitch,single);
  225. //                        if(single==1)                                
  226. //                        {
  227. //                                Servo_PWM_Updata((pitch*10.9375)+1450,(yaw*11.1111)+1500);
  228. //                        }
  229. //                        else
  230. //                        {
  231. //                                Servo_PWM_Updata((pitch*10.9375)+1450,1500-(yaw*11.1111));
  232. //                        }
  233. //                if(Read_KyeValue()==14)//chongdian
  234. //                {
  235. //                        //LED1_TOGGLE        ;
  236. //                        printf("123");
  237. //                        LED1_OFF;//chongdianjidianqi
  238. //                        LED2_ON;//fangdainjidianqi
  239. //                        delay_ms(4000);//剛剛好
  240. //                        LED1_ON;
  241. //                        LED2_ON;
  242. //                        //delay_ms(200);
  243. //                        printf("443");
  244. //                        LED1_ON;
  245. //                        LED2_OFF;
  246. //                        delay_ms(100);
  247. //                        LED1_ON;
  248. //                        LED2_ON;
  249. //                        
  250. //                        
  251. //                }        
  252.                 tim ++;
  253.                 if(tim%1==0)
  254.                 {
  255.                         //daba(aim_distances,aim_yaw);//正式程序恢復
  256.                 }
  257.                
  258.                 if(tim ==10)
  259.                 {

  260.                         tim = 0;
  261.                 }
  262.                
  263.         }
  264. }
復制代碼

所有資料51hei提供下載:
兩軸云臺2.0.7z (204.31 KB, 下載次數: 133)
回復

使用道具 舉報

ID:170892 發表于 2019-9-6 20:36 | 顯示全部樓層
您好,請問您用的超級電容是多大的
回復

使用道具 舉報

ID:511461 發表于 2019-10-12 19:30 | 顯示全部樓層
請問一下,電磁炮打靶你是怎么做的
回復

使用道具 舉報

ID:467963 發表于 2020-2-23 23:02 | 顯示全部樓層
aaaaaa。 發表于 2019-10-12 19:30
請問一下,電磁炮打靶你是怎么做的

兩個自由度的舵機
回復

使用道具 舉報

ID:467963 發表于 2020-2-23 23:02 | 顯示全部樓層
aaaaaa。 發表于 2019-10-12 19:30
請問一下,電磁炮打靶你是怎么做的

兩個自由度的舵機,用按鍵控制角度
回復

使用道具 舉報

ID:519743 發表于 2021-6-5 22:56 | 顯示全部樓層
在座的老鐵們,有人實驗過嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美综合 | 国产精品综合一区二区 | 亚洲久草| 精品国产乱码久久久久久图片 | 国产精品久久久久久久久久久久午夜片 | 国产超碰人人爽人人做人人爱 | 在线视频一区二区三区 | 日本一本在线 | 一区二区三区四区日韩 | 色综久久| 久久999 | 国产精品久久久久免费 | 在线免费观看黄视频 | 国产精品欧美一区二区三区不卡 | 欧美日产国产成人免费图片 | 一级高清免费毛片 | 成人av激情 | 亚洲一页 | 亚洲日本视频 | 天天干天天谢 | 涩在线 | 亚洲高清视频在线观看 | 日韩在线一区二区三区 | 伊人精品久久久久77777 | 激情五月婷婷综合 | 天堂免费看片 | 三级黄色片在线观看 | 一区中文 | 欧美精品在线免费 | 精品国产欧美一区二区三区成人 | 日韩三区| 日日操视频 | 久草热在线 | 99精品国产一区二区青青牛奶 | 日韩精品一区二区三区在线播放 | 91免费在线 | 色视频网站 | 日韩精品一区中文字幕 | 免费看av大片 | 精品久久精品 | 操视频网站 |