先說(shuō)一下本作品的作用,,有興趣的往下看:
可以實(shí)現(xiàn)遠(yuǎn)程無(wú)線遙控,,只要有網(wǎng)絡(luò)的地方,都可以做控制端或者被控制端,,例如,,你在北京,我在廣州,,你就可以控制這個(gè)小車(chē)的動(dòng)作,,在SMC盒子上接上攝像頭,完全實(shí)現(xiàn)無(wú)線遙控控制,。
用途嗎,,你把它放家里可以當(dāng)安防,你把它放到工廠,,可以當(dāng)保安,,你把它放到戰(zhàn)場(chǎng)它可以做機(jī)器戰(zhàn)士(一點(diǎn)都不夸張),呵呵,,繼續(xù)想象吧
總的來(lái)說(shuō)嘛,,SMC就是一個(gè)可以跨越距離的你PC后面的串口。
我的作品,,先上圖 再來(lái)
遠(yuǎn)程控制小車(chē)" border="0" height="435" src="http://files.chinaaet.com/images/20111027/4d0e2945-d6a0-49ca-ac8f-8af7719a0357.jpg" width="580" />
嘿嘿,,說(shuō)起來(lái)挺簡(jiǎn)單的,簡(jiǎn)單一點(diǎn)的說(shuō):PC控制SMC盒子,,盒子里面用Debian系統(tǒng),,系統(tǒng)控制SMC串行端口,端口控制51單片機(jī),,單片機(jī)控制車(chē)體,,OK!??!
先說(shuō)一下本作品的作用,,有興趣的往下看:
可以實(shí)現(xiàn)遠(yuǎn)程無(wú)線遙控,只要有網(wǎng)絡(luò)的地方,,都可以做控制端或者被控制端,,例如,你在北京,,我在廣州,,你就可以控制這個(gè)小車(chē)的動(dòng)作,在SMC盒子上接上攝像頭,,完全實(shí)現(xiàn)無(wú)線遙控控制,。
用途嗎,你把它放家里可以當(dāng)安防,,你把它放到工廠,,可以當(dāng)保安,你把它放到戰(zhàn)場(chǎng)它可以做機(jī)器戰(zhàn)士(一點(diǎn)都不夸張),,呵呵,,繼續(xù)想象吧
總的來(lái)說(shuō)嘛,,SMC就是一個(gè)可以跨越距離的你PC后面的串口,。
我的作品,先上圖 再來(lái)
嘿嘿,,說(shuō)起來(lái)挺簡(jiǎn)單的,,簡(jiǎn)單一點(diǎn)的說(shuō):PC控制SMC盒子,盒子里面用Debian系統(tǒng),,系統(tǒng)控制SMC串行端口,,端口控制51單片機(jī),單片機(jī)控制車(chē)體,,OK?。?!
詳細(xì)一點(diǎn),,往下來(lái)看:
1,先往SMC盒子安裝Debian系統(tǒng),,詳細(xì)請(qǐng)參考:lintel 的在SMC無(wú)線硬盤(pán)盒(MGB100)上運(yùn)行Debian 地址:http://www.anywlan.com/bbs/thread-18052-1-1.html
2,,焊接盒子的串行接口線,請(qǐng)參考: lintel的SMC無(wú)線硬盤(pán)盒(MGB100) 研究之四 JTAG 地址:http://www.anywlan.com/bbs/thread-18012-1-1.html
只需要焊接1 3 6號(hào)腳就可以,,我焊接的一般就不上圖了(如果經(jīng)常用串行接口的話,,可以去掉一個(gè)USB中間兩根線,改接這兩根RX ,,TX ,,嘿嘿,,反正兩個(gè)USB呢,也用不著那么多,,個(gè)人觀點(diǎn)哦,,根據(jù)自己實(shí)際情況定。)
3,,焊接受控制電路板,。以下以51單片機(jī)為例(有串口了,其他還不好說(shuō)嗎?。?,我的如下:
特別注意的,如果有51單片機(jī)編程器的話就不用焊RS232了,,這個(gè)盒子串口是TTL電平,,51也是,絕配,!記得RX--TX TX--RX哦,。
當(dāng)然沒(méi)有編程器,那就多費(fèi)點(diǎn)勁,,想偷懶,,就找個(gè)老式的COM口數(shù)據(jù)線,嘿嘿,,那個(gè)一般都是RS232,,具體接法百度吧!
4,,51單片機(jī)再接個(gè)L298N,,接法如下,詳情百度,,多如牛毛,。
硬件一切就緒,接下來(lái),,軟件
1,,先說(shuō)一下SMC盒子串口的控制,用minicom控制,,具體如下
debian安裝OK后
apt-get install minicom
一路Y,,安裝完成。
minicom -s
配置串口,,出現(xiàn)配置菜單:選serial port setup
進(jìn)入串口配置
輸入A配置串口驅(qū)動(dòng)為/dev/ttyS0
輸入E配置速率為9600 8N1
輸入F將 Hardware Flow Control 設(shè) 為 NO
回車(chē) 退出
由于我們使用minicom作為超級(jí)終端控制路由器等設(shè)備,, 而不是控制modem, 所以需要修改Modem and dialing,, 將Init
string,, Reset string,, Hang-up string設(shè)置為空。 設(shè)置完成后選擇Save setup as
dfl將當(dāng)前設(shè)置保存為默認(rèn)設(shè)置,。
在配置菜單 選Save setup as df1保存(一定要記得這一步)
選Exit退出
下次在輸入minicon 即可直接進(jìn)入,,按CTRL+A 再按shift+E 調(diào)出回顯,OK完成,。
2,,要遠(yuǎn)程控制,動(dòng)態(tài)域名即可,。
3,,單片機(jī)程序
//Code by myasus 僅希望拋磚引玉
//QQ:31495962
#include
#include
sfr DC=0x90; //P1是電機(jī)接口,P1.0--A P1.1--BP 1.2--ENAB P1.3--ENCD P1.4--C P1.5--D A--GO B--BACK C--LEFT D--RIGHT
//-------------------------取數(shù)據(jù)----------------------//
char getData(void)
{
char c;
while (,!RI);
c=SBUF;
RI=0;
return (c);
}
//------------------------串口定義-----------------------//
void Init_Timer1_COM(void)
{
SCON=0x52;
TMOD=0x20;//定時(shí)器1定時(shí)方式2
TL1=0xfd;//baudRate:9600
TH1=0xfd;
TR1=1;//timer1 reset
}
//-----------------------主程序--------------------------//
main()
{
char c;
Init_Timer1_COM();
while(1)
{
c=getData();
switch (c)
{
case ‘w’:
printf("GO \n”); DC=0x05;
break;
case ‘s’:
printf("BACK \n”); DC=0x06;
break;
case ‘a’:
printf("LEFT \n”); DC=0x1d;
break;
case ‘d’:
printf("RIGHT \n”); DC=0x2d;
break;
case ‘z’:
printf("LEFT BACK \n”); DC=0x1e;
break;
case ‘c’:
printf("RIGHT BACK \n”); DC=0x2e;
break;
default:
printf("You are wrong,! \n”); DC=0x00;
break;
}
}
}