水平仪

来自Microduino Wikipedia
跳转至: 导航搜索

概述

Anywhere motion-Level.jpg

制作一个水平仪,在OLED显示屏上画一个圈,通过姿态传感器获取姿态,通过圆圈在X方向上的位置来判断是否水平。

模块清单

模块

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

其他设备

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

模块搭建

搭建

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

编程

编程思路

声明x加速度,将收集的x方向的加速度赋值给x,将x约束并映射到OLED坐标范围,根据坐标OLED显示圆圈位置。

Mixly-ctrl-motion-Level.jpg

使用的程序块

开始编程

1、获取加速度
声明x变量存储圆的横坐标,加速度角速度收集。

Mixly-ctrl-motion-Level-code.jpg


2、加速度约束并映射到OLED坐标上
加速度x存入x,将x约束在-8000至8000,将x从-8000至8000映射到0至127

Mixly-ctrl-motion-Level-code1.jpg

3、显示圆圈位置
上传成功后,x(俯仰)方向上倾斜系统,OLED屏幕上圆圈在水平位置滚动。

Mixly-ctrl-motion-Level-code2.jpg



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

Anywhere motion-Level.jpg



Q:已经学会气泡的绘制方法,现在在此基础上再增加两条线(模拟玻璃管的样子),让气泡在两条直线之间滚动。
A:学习新的程序块“OLED-点、线、面”程序块

初A初值为0。摇杆按下前重复执行内部程序。
其他程序不变,只要加上两条画线的程序即可,更改两根直线的起始和终止坐标。

Mixly-ctrl-motion-Level-code3.jpg

技术规范

相关案例

Q&A