Rita 发表于 2016-4-26 17:09:29

中南大学两个女童鞋DIY的作品-BOX-I的故事

本帖最后由 Rita 于 2016-4-26 17:28 编辑

BOX·I的故事
       开始做boxz的时候才刚接触ardunio十几天,老师请了arduino界里的大牛唐乐老师来给我们讲了三期arduino入门级的课程,开始正式将我们引领进单片机的世界。
       根据老师的要求,我们每个组都要出一个以“自我”为主体的互动装置。虽然有唐乐老师的引导,但是当我们真正开始自己动手做的时候才发现,竟然不知道从何入手。。。
       我们组选的是boxz,在网上查阅的时候觉得论坛上的写的步骤既不简单也不复杂,很符合我们的要求,然后就开始着手购买材料,我们按照论坛上所需的东西买了蓝牙控制板,L293D马达板,带轮子的TT减速齿轮箱,舵机,电池盒。   

       三天的时间,我们淘的东西就到了。不敢停歇,我们就开始组装这些板子和零件。论坛上面展示的图片比较少,所以arduino板,蓝牙板和电机驱动板组装的时候就遇到了很多问题,这里我就不一一详细说明,下图为组装方法,从上到下依次是电机驱动板,蓝牙板,arduino。

       然后就是将电机驱动板和两个小马达连上,我的图片不大清晰,这里要借用一下Leo的原文和图片了(第一步,首先将电池盒的红线连接到电机驱动板的M+,然后将黑线连接至GND,电源部分完成!第二步,将电机连接到电机驱动板上,连接方法如图:P1-M1.1,P2-M1.2,P4-M2.1,P5-M2.2。其中P3是悬空的。第三步,确认电机驱动板的跳帽为短接状态(在电源端子旁边,默认为短接状态,如果取下跳帽,则电机驱动板和Arduino将需要独立供电)。

      原文中第三步,跳帽的短接状态如下图所示

      基本结果安装好大概是这个样子的

       接下来就是程序调试环节了,由于我不是买的boxz原装的驱动板,所以需要下载boxz和电机驱动板以及蓝牙板的程序,boxz的程序论坛里有,下面是每一个里程的功能
例子是从简到难的排序,请下载并安装库后在样例中打开。(你需要那个例程就将哪个例程上传到arduino板上,不需要烧录,arduino会自动记住最后一次上传的程序)

[*]DCMotorControl:以全速和调速模式分别控制机器人进行前后左右的移动
[*]DCMotorSpeed:以调速模式从速度0到255控制电机。可以测试出电机的最小速度。
[*]DCMotorRemote:通过串口接收字符W,S,A和D分别控制机器人的前后左右运动。
[*]DFDriverRemote:通过配置关键字0xDF初始化电机驱动板,可自动配置DFROBOT的驱动板。接上蓝牙串口模块即可实现无线遥控。
[*]SDDriverRemote:通过配置关键字0xED初始化电机驱动板,可自动配置Seeed的驱动板。接上蓝牙串口模块即可实现无线遥控。
[*]DFDriverMotorRAW:通过配置关键字0xDF初始化电机驱动板,以原始协议的形式控制机器人。接上蓝牙串口模块即可实现无线遥控。
[*]DCMotorRAW:以原始协议的形式控制机器人,支持任何4线或6线制的电机驱动板。
[*]DCMotorRAWs:以原始协议字符串的形式控制机器人,集成HEX转码,更直观的控制方式。支持任何4线或6线制的电机驱动板。
[*]BOXZ_Base:单字符通讯实现四轮两驱机器人无线遥控只需十行代码
[*]BOXZ_Pro:在BOXZ Base基础之上增加了两个舵机手臂控制,仅增加2行代码
[*]Spare:预留

电机驱动板的程序在下面,这个程序是可以控制电机驱动板四个轮子的,这是我求了好久,让淘宝卖家那边的工程师发给我的(我跟跟他发邮件求助的时候他还在火车上,他一直说我心太大,这么短的时间根本做不出来智能小车的。。。不过还是很感谢他大老远发邮件过来帮助我的)
// Adafruit motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!

#include <AFMotor.h>

AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

void setup() {
Serial.begin(9600);         // set up Serial library at 9600 bps
Serial.println("motor test!");

// turn on motor1
motor1.setSpeed(200);
motor2.setSpeed(200);
motor3.setSpeed(200);
motor4.setSpeed(200);
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);

}

void loop() {
uint8_t i;

Serial.print("tick");

motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
for (i = 0; i < 255; i++) {
    motor1.setSpeed(i);
    motor2.setSpeed(i);
    motor3.setSpeed(i);
    motor4.setSpeed(i);
    delay(10);
}

for (i = 255; i != 0; i--) {
    motor1.setSpeed(i);
    motor2.setSpeed(i);
    motor3.setSpeed(i);
    motor4.setSpeed(i);

    delay(10);
}

Serial.print("tock");

motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
for (i = 0; i < 255; i++) {
    motor1.setSpeed(i);
    motor2.setSpeed(i);
    motor3.setSpeed(i);
    motor4.setSpeed(i);
    delay(10);
}

for (i = 255; i != 0; i--) {
    motor1.setSpeed(i);
    motor2.setSpeed(i);
    motor3.setSpeed(i);
    motor4.setSpeed(i);
    delay(10);
}


Serial.print("tech");
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(1000);
}
       将这些程序放到arduino里边,上传,然后这个时候可以先不连接蓝牙板,直接将arduino 和电机驱动板连接起来,通过串口监视器来对小车进行调试,如果小车可以按指令行进,那我们就可以开始调试蓝牙了。
调试蓝牙的时候,大家可以把先不连接电机驱动板,只将arduino和蓝牙连接即可。调试过程大家可以借鉴下这个淘宝店的方法(https://item.taobao.com/item.htm?spm=a1z09.2.0.0.9F0Bhr&id=42897982276&_u=b5l52hed8c4&qq-pf-to=pcqq.c2c)我不是推销淘宝店的,只是觉得他们店的说明比较详细,按照他的方法一步一步来,是可以调试成功的(调试的时候需要另外下载一个串口调试软件),而且他们的客服和工程师都是很耐心的。
      最后蓝牙板调试成功后,跳帽要回到Leo原文中所说的位置(红色框框的位置),否则你的手机是连不上蓝牙板的,具体原因的话我这个刚接触这些东西的人并不大清楚。。。

                        
      还有一个特别需要注意的地方就是,淘宝店调试的细节里,波特率为38400,但实际上电机驱动板和BOXZ的程序里面默认的波特率都是9600,这里我建议大家修改两个程序里的波特率,而不是修改蓝牙板的波特率,因为修改蓝牙板的波特率比较麻烦,我请了唐老师帮我远程修改,熬夜到很晚,当天是成功了,但是第二天不知道我又动了哪了,又不行了,所以修改程序里的波特率对新手来说会比较容易。
                        

       这是程序的部分截图,大家只需要将程序里所有的9600改为38400即可。
蓝牙板调试好你就可以用手机上的控制软件连接一下试试了,手机软件的下载论坛里有(http://www.geek-workshop.com/thread-2854-1-1.html)。当手机连接上蓝牙之后,蓝牙板上会有红灯亮起。
       当程序都调试好之后,我们就可以将所有的东西组装起来了。
       这是我们的小车,皮肤是我们自己画的,将我们的小车名字是BOX·I
   
      这张是展览现场,背景什么的全是我们自己画的和裁剪的哦




   这是展览前一天苦逼的裁剪过程
   


   接下来是现场照片


   


      
       这是优酷的视频链接
http://v.youku.com/v_show/id_XMTU0NTU5OTMxNg==.html


      最后,特别想感谢那些帮助过我的人,BOXZ团队Leo、云上、小强、官方群里的“刀客”,都很认真的帮我分析问题并解决问题;蓝牙模块淘宝店的工程师“Viner”,耐心的帮我排除可能出问题的地方,还发给我一份详细的解决方案;电机驱动板淘宝店的工程师,听我电话罗嗦了那么久,还愿意把自己编写的四轮驱动程序发给我;唐乐老师,为了帮我修改程序,远程陪我熬了两个晚上,帮我解决了很多关于程序上的问题,内心佩服到不行;从未谋面的NirVa,从开始到最后一直在鼓励我并且教我很多东西,深夜还打电话过来,帮我解决电机驱动板的问题,超感动;指导老师乔老师,如果不是乔老师请这么多业界大牛来帮助我们,我们永远都不会知道我们能做到这么好!

孤独舰 发表于 2016-4-26 20:22:17

不错的制作,强!

蒙奇 发表于 2016-4-26 20:43:15

不错不错,有毅力

蒙奇 发表于 2016-4-26 20:51:12

为什么有这么好玩的比赛

Rita 发表于 2016-4-26 21:22:43

蒙奇 发表于 2016-4-26 20:51 static/image/common/back.gif
为什么有这么好玩的比赛

介个不是比赛哦,是一个课程的结课作业展示哦
:loveliness:

蒙奇 发表于 2016-4-26 21:56:31

恩,感觉还是挺不错的,我们学校可没这种人性化的结课

莲子 发表于 2016-4-26 22:21:56

挺不错的呀~

Hackerpro 发表于 2016-4-27 14:28:20

妹子做东西就是不一样,画风都变了

hdivy 发表于 2016-4-27 15:20:50

感觉挺不错的哦,支持。。

bacon6581 发表于 2016-4-28 12:02:41

作品做的美,视频做的更美!

Rita 发表于 2016-4-28 20:50:15

蒙奇 发表于 2016-4-26 21:56 static/image/common/back.gif
恩,感觉还是挺不错的,我们学校可没这种人性化的结课

主要是老师对我们都有一定的要求,所以大家都不敢懈怠,我们小组基本上是熬了一个周的夜{:3_58:}

幻生幻灭 发表于 2016-5-9 08:23:25

:lol 不错不错,前段时间出差了,答复有些延迟,忘理解哈

原野动力 发表于 2016-5-9 17:01:25

不错,支持支持

2014zhuhzu 发表于 2016-5-10 18:41:51

挺萌的,哈哈~

轻舞飞扬8917 发表于 2016-5-18 01:56:47

最重要的东西没有放上来,就是库文件,不然代码看着莫名其妙的。应该就是通过UART读取字符串实现相应的代码。
把AFMotor.h文件弄来呗。
页: [1] 2
查看完整版本: 中南大学两个女童鞋DIY的作品-BOX-I的故事