日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019年全国电子设计竞赛H题电磁炮之定点打击

發布時間:2024/3/12 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019年全国电子设计竞赛H题电磁炮之定点打击 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

以下代碼源于比賽時的源代碼,實現賽題的基本部分即定點打擊,沒有實現擴展部分openMV識別打擊,沒貼出openMV部分代碼,兩個部分代碼是獨立的,可以通過串口通信建立聯系,比賽當時因為元件郵寄時間耽誤,沒來得及嘗試,讀者可自行嘗試。

硬件

  • 電磁炮

1個線圈(線圈得耐心繞緊密,可邊繞邊滴膠水)、1個高壓電容(建議用220V)、1個升壓模塊、1個炮管(普通的塑料管)、兩個開關(充電和放電,充電開關可用高電壓繼電器,放電開關建議用可控硅,有的同學用繼電器也不會燒,得結合具體情況)、電池(有條件用鋰電池比較穩定)

  • 控制云臺

2個舵機、1個云臺、1塊開發板(下面代碼用的是F407)、1個機械鍵盤、1個OLED、1個openMV(用于識別靶心)、1個超聲波(用于測試距離)

  • 電磁炮的基本電路圖

軟件

  • 數學建模

  • 建立方程:

    方程1:f1(垂直方向角度,射程)=0
    方程2:f2(垂直方向角度,PWM1)=0
    方程3:f3(水平方向角度,PWM2)=0

  • 解方程
    從極端值開始,間隔為5度或者更小,每組取5到8個個點取平均值,取得數據,利用Matlab或者Exel數學工具,擬合出垂直和水平方向的方程

  • 代碼

以下代碼是stm32主函數部分代碼:
具體代碼下載地址

#include "sys.h" #include "delay.h" #include "key16.h" #include "usart.h" #include "oled.h" #include "pwm.h"int main(void) { static u16 angle=0,distance=0;//角度和距離u8 Keyval=0;//按鍵值delay_init(168); //初始化延時函數uart_init(115200);//初始化波特率115200OLED_Init();//OLED初始化 KEY_Init();//矩陣按鍵初始化TIM14_PWM_Init(20000-1,84-1); //84M/84=1Mhz計數頻率,重載值500,所以PWM頻率 1M/500=2Khz.TIM13_PWM_Init(20000-1,84-1); OLED_ShowString(0,0,"A:",24); //A是angleOLED_ShowString(0,30,"L:",24); //L是distanceOLED_Refresh_Gram();//更新顯示OLED while(1) {Keyval=Key_scan(0);switch(Keyval){case 11:OLED_ShowNum(30,0,angle,4,24);//按下11輸入角度OLED_Refresh_Gram();angle=OutNumber();OLED_ShowNum(30,0,angle,4,24);OLED_Refresh_Gram();break;case 12:OLED_ShowNum(30,30,distance,4,24);//按下12輸入距離OLED_Refresh_Gram();distance=OutNumber();OLED_ShowNum(30,30,distance,4,24);OLED_Refresh_Gram();break;case 13: OLED_Clear();OLED_ShowString(40,20,"OK!",24);//按下13確定輸入值OLED_Refresh_Gram();Set_Movement(angle,distance);break;default:break; }} }

總結

以上是生活随笔為你收集整理的2019年全国电子设计竞赛H题电磁炮之定点打击的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。