SMC远程无线控制小车制作.docx
《SMC远程无线控制小车制作.docx》由会员分享,可在线阅读,更多相关《SMC远程无线控制小车制作.docx(11页珍藏版)》请在冰点文库上搜索。
![SMC远程无线控制小车制作.docx](https://file1.bingdoc.com/fileroot1/2023-5/17/3f686506-b59e-4b8a-b438-6821cacc2a7c/3f686506-b59e-4b8a-b438-6821cacc2a7c1.gif)
SMC远程无线控制小车制作
在SMC远程无线控制小车制作
2012年03月02日10:
08来源:
本站整理作者:
秩名我要评论(0)
说一下本作品的作用,有兴趣的往下看:
可以实现远程无线遥控,只要有网络的地方,都可以做控制端或者被控制端,例如,你在北京,我在广州,你就可以控制这个小车的动作,在SMC盒子上接上摄像头,完全实现无线遥控控制。
用途吗,你把它放家里可以当安防,你把它放到工厂,可以当保安,你把它放到战场它可以做机器战士(一点都不夸张),呵呵,继续想象吧
总的来说嘛,SMC就是一个可以跨越距离的你PC后面的串口。
我的作品,先上图再来
嘿嘿,说起来挺简单的,简单一点的说:
PC控制SMC盒子,盒子里面用Debian系统,系统控制SMC串行端口,端口控制51单片机,单片机控制车体,OK!
!
!
SMC远程无线控制小车制作
(2)
2012年03月02日10:
08来源:
本站整理作者:
秩名我要评论(0)
详细一点,往下来看:
1,先往SMC盒子安装Debian系统
2,焊接盒子的串行接口线——只需要焊接136号脚就可以,我焊接的一般就不上图了(如果经常用串行接口的话,可以去掉一个USB中间两根线,改接这两根RX,TX,嘿嘿,反正两个USB呢,也用不着那么多,个人观点哦,根据自己实际情况定。
)
3,焊接受控制电路板。
以下以51单片机为例(有串口了,其他还不好说吗!
),我的如下:
特别注意的,如果有51单片机编程器的话就不用焊RS232了,这个盒子串口是TTL电平,51也是,绝配!
记得RX--TXTX--RX哦。
当然没有编程器,那就多费点劲,想偷懒,就找个老式的COM口数据线,嘿嘿,那个一般都是RS232,具体接法XX吧!
4,51单片机再接个L298N,接法如下,详情XX,多如牛毛。
硬件一切就绪,接下来,软件
1,先说一下SMC盒子串口的控制,用minicom控制,具体如下
debian安装OK后
apt-getinstallminicom
一路Y,安装完成。
minicom-s
配置串口,出现配置菜单:
选serialportsetup
进入串口配置
输入A配置串口驱动为/dev/ttyS0
输入E配置速率为96008N1
输入F将HardwareFlowControl设为NO
回车退出
由于我们使用minicom作为超级终端控制路由器等设备,而不是控制modem,所以需要修改Modemanddialing,将Init
string,Resetstring,Hang-upstring设置为空。
设置完成后选择Savesetupas
dfl将当前设置保存为默认设置。
在配置菜单选Savesetupasdf1保存(一定要记得这一步)
选Exit退出
下次在输入minicon即可直接进入,按CTRL+A再按shift+E调出回显,OK完成。
2,要远程控制,动态域名即可。
SMC远程无线控制小车制作(3)
2012年03月02日10:
08来源:
本站整理作者:
秩名我要评论(0)
3,单片机程序
//Codebymyasus仅希望抛砖引玉
//QQ:
31495962
#include《P》
#include《P》
sfrDC=0x90;//P1是电机接口,P1.0--AP1.1--BP1.2--ENABP1.3--ENCDP1.4--CP1.5--DA--GOB--BACKC--LEFTD--RIGHT
//-------------------------取数据----------------------//
chargetData(void)
{
charc;
while(!
RI);
c=SBUF;
RI=0;
return(c);
}
//------------------------串口定义-----------------------//
voidInit_Timer1_COM(void)
{
SCON=0x52;
TMOD=0x20;//定时器1定时方式2
TL1=0xfd;//baudRate:
9600
TH1=0xfd;
TR1=1;//timer1reset
}
//-----------------------主程序--------------------------//
main()
{
charc;
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(“LEFTBACK\n”);DC=0x1e;
break;
case‘c’:
printf(”RIGHTBACK\n”);DC=0x2e;
break;
default:
printf(“Youarewrong!
\n”);DC=0x00;
break;
}
}
}