一、实际操作(共1题,共100分) 请考生在实操考试结束前将本题作答程序文件按“说明”要求完成上传。 1. 主题:姿态传感器控制双直流电机转动 器件: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 #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()); }
正确答案:参考实现(ESP32 C):MPU6050+双直流电机。输出俯仰角滚转角到串口。俯仰角-10~10电机停;-80~-10正转(转速随倾角增大);10~80反转。滚转角<-10电机A停B保持;>10电机B停A保持。电机控制不用类库,用analogWrite+PWM+方向引脚。核心:姿态角映射电机PWM。
试卷来源:202209 青少年等级考试机器人实操真题六级