《機電一體化系統設計報告實習總結.doc》由會員分享,可在線閱讀,更多相關《機電一體化系統設計報告實習總結.doc(16頁珍藏版)》請在裝配圖網上搜索。
《機電一體化綜合訓練》總結
姓名 孔垂靖
學號 08908054
實驗組 寶貝車第三組、流水線第五組、
機械臂第一組
實驗指導教師 史穎剛、朱兆龍、劉利
西北農林科技大學機械與電子工程學院
2011年7月
機電一體化綜合訓練實習總結
1、 寶貝車總結
拿到寶貝車的實習器材的那一刻我有點激動,因為我個人覺得這個實習是我們這幾個實習中相對來說比較有趣的一個。當然也不能總是激動,通過對實習教材的研讀我們組完成了寶貝車的安裝、程序的編輯調試和載入。下面是我們編輯的紅外線屏蔽程序和胡須屏蔽程序,經過調試和實驗,這兩個程序能過滿足要求。
紅外線屏障程序:
#include
#include
#include
#define LeftIR P1_2 //左邊紅外接收連接到P1_2
#define RightIR P3_5 //右邊紅外接收連接到P3_5
#define LeftLaunch P1_3 //左邊紅外發(fā)射連接到P1_3
#define RightLaunch P3_6 //右邊紅外發(fā)射連接到P3_6
void IRLaunch(unsigned char IR)
{
int counter;
if(IR==L)
for(counter=0;counter<38;counter++)
{
LeftLaunch=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
LeftLaunch=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
if(IR==R)
for(counter=0;counter<38;counter++)//右邊發(fā)射
{
RightLaunch=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
RightLaunch=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
}
void Forward(void)//向前行走子程序
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
void Left_Turn(void)//左轉子程序
{
int i;
for( i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
}
void Right_Turn(void)//右轉子程序
{
int i;
for( i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
void Backward(void)//向后行走子程序
{
int i;
for( i=1;i<=65;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
int main(void)
{
int irDetectLeft,irDetectRight;
uart_Init();
printf("Program Running!\n");
while(1)
{
IRLaunch(R); //右邊發(fā)射
irDetectRight = RightIR;//右邊接收
IRLaunch(L); //左邊發(fā)射
irDetectLeft = LeftIR;//左邊接收
if((irDetectLeft==0)&&(irDetectRight==0))//兩邊同時接收到紅外線
{
Backward();
Left_Turn();
Left_Turn();
}
else if(irDetectLeft==0)//只有左邊接收到紅外線
{
Backward();
Right_Turn();
}
else if(irDetectRight==0)//只有右邊接收到紅外線
{
Backward();
Left_Turn();
}
else
Forward();
}
}
胡須屏障程序:
#include
#include
int P1_4state(void)
{
return (P1&0x10)?1:0;
}
int P2_3state(void)
{
return (P2&0x08)?1:0;
}
void Forward(void)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
void Left_Turn(void)
{
int i;
for(i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
}
void Right_Turn(void)
{
int i;
for(i=1;i<=26;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
void Backward(void)
{
int i;
for(i=1;i<=65;i++)
{
P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
int main(void)
{
int counter=1;
int old2=1;
int old3=0;
uart_Init();
printf("Program Running!\n");
while(1)
{
if(P1_4state()!=P2_3state())
{
if((old2!=P1_4state())&&(old3!=P2_3state()))
{
counter=counter+1;
old2=P1_4state();
old3=P2_3state();
if(counter>4)
{
counter=1;
Backward();//向后
Left_Turn();//向左
Left_Turn();//向左
}
}
else
counter=1;
}
if((P1_4state()==0)&&(P2_3state()==0))
{
Backward();//向后
Left_Turn();//向左
Left_Turn();//向左
}
else if(P1_4state()==0)
{
Backward();//向后
Left_Turn();//向左
}
else if(P2_3state()==0)
{
Backward();//向后
Right_Turn();//向右
}
else
Forward();//向前
}
}
2、 流水線總結
要說寶貝車是有趣的話,那么流水線生產則是實用的代名詞,它在我們的日常生活應用最為廣泛的!各種各樣的流水線生產不在是完全由人完成,而是基本都不用人工操作,用機器代替人工是社會發(fā)展的必然要求。在這個實習中我們主要是根據流水線生產的運動過程寫出了PLC電器控制圖。當然由于這個流水線生產自身也存在一些問題,我們也要提出自己的改進措施,在第五站的中我個人覺得主要存在的問題是機械臂的來回旋轉會產生巨大的轉動慣量,而轉動慣量是由轉動角速度、臂長、質量等決定的。為了提高效率不能減小轉動角速度,當然臂長和質量一般也是不能改變的,所以我提出的改進措施是在臂的擺動到位處增加緩沖機構,從而減小臂擺時的沖擊。下面是PLC控制的梯形圖和指令表:
3、 機械臂總結
機械臂是我們實習的第一站,兩個周的實習也是從這里開始的。通過學習系統基礎硬件和軟件構成,了解了各部件名稱、功能及使用方法,也了解了控制軟件平臺、示教再現控制方式及其演示軟件。學會了用機器人控制兩種坐標空間運動模式的操作設計。通過機械臂的操作使用,了解了部分控制器件的功能、使用方法和基本控制原理。最后當然是通過編程訓練,學會了用繪圖語言控制工業(yè)機器人的基本編程方法、設計繪圖程序控制機械臂并繪出實際圖形。
通過前面的學習加之老師的細心講解,我也學會了使用鼠標、手寫板和攝像頭控制機械臂繪制圖案文字和素描肖像。
咋一看,機械臂畫的圖好像只是好看,沒有什么實用的地方。但是實際的事實并不是這樣的,它在好多的工業(yè)生產中發(fā)揮著重要的作用,在給油方面表現尤為突出。下面的是我在實習過程中編寫的繪圖程序和繪出的肖像圖:
畫五角星程序:
VAR // 程序主體運動開始標志
float i;
float d;
float r1; // 定義外圓的半徑
float r2; // 定義內圓的半徑
float x;
float y;
float a,b;
float p;
BEGIN
i=0;
d=54; // 初始角度
p=3.1415926; // 3.1415926為圓周率的值,這是為了畫圓而定義的
r1=100; //外圓半徑賦值
r2=38.196601; //內圓半徑計算賦值
x=160; // 圓心x坐標
y=120; // 圓心y坐標
a=x+r2*cos(d*p/180);
b=y-r2*sin(d*p/180);
MoveTo(a,b); // 筆畫的起點
while(i<5) // 循環(huán)體結構,當i<5時不斷的畫圓弧
{
d=d+36;
a=x+r1*cos(d*p/180);
b=y-r1*sin(d*p/180);
LineTo(a,b); // 畫當前點到(a,b)點坐標的直線
d=d+36; // 角度增加36
a=x+r2*cos(d*p/180);
b=y-r2*sin(d*p/180);
LineTo(a,b);
i=i+1; // 改變循環(huán)條件
}
END
畫出的圖形如下:
//四葉玫瑰線:
VAR // 程序主體運動開始標志
float d;
float r; // 定義圓的半徑
float x;
float y;
float a,b;
float p;
BEGIN
d=0; // 初始角度
p=3.1415926; // 3.1415926為圓周率的值,這是為了畫圓而定義的
r=120; // 半徑r
x=160; // 圓心x坐標
y=120; // 圓心y坐標
a=x;
b=y;
MoveTo(a,b); // 筆畫的起點
while(d<6.283) // 循環(huán)體結構,當i<6時不斷的畫圓弧
{
a=x+r*sin(2*d)*cos(d);
b=y+r*sin(2*d)*sin(d);
LineTo(a,b); // 畫當前點到(a,b)點坐標的直線
d=d+0.01; // 角度增加0.01弧度,為了使曲線更圓滑可使角度增量更小
}
a=x; //以下是畫對稱軸程序段
b=y;
MoveTo(a,b);
a=x+84.8528;
b=y+84.8528;
LineTo(a,b);
a=x;
b=y;
MoveTo(a,b);
a=x-84.8528;
b=y+84.8528;
LineTo(a,b);
a=x;
b=y;
MoveTo(a,b);
a=x+84.8528;
b=y-84.8528;
LineTo(a,b);
a=x;
b=y;
MoveTo(a,b);
a=x-84.8528;
b=y-84.8528;
LineTo(a,b);
END // 程序結束
圖形如下:
肖像圖
四、個人體會與總結
兩個周的實習是短暫的,但是在這兩個周的實習中我還是學到了不少東西,尤其是那些平時書本中學不到的東西,就像俗話說的“世上無難事,只怕有心人”。在本次的實習中,我們組做的是第五站??此坪芎唵蔚囊粋€站,在實習過程中卻給了我們很大的困難,還好在老師的幫助下一切都順利的完成了。但是PLC程序的繪制和編輯給我們留下了深刻的記憶;開始的時候保存老是出現錯誤,導致我們編輯了好多次才成功的保存下來,幸好保存成功了,還是值得慶幸。
實習是我們大學生活必不可少的一部分,我們也會抓住每一次鍛煉自己的機會讓自己與實際更接近。實習給我們提供鍛煉自己動手能力的機會,讓我們把自己在課堂上學的知識和實踐中的東西結合起來,學以致用。
現在回憶這些天奮斗的過程,感觸頗深??!有成功的喜悅也有失敗的憂傷。當面對自己做出的勞動成果時,感覺自己真的學到了很多知識,最重要的是還能把它們變成有技術含量的東西應用到實際生活中。任何個人的力量都是有限的,在實習中我們通過幾個人的團隊合作達到了1+1大于2的效果,這也充分地說明團隊合作的重要性。
感謝學校給我們這次機會,讓我們能夠通過這次機會鍛煉自己的動手能力和團隊協作能力!
鏈接地址:http://www.820124.com/p-9049952.html