所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
挑战二【雷电测距】
安卓机器人 安卓机器人 2019-02-15 13:41:07
5
6
简单

                                       《设计思维》——再学习(网摘)

       设计思维是一种高品质思维加工能力,包括换位思考、创意构思、建模迭代等……,这些能力在创客的原生领域——设计与工程领域被统称为“设计思维”。

       “设计思维”是创新素养的核心能力之一,是人进行创新思考、高效解决问题的基本方法论。设计思维能够指导人们在复杂的现实问题面前,迅速聚焦核心问题,高效统合现有资源形成解决方案并不断优化迭代,最终解决问题。

       “设计思维”的关键在三个环节:校准问题点、 形成方案原型、测试迭代。

        在校准问题点阶段,培养重点在于学生的“共情”、“同理心”;在方案原型阶段,培养重点在于联想创意和全局思考;在测试迭代阶段,培养重点在于主动试错、沟通合作。 

 【基本要求】  

1.沉浸式的体验——设计思维源于充沛深度的共情体验,尤其要站到发现者、提出者或发明者的角度重新审视知识成果生成初期的思考过程,并尝试挑战某些环节,提出其他的可能性,在现有知识基础上适度加以分析探究。 

2.构建原型——构建原型就是通常所说的“0 到 1” 的过程,将资源加以整合迅速构建解决方案的原型,这个能力不同于普通的联想、灵感,而是要求思考者在最短时间内构建思考框架和资源关联并形成 1.0 版本的解决方案。关键要求就是“第 一时间形成完整考虑”。 

3.测试迭代——测试迭代的过程就是“1 到 n”的 过程,需要迅速对 1.0 版本方案进行优化、提升、改善,形成 2.0、3.0……版本。

我们尝试按照“设计思维”模式进行吧: 

项目由来>确定问题>制作原型>项目测试

projectImage

【笑一笑】

老师问:“在电闪雷鸣的季节,同学们是先看见闪电还是先听见雷声呢?” 

学生们答:“先看见闪电!”

老师点点头说:“嗯嗯,那谁能说一下这是为什么吗?” 

一学生抢答:“因为眼睛在前、耳朵在后,所以眼睛就先看见闪电啦!”  

(~^D^~)

【其他例子】

        生活中类似的现象很多,比如:看见头顶呼啸而过的战斗机,已远去了,才听见“轰隆隆~”剧烈的雷爆声!还比如:原来的100米赛的发令枪声(运动员听)与枪口喷出的浓烟(100米外的计时员看)。

【理论尝试】

       如何更好地解释这种种现象呢?

       物理公式:雷电云与检测装置的直线距离 = 声波平均速率 * 雷声传达到装置时间 

利用开源软件硬件,制作一个装置来准实时检测雷声及闪电到达传感器的时间差值。

利用这个差值作为声音从雷电云传达到检测装置的时间,根据以上公式计算即可得到雷电云与检测装置的直线距离。

        我想如果学生们通过亲自分析解决问题,制作装置并饶有趣味地模拟或实地测试,感受光速、声速的巨大差别,那么一定会对一些基本概念有更深刻的认识。

【我们的经历】

        小时候,在电闪雷鸣的恐惧中默数雷声传来的秒数来估计距离我们的远近; 

        长大一点后,再用秒数乘以340进一步估算闪电离我们的距离。

        去年,我和儿子曾经用Arduino尝试过几次,因为对其与时间相关函数不够熟悉,准实时收集数据问题总是失败!

        最近发现Mind+ 里 Arduino下有个“系统运行时间”积木块,立即轻松解决了这个问题!(^_^)

【附:好消息】

       当在制作过程中,浏览DF商城新品中无意发现了一个模块:闪电传感器

功能酷强着呢~轻松准确地解决所有问题!

projectImage

接上所述~

我们的需求结果是:雷电云与检测装置的直线距离

我们已知的公式是:(S = vt)雷电云与检测装置的直线距离   = 声波平均速率 * 雷声传达到装置时间

我们已知的常数是:声波在空气中平均速率为 340m/s(即0.34m/ms)

所以~

我们仅仅需要利用声光传感器把“雷声传达到装置时间 ”这个参数挖出来!

怎么挖呢?

【分析问题】

        为了获取“雷声传达到装置时间 ”,从字面上理解就是从雷声波一开始发出就计时,到声波被声音传感器刚采集到就停止计时。

那么怎样知道雷声波是哪个时间点开始发出的呢?

我们知道:雷声传送与闪电光的传播是同时发生在所处的同一个雷电云;

如果装置就在雷电云里面,那么雷声波与闪电光波同时被采集到,当然计算距离结果也几乎为0。

实际中,装置总是离雷电云有一定距离的。

        由于光速相对极大,这里可以近似考虑利用光敏传感器收集光波到达的时间点来作为雷声波发出的时间点。

       假设光速无限大,当我们一看见闪电,就立即开始计时(闪电感光时间点),屏气凝神地等待雷声的到来,立即停止计时(雷声到达时间点)。利用声光传感器捕获这两个时间点,取两者差值就已经非常接近真实的“雷声传达到装置时间 ”!

【解决问题】

雷电云与检测装置的直线距离 = 声波平均速率 * (雷声到达时间点 — 闪电感光时间点)

“雷声到达时间点”由声音传感器采集,取首个数据;

“闪电感光时间点”由光线传感器采集,取首个数据。

备注1:为尽可能接近实时性,整个程序块中不可使用“等待X秒”积木块。

备注2:由于传感器在极短时间内能一次性地反馈几个至十几个数据,还是为保证实时性,因此取首个数据。

【误差举例】

        当然,有人认为闪电到达装置也需要一点儿时间啊,对此我们还是可以科学严谨地计算一番:

假设:有雷电云距离装置为S = 10km = 10000m

已知:光在空气中的近似速率取c = 300,000,000m/s,声波在空气中的平均速率取340m/s = 0.34m/ms

计算:则闪电光传播时间为t = S/c =10000m/300,000,000m/s = 0.033ms

由于闪电也需要时间传播10公里而产生的距离误差为: 

误差时间*声速率 = 0.033ms*0.34m/ms = 0.01122m = 1cm(哈哈,指甲壳宽度)

结论:光速问题忽略不计(况且传感器及系统也可能达不到这个反馈速度吧)

备注:为了简化积木块程序,系统中还有其他种种误差这里一并不作考虑

projectImage

虚拟一位闪电小子,带着我们制作的DFLOGO式的装置,勇敢无畏地零距离测试及远距离测试。

有请DF闪电小子镭射登场:

projectImage

装置工作基本过程: 

采集>处理>显示 

传感器:声音传感器、光线传感器(采集数据)

处理器:ArduinoUNO(处理数据)

显示器:LED灯带 (室外粗略显示)\电脑串口显示器(室内精确显示)

闪电小子转盘式搜索,似乎感应到附近很快会发生雷电。

根据闪电小子超近距测试不难发现,闪电与雷声几乎是同时采集到。

这一次闪电小子远距离观察两朵不断盘旋的雷电云,他们势均力敌,可能随时爆发!

最终结果明显地感受到声光速差引起的时间延迟。

材料清单 材料清单
1x
DFduinoUNO
1x
IO 传感器扩展板 V7.1
1x
BOSON-声音传感器
1x
BOSON-光线传感器
1x
BOSON-角度传感器
1x
炫彩 WS2812 LED灯带
3x
七彩自变色LED灯、磁铁(或铁片)
1x
线材(若干)
1x
半透塑料软泡沫\热熔胶枪\双面胶\小手电筒
1x
线材\纸板\美工刀\尺子\切割垫板\圆规\铅笔
步骤1 步骤1
制作DF-LOGO面板
projectImage
projectImage

试作上面一个后,重新做了下面更大一点的;

projectImage
projectImage

现在看来三个棒状天线不太符比例,小棒细一些才好。

用铅笔把三个小天线的中心线画出,对准主面板的中心再画线,确定小棒位置后,再用铅笔在小棒下端画出直角线定位。

用热熔胶粘上。

projectImage

感觉强度不够,又切割了下面三个小长方形片。粘上。

projectImage
projectImage
projectImage

下面热熔胶粘的磁铁最好用铁片替换掉,防止对传感器干扰。

注:中间的位置吸附声音传感器,不可用磁铁,影响很大。

projectImage

安装七彩自变色LED灯,长脚一般为正极,也可用电池分清正负极,正极用红线如下一张图。

projectImage

三个LED灯脚小心弯折成90度圆角,插入小孔,热胶固定。

projectImage
projectImage
步骤2 步骤2
根据传感器A\D属性,及LED灯电压需求接线
projectImage

双面胶把UNO+IO固定在DF-LOGO面板下面。

下图左一LED对应背面是角度传感器,调节角度传感器时可同时控制主面板LED灯带亮度及光线传感器的触发值。

中间LED对应背面是声音传感器。

 右面LED对应背面是光线传感器。

3个LED这里仅是装饰。(在下面迭代优化中重新定义)

projectImage
projectImage
步骤3 步骤3
程序积木块功能分解

主程序:

实际中偶然发现串口显示器中还能显示中文,把波特率选最高则最佳(出现奇怪字符概率很小)。

根据环境声音大小,也可以调整声强触发值(这里暂取400)。

projectImage

函数一:捕捉首次闪电感光时间点并串口输出

这里的重点是尽可能确保实时性,因此只要一感光立即捕获最先的时间点。

projectImage

函数二:显示分隔线及测试次数

这个仅仅是为了在电脑显示器显示得清晰、整洁而已。

projectImage

函数三:捕捉首次雷声到达时间点及计算声光时差并串口输出

结合主程序,观察。如果环境声音达到我们的触发值(比如400),就认为是雷声到来,运用“系统运行时间”捕获时间点。

projectImage

函数四:计算测试设备与雷电云距离并串口输出

套用公式 S = vt 直接计算距离

projectImage

函数五:LED灯带显示检测距离远近

七灯(编号:0~6);两边的0号及6号灯常亮。

亮1号灯表示200米及以下;亮1、2号灯表示200~400米;亮1、2、3号灯表示400~600米;亮1、2、3、4号灯表示600~800米;亮1、2、3、4、5号灯表示800米及以上。

projectImage
projectImage

模拟测试基本功能:

操作与观察:1.小手电筒光照模拟闪电照射光线传感器,观察屏幕是否立即响应显示相对应的参数;

2.拍手声模拟雷声,观察屏幕是否立即响应显示相对应的参数及灯带同步显示的是否符合程序要求。

测试过程中串口数据截图:

projectImage

模拟测试基本功能小报告:

1、室内能够实时检测,并同时提供了两种显示方式。

2、但灯带显示大于800米距离有时出现不正常的现象:灯带中5、6号不亮。

 

迭代优化:

1、重新定义3LED灯的功能,不仅是装饰作用。

2、查找灯带中5、6号不亮的原因。

3、抗干扰建议:白天室外需要调节角度传感器以增强光敏触发值,并相应根据环境声音大小通过Mind+改变声强触发值( 或添加另一角度传感器调节)。

3LED灯的功能重定位:

主要作用是实时显示感光、感声;手动实时调节设置光强触发值、自身亮度、灯带亮度。

projectImage

修改接线图如下:

projectImage

迭代优化后模拟测试:

操作:小手电筒模拟闪电光照;手机播放雷雨场景片段。

模拟测试串口数据截图:

projectImage

迭代优化后测试小报告:

1、3LED灯正确指示了信号;

2、灯带中5、6号不亮问题解决了,但真正原因不明。(有请高手哈~)

3、串口输出显示中还有少量奇怪字符。(目前只能达到这样子~)

Mind+代码(含优化前后):

https://gitee.com/vividxpx/lightning_ranging.git

☞创客天天乐☜

       人生不如意十之八九,都是自找的(^-^)。快来玩创客,天天有乐豆。春节期收获的大乐豆~Paint3D。

       10+天玩乐→_→ 4500+字,100+次gif、特效模拟短视频、程序截图、图片处理、1晚手工、6+晚深夜调试、500+模拟雷电测试。

Makelog作者原创文章,未经授权禁止转载。
5
6
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]