您现在的位置: 游戏天使 >> 游戏中心 >> 生活百科 >> 动手制作 >> 正文

DIY-wifi机器人

        ★★★★★
【字体: 作者:未知  来源:本站原创    更新时间:2009-11-18 10:24:09

广告加载中...

转载请注明来源:http://www.gamets.net/Article/dszz/2009-11-18/20091118102409.html
Wifi机器人(Wifi Robot):其实是一辆能通过互联网,或500米以外的笔记本无线设施来远程控制的遥控汽车。由于在车上配备了一个网络摄像头,因此在视野范围之外都能够遥控该车,此外,车上还装了一个喇叭,您可以远程朝人们按喇叭。

一、前言

Wifi机器人(Wifi Robot):其实是一辆能通过互联网,或500米以外的笔记本无线设施来远程控制的遥控汽车。由于在车上配备了一个网络摄像头,因此在视野范围之外都能够遥控该车,此外,车上还装了一个喇叭,您可以远程朝人们按喇叭。

我发现Linksys WRT54GL路由器非常的hacker-friendly(黑客友好),它运行Linux和一些已经被反向工程(reverse engineered)了的硬件。世面上有一大批针对这种路由器的固件版本(firmware version)可供选择,本项目用到的版本是可订制化的 Linux firmware Open-WRT。有了路由器的相关软件,对一大堆硬件进行改装也变得可能。因此,既然有这样一个廉价的、可改装的、嵌入式Linux系统可以随我所用——我知道我能做件很酷的事情,于是,Wifi机器人的想法诞生了。

本文的目的是提供一个该项目的概览,同时也列出了一些相关软件和电子产品的实施细节,但它并不是一个一步一步详细介绍如何制作Wifi机器人的手册,不过,那些具备一定电子和软件知识的人根据本文提供的信息也能够做出自己的Wifi机器人。我已经遵循GNU GPL v2发布了所有的源代码,因此,希望大家都来用这个源码,并尽量去完善它!

 

二、硬件部分

2.1 汽车

在汽车上增加网络摄像头、路由器、沉重的电池、额外的电路,以及一大堆的电线会大大超出汽车原本设计的载重量。因此,考虑到这些额外要加的重量,您需要找到一个超大型的遥控汽车。旧货店常常有一些遥控车卖,价格3到5美元不等(不包括遥控器),我已经买了许多这样的汽车以供使用。您最好选择那些体积大于或等于现实生活中真车体积1/10的玩具遥控汽车,体积太小的就不要考虑了。下图这两辆遥控汽车是我在Value Village花5美元买下的。

我一共拆了约20辆遥控汽车。我发现几乎每一辆车都使用了Realtek RX2/TX2芯片或其他引脚兼容(pin-compatible)的芯片,而且说明书里有各引脚的具体连接方式。这意味着真的很容易改装这些汽车,而不必加上一大堆我们自己的电路。我们可以将一个微控制器直接与这些引脚连接起来,直接控制汽车。充分利用汽车的原有电路能节省很多的时间和精力。

2.2 路由器

我已经改装了我的WRT54GL,现在它有2个串口和一个1GB的SD卡(用来充当1GB的硬盘)。在本项目中其实没有用到这个SD卡,但用到了一个串口。两个串口中的一个作为控制台端口,另一个作为我们将来会使用到的TTS/1(语音合成)端口。这个项目我使用的固件版本是Open-WRT White Russian v0.9,还有更多更新的固件版本,但我们这个项目并不需要。

本文的后面提供了参考链接,可以帮助您使用自己的串口。

2.3 微控制器的选择

在本项目中我评估了三种不同的微控制器,以下是一个简要的评估结果。

微控制器 PIC16F628A Arduino (ATmega168) Freeduino MaxSerial AVR Butterfly (ATmega169)
优点 价格相对便宜;稳定的软件控制; 很容易编程(用C语言,而且有许多内置的函数库);集成串行(integrated serial);预包装的开发套件,很少或根本不需要焊接; 比PIC (C)容易编程;集成串行; 较少需要焊接;
弊端 很难编程(基于汇编语言的);必须要手动连接电路;需要配备额外的串行硬件(MAX232A);需要额外编码器; 价格相对较高 Bootloader错误(详见下文);集成外设导致奇怪的输出电压;价格相对较高

最后,出于以下几个原因我选择了PIC16F628A:

1. 我手边有一堆PIC16F628A。

2. 我对PIC16F628A最熟悉。

3. 我想要块面积小的板子,PIC是三个微控制器中面积最小的。

4. 我想完全控制代码实现的功能,PIC是基于汇编语言编程,因此很适合。

Arduino (Freeduino MaxSerial)是我的第二选择,它很容易安装和运行,我真的很喜欢。社区支持非常强,而且非常好用。

我原先使用的是AVR Butterfly开发板,但我发现AVR butterfly的bootloader上有一个错误会破坏代码,并且不允许你重新编写它,除非载入一个新的bootloader。我花了相当长的一段时间来调试和解决这个问题,不过最终还是决定放弃它。此外,我还发现输出电压是难以预测的,因为输出还要驱动液晶显示屏之类的集成外设。

PIC和Arduino微控制器平台的源代码我都有。两个都经过了测试,所以你觉得哪个好用就用哪个。Arduino (Freeduino MaxSerial)用起来最方便,我买了这个

[1] [2] [3] 下一页

 


文章录入:beeman    责任编辑:beeman 

  • 上一篇文章:

  • 下一篇文章:


  •   ▍相关文章:
    没有相关文章
     
    广告加载中......
    评论数据加载中....
      【 发表评论】
      昵称: 评 分: 1分 2分 3分 4分 5分
        
    验证码: 所有评论审核后才显示,请勿发布违法内容。

      ▍文章搜索:
    加载中....
     
    页面统计: