




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
電子工藝實習(xí)報告學(xué)院:專業(yè):班級:學(xué)號:姓名:北京郵電大學(xué)實習(xí)報告實習(xí)名稱學(xué)生姓名
電子工藝實習(xí) 學(xué)院班 級 學(xué)號實習(xí)時間 7.9-7.20
實習(xí)地點
主樓522:領(lǐng)取實驗器材,確定分組,老師講解電烙鐵以及吸錫器的使用。315:練習(xí)點焊,驗收點焊實驗。實7.12-7.13:發(fā)光二極管的焊接以及調(diào)試代碼控制LED顯示情況,LED顯示以后進行驗習(xí)收。內(nèi)7.16-7.18:小車組裝,包裝,以及編程控制小車的平衡以及前進。容:實驗驗收,下午撰寫實驗報告。:提交實驗報告。學(xué)生實習(xí)總結(jié)(附頁,不少于2000字)實習(xí)成績評定
請見下面附頁遵照實習(xí)大綱并根據(jù)以下三方面按五級分制(優(yōu)秀、良好、中等、及格、不及格)綜合評定成績:1、思想品德、實習(xí)態(tài)度、實習(xí)紀(jì)律等2、技術(shù)業(yè)務(wù)考核、筆試、口試、實際操作等3、實習(xí)報告、分析問題、解決問題的能力實習(xí)評語:實習(xí)成績:指導(dǎo)教師簽名: 實習(xí)單位公章年 月 日附頁:學(xué)生實習(xí)總結(jié)一.實習(xí)任務(wù)要求1、練習(xí)焊接技術(shù),焊接并實現(xiàn)簡單的發(fā)光二極管交替閃爍電路。2、練習(xí)編程技能,組裝并焊接智能平衡小車,使其能平穩(wěn)行走數(shù)米,設(shè)計小車外觀。二設(shè)計思路1、發(fā)光二極管交替閃爍電路焊接技術(shù)練習(xí)完畢后,開始焊接LED燈。根據(jù)之前的經(jīng)驗,先焊接外圍的LED二極管,焊接完成之后再焊接內(nèi)側(cè)的,這樣的焊接目的是保證焊接的LED矩陣是平整的而不是凹凸不平。交替電路的實現(xiàn):研究老師給的代碼可以知道控制輸出字符形狀是由每一列8個LED二極管的亮和滅來控制,每一列8個燈的亮滅由兩位16進制數(shù)來控制,將16進制轉(zhuǎn)化為4位二進制,其中”1”代表二極管的亮,“0”代表二極管的滅。2、智能平衡小車智能平衡車用STM32F103RC作為單片機核心板,通過usb連接至電腦然后燒錄程序來調(diào)控小車的運動狀態(tài)。智能平衡小車平衡的實現(xiàn)采用PD算法。通過對傳感器傳送回來的數(shù)據(jù)進行修正,將起伏劇烈的角度變化修正為平滑的變化趨勢。直走、轉(zhuǎn)彎等狀態(tài)的實現(xiàn)使用PID算法及計時器。通過控制車輪的角度、角速度以及電機的轉(zhuǎn)速來控制小車的狀態(tài),當(dāng)小車處于平衡時電機緩慢轉(zhuǎn)動;當(dāng)小車向前傾斜時,電機加速向前加速轉(zhuǎn)動,且轉(zhuǎn)動的速度歲傾斜程度的加大而加大;小車向后傾斜時,電機加速向后轉(zhuǎn)動,控制車輪向后轉(zhuǎn)動,轉(zhuǎn)動速度也隨傾斜角度增大而增大。小車外殼設(shè)計為簡易的卡紙包裝,再保證小車外觀整潔的同時也避免了因為包裝而讓小車的質(zhì)量增加太多從而影響了小車各種狀態(tài)下的加速度等物理值,減少了調(diào)試中的困難。三、具體實現(xiàn)過程1、發(fā)光二極管交替閃爍電路二極管交替閃爍電路的的焊接與組裝按照先易后難的順序來焊接,先將電阻焊接在雙面板上,然后焊接芯片,最后焊接LED二極管。交替電路的實現(xiàn)。LEDLED制代碼。2、智能平衡小車的設(shè)計與實現(xiàn)、小車的組裝根據(jù)教程將小車各部件組裝好。、功能實現(xiàn)動力控制小車由一節(jié)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;當(dāng)Ctrl>0Ctrl<0時,此時小車向前傾斜,會有一個向前的加速度來達到平衡。運行狀態(tài)的控制:小車使用直流電機實現(xiàn)其直立行走及平衡,車輪需進行前后兩個方向的行進以此來達到我們想要的狀態(tài)。算法主要思路通過代碼可知當(dāng)某一電機的PWM值與設(shè)定的前進和后退的pwm值不同時,這個電機的轉(zhuǎn)動狀態(tài)就會發(fā)生變化,電機控制的車輪就會發(fā)生相應(yīng)的運動,因此設(shè)計恰當(dāng)?shù)臓顟B(tài)以實現(xiàn)小車能平衡向前運動。計時器:在主函數(shù)中加入計時器控制電機工作的狀態(tài);具體代碼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、發(fā)光二極管的焊接以及顯示:單面板上的點焊練習(xí)以及實驗驗收,焊接二極管矩陣以及芯片。參與修改字符顯示代碼的修改。2、智能平衡小車:參與小車的組裝,搭建小車外殼,小車平穩(wěn)直立代碼的調(diào)試,小車直行代碼的調(diào)試。五、實現(xiàn)功能及測試數(shù)據(jù)1、實現(xiàn)功能發(fā)光二極管陣列發(fā)光二極管會顯示“ILOVEU”這些字母依次從右向左流動顯示。智能小車開始小車實現(xiàn)平衡的功能,經(jīng)過調(diào)試后實現(xiàn)向前走的功能。2、調(diào)試發(fā)光二極管陣列程序,觀察時候每一個LED記得對核心板斷電否則板子很容易燒壞。智能小車在進行智能小車的測試時,我們分為兩步:第一步:實現(xiàn)小車的平衡。將程序燒錄到開發(fā)板后,給小車接通電源,小車能保持平衡狀態(tài),而且在沒外力干擾以及地面平整度不是特別陡峭的情況下,這個狀態(tài)可以維持較長時間。第二步:直行的實現(xiàn)在測試小車的直走功能時,剛開始測試時,小車直行不到20cm就倒下去了,邊倒的趨勢時,它會向這個方向加速一小段距離后自動維持平衡后再行走。最后我們設(shè)定小車狀態(tài)的維持時間,初始時,小車保持平衡10s,之后平衡7s左右時小車會向前行走一小段距離。六、遇到的問題及解決辦法焊接過程中,有幾個二極管周圍的焊接口被滴落下的融化的錫絲堵住。雖然尖嘴頭導(dǎo)熱效果不太好,但是可以有效避免融化的錫絲滴落到未焊接的接口上。焊接完成后,燒錄程序后有兩個二極管不亮。解決辦法:首先檢查二極管正負(fù)極是否焊接有誤,發(fā)現(xiàn)焊接沒有錯誤;進一步觀察是否焊接的二極管有誤漏焊的現(xiàn)象,如果有重新焊接。解決辦法:在小車上加個后蓋,再次調(diào)整參數(shù),得以平穩(wěn)行進。4.小車不平衡解決方法:修改PWM值,每次以小幅度增加或減少的改變,直至小車平衡。5.小車可以平衡,但是前進過程無法平衡。解決方法:在common.h剎車控制程序來重新調(diào)控其再次保持平衡。七、實驗心得本次實驗開始階段連續(xù)幾天的焊接著實讓大家對這次實習(xí)失去了太多期待bug,這個時候單cc加努力學(xué)習(xí)編程,看懂代碼,理解實驗要義,才能做出好的項目成果。八、部分代碼源程序、發(fā)光二極管交替閃爍電路#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);}贈送以下資料實習(xí)評語(單位意見及教師評價)實習(xí)單位鑒定的內(nèi)容一般包括:1、出勤情況;2、遵章守紀(jì)情況;3、學(xué)習(xí)態(tài)度;4、在何實習(xí)單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)內(nèi)部員工培訓(xùn)需求與實施策略
- CVD金剛石薄膜與涂層技術(shù)進展及其關(guān)鍵應(yīng)用領(lǐng)域探索
- 合肥學(xué)校資產(chǎn)管理辦法
- 機票費用審核管理辦法
- 國企補充醫(yī)療管理辦法
- 公務(wù)接待集中管理辦法
- 醫(yī)藥機構(gòu)定點管理辦法
- 農(nóng)機大院農(nóng)機管理辦法
- 近現(xiàn)代文學(xué)批評主體與客體:期刊書評的媒介作用
- “新質(zhì)生產(chǎn)力”引領(lǐng)下的“檔案文化產(chǎn)業(yè)”發(fā)展新模式、新趨勢與新路徑探索
- -衛(wèi)生資格-副高-內(nèi)科護理-副高-章節(jié)練習(xí)-護理學(xué)總論-醫(yī)院感染護理(案例分析題)(共6題)
- 中國古代文化常識(上)
- 禮品禮金登記表
- 【新】2019-2020成都市石室中學(xué)北湖校區(qū)初升高自主招生數(shù)學(xué)【4套】模擬試卷【含解析】
- 《文明禮貌我最棒》班會課件
- 意外受傷賠償協(xié)議書的格式
- PE管閉水試驗表
- 山東省教師職稱改革實施方案
- 《河南省企業(yè)安全風(fēng)險辨識管控與隱患排查治理雙重預(yù)防體系建設(shè)導(dǎo)則(試用)》
- 生產(chǎn)過程檢驗記錄表
- 規(guī)劃放線報告材料樣本
評論
0/150
提交評論