最近一直都在整理LegoBlaze的设计,现在终于挂到网页上了。下面附上LegoBlaze的 简介:
>>>>
该项目来自于Lego最新型的Mindstorms NXT机器人创意。最终目的是在Xilinx的Spartan3E系列的FPGA上开发出一个机器人控制平台,能够提供各种传感器接口,电机控制接口和通讯接口,以提供给机器人爱好者进行各种机器人的开发。该项目的设计环境:
硬件:Spartan3E Starter Kit
LegoBlaze
NXT motor
电缆
RS232 串口线
软件:EDK10.1.03
超级终端/串口调试
>>>
自从接手LegoBlaze这个项目也有不少时间了,自己也做了一些设计,却一直没有整理出来制定一个版本跟大家一起分享。最近才安排时间对已有的感觉还可以的设计整理出来,跟大家相互交流,同时也回报一下那些一直关心Lego设计的朋友。这次只是整理了三个有关电机的基础设计,包括电机的转动,测速以及电机与触碰传感器相互结合的一个设计。我将这三个设计命名为:Motor_run、Motor_velocity以及Motor_touch。在发布新版本的时候,我同时附带了设计的复现过程,测试者只要根据相应的步骤描述就能很容易的实现设计的再现。最新版本的源码和设计的复现步骤描述可以通过下面的链接获取:
源码和设计资料(请点击下载)
注:1. 点击后会出现一个下载法律声明,需要你点击同意后才能下载。该数据包中含有下面介绍的所有内容。
2. 我在下面介绍各个工程时,所附加的各个连接是各个工程在SVN上放置的位置,大家可以针对各自感兴趣的工程下载所需要的数据内容。不过这个要先加入该项目组后,才能下载。
另外,大家也可从我的博客上看到一些有关LegoBlaze设计的照片。通过点击:
http://www.openhw.org/collus/album/下的LegoBlaze标签,就能看到了。
>>>>>>
>>>> >
下面就简单的介绍一下这三个设计的功能:
>l >在Motor_run这个设计中使用了两个拨动开关来控制电机的启动、停止以及转动方向。
sw3 : run/stop(1: run; 0: stop);
sw2 : direction(1: running front; 0: running back);
下载地址:https://dev.openhw.org/svn/LegoBlaze/tags/LegoBlaze_version1.0/
视频:
注:该设计主要是能将电机驱动起来,通过PWM控制步进电机的转动速度。
>l >在Motor_velocity这个设计中使用开发板上的四个拨动开关,分为两组:一组是来控制电机的启动、停止和转动方向的;另一组是用来控制测速和测速后将寄存器清零的。
sw3 : run/stop(1: run; 0: stop);
sw2 : direction(1: running front; 0: running back);
sw1 : clc ( set all the registers to zero);
sw0 : speed( 1: start to test speed; 0: testing speed is over)
下载地址:https://dev.openhw.org/svn/LegoBlaze/tags/LegoBlaze_version1.0/
视频:
注:本设计中涉及到浮点数的运算,本人尝试了一些方法来解决这个问题可就是没有成功。单独的赋值于A、B两个变量,做浮点除法运算可以实现,当是就是没有能加到设计中来。希望大家给些建议,如何能实现从采样端得到的数据,来做浮点运算。我是将的得到的数据Xunit32类型,赋值给float类型的变量,再进行浮点运算。
>l >在Motor_touch这个设计中只用到了一个拨动开关来控制电机的启动、停止。当电机开始转动后,你记录它的转动方向,然后按下触碰开关并立即放开,再观察电机的转动方向,你会发现前后两次的方向是相反的。
sw3 : run/stop(1: run; 0: stop)
下载地址:https://dev.openhw.org/svn/LegoBlaze/tags/LegoBlaze_version1.0/
视频:
注:该设计中用到了ADC模数转换,同时添加了GPIO来连接ADC输入。在设计中发现,如果没有GPIO,输入的信号转成数字信号后无法区分出来电压之间的变化。各位也想想,为什么要加GPIO,我们相互交流一下。
最后附上我的联系方式:
zcsh431215@gmail.com
大家来点评一下,有什么建议和想法都提出来交流,期待大家的留言和email。
点击:www.openhw.com/project/index_view_242.html
进入LegoBlaze项目界面