小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 16547|回复: 29

基于USB传输的arduino wifi小车免拆机免TTL兼容论坛上位机使用

[复制链接]
发表于 2013-10-13 22:22:22 | 显示全部楼层 |阅读模式
本帖最后由 41257203 于 2013-10-23 12:07 编辑

2013-10-23更新:
使用USB连接的初衷:不想破坏原路由、不喜欢折腾、用TTL连接时遇到电平不一致无法通讯、703n 171-3g 151-3g焊接技术不好等
经过几天努力google、baidu、BBS求助终于搞定不用拆机引出TTL线直接通过USB传输数据了,废话少说直接奔主题:
我的硬件平台arduino nuo r3+mw151-3G(其他arduino板可能有差异)
1.路由使用任何可以刷openwrt并且至少要有1个USB接口,如果下载论坛的专用固件只需要在路由上安装1个arduino nuo r3专用驱动即可(kmod-usb-acm)其他的板子请自行搜索相关驱动;如果使用openwrt官方固件则需要再自行安装小车中需要的ser2net和摄像头驱动
2.用winscp登陆路由 打开/etc/ser2net.conf配置文件在最后添加2222:raw:0:/dev/ttyACM0:9600(其中2222为端口号可以自由填写,ttyACM0是根据你插入的硬件决定,也有可能是ttyACM1或ttyACM2或ttyUSB0之类,请自行在putty命令行输入ls /dev查看)
3.没有3了直接拔掉TTL线使用USB直接连接即可
  注意:本教程适用于Arduino单片机同样可以适用于51单片机(不过51单片机需要外接一个USB转TTL的小板,例如PL2303),如果要使用摄像头只需要再添加一个USB HUB(最好是带外置供电那种,尽可能买一些正规厂家的例如:ssk,川宇之类,山寨厂商的可能无法驱动),还有就是下面的代码请不要使用了,请自行搜索论坛的下位机程序,上位机的设置需要修改端口号与在ser2net.conf配置文件中添加的一致请看第2点。
下位机源码参考:
http://www.wifi-robots.com/forum.php?mod=viewthread&tid=1736
http://www.wifi-robots.com/thread-5730-1-1.html
http://www.wifi-robots.com/thread-6384-1-1.html
现在就剩下传感器的加入了,希望高手可以支招!



2013-10-16号原帖:

现在只能实现行走其他功能还要慢慢学,如果以后加上的新的功能将继续更新,本来是想做一个兼容论坛上位机的,但经过10来天的研究和查各种资料,无奈TTL硬是不通讯,只好另辟奇径具体参照http://v.youku.com/v_show/id_XMzUwOTY0MDQ0.html?firsttime=197做了一个基于路由与单片机通过USB链接的半成品,以下是我的小车资料:
我的分了4层,全部用洞洞板(1.1元1张*10)叠加做的纯手工打造:稍后放上视频,力气很大喔.......!

  希望有高手能够指点一二,好少走点弯路,接下来将做好电脑端的网页控制和传感器的加入,如果谁能能够告诉我直接能修改论坛的上位机能通过USB链接就好了!
  我的小车原理是openwrt安装minicom与arduino通信再到L298N下面是详细的细节
第一层:电机采用24V  21:1  120转/分钟  5KG扭力 *4,螺丝、铜柱每样30个左右
第二层:电池3.7V6200mah*3串联(之前DIY移动电源拆下来2块+后买1块 这个贵了,花了160多)+升压板升至16V作为动力
第三层:DB120+mini风扇(28.8/台)
第四层:arduino nuo r3+V5扩展板+传感器+L298N*2(目前只用了1个)+摄像头
以上可做参考下面是我的小车
QQ截图20131012145907.jpg QQ截图20131013221955.png QQ截图20131013222013.jpg QQ截图20131013222021.jpg QQ截图20131013222035.jpg
我的L298N的输入端为EMA/EMB是短接的剩下IN1、IN2 A电机/IN3/IN4 B电机 分别控制电机的正反转
源码:
void setup()
{
  Serial.begin(9600);      //初始波特率为9600
  pinMode(4, OUTPUT);  //设置IO口4的模式为输出
  pinMode(5, OUTPUT);  //设置IO口5的模式为输出
  pinMode(6, OUTPUT);  //设置IO口6的模式为输出
  pinMode(7, OUTPUT);  //设置IO口7的模式为输出
}

void loop()
{
  char i;
  if (Serial.available())
  {
    i = Serial.read();    //read
    switch (i)
    {
      case 's':                        //back 输入s即代表后退(这个可以自定义,等会就相当于是按下键盘上的的“s”键即代表小车后退)
        Serial.println("back");  //当按下s即返回back值(这个可以自定义)
        digitalWrite(4, LOW);   //IO口4输出低电平
        digitalWrite(5, HIGH);  //IO口5输出高电平
        digitalWrite(6, LOW);   //IO口6输出低电平
        digitalWrite(7, HIGH);  //IO口7输出高电平   下面的是和这里的意思是一样的
        break;
      case 'w':          //forward
        Serial.println("forward");
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(7, LOW);
        break;
      case 'a':          //left
        Serial.println("left");
        digitalWrite(4, LOW);
        digitalWrite(5, HIGH);
        digitalWrite(6, HIGH);
        digitalWrite(7, LOW);
        break;
      case 'd':          //right
        Serial.println("right");
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);
        digitalWrite(7, HIGH);
        break;
      case ' ':          //stop
        Serial.println("stop");
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);
        digitalWrite(7, LOW);
        break;         
      default:
         break;
    }
  }
}

评分

参与人数 1金钱 +3 收起 理由
liuviking + 3 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-10-14 11:50:04 | 显示全部楼层
赞,用minicom也是一个途径。
回复 支持 反对

使用道具 举报

发表于 2013-10-14 23:52:42 | 显示全部楼层
你的视频延迟怎么那么严重?貌似摄像头不支持mjpeg?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-15 03:18:48 | 显示全部楼层
liuviking 发表于 2013-10-14 23:52
你的视频延迟怎么那么严重?貌似摄像头不支持mjpeg?

不清楚,这个按理说是支持的呀,不然怎能有图像,估计是摄像头有点渣,20块买的{:3_48:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-15 10:25:42 | 显示全部楼层
liuviking 发表于 2013-10-14 23:52
你的视频延迟怎么那么严重?貌似摄像头不支持mjpeg?

这个是UVC的摄像头才20块买的,具体芯片不知道是什么,路由能识别就已经不错了{:3_55:}
回复 支持 反对

使用道具 举报

发表于 2013-10-15 11:29:17 | 显示全部楼层
41257203 发表于 2013-10-15 10:25
这个是UVC的摄像头才20块买的,具体芯片不知道是什么,路由能识别就已经不错了

那肯定是不支持mjpeg的,你加了-y参数运行的是吧?占用了大量的CPU资源导致很卡。
回复 支持 反对

使用道具 举报

发表于 2013-10-15 19:05:33 | 显示全部楼层
改小  分辨率和帧数  明显你的摄像头不支持mjpg  是yuv输出的  卡是一定的
回复 支持 反对

使用道具 举报

发表于 2013-10-15 21:33:04 | 显示全部楼层
楼主能说一下你的db120刷的哪个固件吗?是论坛的,还是openwrt官方的?
另外你的小车的摄像头和UNO板USB连接db120时,没用USB HUB吗?是直接用的路由器上
的两个USB吗?
我之前也是先用的db120,TTL连接UNO就是不通,后来一气之下换用WR703N了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-16 01:10:37 | 显示全部楼层
潇洒哥 发表于 2013-10-15 21:33
楼主能说一下你的db120刷的哪个固件吗?是论坛的,还是openwrt官方的?
另外你的小车的摄像头和UNO板USB连 ...

任何版本均可以
只要在路由上安装一个minicom和kmod-usb-acm就行了
回复 支持 反对

使用道具 举报

发表于 2013-10-16 21:44:23 | 显示全部楼层
很不错的设计  

点评

不错!学习了!  发表于 2013-10-30 22:05
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-19 21:45 , Processed in 1.119497 second(s), 23 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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