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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6204|回復(fù): 5
收起左側(cè)

電子設(shè)計(jì)大賽電磁炮STM32源代碼 兩軸云臺(tái)

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

spi讀取GY953數(shù)據(jù),加上ANO6.5通訊協(xié)議,PWM_IN_OUT

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"   // 相當(dāng)于51單片機(jī)中的  #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對(duì)應(yīng)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);//正式程序恢復(fù)
  256.                 }
  257.                
  258.                 if(tim ==10)
  259.                 {

  260.                         tim = 0;
  261.                 }
  262.                
  263.         }
  264. }
復(fù)制代碼

所有資料51hei提供下載:
兩軸云臺(tái)2.0.7z (204.31 KB, 下載次數(shù): 133)



回復(fù)

使用道具 舉報(bào)

ID:170892 發(fā)表于 2019-9-6 20:36 | 顯示全部樓層
您好,請(qǐng)問(wèn)您用的超級(jí)電容是多大的
回復(fù)

使用道具 舉報(bào)

ID:511461 發(fā)表于 2019-10-12 19:30 | 顯示全部樓層
請(qǐng)問(wèn)一下,電磁炮打靶你是怎么做的
回復(fù)

使用道具 舉報(bào)

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

兩個(gè)自由度的舵機(jī)
回復(fù)

使用道具 舉報(bào)

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

兩個(gè)自由度的舵機(jī),用按鍵控制角度
回復(fù)

使用道具 舉報(bào)

ID:519743 發(fā)表于 2021-6-5 22:56 | 顯示全部樓層
在座的老鐵們,有人實(shí)驗(yàn)過(guò)嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91一区二区三区 | 国产女人叫床高潮大片免费 | 精品影院 | 中文字幕精品一区 | 毛片a| 成人精品一区二区 | 日韩在线免费播放 | 91在线视频网址 | 黄色国产区 | 国产乱码精品一区二区三区五月婷 | www.99re| 国产高清免费视频 | japan25hdxxxx日本 做a的各种视频 | 男女免费在线观看视频 | 久久久www| 国产一区二 | 成人久久久 | 精品无码久久久久久国产 | 成人3d动漫一区二区三区91 | 四虎最新视频 | 国产在线观看不卡一区二区三区 | 欧美综合一区 | 成人精品鲁一区一区二区 | 久久亚洲91| 国外成人免费视频 | 中文天堂在线观看 | 99精品视频在线观看免费播放 | 亚洲欧美日韩国产综合 | 欧美三级网站 | 国产欧美日韩精品一区二区三区 | 日韩一级欧美一级 | 国产精品久久久久久久久免费 | 精品av| 亚洲一一在线 | 国产成人av一区二区三区 | 男人天堂视频在线观看 | 欧美日韩综合 | 欧产日产国产精品v | 欧美a视频 | 成人免费网视频 | 国产精品久久久久久久久久久久久 |