主题: 姿态传感器控制双直流电机转动
器件: ESP32 主控 1 块、 MPU6050 姿态传感器模块 1 个、 直流电机 2 个(分别为电机 A 和
电机 B) 、 直流电机驱动器及相关器件, 以上模块也可以采用分立器件结合面包板进行搭建。
任务要求:
获取 MPU6050 姿态传感器的姿态角, 使用俯仰角和滚转角控制两个直流电机的转速、 转
向和启停。 具体要求如下:
(1) 将当前姿态传感器的俯仰角和滚转角分别输出到串口监视器;
(2) 当俯仰角的角度值位于-10~10 度间时, 直流电机处于停止状态;
(3) 当俯仰角的角度值位于-80~-10 度间时, 直流电机正转, 直流电机的转速随着倾角
的增大而增大, 随着倾角的减小而减慢;
(4) 当俯仰角的角度值位于 10~80 度间时, 直流电机反转, 直流电机的转速随着倾角
的增大而增大, 随着倾角的减小而减慢;
(5) 当滚转角的角度值位于-10~10 度间时, 直流电机启停不做变化;
(6) 当滚转角的角度值小于-10 度时, 电机 A 停止转动, 电机 B 保持原有状态不变;
(7) 当滚转角的角度值大于 10 度时, 电机 B 停止转动, 电机 A 保持原有状态不变;
(8) 程序采用 Arduino C/C++代码编写;
(9) MPU6050 姿态传感器的数据读取可以调用类库。 直流电机的控制不得调用类库;
(10) 程序编写过程中不得打开库例程和其它程序, 如发现, 实操成绩按照 0 分处理;
(11) 未作规定处可自行处理, 无明显与事实违背即可。
说明: 请考生在考试结束前, 按照如下要求提交相关文件:
(1) 将程序放在一个文件夹中, 并将文件夹命名为: DJKS6_身份证号;
(2) 将程序文件夹压缩为 1 个“rar 或 zip”格式文件, 大小 5M 以下;
(3) 将程序文件通过“上传附件”按钮进行上传。
参考资料:
教材所使用类库 MPU6050_tockn-1.5.2 的例程如下, 供参考。
#include <MPU6050_tockn. h>
#include <Wire. h>
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() ) ;
}