None

主题: 姿态传感器控制双直流电机转动

器件: 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() ) ;

}

赣ICP备20007335号-2