安全气囊

来自Microduino Wikipedia
Yanglibin@microduino.cc讨论 | 贡献2016年11月8日 (二) 02:47的版本 (创建页面,内容为“{| style="width: 1000px;" |- | ==概述== 600px|center 模拟安全气囊,当碰撞加速度大于一定值,灯闪一下...”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

概述

Anywhere motion-airbag.jpg

模拟安全气囊,当碰撞加速度大于一定值,灯闪一下表示气囊打开。

模块清单

模块

模块 数量 功能
mCookie-Core 1 核心板
电池盒 1 程序下载和供电模块
ColorLED 1 彩色灯
姿态模块 1 检测姿态,相当于陀螺仪

其他设备

  • USB数据线*1
  • 乐高或其它固定结构
Anywhere motion-airbag-module.jpg

模块搭建

搭建

Anywhere motion-airbag-step.jpg
  • 将模块和传感器组装起来:
    • 将全彩LED灯连接在Hub的6/7管脚;
    • 将红色的核心控制、黄色的姿态模块与绿色的扩展模块吸在黄色的电池底座上;
    • 将USB连接线一头插入电池底座,另一头连接上电脑。

编程

编程思路

因为要用到彩灯,所以初始化彩灯准备,声明A变量用来储存加速度判断标准,我们设定A为负数,当加速度小于A认为车发生碰撞,彩灯闪烁一次表示气囊打开。

Mixly-ctrl-motion-airbag.jpg

使用的程序块

开始编程

1、初始化函数。
我们要用到彩灯,先彩灯准备,彩灯总数1,控制管脚6。声明A为整数,用来存储加速度

Mixly-ctrl-motion-airbag-code.jpg


Q:为什么设置-16384呢?
A:传感器测量范围是正负方向上两倍的重力加速度,输出范围是-32768~32768。16384的含义简单说就是当测量的加速值是1倍重力加速度时,那么加速度的输出就是16384。
Q:那为什么是负数呢?
A:加速度有方向,姿态模块上箭头方向为正,箭头的相反方向为负,当姿态模块向X箭头方向运动并撞到墙上时,它将受到墙给它的负向加速度使它停下来。

Mixly-ctrl-motion-airbag1.jpg


2、获取加速度做出反应
加速度角速度收集,用来获取加速度。判断加速度值的大小。如果加速度小于A,注意A是一个负数,表示姿态模块X箭头反向受到的加速度大于设定值,白灯闪烁一下,表示气囊打开。

Mixly-ctrl-motion-airbag-code1.jpg



测试结果
开机前保证姿态模块水平,开机后沿姿态模块X箭头方向撞击障碍物,当撞击时的加速度大于1g灯闪烁一下表示安全气囊打开。

Anywhere motion-airbag.jpg



Q:如果需要我们来设定安全气囊触发值该怎么做?
A:初始化时候重复检测X轴加速度,这时故意碰撞一下,将碰撞中检测到的最大加速度赋值给A,这就设置好了触发值。

初A初值为0。摇杆按下前重复执行内部程序。
读取X轴加速度。如果加速度小于A,就将加速度存入A (将装置先在障碍上轻轻撞一下,系统会自动记录下最大的碰撞力)。
按下摇杆退出循环彩灯闪烁。绿灯闪烁一次(代表设置完成)。

Mixly-ctrl-motion-airbag-code2.jpg

检测碰撞、气囊打开。

Mixly-ctrl-motion-airbag-code1.jpg

技术规范

相关案例

Q&A