百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

实战microPython(12)-加速度传感器的使用

bigegpt 2024-09-05 12:14 4 浏览

大家好,今天我们讲解加速度传感器的原理及编程。

我之前讲过,微控制芯片只是会根据程序执行指令的大脑(参见我之前的文章《实战microPython(三)uPyBoard是如何控制机器人的》),一切外部的感知需要传感器将其转换为微控制器能够理解的数据,交由微控制器来处理,做出相对应的行动。

因此,传感器就是将外部的各种物理及化学的量,如温度,湿度,光亮度,各种气体,压力,震度等转换为电信号的器件。今天要讲的加速度传感器,就是其中比较特殊的一类。加速度传感器顾名思义,就是要将加速度值转换为对应的电信号。加速度中学物理会学到,通俗的讲,就是描述单位时间内速度变化程度的物理量,这里必须要强调的一点是,加速度不是速度,是速度的变化。不是运动的物体都会有加速度,比如,我们始终以60公里/小时的速度匀速前进时,那么在前进的方向上的加速度为0。只有在加速到70公里/小时或减速到50公里/小时的过程中,才有加速度(加速度不是0)。因此,加速度传感器不能用来检测速度的快慢。

另一方面,不是静止的物体就没有加速度(加速度为0),比如,静止的汽车开动起来的瞬间,加速度就不为0了。而最常见的就是地球上的所有有质量的物体都会无时不刻的受到地球引力的影响,让我们在一切可能的情况下坠向地心,因此,在我们身上无时不刻都有一个引力形成的加速度,只要我们踏空的瞬间,这个加速度就会将我们的身体由静止拽向地面。因此,加速度传感器,无论怎么放置在地球上,都会检测到一个指向地心的加速度,大小为1g(约为9.8m/s2),而加速度传感器的测量结果,也是以g为单位的。

那么加速度传感器是如何工作的呢?加速度传感器有多种,这里只简单介绍一类,如下图:

假想一个盒子中,中间有一物体,两边使用弹簧连接,如果没有加速度时,物体处在正中间,弹簧两边受力相同,达到平衡。当有加速度时,物体会向加速度相反的方向滑动,此时物体与盒壁的距离发生变化,加速度越大,物体偏移的也越大,因此,只要将物体便宜的大小转换为电信号就可以知道加速度的大小了。这里有两种方法,一是通过测量物体与盒壁间电容量的变化可知物体所受加速度的大小,这就是电容式加速度传感器。二是也可以使用压电材料,测量得到弹簧上的压力大小来得到加速度大小,这就是压电式加速度传感器。其中,电容式传感器广泛应用在芯片中,是的,将一套机械装置坐在芯片上,这就是微机电系统(MEMS, Micro-Electro-Mechanical System),也叫做微电子机械系统、微系统、微机械等。

微机电系统(MEMS, Micro-Electro-Mechanical System),可是个高科技玩意,下图,就是来自于百度百科的一张芯片内部图片,大家可以感受下。

想了解更多的相关知识,就自己网上查一下吧,这里就不赘述了。

前面之所以讲了些加速度传感器的测量知识,就是想告诉大家,在我们的三维世界中,加速度的测量是要有3个方向的,我们分别使用X, Y, Z三个坐标轴表示。加速度传感器是以芯片自身的方向输出3个坐标轴方向上的加速度测量结果的。如下图,芯片指明的方向:

每个轴的加速度数值输出都有正负值,代表加速度的方向是沿轴正向还是反向。这在我们编程使用加速度芯片时要特别注意,芯片的本身的放置方向和我们自身感觉的上下左右方向也许并不一致,因此,我们在使用加速度传感器数据做应用时,也许要先搞清楚加速度芯片的放置方向。比如,在制作计步器的时候,我们并不能假定使用者如何佩戴产品,因此,我们也就无法预设加速度传感器芯片那面朝上。但如果将加速度传感器应用在无人机中,我们就可以在结构上确认传感器的方向,必竟飞机是不能长时间倒着飞的,而且在起飞前,飞机的上下左右方向是可以预知的。后面我会讲到如何通过加速度传感器判断当前设备的方向。

编程方面,之前其实已经介绍过,官方PyBoard板上带有加速度传感器,型号是MMA7660,这是一个最大量程±1.5g的传感器芯片。如果,我们手头的板子上带有这个芯片的话,那就可以简单的使用pyb中的Accel做检测了。程序如下:

官方相关说明:

http://docs.micropython.org/en/latest/library/pyb.Accel.html#pyb-accel

由官方文档及芯片手册可以看出,MMA7660传感器每个轴的测量值为6-bit,也就是说输出值的范围是-32到31之间。按照其最大量程±1.5g来算,其测量精度为1.5g/32约为0.047g。

精度不高但是也还是够用的。为了便于处理,我们通常使用mg(重力加速度的千分之一)作为单位。因此,上面的程序可以直接输出mg值:

当我尝试将PyBoard板水平放置的时候,结果输出如下:

我们可以看到,在X, Y轴方向的加速度都为0,但在Z轴方向有一个约为1000mg左右的加速度,前面讲过,mg的单位是千分之一的重力加速度,那么这个Z轴现在测到大约1g左右的加速度,就是地球给我们的重力加速度了。由此,我们就可以知道,传感器芯片的朝向和运动方向等信息了。

那么,为什么不是精确的1g呢?这主要有两个原因传感器的转换精度以及地球上不同纬度的重力加速度的大小是不一样的,国际上以纬度45测量到的重力加速度为标准的1g,因此,我们测量的数值会有一些出入,但这并不影响方向的判断。因此,实际应用中,可通过设备在运动前静止时的测量值,以重力加速度的方向判断出被测物体的上下左右朝向。加速度传感器多运用在航空器,汽车载具等姿态判断或碰撞检测上。

那么,对与PyBoard板上没有加速度传感器的童鞋也不要着急,我们可以扩展连接一个外部加速度传感器模块,一样可以检测加速度了。

我们下期再见,祝各位玩的愉快。

更多新奇的内容,请继续关注:创客DIY乐园(MakerDIY-Park),您的关注就是我前进的动力。

相关推荐

或者这些Joplin插件也可以帮助你的笔记应用再一次强大

写在前面距离上次分享《搭建私有全平台多端同步笔记,群晖NAS自建JoplinServer服务》已过去一段时间,大家是否开始使用起来了呢?如果你和我一样已经使用过Joplin有一段时间了,那或许你也会...

Three.JS教程4 threejs中的辅助类

一、辅助类简介Three.js提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper:创建坐标轴辅助器;BoxH...

第2章 还记得点、线、面吗(二)(第二章还能敲钟吗)

glbgltf模型(webvrmodel)-gltf模型下载定制,glb模型下载定制,三维项目电商网站在线三维展示,usdz格式,vr模型网,网页VR模型下载,三维模型下载,webgl网页模型下载我...

如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!

你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...

SpriteJS:图形库造轮子的那些事儿

从2017年到2020年,我花了大约4年的时间,从零到一,实现了一个可切换WebGL和Canvas2D渲染的,跨平台支持浏览器、SSR、小程序,基于DOM结构和支持响应式的,高...

平时积累的FPGA知识点(6)(fpga经典应用100例)

平时在FPGA群聊等积累的FPGA知识点,第六期:1万兆网接口,发三十万包,会出现掉几包的情况,为什么?原因:没做时钟约束,万兆网接口的实现,本质上都是高速serdes,用IP的话,IP会自带约束。...

芯片逻辑调度框架设计 都需要那些那些软件工具

设计芯片逻辑调度框架通常需要使用以下软件工具:1.逻辑设计工具:例如Vivado、Quartus、SynopsysDesignCompiler等,用于设计和实现逻辑电路。2.仿真工具:例如Mo...

ZYNQ与DSP之间EMIF16通信(正点原子领航者zynq之fpga开发指南v3)

本文主要介绍说明XQ6657Z35-EVM高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。[基于TIKeyStone架构C6000系列TMS320C6...

好课推荐:从零开始大战FPGA(从零开始的冒险4399)

从零开始大战FPGA引子:本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“...

业界第一个真正意义上开源100 Gbps NIC Corundum介绍

来源:内容由「网络交换FPGA」编译自「FCCM2020」,谢谢。FCCM2020在5月4日开始线上举行,对外免费。我们有幸聆听了其中一个有关100G开源NIC的介绍,我们对该文章进行了翻译,并对其中...

高层次综合:解锁FPGA广阔应用的最后一块拼图

我们为什么需要高层次综合高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++...

Xilinx文档编号及其内容索引(部分)

Xilinx文档的数量非常多。即使全职从事FPGA相关工作,没有几年时间不可能对器件特性、应用、注意事项等等有较为全面的了解。本文记录了我自使用Xilinx系列FPGA以来或精读、或翻阅、或查询过的文...

Xilinx Vivado联合Modelsim软件仿真

引言:Xilinx公司Vivado开发软件自带仿真工具,可以实现一般性能的FPGA软件仿真测试,其测试执行效率以及性能都不如第三方专用仿真软件Modelsim强。本文我们介绍下如何进行Vivado20...

体育动画直播是怎么做出来的?从数据到虚拟赛场的科技魔法!

你是否见过这样的比赛直播?没有真实球员,却能看梅西带球突破?足球比赛变成动画版,但数据100%真实?电竞比赛用虚拟形象直播,选手操作实时同步?这就是体育动画直播——一种融合实时数据、游戏引擎和AI的...

Dialogue between CPC and political parties of neighboring countries held in Beijing

BEIJING,May26(Xinhua)--TheCommunistPartyofChina(CPC)inDialoguewithPoliticalPartiesof...