[教程]最炫海盗船

9969浏览
查看: 9969|回复: 9

[教程] 最炫海盗船

[复制链接]
最炫海盗船

本例程为在原有4WD海盗船的基础上,用红外测距传感器替换了超声波传感器。功能上增加了MP3语音播放模块和灯带的效果。使得海盗船的应用更加的丰富。为体现改造的循序渐进,我们将改造过程分为以下四个步骤。同时对常用的灯带,MP3模块,红外测距模块的使用方法和注意事项做了整理和说明。希望能对大家有所帮助。

视频效果






改造步骤
Step1.灯带的焊接与测试。
Step2.MP3模块测试。
Step3.红外距离传感器测试
Step 4.  硬件的总装和程序的调试

总硬件清单
1.Pirate 4WD 机器人移动平台               x1
2.Romeo BLE 微控制器 (DFR0305)                           x1
3.DF05BB 标准舵机 (SER0020)                                 x1
4.磁性 Micro-USB线 (FIT0351-OE)                            x1
5.杜邦线 (10根) (FIT0030)                                        x1
6.炫彩 WS2812 LED灯带                  x1
7.DFPlayer Mini 播放器模块               x1
8.红外距离传感器SHARP 2Y0A21          x1

备注:海盗船套件包含以上1~5项硬件。其中6,7,8改造所需硬件。

【Step1. RBG灯带的焊接与测试】
以三颗LED灯为一组对灯带进行裁剪。

最炫海盗船图1

拼接时留意选取灯带的正确方向

最炫海盗船图2

焊接,并用热熔胶封闭接口(防水)

最炫海盗船图3

焊接后的效果

最炫海盗船图4

对灯带编号
从灯带上与控制板连接的第一颗LED算起,每三颗LED灯编为一组记作LEDs_0, 依次为LEDs_1, LEDs_2

电路连线图:
最炫海盗船图5


测试程序下载   最炫海盗船图5    需导入灯带的库文件 下载附件Adafruit_NeoPixel.zip
最炫海盗船图8
灯带程序相关语句分析

语句1Color(uint8_t r, uint8_t g, uint8_t b)
说明:显示灯珠的颜色 (三个参数分别表示红,绿,蓝三色的亮度;取值范围是(0~255))如表示
红色:Color(255,0,0);
蓝色: Color(0,0,255);
紫色:Color(255,0,255);  为蓝色和红色的混合

语句2setPixelColor(uint16_t n, uint32_t c)
说明:设置某一颗灯珠的颜色,其中n为灯珠的编号(第一颗灯珠为0,按顺序依次为1,2,3....), c为灯珠的颜色参数,即Color(uint8_t r, uint8_t g, uint8_t b)

测试效果
通过改变测试程序loop()中colorwipe()函数中的颜色参数c。来控制灯带颜色的改变。
例:
如果想使灯带显示红色,则

void loop(){  
colorWipe(Color(255,0,0), 50);
clear(100);}

小结:
在本段灯带的程序中,看似挺多行的代码。仔细一分析,会发现其他的语句都是为了在loop中执行colorWipe(strip.Color(255, 255, 0),50)即使灯带显示某一特定的颜色这一功能服务的。


Boris_Liu  中级技师
 楼主|

发表于 2015-8-4 10:50:40

本帖最后由 Boris_Liu 于 2015-8-4 11:39 编辑

【Step2. MP3模块的测试】

在使用MP3模块时需要注意两个地方。一是用虚拟串口这一工具,避免使用D0和D1串口。二是MP3音频的存放位置和命名方法。我们将在代码回顾中进行具体说明。
电路原理图




最炫海盗船图1



测试程序 测试时需导入mp3模块库  下载附件DFPlayer_Mini_Mp3.zip

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
SoftwareSerial mySerial(2,3);
void setup()
{  mySerial.begin (9600);
  mp3_set_serial (mySerial);   //set Serialfor DFPlayer-mini mp3 module
  mp3_set_volume (15);
}
void loop()
{ mp3_play (7);
   delay (500);
   mp3_play (1);
   delay(1000);
}

代码回顾
代码:#include <SoftwareSerial.h>
     SoftwareSerial mySerial(2,3);  // RX , TX
作用:调用“虚拟串口”库。使D2,D3口作为RX和TX进行UART通讯。
说明:对于RoMeo BLE控制板,在进行程序下载和蓝牙通讯时。其D0(DX) , D1(TX)端口会被占用。而DFPLayer mini模块如果是通过UART通讯方式工作的话,若也接入DO(DX), D1(TX)串口,则会出现程序无法通过USB端口烧写的情况。连接蓝牙也会出现同样的问题。
为此,我们在这里用了虚拟串口“SoftWareSerial”这一Arduino扩展库。SoftwareSerial库能让任意的数字I/O口进行串行通信。

代码:mySerial.begin (9600);
     mp3_set_serial (mySerial);   
作用:设置波特率,为MP3模块配置UART串口。
说明:这里的mySerial 由前面的设定语句 SoftwareSeial mySerial(2,3); 配置,该模拟串口的名字可以自行定义。
代码mp3_play (7);
作用:播放SD卡根目录中,MP3文件下,格式名为0007***的MP3文件
说明

一.存放位置
   音频文件应该放在“MP3”'它坐落在TF卡的根目录'文件夹中

最炫海盗船图2

二.音频文件的命名方法
mp3文件命名需要是4位数字,例如"0001.mp3",放置在mp3文件夹下。如需中英文命名,可以添加在数字后,例如"0001hello.mp3"或者"0001后来.mp3"。
小结
在MP3模块的测试程序中,看似挺多行的代码。仔细一分析,会发现其他语句都是为了在loop中执行mp3_play (7)即播放某一段mp3语音服务的。

回复

使用道具 举报

Boris_Liu  中级技师
 楼主|

发表于 2015-8-4 10:59:07

本帖最后由 Boris_Liu 于 2015-8-4 11:39 编辑

Step3. 红外线距离传感器测试

测试代码下载 最炫海盗船图1   。红外传感器接入A6。

电路图:

最炫海盗船图1

代码回顾

函数: uint16_t get_distance (uint16_t value) {
            if (value < 30)
                value = 30;
           return (((67870.0 / (value - 3.0)) - 40.0)/10);
          }

作用:将红外线传感器中传回的模拟量转化为距离。 在本款传感器的有效测量距离内10~80cm。模拟量转距离的公式为: Distance(cm)=(((67870.0 / (value - 3.0)) - 40.0)/10);
小结
在红外测距模块测试程序中,细心观察,会发现其他语句都是为了得到传感器的距离参数 get_distance(uint16_t value);  即探测到的实际距离。





回复

使用道具 举报

Boris_Liu  中级技师
 楼主|

发表于 2015-8-4 11:30:44

本帖最后由 Boris_Liu 于 2015-8-4 12:17 编辑

Step4.硬件的总装和程序测试
灯带 和mp3 模块, 用泡沫双面胶固定在海盗船上方基板的下侧 。


最炫海盗船图1


总程序的下载(包含库)


总硬件电路图


最炫海盗船图3

部分接线图表

外界设备

        红外传感器模拟输出端
               RoMeo (A6)
        伺服舵机控制端
               RoMeo (D10)
        DFPlayer Mini (TX端口)
               RoMeo (D2)
        DFPlayer Mini (RX端口)
               RoMeo (D3)
        灯带的控制端口(DI)
               RoMeo (D8)
        DFPlayer  (SPK_1端口)
               喇叭(GND)
        DFPlayer  (SPK_2端口)
   喇叭(正极)

程序的测试

最炫海盗船图4

测试效果

小车启动后能顺利壁障,在执行后退命令时会有语音发出。同时小车在监测到前方无障碍物,左右两侧有障碍物三种不同的情况时,小车内灯带会显示不同的颜色。








回复

使用道具 举报

hnyzcj  版主

发表于 2015-8-4 11:42:29

不错不错,值得学习。顶一个
回复

使用道具 举报

hnyzcj  版主

发表于 2015-8-4 11:42:42

抓紧补视频
回复

使用道具 举报

大连林海  初级技神

发表于 2015-8-4 12:19:16

太牛掰了 每个作品都很棒
回复

使用道具 举报

丄帝De咗臂  高级技匠

发表于 2015-8-4 12:33:54

我也有海盗船,可是连电机都还没焊呢
回复

使用道具 举报

Jane  高级技匠

发表于 2015-8-8 09:56:51

楼主,视频貌似有点问题
回复

使用道具 举报

NorrisTong  见习技师

发表于 2015-8-11 21:08:22

感谢楼主分享,学习下控制光带
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail