1) 主题:姿态传感器数据可视化显示
器件:ESP32主控板、MPU6050姿态传感器模块、8x8点阵、74HC595移位寄存器模块或芯片及相关附件。
任务要求:将MPU6050姿态传感器的俯仰角数值,映射到8x8点阵中间竖向两列,形成可视化的效果。具体任务要求如下:
(1) 程序启动后,8x8点阵处于熄灭状态。
(2) 用手单击触碰传感器T0引脚,8x8点阵最外侧四周的LED灯点亮,中间区域LED灯熄灭。
(3) 再次用手单击触碰传感器T0引脚,8x8点阵最外侧四周的LED灯熄灭,程序进入姿态数据可视化状态。
(4) 当MPU6050姿态传感器处于水平位置时,8x8点阵中间位置的LED灯点亮,如图1所示。
(5) 沿X轴转动MPU6050模块,随着姿态角数字的减小,8x8点阵中间竖向两列LED自中间向上点亮。当俯仰角为-90度时,8x8点阵中间竖向两列LED自中间至上方边缘的LED灯均点亮,如图2所示。
(6) 沿X轴转动MPU6050模块,随着姿态角数字的增大,8x8点阵中间竖向两列LED自中间向下点亮。当俯仰角为90度时,8x8点阵中间竖向两列LED自中间至下方边缘的LED灯均点亮,如图3所示。
(7) 程序采用Arduino C/C++代码编写,不得使用外部库调用;
(8) 未作规定处可自行处理,无明显与事实违背即可。
说明:请考生在考试结束前,按照如下要求提交相关文件。
(1) 将程序放在一个文件夹中,压缩为1个“rar或zip”格式文件,并命名为:DJKS6_身份证号,大小5M以下;
(2) 将程序文件通过“上传附件”按钮进行上传;
(3) 程序编写过程中不得打开其它示例程序,如发现,实操成绩按照0分处理。
参考资料:教材所使用类库MPU6050_tockn-1.5.2的例程如下,供参考。
#include
MPU6050 mpu6050(Wire);
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}
void loop() {
mpu6050.update();
Serial.print("angleX : ");
Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");
Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");
Serial.println(mpu6050.getAngleZ());
}#include
评分项:
(1) 实现程序启动后,8x8点阵处于熄灭状态;(10分)
(2) 实现用手单击触碰传感器T0引脚,8x8点阵最外侧四周的LED灯点亮,中间区域LED灯熄灭;(10分)
(3) 实现再次用手单击触碰传感器T0引脚,8x8点阵最外侧四周的LED灯熄灭;(10分)
(4) 实现当姿态传感器处于水平位置时,8x8点阵中间位置的LED灯点亮;(10分)
(5) 实现沿X轴转动MPU6050模块,随着姿态角数字的减小,8x8点阵中间竖向两列LED自中间向上点亮;(10分)
(6) 实现当俯仰角为-90度时,8x8点阵中间竖向两列LED自中间至上方边缘的LED灯均点亮;(10分)
(7) 沿X轴转动MPU6050模块,随着姿态角数字的增大,8x8点阵中间竖向两列LED自中间向下点亮;(10分)
(8) 实现当俯仰角为90度时,8x8点阵中间竖向两列LED自中间至下方边缘的LED灯均点亮。(10分)