本人秉着对智能机器人的热爱在上个学期选修了智能机器人这门课,尽管最后因为没及时把作业交上去就挂了这门选修课,o(︶︿︶)o唉(ps:老师呀,要是你看到我写的这篇文章后,你就发发慈悲就把我的成绩改过来哈)、
记得上这门课的老师先是讲诉了单片机的基本应用和单片机编程,然后课程结束的时候给我们介绍了下tiny6410。后来我去查阅了相关资料,觉得用这这块板做个远程控制的机器人是可行的,因此哥儿最近刚入手了友善之臂的tiny6410开发板(ps:这可花了我600大洋,老师呀怎么你也得把我成绩改及格撒),关于这块开发板的详细信息可以参照附件或者友善之臂的官方网发布的相关文档。
硬件资源
首先,我们先看下tiny6410在方面哪些接口:
从tiny6410的布局可以看出它所提供的硬件资源是相当多的。
软件资源
接着,我们来看下tiny6410的软件资源。
Tiny6410可以搭载linux,安卓,winCE系统,下面是linux系统的简单介绍。
开发之路--网络篇
一、开发思路
如果提起linux,很多人会联想到嵌入式开发和linux下的网络服务器。可是,嵌入式开发对于一般学电子的人来说是有一定的难度的,因此我们可以利用linux下的网络服务器做一些开发。
Linux的web服务器有Hapd、Thttpd和Boa,其中Boa服务器源代码开放、性能优秀、支持CGI通用网关接口技术,比较适合做web开发。Boa服务器可以通过CGI与外部应用程序和脚本之间进行交互,根据客户端浏览器在请求时所采用的方法,服务器会搜集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序,CGI扩展程序进行信息处理并将结果返回给服务器,然后服务器对信息进行分析,并将结果发送回客户端在浏览器上显示出来。其实这就是B/S(浏览器/服务器)模式,可以用下图来表示
这个模式将是本次基于Boa-web服务器的远程机器人控制开发的主要模式,下面是对这个模式的说明!!!
如图:
1、浏览器可以是windows下的浏览器,也可以是手机上的浏览器,控制端只是一个html网页而已。
2、Web服务器就是linux下的Boa服务器。基于Boa服务器,可以建立一个动态的网站,通过这个网站可以进行嵌入式设备和用户的之间进行信息交互。
3、CGI部分。CGI是一种脚本语言,可以和perl,PHP,C语言一起用,为了方便动态网站的搭建,本次开发主要以PHP+CGI为主。
4、应用程序部分。其实在本次开发中,应用程序就是一个个CGI程序。这个一个个CGI程序处理由用户通过Boa服务器传递过来的信息,然后通过硬件的驱动程序调用开发板的硬件设备。
二、Boa和tftp服务器的搭建
BOA服务器是要运行于嵌入式设备上的,因此需要对BOA源文件进行交叉编译。编译工具使用arm-linux-gcc-4.3.2交叉编译工具链,拷贝文件arm-lin-ux-gcc-4.3.2.tgz到目录/tmp下,执行命令cd/tmp;tarzxvfarm-linux-gcc- 4.3.2.tgz-C/.这样交叉编泽工具就安装到/usr/local/arm/4.3.2目录下面。为确保在打开终端后能直接应用交叉编译工具链,要在/root/.bashrc文件中把编译器路径加入到系统环境变量。运行命令gedit/root/.bashrc编辑文件/root/.bashrc。在文件的最后添加exportPATH=$PATH:/usr/local/arm/4.3.2/bin。保存退出。接着执行source/root/.bashrc命令使设置生效。最后检测交叉编译工具是否安装成功,命令为在终端中输入arm-linux-gcc-v;若能在输出的信息中看到arm-linux-gcc版本号4.3.2,说明安装成功。
其次,交叉编译BOA源码,拷贝BOA源码包boa-0.94.13.tar.gz到/tmp目录下,解压缩掩码包tarzxvfboa- 0.94.13.tar.gz;解压后在Linux终端进入BOA所在目录,首先执行命令./con-figure生成Makefile文件,然后打开文件夹,找到Makefile文件,用文本编辑器打开,找到CC=gcc,CPP=gcc-E两行,分别将其设置成上一步生成的交叉编译工具路径 CC=/usr/local/arm/4.3.2/bin/arm-linux-gc