重力感应

Tiny4412之重力感应器驱动

冷暖自知 提交于 2020-03-30 02:07:17
一:Tiny4412 裸板重力感应驱动编写   整个编写过程大概分为如下几步:   (1)在底板上找到重力感应器的所在位置,找到芯片型号(我用的板子上重力感应器芯片型号为: MMA7660FC )   (2)通过型号查看重力感应器电路图,了解每个引脚的功能   (3)找到引脚对应的网标(EINT,SDL,SCL)配置其相应的gpio口   (4)配置芯片相关寄存器   (5)使用I2C来读取重力感应器相应寄存器的值   下面是整个驱动的简单流程图: 通过看底板我们知道了重力感应器的控制芯片型号为: MMA7660FC,接下来我们就在看看改芯片的电路图(如下): 由上图我们可以看出它的外部中断XEINT25,用到的i2c总线为SDA3、SCL3 通过网标我们可以看到它是怎么连接到核心板上的(soc) 由上图可知,XEINT25、I2CSDA3、SCL3所对应的gpio分别为GPA1_2、GPA1_3、GPX3_1,之后我们就可以配置gpio口为相应的功能 通过datasheet我们可以找到它的外部中断号为64,如下图: 简单了解了mma7660的电路图之后我们就需要看芯片的datasheet,了解里面寄存器的配置及功能 首先看一下整个芯片与我们核心板的连接图: 由上图我们可以看出,芯片连接到我们核心板(soc)的总共为三根线:INT( 中断信号),SDA、SCL

利用传感器实现微信的摇一摇功能

北慕城南 提交于 2019-12-07 15:16:54
现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的“摇一摇”功能。 前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容。 传感器有几种类型: 方向传感器: Sensor.TYPE_ORIENTATION 加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER 光线传感器: Sensor.TYPE_LIGHT 磁场传感器: Sensor.TYPE_MAGNETIC_FIELD 距离(临近性)传感器: Sensor.TYPE_PROXIMITY 温度传感器: Sensor.TYPE_TEMPERATURE 在摇动手机的功能中,我们只用加速度传感器就行了~~ 加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是 values[0]: x-axis 方向加速度 values[1]: y-axis 方向加速度 values[2]: z-axis 方向加速度 其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点 x 方向就是手机的水平方向,右为正 y 方向就是手机的水平垂直方向,前为正 y 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负 所以说,你的手机放置的空间位置不同,它三个方向的加速度也不同。在这里,三个方向的加速度,与我们传统意义上的加速度(9.8m/s2)有所区别,需细细品味。

移动web js触屏事件 按下 松开 滑动

匿名 (未验证) 提交于 2019-12-03 00:39:02
移动web js触屏事件 按下 松开 滑动讲解 一、触摸事件 ontouchstart ontouchmove ontouchend ontouchcancel 前移动端浏览器均支持这4个触摸事件,包括IE。由于触屏也支持MouseEvent,因此他们的顺序是需要注意的: touchstart → mouseover → mousemove → mousedown → mouseup → click1 /*** onTouchEvent*/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var div = document.getElementById("div"); //touchstart类似mousedown div.ontouchstart = function(e){ //事件的touches属性是一个数组,其中一个元素代表同一时刻的一个触控点,从而可以通过touches获取多点触控的每个触控点 //由于我们只有一点触控,所以直接指向[0] var touch = e.touches[0]; //获取当前触控点的坐标,等同于MouseEvent事件的clientX/clientY var x = touch.clientX; var y = touch.clientY; }; //touchmove类似mousemove