




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
電子工藝實習報告學院:專業:班級:學號:姓名:北京郵電大學實習報告實習名稱學生姓名
電子工藝實習 學院班 級 學號實習時間 7.9-7.20
實習地點
主樓522:領取實驗器材,確定分組,老師講解電烙鐵以及吸錫器的使用。315:練習點焊,驗收點焊實驗。實7.12-7.13:發光二極管的焊接以及調試代碼控制LED顯示情況,LED顯示以后進行驗習收。內7.16-7.18:小車組裝,包裝,以及編程控制小車的平衡以及前進。容:實驗驗收,下午撰寫實驗報告。:提交實驗報告。學生實習總結(附頁,不少于2000字)實習成績評定
請見下面附頁遵照實習大綱并根據以下三方面按五級分制(優秀、良好、中等、及格、不及格)綜合評定成績:1、思想品德、實習態度、實習紀律等2、技術業務考核、筆試、口試、實際操作等3、實習報告、分析問題、解決問題的能力實習評語:實習成績:指導教師簽名: 實習單位公章年 月 日附頁:學生實習總結一.實習任務要求1、練習焊接技術,焊接并實現簡單的發光二極管交替閃爍電路。2、練習編程技能,組裝并焊接智能平衡小車,使其能平穩行走數米,設計小車外觀。二設計思路1、發光二極管交替閃爍電路焊接技術練習完畢后,開始焊接LED燈。根據之前的經驗,先焊接外圍的LED二極管,焊接完成之后再焊接內側的,這樣的焊接目的是保證焊接的LED矩陣是平整的而不是凹凸不平。交替電路的實現:研究老師給的代碼可以知道控制輸出字符形狀是由每一列8個LED二極管的亮和滅來控制,每一列8個燈的亮滅由兩位16進制數來控制,將16進制轉化為4位二進制,其中”1”代表二極管的亮,“0”代表二極管的滅。2、智能平衡小車智能平衡車用STM32F103RC作為單片機核心板,通過usb連接至電腦然后燒錄程序來調控小車的運動狀態。智能平衡小車平衡的實現采用PD算法。通過對傳感器傳送回來的數據進行修正,將起伏劇烈的角度變化修正為平滑的變化趨勢。直走、轉彎等狀態的實現使用PID算法及計時器。通過控制車輪的角度、角速度以及電機的轉速來控制小車的狀態,當小車處于平衡時電機緩慢轉動;當小車向前傾斜時,電機加速向前加速轉動,且轉動的速度歲傾斜程度的加大而加大;小車向后傾斜時,電機加速向后轉動,控制車輪向后轉動,轉動速度也隨傾斜角度增大而增大。小車外殼設計為簡易的卡紙包裝,再保證小車外觀整潔的同時也避免了因為包裝而讓小車的質量增加太多從而影響了小車各種狀態下的加速度等物理值,減少了調試中的困難。三、具體實現過程1、發光二極管交替閃爍電路二極管交替閃爍電路的的焊接與組裝按照先易后難的順序來焊接,先將電阻焊接在雙面板上,然后焊接芯片,最后焊接LED二極管。交替電路的實現。LEDLED制代碼。2、智能平衡小車的設計與實現、小車的組裝根據教程將小車各部件組裝好。、功能實現動力控制小車由一節4.2v直流式電源供電工作。小車平衡的控制:floatKP=5.;floatKI=0;floatKD=constint16_tMOTO_THRESHOLD=600;//PWM=ctrl=g_mpu9250.Angle_Complement_1st*KP+angle_diff*KI+g_mpu9250.gyro_scale_y*KDCtrlCtrl0Ctrl0Ctrl>0和Ctrl<0;當Ctrl>0Ctrl<0時,此時小車向前傾斜,會有一個向前的加速度來達到平衡。運行狀態的控制:小車使用直流電機實現其直立行走及平衡,車輪需進行前后兩個方向的行進以此來達到我們想要的狀態。算法主要思路通過代碼可知當某一電機的PWM值與設定的前進和后退的pwm值不同時,這個電機的轉動狀態就會發生變化,電機控制的車輪就會發生相應的運動,因此設計恰當的狀態以實現小車能平衡向前運動。計時器:在主函數中加入計時器控制電機工作的狀態;具體代碼floatKP=5.55;floatKI=0;floatKD=0.5;constint16_tMOTO_THRESHOLD=600;//PWM=18KHzstaticfloatangle_D=0;staticfloatangle_D_last=0floatctrl;floatangle_diff=0int16_tdir;int16_tPWM;angle_diff+=g_mpu9250.Angle_Complement_1st;ctrl=(g_mpu9250.Angle_Complement_1st-pwm)*+angle_diff*KI+(g_mpu9250.gyro_scale_y)*KD;if(ctrl>0){dir=1; //backward}else{dir=0;//forward}PWM=abs((int)ctrl)+MOTO_THRESHOLD;//if(PWM>700)PWM=700;-g_moto_ctrl.right_pwm=PWM;if(dir==0){left_forward(PWM);right_forward(}else{}}
left_backward(PWM);right_backward(PWM)四、本人工作1、發光二極管的焊接以及顯示:單面板上的點焊練習以及實驗驗收,焊接二極管矩陣以及芯片。參與修改字符顯示代碼的修改。2、智能平衡小車:參與小車的組裝,搭建小車外殼,小車平穩直立代碼的調試,小車直行代碼的調試。五、實現功能及測試數據1、實現功能發光二極管陣列發光二極管會顯示“ILOVEU”這些字母依次從右向左流動顯示。智能小車開始小車實現平衡的功能,經過調試后實現向前走的功能。2、調試發光二極管陣列程序,觀察時候每一個LED記得對核心板斷電否則板子很容易燒壞。智能小車在進行智能小車的測試時,我們分為兩步:第一步:實現小車的平衡。將程序燒錄到開發板后,給小車接通電源,小車能保持平衡狀態,而且在沒外力干擾以及地面平整度不是特別陡峭的情況下,這個狀態可以維持較長時間。第二步:直行的實現在測試小車的直走功能時,剛開始測試時,小車直行不到20cm就倒下去了,邊倒的趨勢時,它會向這個方向加速一小段距離后自動維持平衡后再行走。最后我們設定小車狀態的維持時間,初始時,小車保持平衡10s,之后平衡7s左右時小車會向前行走一小段距離。六、遇到的問題及解決辦法焊接過程中,有幾個二極管周圍的焊接口被滴落下的融化的錫絲堵住。雖然尖嘴頭導熱效果不太好,但是可以有效避免融化的錫絲滴落到未焊接的接口上。焊接完成后,燒錄程序后有兩個二極管不亮。解決辦法:首先檢查二極管正負極是否焊接有誤,發現焊接沒有錯誤;進一步觀察是否焊接的二極管有誤漏焊的現象,如果有重新焊接。解決辦法:在小車上加個后蓋,再次調整參數,得以平穩行進。4.小車不平衡解決方法:修改PWM值,每次以小幅度增加或減少的改變,直至小車平衡。5.小車可以平衡,但是前進過程無法平衡。解決方法:在common.h剎車控制程序來重新調控其再次保持平衡。七、實驗心得本次實驗開始階段連續幾天的焊接著實讓大家對這次實習失去了太多期待bug,這個時候單cc加努力學習編程,看懂代碼,理解實驗要義,才能做出好的項目成果。八、部分代碼源程序、發光二極管交替閃爍電路#include"spi.h"#include"dot_matrix.h"uint8_tg_sys_mode=0;uint8_tg_dot_start=0;uint16_tg_dot_cnt=0;uint8_tg_ShowData[51] =0x81,0xFF,0xFF,0x81,0x00,0x00,0x81,0xFF,0xFF,0x81,0x80,0x80,0x80,0x40,0x00,0x7E,0x81,0x81,0x81,0x7E,0x00,0x01,0x3F,0x40,0x80,0x40,0x3F,0x01,0x00,0x81,0xFF,0x99,0x99,0x99,0x42,0x00,0x00,0x01,0x7F,0x80,0x80,0x80,0x7F,0x01,0x00,0xBF,0x00,0xBF,0,0,0};、智能平衡小車common.c代碼:#include<string.h>#include"stm32f1xx_hal.h"#include"tim.h"#include"spi.h"#include"main.h"#include"moto_ctrl.h"#include"dot_matrix.h"#include"uart_osc.h"#include"common.h"#include"esp8266.h"#include"mpu9250.h"#include"moto_ctrl.h"externmpu9250_tg_mpu9250;externmoto_ctrl_tg_moto_ctrl;uint32_tg_SysMode=2;uint32_tReadUserButton0(void){staticuint8_tbtn0_down=0staticuint8_tbtn0_up=1;if(HAL_GPIO_ReadPin(USER_PB0_GPIO_Port,USER_PB0_Pin)==GPIO_PIN_RESET){if(btn0_down==1&&btn0_up==1){btn0_up=0;return1;}else{btn0_down=1;HAL_Delay(50);}}else{btn0_down=0;btn0_up=1;}return0;}uint32_tReadUserButton1(void){staticuint8_tbtn1_down=0staticuint8_tbtn1_up=1;if(HAL_GPIO_ReadPin(USER_PB1_GPIO_Port,USER_PB1_Pin)==GPIO_PIN_RESET){if(btn1_down==1&&btn1_up==1){btn1_up=0;return1;}else{btn1_down=1;HAL_Delay(50);}}else{btn1_down=0;btn1_up=1;}return0;}//index0:all,1~4:LED1~4//mode0:off,1:on,2:togglevoidLEDCtrl(uint32_tindex,uint32_tmode){switch(index){case0:if(mode==0){HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SETHAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET}elseif(mode==1){HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESETHAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET);}break;case1:if(mode==0){HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET);}elseif(mode==1){HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);}elseif(mode==2){HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);}break;case2:if(mode==0){HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET);}elseif(mode==1){HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET);}elseif(mode==2){HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);}break;default:break;}}voidSleepSystem(void){//MX_GPIO_DeInit();HAL_PWR_EnterSLEEPMode(PWR_LOWPOWERREGULATOR_ON,PWR_SLEEPENTRY_WFE);}voidStopSystem(void){HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);}voidGet_IR_Sensor(void)//?-?£{uint8_tdata0,data1;data0=GPIOC->IDR&0x0E;//pin3,2,1->IR4,3,5data1=GPIOB->IDR&0x28;//pin5,3->IR2,1g_moto_ctrl.ir_sensor=(data1<<2)|data0;}voidIR_Sensor_Init(void){GPIO_InitTypeDefGPIO_InitStruct;HAL_SPI_MspDeInit(&hspi3);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3|GPIO_PIN_5,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOC,IR_3_Pin|IR_4_Pin|IR_5_Pin,GPIO_PIN_RESET);HAL_GPIO_DeInit(GPIOC,IR_3_Pin|IR_4_Pin|IR_5_Pin);/*ConfigureGPIOpins:PBPinPBPin*/GPIO_InitStruct.Pin=IR_1_Pin|IR_2_Pin;GPIO_InitStruct.Mode=GPIO_MODE_INPUT;GPIO_InitStruct.Pull=GPIO_NOPULL;HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);GPIO_InitStruct.Pin=IR_3_Pin|IR_4_Pin|IR_5_Pin;GPIO_InitStruct.Mode=GPIO_MODE_INPUT;GPIO_InitStruct.Pull=GPIO_NOPULL;HAL_GPIO_Init(GPIOC,&GPIO_InitStruct);}voidSetWorkMode(uint32_tmode){switch(mode){case0: //balanceLEDCtrl(1,0);LEDCtrl(2,1);HAL_TIM_PWM_MspInit(&htim8);HAL_TIM_Base_Start_IT(&htim6);IR_Sensor_Init();break;case1: //dotLEDCtrl(1,1);LEDCtrl(2,0);HAL_TIM_Base_Stop_IT(&htim6);Motor_Stop();HAL_TIM_PWM_MspDeInit(&htim8);dot_matrix_init();break;case2: //showoscLEDCtrl(1,1);LEDCtrl(2,1);Motor_Stop();HAL_TIM_PWM_MspDeInit(&htim8);IR_Sensor_Init();HAL_TIM_Base_Start_IT(&htim6);break;}}void UserTask(void){if(ReadUserButton0()==1){LEDCtrl(0,0);HAL_TIM_Base_Stop_IT(&htim6);HAL_TIM_PWM_MspDeInit(&htim8);HAL_PWR_EnterSTANDBYMode();}if(ReadUserButton1()==1){g_SysMode++;if(g_SysMode>2)g_SysMode=0;SetWorkMode(g_SysMode);}switch(g_SysMode){case1: //dotshow_dot_matrix();break;case2:Uart_OSC_ShowWave(g_mpu9250.angle_x,g_mpu9250.gyro_scale_y,g_mpu9250.Angle_Complement_1st,g_moto_ctrl.ir_sensor);// Uart_OSC_ShowWave(g_moto_ctrl.right_pwm,g_moto_ctrl.left_pwm g_mpu9250.Angle_Complement_1st);// Uart_OSC_ShowWave(g_mpu9250.angle_x,g_mpu9250.gyro_scale_y g_mpu9250.Angle_Kalman,g_mpu9250.Angle_Complement_1st);break;}}voidSystemTimer1msCallback(intctrl,floatbala){staticuint32_ti=0;if(i>=99)i=0;elsei++;Get_IR_Sensor();MPU9250_Get_Accel_Gyro_Temp();MPU9250_Data_Process();if(ctrl==0){Moto_Balance_PID_Ctrl(0+8.5-bala);}elseif(ctrl==1){Moto_Balance_PID_Ctrl(0);}elseMoto_Balance_PID_Ctrl(-6.5);switch(g_SysMode){case0: //banlancecarif(i==99)LEDCtrl(2,2);break;case2:if(g_mpu9250.angle_x>0)LEDCtrl(2,1);elseif(g_mpu9250.angle_x<0)LEDCtrl(2,0);break;}}Ctrl.motoc的部分代碼floatKP=5.55;floatKI=0;floatKD=0.5;constint16_tMOTO_THRESHOLD=600;//PWM=18KHzstaticfloatangle_D=0;staticfloatangle_D_last=0floatctrl;floatangle_diff=0int16_tdir;int16_tPWM;angle_diff+=g_mpu9250.Angle_Complement_1st;ctrl=(g_mpu9250.Angle_Complement_1st-pwm)*+angle_diff*KI+(g_mpu9250.gyro_scale_y)*KD;if(ctrl>0){dir=1; //backward}else{dir=0;//forward}PWM=abs((int)ctrl)+MOTO_THRESHOLD;//if(PWM>700)PWM=700;-g_moto_ctrl.right_pwm=PWM;if(dir==0){}else{}}
left_forward(PWM);right_forward(left_backward(PWM);right_backward(PWM)voidMoto_Ctrl_Init(void){memset(&g_moto_ctrl,0,sizeof(moto_ctrl_t));}voidright_backward(uint16_tvalue){HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_4);HAL_GPIO_WritePin(MT1_A_GPIO_Port,MT1_A_Pin,GPIO_PIN_SET);HAL_GPIO_WritePin(MT1_B_GPIO_Port,MT1_B_Pin,GPIO_PIN_RESET);TIM_SetCompare4(TIM8,value);HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_4);}voidright_forward(uint16_tvalue){HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_4);HAL_GPIO_WritePin(MT1_A_GPIO_Port,MT1_A_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(MT1_B_GPIO_Port,MT1_B_Pin,GPIO_PIN_SET);TIM_SetCompare4(TIM8,value);HAL_TIM_PWM_Start(&htim8,}voidleft_backward(uint16_tvalue){HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_3);HAL_GPIO_WritePin(MT2_B_GPIO_Port,MT2_B_Pin,GPIO_PIN_SET);HAL_GPIO_WritePin(MT2_A_GPIO_Port,MT2_A_Pin,GPIO_PIN_RESET);TIM_SetCompare3(TIM8,value);HAL_TIM_PWM_Start(&htim8,}voidleft_forward(uint16_tvalue){HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_3);HAL_GPIO_WritePin(MT2_B_GPIO_Port,MT2_B_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(MT2_A_GPIO_Port,MT2_A_Pin,GPIO_PIN_SET);TIM_SetCompare3(TIM8,value);HAL_TIM_PWM_Start(&htim8,}voidMotor_Stop(void){HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_3);HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_4);HAL_GPIO_WritePin(MT1_A_GPIO_Port,MT2_A_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(MT1_B_GPIO_Port,MT2_B_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(MT2_A_GPIO_Port,MT2_A_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(MT2_B_GPIO_Port,MT2_B_Pin,GPIO_PIN_RESET);}贈送以下資料實習評語(單位意見及教師評價)實習單位鑒定的內容一般包括:1、出勤情況;2、遵章守紀情況;3、學習態度;4、在何實習單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公交心理測試題庫及答案
- 登記公務員面試題及答案
- 地鐵測量筆試題目及答案
- 2025年心理咨詢與心理治療考試試卷及答案
- 2025年文秘類崗位筆試試題及答案
- 2025年數字媒體設計專業技能考試試卷及答案
- 2025年戲劇表演專業能力評估試卷及答案
- 德邦轉正考試試題及答案
- 2025年視覺傳達藝術綜合測試卷及答案
- 2025年護理學本科入學考試題及答案
- 安全逃生與自救技巧
- 2025年國家能源集團寧夏煤業公司招聘筆試參考題庫含答案解析
- 7s管理培訓課件
- 2025年山東省菏澤市環境保護局事業單位招聘歷年高頻重點提升(共500題)附帶答案詳解
- “十三五”規劃重點-分析測試中心項目建議書(立項報告)
- 從草根到殿堂:流行音樂導論(上海音樂學院)學習通測試及答案
- 2025年禁毒知識競賽題庫及答案(100題)
- 動靜脈內瘺圍手術期的護理
- 中西醫結合治療銀屑病
- 項目工期管理
- 小學數學基礎理論知到智慧樹章節測試課后答案2024年秋咸陽職業技術學院
評論
0/150
提交評論