一、实操题
1、主题:通过串口控制直流电机转动 器件:ESP32 主控、码盘、光电对管、SSD1306 OLED 显示屏、直流电机驱动模块、直流电机等相关元器件。 要求: 1、通过串口监视器控制电机转动的圈数。在串口监视器输入框中输入-3~3 之间的整数,点击【发送】,此时马达旋转对应的圈数。当输入的整数为负数时,马达反方向转动。 2、通过码盘和光电对管模块,采用中断控制直流电机的旋转量。 3、将光电对管读取的码盘中断累加数实时显示到显示屏上。 4、马达停止时,显示屏上码盘的读数应为所采用码盘线数(精度)与旋转 圈数的乘积,允许误差为±5%以内。 5、马达、码盘、光电对管模块均应有效固定。 6、控制程序采用 C/C++代码编写。 7、SSD1306 液晶显示屏可使用教材对应的库,串口输入可以采用串口库,其 它程序编写均不得使用外部库调用。 8、为了方便识别马达旋转,可以将车轮或纸片固定在马达转轴上。 9、未作规定处可⾃⾏处理,⽆明显与事实违背即可。 10、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备案。
答案解析:一、评分组成 实操题总分 100 分,由两部分组成,分别为:电路搭设和功能呈现。其中电 路搭设分值 20 分,功能呈现 80 分。 二、电路搭设评分 -- 总分 20 分 电路搭设得分由两部分组成:原器件得分(15 分)和装置搭设得分(10 分)。 (一)原器件 1、装置中包含直流电机,得 3 分; 2、装置中包含 1306 OLED 显示屏,得 3 分; 3、装置中包含码盘,得 3 分; 4、装置中包含光电对管模块,得 3 分。 (二)装置搭设 1、各模块线路正确连接,得 4 分; 2、直流电机、码盘、光电对管模块均有效固定,得 4 分。 三、功能呈现评分 -- 总分 80 分 1、项目中,直流电机实现转动,得 20 分; 2、通过串口输入 1~3 间的数字,直流电机正向旋转对应的圈数,得 20 分; 3、通过串口输入-3~-1 间的数字,直流电机反向旋转相应的圈数,得 20 分; 4、转动结束后,显示屏显示的数字在允许误差±5%以内,得 20 分。
2、主题:通过串口控制步进电机转动 器件:ESP32主控、步进电机控制器、步进电机、LED灯2个等相关元器件。 要求: 1、通过串口监视器控制步进电机转动的位置。使用两个LED灯(LED_A和LED_B), 指示转动的方向。 2、系统通电后,步进电机的当前位置为初始零位。串口监视器出现“Inputnew position:”的提示。 3、在串口监视器输入框中输入数值1024,点击【发送】。此时步进电机转动半周 后停止。转动过程中,串口监视器实时显示步进电机转动过程中当前的位置数值,LED_A 点亮,LED_B熄灭。 4、在串口监视器输入框中输入输入数值-1024,点击【发送】。此时步进电机反向 转动一周后停止。转动过程中,串口监视器实时显示步进电机转动过程中当前的位置 数值,LED_A熄灭,LED_B点亮。 5、当步进电机旋转到指定位置后,LED_A和LED_B均熄灭,串口监视器窗口显示 “End”和“Inputnewposition:”的提示。 6、程序中使用步进电机类库AccelStepper通过梯形加减速来控制步进电机的转 动。控制程序采用C/C++代码编写。 7、为了方便识别步进电机旋转,可以将车轮或纸片固定在马达转轴上。 8、未作规定处可自行处理,无明显与事实违背即可。 9、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备案。 10、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
正确答案:
略
3、说明:AccelStepper类库头文件和相关类库函数如下,供参考。
正确答案:
略
4、主题: 按键控制直流电机转动 器件:ESP32主控、码盘、光电对管、SSD1306OLED显示屏、直流电机驱 动模块、直流电机、按键等相关元器件。 要求: 1、当按键按下并释放后,直流电机开始运动。 2、通过码盘和光电对管模块,采用中断对直流电机的旋转进行控制。 3、当第一次按下按键并释放后,直流马达旋转1圈后停止,SSD1306 OLED显示屏实时显示光电对管读取的码盘中断累加数值。 4、当第二次按下按键并释放后,直流马达反向旋转1圈后停止, SSD1306OLED显示屏实时显示光电对管读取的码盘中断累加数值。 5、依次类推,奇数次点击按键,直流马达正向旋转,偶数次点击,马 达反向旋转。 6、当马达停止时,显示屏上码盘的读数应为所采用码盘线数(精度) 允许误差为±5%以内。 7、马达、码盘、光电对管模块均应有效固定。 8、控制程序采用C/C++代码编写。 9、SSD1306OLED显示屏可使用教材对应的库其它程序编写均不得使用 外部库调用。 10、为了方便识别马达旋转,可以将车轮或纸片固定在马达转轴上。 11、未作规定处可自行处理,无明显与事实违背即可。 12、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备 案。 13、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按 照0分处理。
正确答案:
略
5、主题:电位器控制直流电机转动 器件:ESP32主控、码盘、光电对管、SSD1306 OLED显示屏、按键模块、直流电机驱动模块、直流电机、电位器。 要求: 1、通过按键控制电机启停。当按键模块按下后,电机开始转动;当再次按下按键模块,直流电机转动停止。 2、通过电位器控制电机的转动范围,直流电机在转动范围内正反循环转动。 3、当电位器位于一侧端部时,直流电机的循环转动范围是0°~180°;当电位器位于另一侧端部时,直流电机的循环转动范围是0°~360°;当电位器位于两端中间位置时,直流电机在相应的转动范围内正反循环转动。 4、正反循环转动是指当马达旋转至转动范围的上限或下限时,停止并反向转动。 5、通过码盘和光电对管模块,采用中断控制直流电机的旋转位置。 6、将光电对管读取的码盘读数实时显示到OLED显示屏上。 7、控制程序采用C代码编写。 8、SSD1306 OLED显示屏可使用教材对应的库,其它程序编写均不得使用外部库调用。 9、直流电机、码盘及光电对管需有效固定。 10、为了方便展示效果,可知直流电机轴上安装车轮或其它标志物。 11、未作规定处可自行处理,无明显与事实违背即可。 12、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备案。 说明:Ssd1306Console类库头文件和相关类库函数如下,供参考。
正确答案:
略
6、主题:姿态传感器控制直流电机转动 通过MPU6050姿态传感器控制直流电机的转动速度和方向。 器件:ESP32主控板、MPU6050姿态传感器模块1个、直流电机1个、直流电机驱动器1个、按键模块1个及相关器件,以上部件均可采用分立器件。 要求: 1、通过按键开关控制整个装置的运行,当第一次按下按键时,装置启动,板载LED灯点亮;当再次按下按键时,装置停止运行,板载LED灯熄灭,依此反复。 2、通过MPU6050姿态传感器的姿态角控制直流电机的转动,考生自行决定采用俯仰角、偏航角、滚转角其中之一来控制直流电机的转动。并将当前所采用姿态角的数值和电机转速的PWM值输出到串口监视器。 3、当姿态角的角度值为-10~10度时,直流电机处于停止状态。 4、当姿态角的角度值为-90~-10度时,直流电机正转,直流电机的转速随着倾角的增大而增大,随着倾角的减小而减慢。 5、当姿态角的角度值为10~90度时,直流电机反转,直流电机的转速随着倾角的增大而增大,随着倾角的减小而减慢。 6、程序采用C代码编写。MPU6050姿态传感器的数据读取可以调用类库。直流电机的控制不得调用类库 7、未作规定处可自行处理,无明显与事实违背即可。 8、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备案。 9、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
正确答案:
略
7、参考资料:
正确答案:
略
8、一、实操考题 主题:步进电机转动控制 器件:ESP32主控1块、步进电机1个、步进电机驱动器1个及相关器件,以上模块也可以采用分立器件结合面包板进行搭建。 任务要求: 步进电机转动控制主要模仿3D打印机的归零及G代码位置控制,具体任务要求如下: (1)装置通电启动前,步进电机处于静止状态; (2)当第一次触摸主控板电容触摸传感器时,步进电机逆时针转动; (3)当第二次触摸该电容触摸传感器时,步进电机立即停止转动,板载LED灯点亮,该位置为零点位置; (4)在串口监视器中输入字符串数据来控制步进电机的转动。字符串格式为:G00 XXXX,其中XXXX为基于零点位置顺时针方向对应的步数。当输入字符串并点击发送后,步进电机旋转指定步数后停止。步进电机的转动采用梯形加减速控制; (5)将解析后字符串数据中的步数数据输出到串口监视器; (6)通过输入字符串数据分别实现控制步进电机转动到半圆、整圆、以及零点位置后停止; (7)当步进电机位于零点位置时,板载LED灯点亮,转动到其他位置时,板载LED灯熄灭; (8)程序采用Arduino C/C++代码编写; (9)未作规定处可自行处理,无明显与事实违背即可; (10)程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理; 说明:请考生在考试结束前,按照如下要求提交相关文件: (1)将程序放在一个文件夹中,并将文件夹命名为:DJKS6_身份证号; (2)将程序文件夹压缩为1个“rar或zip”格式文件,大小5M以下; (3)将程序文件通过“上传附件”按钮进行上传。 参考资料: AccelStepper类库头文件和相关类库函数如下,供参考。 头文件:AccelStepper.h 类库对象:AccelStepper(mode, pin1,pin2,pin3,pin4) 成员函数: setAcceleration(val); //设置步进电机转动时的加速度 setMaxSpeed(val); //设置步进电机转动的最大允许速度 setSpeed(val); //设置步进电机恒定转动时的速度值 runSpeed(); //启动步进电机以设定的速度值恒定转动 currentPosition(); //返回当前的位置值 moveTo(val); //设置步进电机运转的目标位置 run(); //启动步进电机按照设定的加速度和最大速度运转 setCurrentPosition(val); //设置当前位置为指定值 distanceToGo(val); //返回当前位置到目标位置之间的脉冲数
答案解析:二、评分组成 实操题总分100分,由二部分组成,分别为:电路搭设、功能实现。其中电路搭设分值20分,功能实现分值80分。 1.电路搭设(20分) 元器件: (1)装置中包含步进电机;(4分) (2)装置中包含步进电机驱动器;(4分) (3)装置中使用了板载电容触摸传感器;(4分) 电路搭设: (4)步进电机和步进电机驱动器正确连接;(4分) (5)步进电机驱动器和主控板正确连接。(4分) 2、功能实现(80分) (1)装置通电启动前,步进电机处于静止状态;(5分) (2)实现第一次触摸主控板电容触摸传感器时,步进电机持续转动;(15分) (3)实现步进电机持续的转动方向为逆时针方向;(5分) (4)实现第二次触摸该电容触摸传感器时,步进电机立即停止转动(如触摸电容传感器后,步进电机转动一段时间后停止,得0分);(10分) (5)实现在串口监视器输入指定格式的字符串后,将解析后字符串数据中的步数数据输出到串口监视器;(10分) (6)实现通过输入字符串数据控制步进电机转动到半圆位置(测评老师可语音通知考生,将步进电机转动至顺时针方向的半圆位置并停止,如果考生的步进电机逆时针转动到半圆位置,同样得10分);(10分) (7)实现通过输入字符串数据控制步进电机转动到整圆位置(测评老师可语音通知考生,将步进电机转动至顺时针方向的整圆位置并停止,如果考生的步进电机逆时针转动到整圆位置,同样得10分);(10分) (8)实现当输入的数据大于零时,步进电机的转动范围为基于零点位置顺时针方向;(5分) (9)实现步进电机位于零点位置时,板载LED灯点亮,转动到其他位置时,板载LED灯熄灭。(10分)