《單片機(jī)移動機(jī)械臂》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)移動機(jī)械臂(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
移動機(jī)械臂
姓名:陶敏
學(xué)號:0863110312
班級:08級建筑學(xué)3班
一、實物圖
2、 圖1
圖2
如圖為該移動機(jī)械臂的實物圖,該系統(tǒng)是以8051單片機(jī)為核心的一個機(jī)械系統(tǒng)。目前還處于研究試驗階段。該系統(tǒng)為一移動機(jī)器人方案。
該移動機(jī)器人可以夾物體,并且可以自動避開物體,由于處于實驗階段,所以實用性還不是很強(qiáng)。不過作為一個機(jī)器人系統(tǒng)還有很廣闊的應(yīng)用前景。
圖3
3、 把機(jī)器放在地上,按下電源開關(guān)機(jī)器便可運(yùn)行。
圖4
內(nèi)置蓄電池,充電口接通220V家庭電路便可以充電。
蜂鳴器發(fā)聲用于狀態(tài)指示。
圖
4、6 圖5
減速齒輪組減速矩。
二、電路系統(tǒng)
H 橋電路用于雙向驅(qū)動電動機(jī)
Vm輸出到H橋電路,VCC輸出到8051單片機(jī)系統(tǒng),4.7V輸出到反射光電開關(guān)電路。
Vin為12V電壓輸入。
反射式光電開關(guān)電路用于檢測外部環(huán)境,如避開障礙物和用夾子夾夾起東西。
5、
蜂鳴器電路用于狀態(tài)指示
系統(tǒng)主控制電路
1、 實驗源程序
#include
sbit M1A=P0^0;sbit M1B=P0^1; sbit M2A=P0^2;sbit M2B=P0^3; sbit M3A=P0^4;sbit M3B=P0^5;
sbit M4A=P0^6;sbit M4B=P0^7; sbit M5A=P2^7;sbit M5B=P2^
6、6; sbit M6A=P2^0;sbit M6B=P2^1;
sbit M7A=P2^5;sbit M7B=P2^4; sbit Beep=P2^2;
sbit Rin=P1^1;sbit Lin=P1^2; sbit Min=P1^5;
void MSDelay (unsigned int);
void Music1(void); void Music2(void); void Music3(void);
void main(void)
{
Rin=1; Lin=1; Min=1;
M1A=0; M1B=1;//M1前進(jìn)
while( R
7、in==0)
{
M1A=1; M1B=1; MSDelay(40);//M1停止
Music2();
M1A=1; M1B=0; MSDelay(200); M1A=1; M1B=1; MSDelay(40);//后退
M2A=1; M2B=0; MSDelay(150); M2A=1; M2B=1; MSDelay(40);//右轉(zhuǎn)
}
while( Lin==0)
{
M1A=1; M1B=1; MSDelay(40);//M1停止
Musi
8、c2();
M1A=1; M1B=0; MSDelay(200); M1A=1; M1B=1; MSDelay(40);//后退
M2A=0; M2B=1; MSDelay(150); M2A=1; M2B=1; MSDelay(40);//左轉(zhuǎn)
}
while( Min==0)
{
M1A=1; M1B=1; MSDelay(40);//M1停止
Music2(); Music3();
M7A=0; M7B=1; MSDelay(100); M7A=1; M7B=
9、1; Music1();//開口
M5A=1; M5B=0; MSDelay(500); M5A=1; M5B=1; Music1();//上旋
M7A=1; M7B=0; MSDelay(100); M7A=1; M7B=1; Music1();//閉合
M6A=0; M6B=1; MSDelay(400); M6A=1; M6B=1; Music1();//下旋
M5A=0; M5B=1; MSDelay(500); M5A=1; M5B=1; Music1();//下旋
M
10、4A=0; M4B=1; MSDelay(500); M4A=1; M4B=1; Music1();//下旋
M3A=1; M3B=0; MSDelay(300); M3A=1; M3B=1; Music1();//逆時針
M7A=0; M7B=1; MSDelay(100); M7A=1; M7B=1; Music1();//開口
M7A=1; M7B=0; MSDelay(100); M7A=1; M7B=1; Music1();//閉合
M6A=1; M6B=0; MSDela
11、y(400); M6A=1; M6B=1; Music1();//上旋
M4A=1; M4B=0; MSDelay(500); M4A=1; M4B=1; Music1();//上旋
M3A=0; M3B=1; MSDelay(300); M3A=1; M3B=1; Music1();//順時針
}
}
void MSDelay(unsigned int itime) //時間延遲
{
unsigned int i,j;
for(i=0;i
12、0;j<1275;j++);
}
void Music1(void) //音樂1
{
unsigned int i,j;
for(i=0;i<300;i++)
{
Beep=0;
for(j=0;j<30;j++);
Beep=1;
for(j=0;j<30;j++);
}
Beep=1;
}
void Music2(void)
13、 //音樂2
{
unsigned int i,j,k;
for(k=0;k<10;k++)
{
for(i=0;i<100;i++)
{
Beep=0;
for(j=0;j<30;j++);
Beep=1;
for(j=0;j<30;j++);
}
Beep=1; MSDelay(10);
}
Beep=1;
}
void Music3(void) //音樂3
{
unsigned int i,j,k;
for(k=0;k<10;k++)
{
for(i=0;i<100;i++)
{
Beep=0;
for(j=0;j<30;j++);
Beep=1;
for(j=0;j<30;j++);
}
Beep=1; MSDelay(5);
}
Beep=1;
}