====== 传感器及点阵LED显示功能板 ======
{{ ::step_sensor实物图1.jpg?490 |}}
{{ ::step_sensor实物图2.jpg?490 |}}\\
**传感器及点阵LED显示功能模块实物图**
===== 板卡简介 =====
STEP Sensor Card是STEP团队推出的可配合小脚丫多种底板使用的扩展板卡,板载资源十分丰富,其中包括多种传感器、16*8led点阵、flash存储等多种功能,你可以用这个子卡来实现你各种各样的新奇想法,像数字水平仪,温度计,亮度检测仪,你都可以用这个板卡去完成!\\
板载资源:\\
* 环境光传感器BH1750FVI-TR
* 温度传感器DS18B20Z
* Flash闪存W25Q64FVSFIG
* 陀螺仪MPU-6050
* 红外对管,比较器LM393DR
* 16*8 LED阵列
{{ ::模块划分11.png?600 |}}
**传感器及点阵LED显示功能模块板载资源** \\
===== 硬件资源介绍 =====
==== 结构框图 ====
{{::sensorboard硬件资源介绍1.png?480|}}\\
====器件选型====
| ^ 型号 ^ 厂商 ^ 封装 ^
^ 环境光传感器 | BH1750FVI-TR | RHOM Semiconductor | WSOF6I |
^ 温度传感器 | DS18B20Z | Dallas Semiconductor | SOP8 |
^ Flash闪存 | W25Q64FVSFIG | Winbond Electronics Corporation | SOP8 |
^ 陀螺仪 | MPU-6050 | InvenSense | QFN24 |
^ 比较器 | LM393DR | Texas Instruments | SOP8 |
==== 接口 ====
该模块与FPGA使用PCIE接口连接,这里只使用PCIE的物理接口与协议无关。\\
{{::sensorboard硬件资源介绍2.png?300|}}\\
==== 温度传感器 ====
温度传感器选用了Dallas半导体的DS18B20Z,是一个单总线、12位进度的数字式温度传感器,输入电压为3.0V~5.5V,比较灵活,工作温度可在-55摄氏度~125摄氏度之间,可满足我们日常使用的需求,DS18B20有直插和SOIC贴片两个封装,这里选用8pin SOIC。\\
{{::sensorboard硬件资源介绍3.png?260|}}{{::sensorboard硬件资源介绍4.png?380|}}\\
==== 环境光传感器 ====
环境光传感器选用了RHOM的BH1750FVI,是一个I2C接口的16位高精度数字式环境光传感器,无需外部接ADC进行采集,另外其功耗很低,被广泛的应用在诸如数码相机,手机等数码产品上。\\
{{::sensorboard硬件资源介绍5.png?200|}}{{::sensorboard硬件资源介绍6.png?300|}}\\
==== 姿态传感器 ====
姿态传感器选用了Invensense的MPU6050,是一个I2C接口的9轴运动处理传感器,集成了3轴陀螺仪和3轴加速度计,以及一个可扩展的数字运动处理器,广泛应用在机器人,无人机,平衡车等产品中。\\
{{::sensorboard硬件资源介绍7.png?200|}}{{::sensorboard硬件资源介绍8.png?380|}}\\
==== 红外传感器 ====
红外传感器采用了台湾亿光电子的ITR9909,是集成了红外发射管与接收管为一体的红外传感器,并且我们使用了TI的LM393电压比较器进行结果输出,保证了距离判定的稳定性。\\
{{::sensorboard硬件资源介绍9.png?300|}}{{::sensorboard硬件资源介绍10.png?380|}}\\
==== LED点阵 ====
LED点阵由于小脚丫STEP FPGA的管脚充足,可直接连接在管脚上,便于进行驱动。板上集成16*8共128个LED,组成的LED阵列。\\
{{::sensorboard硬件资源介绍11.png?500|}}\\
==== FLASH ====
板上集成了一个串行Flash W25Q64,容量64Mbit,SPI接口。\\
{{::sensorboard硬件资源介绍12.png?400|}}\\
===== 管脚对应表 =====
{{::sensorboard管脚对应表.png?400|}}\\
===== 使用示例 =====
==== 功能需求描述 ====
* 利用陀螺仪MPU6050实现数字水平仪:在LED点阵上显示一个“小球”,当板卡为水平时,“小球”在板卡中心不动,当板卡倾斜时,小球向对应方向进行移动;
* 利用温度传感器DS18B20Z采集环境温度显示在数码管或者LED点阵上,并实现低温/高温报警;
* 利用环境光传感器BH1750HVI制作一个环境光强检测仪,并实现手机中自动调节屏幕亮度的功能;
* 利用FLASH存储芯片W25Q64实现存储图片,并将图片在点阵上进行显示;
* 利用红外对管完成距离检测,亦可实现“手势开关”等功能。
### 相关知识
* [[温度传感器模块|FPGA驱动温度传感器DS18B20举例]]
* {{:单总线温度传感器驱动.pdf|DS18B20驱动说明}} \\
* {{:thermometer_step_max10.rar|温度采集和显示demo}} \\
* {{:环境光传感器驱动.pdf|环境光传感器驱动说明}} \\
* {{:ambient_light_step_max10.rar|环境光采集和显示demo}} \\
* [[智能接近系统设计|FPGA驱动I2C总线设备举例]] \\
* [[简易电压表设计|FPGA驱动SPI总线设备举例]] \\
### FPGA逻辑实现
对于STEP Sensor板卡,其结构为模块式,故调试也是分模块进行:\\
模块1:bh1750fvi代码设计
* 第一步(collect data):与BH1750FVI环境光传感器建立通讯,根据BH1750的手册可知,该传感器采用的是I2C通讯协议,在成功与其建立通讯之后,BH1750会周期性地向我们的小脚丫开发板发送16位二进制数据,当我们拿到这个数据之后,就可以对其进行数据处理。
* 第二步(process data):将采集回来的16位数据进行处理,并将其划分为64个亮度等级;
* 第三步(display data):将处理后的数据以三种形式显示出来。
三色灯:利用pwm脉冲调制的原理,根据第二步获取的亮度参数来调整自身的亮度。
led点阵:将亮度的变化体现在LED点阵上箭头流动的快慢当中。
数码管:小脚丫核心板卡上两位数码管可显示当前的亮度等级。
模块2:ds18b20代码设计
* 第一步(collect data):与DS18B20Z温度传感器建立通讯,根据DS18B20Z的手册可知,该传感器采用的是单总线的通信方式,在成功与其建立通讯之后,DS18B20Z会周期性地向我们的小脚丫开发板发送16位二进制数据,当我们拿到这个数据之后,就可以对其进行数据处理。
* 第二步(process data):取二进制数据前5位数据判断正负号;并取后面的11位数据,进行二进制转十进制bcd码的转换。
* 第三步(display data):将处理后的数据以两种形式显示出来。分别将当前的温度显示到小脚丫核心板卡上两位数码管上和LED点阵上。
### 演示程序
我们提供了两个演示程序,功能包括BH1750亮度采集,DS18B20温度采集和LED的扫描显示。\\
程序分Lattice MXO2和Intel MAX10两个版本,请根据使用的FPGA型号选择。\\
Lattice MXO2版本:{{::sensorcard-step_mxo2.rar|}} \\
Intel MAX10版本:{{::sensorcard-step_max10.rar|}} \\
==== 温度采集模块 ====
通过与DS18B20Z建立通讯,并利用LED点阵进行显示,验证了DS18B20Z与点阵模块的电路是可以正常工作的。\\
{{ ::sensor_温度采集.jpg?500 |}}
**STEP Sensor Card实现温度采集**
==== 环境光模块 ====
通过与BH1750FVI进行通讯,将环境光的数据采集回来,并按照亮度等级,对RGB_LED灯光亮度进行控制,说明环境光传感器可正常工作。
{{ ::sensor环境光暗.jpg?500 |}}
**亮度等级为00,环境光暗**
{{ ::sensor环境光亮.jpg?500 |}}
**亮度等级为63,环境光亮**
### 红外传感器模块
红外对管的驱动比较简单,调试结果为可通过距离控制将红外对管作为开关使用。
姿态传感器:可与MPU6050建立通讯并读取其发送回的数据。
===== 相关文档 =====
* Sensor Card 用户使用手册:{{::sensor_board使用手册v1.0.pdf|}}\\
* Sensor Card 硬件手册:{{::sensor_board用户硬件手册.pdf|}}\\
* STEP Sensor Card原理图:{{::sensor_expandboard_v1.1.pdf|}}\\
* STEP Sensor PCB:{{::step_sensor_card_v1.1.rar|}}\\
* STEP PCIE Card尺寸图:{{:step_pcie_card_.pdf|}}\\
* 器件数据手册:
* 陀螺仪MPU6050数据手册:{{::ps-mpu-6000a.pdf|}}\\
* 温度传感器DS18B20Z数据手册:{{::ds18b20.pdf|}}\\
* 红外对管ITR9909数据手册:{{:itr9909.pdf|}}\\
* 电压比较器LM393D数据手册:{{::lm393d.pdf|}}\\
* 环境光传感器BH1750FVI数据手册:{{:bh1750hvi.pdf|}}\\
* FLASH W25Q64数据手册:{{::w25q64.pdf|}}\\