5. 使用脚本测试硬件

为方便对开发板的硬件进行测试,我们在开发板出厂配套的系统镜像中提供了一些脚本来演示如何控制嵌入式行业常见的板载外设。 使用这些脚本可以方便地体验开发板的强大之处。

作为一个合格的程序员,可能在阅读本节的时候,会思考这部分的代码是如何实现的呢? 不过本章我们先进行体验,建立概念,在后面章节再对其中的原理进行详细讲解。只要耐心地看完本书,精彩都是在后头的。

5.1. fire-config使能外设

本节测试实验,主要涉及LED、按键、蜂鸣器、ADC、陀螺仪等硬件外设,需要初始化化相关模块。 参考《fire-config工具简介》章节的相关介绍,确保使能LED、key、IIC、ADC等模块。

../_images/script000.png ../_images/script001.png

5.2. 安装脚本文件

执行安装命令

1
sudo apt install peripheral

注意:如果开发板是第一次使用下载软件,请先使用以下命令进行软件源的刷新

1
sudo apt update

5.3. 测试脚本目录

安装完成后,测试脚本都被存放在开发板的“/home/debian/peripheral”目录。 为方便讲解,本章后面默认是在该目录下进行,先使用如下命令切换至该目录:

1
cd ~/peripheral
../_images/script002.png

如上图是开发板提供的外设示例脚本,不同的开发板提供的内容可能会不同。

5.4. LED灯测试

led.sh脚本可以控制开发板上的LED灯,对于EBF6ULL Pro开发板的RGB彩灯会进行 混色,对于EBF6ULL Mini开发板三盏用户LED会以不同形式进行闪烁。

在脚本目录下,使用如下命令可直接运行。

执行前请确认当前用户为 root 用户,或者使用 sudo 权限执行。

#在脚本目录下运行

1
./led.sh

对脚本内容感兴趣的用户可以使用cat命令来查看脚本的内容,如下图所示。

../_images/script003.png

脚本的内容看似复杂,其本质就是相当于手动在终端中执行echo命令修改LED灯的设备文件。其余脚本大都是使 用类似原理对硬件外设进行控制的。

5.5. 输入设备测试

input.sh脚本可用于对输入设备进行测试,包括按键、触摸屏、鼠标和键盘等。运行脚本可以看到如下图所示 按键 测试所示的终端信息,若想要退出测试时,请按键盘上的“Ctrl”+“c”结束当前进程。

#在脚本目录下运行

1
./input.sh
../_images/script004.png

该脚本其实是直接调用了《检测按键》章节提到的evtest命令,若已了解则使用相同的方式测试即可。

执行脚本后,它会列出可用的输入设备,其中右侧说明带“powerkey”或“gpio-keys”字样的 分别对应开发板的“ON/OFF”键及“KEY”键,输设备对应的数字,就可以进行测试。

上图的示例中数字0表示的是KEY按键,若开发板接入了不同的输入设备,对应的数字可能 不同,请按照自己开发板的提示输出进行选择。

选择了KEY键进行测试后,按下开发板对应的KEY键,终端会有相应的事件检测输出。

5.6. 蜂鸣器

EBF6ULL Pro开发板带有蜂鸣器,可进行蜂鸣器测试。

测试时可使用beep.sh脚本。

#在脚本目录下运行

1
./beep.sh

执行脚本后,按提示输入1,蜂鸣器则会发出响声,输入0,则会关闭蜂鸣器。

../_images/script005.jpg

5.7. ADC数据采集

EBF6ULL Pro开发板带有电位器,可进行ADC电压采集测试。

在运行该命令前,请先检查跳帽J26是否已接上。

测试时可使用./adc.sh脚本,运行时旋转电位器可看到采集的电压变化。

#在脚本目录下运行

1
./adc.sh
../_images/script006.jpg

5.8. 陀螺仪

EBF6ULL Pro开发板带有陀螺仪,可进行陀螺仪测试。

测试时可使用./mpu_demo应用程序,运行时调整开发板的姿态可看到陀螺仪输出的加速度、角速度会发生变化。

#在脚本目录下运行

1
./mpu_demo
../_images/script007.png

5.9. ds18b20温度

EBF6ULL Pro开发板带有温度传感器,可进行温度测试。

测试时可使用./ds18b20.sh测试脚本,运行时用手捏着ds18b20温度传感器,温度值会发生变化。

#在脚本目录下运行

1
./ds18b20.sh
未找到图片10|

5.10. dht11温湿度

EBF6ULL Pro开发板带有温湿度传感器,可进行温湿度测试。

测试时可使用./dht11.sh测试脚本,运行时用手捏着dht11温度传感器或者向它哈气,温度值和湿度值会发生变化。

#在脚本目录下运行

1
./dht11.sh
未找到图片11|

5.11. 三合一模块(ALS、IR、PS)

EBF6ULL Pro开发板带有三合一模块,可进行ALS、IR、PS等传感器测试。

测试时可使用./ap3216c.sh测试脚本,运行时用手捏着ap3216c三合一模块,ALS、IR、PS的值会发生变化。

#在脚本目录下运行

1
./ap3216c.sh
未找到图片12|

5.12. 其它

EBF6ULL Pro开发板上还有摄像头、WiFi等硬件接口,不过由于开 发板存在硬件引脚的复用,控制某些硬件时需要使用非出厂自带 的Linux系统设备树,控制这些硬件的方式我们将在学习切换系统设备树后再进行操作。