设为首页收藏本站

[应用教程] 一把指南伞

Boris_Liu 发表于 2015-7-29 15:37:41 | 显示全部楼层 [复制链接]
22 7832
一把指南伞
【背景】  
近两个月以来,上海总是各种大雨小雨不断。一把伞就成了我们出行随身携带的日常配备。于是对伞的功能产生了兴趣。
在网上看到一款日本设计师Yang Ze-Siao设计的日伞夜灯-DSNL。它采用了多功能太阳电池板和发光二级管融合设计,白天用伞遮挡太阳,同时能存储太阳能,晚上可以当作照明灯具使用。看到后非常喜欢,这让我萌生了自己也动手改造伞的想法。

日本设计师设计的Yang Ze-Siao 日伞夜灯—DSNL(白天遮挡太阳,存储太阳能,晚上当作.jpeg

一个下雨夜晚,城市里的人们行走的脚步总是匆匆的,特别是来到一个陌生的环境,如果急切的低头看手机寻找方向,面对来往的车辆,多少会有些危险。于是想到了用电子罗盘和LED灯带组合设计一款能在夜间指引方向的指南伞,它能快速地给行人指引方向,也可以给夜间行驶的车辆以灯光的提示,保证出行的安全。

【设计思路】

33.png

相对于一个特定的区域,地理北极的朝向是恒定的。利用这个原理,我们读取电子罗盘的六轴矢量参数,经过一定的公式转化,将地理北极的方向,用航向角表示。(水平面上地理北极与电子罗盘标定的X轴的夹角)。   将伞的360°等分为10份,即以每36°代表一个方位并用三颗灯珠表示。最后将实时的地理北极方向,用该方位的灯带表示出来。因能力非常有限,可能会有不少疏漏,希望大家能够批评指正。

所需硬件清单】
1. FIT0352 RGB LED 灯带
注:所有的硬件均可以在DFRobot商城购买。

【制作过程】
Step1. 测试电子罗盘   
先测试电子罗盘的功能,将六轴矢量数据转化为航向角,在串口中打印出来。水平放置芯片,观察X轴是否与北方重叠。360°转动电子舵盘,观察串口数值的返回过程。
关于电子罗盘的倾角补偿方法,写在了后面的【硬件回顾】中。

电路连接图:

   总设计图B.png

备注:
一.对于Arduino pro mini而言,它默认的I2C接口为A4(SDA),A5(SCL)。
二.因为arduino pro mini不具备USB的转换芯片,因此用户无法直接用USB线来烧录程序。需要FTDI才能烧入程序和进行串口调试。
三.  FTDI下载器的驱动已经集成在Arduino IDE的drivers目录下,无须另外下载。安装驱动时,请选择从FTDI USB Drivers文件夹中安装。

下载程序
测试代码在附件中下载。位置为umbrella文件夹>>el-compass_test.ino  。测试时需导入LSM303DLH库

电子罗盘相关语句分析
语句Wire.begin()
说明: 开启I2C总线 (主设备)。因为LSM303DLH是通过I2C和Arduino进行通讯的。
语句:LSM303DLH compass;
说明:初始化电子罗盘,建立一个类型为LSM303DLH, 名为compass的对象。这里的对象的名字可自行更改。
语句:compass.read();
说明:读取LSM303DLH的六轴参数,并将它们赋值给compass.m.x/y/z(三个矢量方向的磁场值),compass.a.x/y/z (三个矢量方向的加速度值) ,便于我们后面调用这些参数。
将弧度值转化为用0~360°表示:
int compass_angle=round(atan2(H_y,H_x)*180/PI); //转化为角度
if(compass_angle<0) compass_angle+=360   //转化为(0~360°)  

测试效果:
根据电子罗盘上标准的三个地磁矢量的方向水平放置芯片。观察串口的返回值,x轴方向与地磁北极重合时,串口返回0。逆时针转动芯片,正西方为90,南方为180。依次返回值会不断变大到360°

211111111.png







Step2. RBG灯带的焊接和使用

以三颗LED灯为一组对灯带进行裁剪。
灯带1.png

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

焊接,并用热熔胶封闭接口(防水)
灯带2.png

焊接后的效果
image3004.png


对灯带编号
从灯带上与控制板连接的第一颗LED算起,每三颗LED灯编为一组记作LEDs_0, 依次为LEDs_1...一直到LEDs_9。
电路连线图:
灯带测试CCC.png
下载测试程序
测试代码在附件中下载。位置为umbrella文件夹>>LED_strip_test.ino  。测试时需导入Adafruit_NeoPixel库
灯带程序相关语句分析
语句1:Color(uint8_t r, uint8_t g, uint8_t b)
说明:显示灯珠的颜色 (三个参数分别表示红,绿,蓝三色的亮度;取值范围是(0~255))如表示
红色:Color(255,0,0);
蓝色:   Color(0,0,255);
紫色:Color(255,0,255);  为蓝色和红色的混合

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

测试效果
通过改变测试程序loop()中colorwipe()函数中的参数a 和b的。来控制点亮不同编组的灯珠。
例:
如果想点亮LEDs_0灯组,则
void loop(){  
colorWipe(Color(25500),0 ,3, 50);
clear(100);}

灯带3.png








Step3. 对芯片做去针脚处理并焊接所需的接线

为了能美观,用电烙铁加焊锡将针脚去掉,改用直接焊接接线
remove1.png

去针脚后的效果
remove2.png

对控制器去针脚,但保留用于程序烧写和串口调试的针脚。
remove3.png









Step4. 连接各个元器件,并安装到伞内

总装电路图:
总设计图B.png

接线表格
外部设备
DFRduino Pro mini
电子罗盘(SCL)
A5
电子罗盘(SDA)
A4
电子罗盘(GND) ,灯带(GND)
GND
电子罗盘(VCC) 灯带(+5V)
VCC
灯带(DI)
D3

元器件安装:
4444444.png

灯带安装:
安装图.png
外观效果:
QQ图片20150721171833.jpg

视频效果:





【硬件回顾】
因为之前未使用过电子罗盘和加速度仪,期间饶了不少的弯路,在网上收集了一些关于电子罗盘的原理和使用帖子,经过测试,发现基本上能满足本次设计的要求。下面是一些相关使用知识的整理与大家分享,因为本人水平非常有限,可能会存在不少错误和不足的地方,望大家能够批评指正。

如何表示地磁北极的方向
电子罗盘是利用磁传感器感知地球磁场来实现测向定位的,地球上某点的磁场矢量分析如图所示。

22222.png 11.png

x轴和y轴在水平面上且x轴与y轴相互垂直, z轴是垂直方向(重力方向)。磁北的方向就是地磁场He在水平面上的分量Heh的方向。对照图中3个角度进行以下说明。
1) 方位角α(磁北与x轴之间的夹角)
公式1.jpg
2) 磁偏角λ(地理北极与磁场北极之间的偏离角)
磁偏角也叫磁差,磁偏角是与地理位置有关的参量。磁偏角在上海地区为偏西4.3°,在大连为偏西7.5°。利用磁罗盘在计算真方位角(即相对地理北极)时,必须对磁差进行补偿。
结论:
a,只需要知道电子罗盘输出的X和y轴方向的矢量,通过做两者的反正切即可以得出方向角α。 由于X轴视作参考坐标,那么由方向角α,边可以得出磁北的方向。
b,每个地区的磁偏角相对固定,于是查询该地区磁偏角,结合磁北方向边可以得到我们真正想要的地理北极方向。
倾角补偿的原理
1,为什么要做倾角补偿
只有在检测仪器与地表平行时才能成立。当仪器发生倾斜时,方位值的准确性将受到很大的影响。为减少该误差的影响,我们需要用加速度计来测量俯仰角侧倾角。
2. 倾角补偿的方法
俯仰角定义为由前向后方向的角度变化;而侧倾角则为由左到右方向的角度变化。通过LSM303DLH内置的加速度传感器检测出三个轴上重力加速度的分量,
再通过式2,可以计算出(roll)侧倾角 和 (pitch)俯仰角关于侧倾角,俯仰角可参考如下示意图

image2993.png

公式2.jpg 公式3.jpg

将俯仰角和侧倾角的数据经过转换计算,将磁力仪在三个轴向上的矢量在原来的位置“拉”回到水平的位置。
标准的转换计算式如下:

公式4.jpg

这里 公式5.jpg 公式6.jpg 为要转换到水平位置的值,于是由公式一,得到了倾角补偿后的航向角,最后根据当地的磁偏角做左后的修正,边得到了较为稳定的航向角,即北极的方向信息。

三:一些相关的数学运算函数

PI   //常量π
atan2(y,x); //反正切三角函数
sq();    //取平方函数
sqrt;    //取开方函数

发表于 2015-7-29 16:41:17 | 显示全部楼层
大概看了一下,还挺不错的~

推荐下次发帖可以用一个STEP一个楼层   这样方便查找和观看。。。
回复 支持 反对

使用道具 举报

发表于 2015-7-29 16:51:36 | 显示全部楼层
swanglei 发表于 2015-7-29 16:41
大概看了一下,还挺不错的~

推荐下次发帖可以用一个STEP一个楼层   这样方便查找和观看。。。 ...

哈,经验太不足了,论坛的图片大小不好调整。多谢大神提醒!
回复 支持 反对

使用道具 举报

发表于 2015-7-29 17:48:17 | 显示全部楼层
伞好拉风啊
回复 支持 反对

使用道具 举报

发表于 2015-7-29 17:50:35 | 显示全部楼层
要是能够自动的,不需要开关控制就好了
回复 支持 反对

使用道具 举报

发表于 2015-7-29 18:11:01 | 显示全部楼层
Boris_Liu 发表于 2015-7-29 16:51
哈,经验太不足了,论坛的图片大小不好调整。多谢大神提醒!

可以适当增加回车  把图片跟文字分开  这样就有上下之分了  有的时候一个回车是会被忽略的  有可能需要增加一个回车   我都已经成习惯了~  反正看不太出
回复 支持 反对

使用道具 举报

发表于 2015-7-29 18:24:33 | 显示全部楼层
swanglei 发表于 2015-7-29 18:11
可以适当增加回车  把图片跟文字分开  这样就有上下之分了  有的时候一个回车是会被忽略的  有可能需要增 ...

已经做了部分修改,哈哈,感谢指导!
回复 支持 反对

使用道具 举报

发表于 2015-7-29 18:27:56 | 显示全部楼层
Boris_Liu 发表于 2015-7-29 18:24
已经做了部分修改,哈哈,感谢指导!

嗯嗯  好很多了已经。。。
回复 支持 反对

使用道具 举报

发表于 2015-7-29 18:28:04 | 显示全部楼层
Jennifer_yu 发表于 2015-7-29 17:50
要是能够自动的,不需要开关控制就好了

之前想过在伞柄上增加一个装置,撑开伞后灯就亮了。{:3_43:}可惜还没成功,后续会改进。
回复 支持 反对

使用道具 举报

发表于 2015-7-29 19:31:09 | 显示全部楼层
打伞一般是防雨,这个电子的东西应该也要做得防水吧,毕竟雨天拿着伞容易沾水
回复 支持 反对

使用道具 举报

发表于 2015-7-29 19:35:57 | 显示全部楼层
这么美丽的伞为什么被拍得散发着淡淡的屌丝气息~~为什么没有妹子~
回复 支持 反对

使用道具 举报

发表于 2015-7-30 09:47:36 | 显示全部楼层
丄帝De咗臂 发表于 2015-7-29 19:31
打伞一般是防雨,这个电子的东西应该也要做得防水吧,毕竟雨天拿着伞容易沾水 ...

灯带部分做了一定的防水,芯片部分只用了黑胶布全封上了....确实做得不太好啊。{:3_55:}
回复 支持 反对

使用道具 举报

发表于 2015-7-30 09:50:07 | 显示全部楼层
luna 发表于 2015-7-29 19:35
这么美丽的伞为什么被拍得散发着淡淡的屌丝气息~~为什么没有妹子~

{:3_45:}....这个.....
回复 支持 反对

使用道具 举报

发表于 2015-7-31 10:08:53 | 显示全部楼层
Boris_Liu 发表于 2015-7-29 18:28
之前想过在伞柄上增加一个装置,撑开伞后灯就亮了。可惜还没成功,后续会改进。 ...

还可以使用光控,光线暗的时候灯才会亮
回复 支持 反对

使用道具 举报

发表于 2015-7-31 20:48:12 | 显示全部楼层
Boris_Liu 发表于 2015-7-30 09:47
灯带部分做了一定的防水,芯片部分只用了黑胶布全封上了....确实做得不太好啊。 ...

做得很棒了,比我强得多
回复 支持 反对

使用道具 举报

发表于 2015-8-4 10:30:01 | 显示全部楼层
这个供电是用锂电池吗?会不会太重了?
回复 支持 反对

使用道具 举报

发表于 2015-8-4 11:05:01 | 显示全部楼层
luna 发表于 2015-8-4 10:30
这个供电是用锂电池吗?会不会太重了?

用了我们公司的3.7V  mini锂电池。哈,不算太重的。
回复 支持 反对

使用道具 举报

发表于 2015-8-5 18:31:26 | 显示全部楼层
撑着伞的时候会担心有东西掉下来吗
回复 支持 反对

使用道具 举报

发表于 2015-8-13 09:42:33 | 显示全部楼层
挺好的、挺有创意的,怎样不露电线就好了
回复 支持 反对

使用道具 举报

发表于 2016-1-19 15:24:28 | 显示全部楼层
Ash 发表于 2015-8-5 18:31
撑着伞的时候会担心有东西掉下来吗

哈哈, 我也是这么想的

不过创意很好啊, 最好能封装一下, 从伞的外观看不出来才好
回复 支持 反对

使用道具 举报

发表于 2016-7-17 20:33:03 | 显示全部楼层
可以麻烦作者把源代码发我一下吗,邮箱1309232313@qq.com
回复 支持 反对

使用道具 举报

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

本版积分规则 允许回帖同步到新浪微博  

推荐阅读

精华导读




公司简介| 联系我们| 小黑屋| 加入我们| 微博| 优酷| 英文网站| DF创客社区 ( 沪ICP备09038501号-4  
友情链接| 硬创邦| 花生壳社区| 模友之吧| 电子发烧友社区| 创客星球| 云汉电子社区| 电子工程网| 与非网| Arduino中文社区| 南极熊3D打印网| OneNET|

上海智位机器人有限公司  沪ICP备09038501号-4   

Powered by Discuz! X3.1

Licensed Comsenz Inc.

返回顶部 返回列表