找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] DIY制作:SMC远程控制小车

[复制链接]
admin 发表于 2013-3-25 01:50:25 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  先说一下本作品的作用,有兴趣的往下看:
     可以实现远程无线遥控,只要有网络的地方,都可以做控制端或者被控制端,例如,你在北京,我在广州,你就可以控制这个小车的动作,在SMC盒子上接上摄像头,完全实现无线遥控控制。
     用途吗,你把它放家里可以当安防,你把它放到工厂,可以当保安,你把它放到战场它可以做机器战士(一点都不夸张),呵呵,继续想象吧
     总的来说嘛,SMC就是一个可以跨越距离的你PC后面的串口。
     我的作品,先上图 再来
   
      20121107050456476593194.jpg
      20121107050456539093195.jpg
      20121107050456585973196.jpg
      20121107050456632843197.jpg
      20121107050456679713198.jpg
      20121107050456726593199.jpg
      20121107050456773463200.jpg
   
     嘿嘿,说起来挺简单的,简单一点的说:PC控制SMC盒子,盒子里面用Debian系统,系统控制SMC串行端口,端口控制51单片机,单片机控制车体,OK!!!
   
     先说一下本作品的作用,有兴趣的往下看:
     可以实现远程无线遥控,只要有网络的地方,都可以做控制端或者被控制端,例如,你在北京,我在广州,你就可以控制这个小车的动作,在SMC盒子上接上摄像头,完全实现无线遥控控制。
     用途吗,你把它放家里可以当安防,你把它放到工厂,可以当保安,你把它放到战场它可以做机器战士(一点都不夸张),呵呵,继续想象吧
     总的来说嘛,SMC就是一个可以跨越距离的你PC后面的串口。
     我的作品,先上图 再来
   
      20121107050456820343201.jpg
      20121107050456851593202.jpg
      20121107050456867213203.jpg
      20121107050456898463204.jpg
      20121107050456929713205.jpg
      20121107050456960963206.jpg
      20121107050456976583207.jpg
   
     嘿嘿,说起来挺简单的,简单一点的说:PC控制SMC盒子,盒子里面用Debian系统,系统控制SMC串行端口,端口控制51单片机,单片机控制车体,OK!!!
   
     详细一点,往下来看:
   
     1,先往SMC盒子安装Debian系统,详细请参考:lintel 的在SMC无线硬盘盒(MGB100)上运行Debian 地址:http://www.anywlan.com/bbs/thread-18052-1-1.html
     2,焊接盒子的串行接口线,请参考: lintel的SMC无线硬盘盒(MGB100) 研究之四 JTAG 地址:http://www.anywlan.com/bbs/thread-18012-1-1.html
     只需要焊接1 3 6号脚就可以,我焊接的一般就不上图了(如果经常用串行接口的话,可以去掉一个USB中间两根线,改接这两根RX ,TX ,嘿嘿,反正两个USB呢,也用不着那么多,个人观点哦,根据自己实际情况定。)
     3,焊接受控制电路板。以下以51单片机为例(有串口了,其他还不好说吗!),我的如下:
     特别注意的,如果有51单片机编程器的话就不用焊RS232了,这个盒子串口是TTL电平,51也是,绝配!记得RX--TX TX--RX哦。
     当然没有编程器,那就多费点劲,想偷懒,就找个老式的COM口数据线,嘿嘿,那个一般都是RS232,具体接法百度吧!
     4,51单片机再接个L298N,接法如下,详情百度,多如牛毛。
   
     硬件一切就绪,接下来,软件
   
     1,先说一下SMC盒子串口的控制,用minicom控制,具体如下
     debian安装OK后
     apt-get install minicom
     一路Y,安装完成。
     minicom -s
     配置串口,出现配置菜单:选serial port setup
     进入串口配置
     输入A配置串口驱动为/dev/ttyS0
     输入E配置速率为9600 8N1
     输入F将 Hardware Flow Control 设 为 NO
     回车 退出
     由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init
     string, Reset string, Hang-up string设置为空。 设置完成后选择Save setup as
     dfl将当前设置保存为默认设置。
     在配置菜单 选Save setup as df1保存(一定要记得这一步)
     选Exit退出
     下次在输入minicon 即可直接进入,按CTRL+A 再按shift+E 调出回显,OK完成。
     2,要远程控制,动态域名即可。
     3,单片机程序
     //Code by myasus 仅希望抛砖引玉
     //QQ:31495962
     #include
     #include < P>
     sfr DC=0x90; //P1是电机接口,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
     //-------------------------取数据----------------------//
     char getData(void)
     {
     char c;
     while (!RI);
     c=SBUF;
     RI=0;
     return (c);
     }
     //------------------------串口定义-----------------------//
     void Init_Timer1_COM(void)
     {
     SCON=0x52;
     TMOD=0x20;//定时器1定时方式2
     TL1=0xfd;//baudRate:9600
     TH1=0xfd;
     TR1=1;//timer1 reset
     }
     //-----------------------主程序--------------------------//
     main()
     {
     char c;
     Init_Timer1_COM();
     while(1)
     {
     c=getData();
     switch (c)
     {
     case &lsquo;w&rsquo;:
     printf("GO \n”); DC=0x05;
     break;
     case &lsquo;s&rsquo;:
     printf("BACK \n”); DC=0x06;
     break;
     case &lsquo;a&rsquo;:
     printf("LEFT \n”); DC=0x1d;
     break;
     case &lsquo;d&rsquo;:
     printf("RIGHT \n”); DC=0x2d;
     break;
     case &lsquo;z&rsquo;:
     printf("LEFT BACK \n”); DC=0x1e;
     break;
     case &lsquo;c&rsquo;:
     printf("RIGHT BACK \n”); DC=0x2e;
     break;
     default:
     printf("You are wrong! \n”); DC=0x00;
     break;
     }
     }
     }
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 23:05 , Processed in 0.059279 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表