简答题

课程名称:机器人技术(六级)

题目:一、实操考题 主题:步进电机转动控制 器件: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); //返回当前位置到目标位置之间的脉冲数

简答题

课程名称:机器人技术(六级)

题目:一、实操考题 主题:四位数码管串口交互数字闪烁显示 器件:ESP32主控板、按键模块、四位数码管、74HC595移位寄存器芯片(或模块)及相关器件。以上模块也可以采用分立器件结合面包板进行搭设。 任务要求: 使用74HC595移位寄存器芯片控制四位数码管显示数字。解析串口监视器输入的报文数据,将数据显示到四位数码管,并控制闪烁的频率。 报文的格式为:m:n,其中m表示数码管显示的数据,范围1~9999;n表示数据闪烁显示的时间间隔,范围100~1000,单位毫秒。报文示例:1234:500,表示在四位数码管显示数字“1234”,如图1所示,并以500毫秒的时间间隔闪烁。 具体要求如下: (1)装置启动前,四位数码管不显示任何内容; (2)当按键按下后,任务装置开始启动; (3)装置启动后,在四位数码管上倒计时显示 5、4、3、2、1,时间间隔为1秒; (4)倒计时显示完毕,在串口监视器中输入数据,并点击发送按键; (5)在串口监视器输入框输入上述格式的报文后,将解析后的相应报文内容输出到串口监视器窗口。以报文1234:500为例,串口监视器窗口输出的内容为Data:1234 -- Interval:500; (6)四位数码管显示解析后的报文数据,并以指定的时间间隔闪烁。以报文123:100为例,四位数码管显示数字123,如图2所示,并以100毫秒的时间间隔闪烁,直至输入新的报文数据; (7)程序采用C代码编写,不得使用外部库调用; (8)程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理; (9)未作规定处可自行处理,无明显与事实违背即可。 说明:请考生在考试结束前,按照如下要求提交相关文件: (1)将程序放在一个文件夹中,并将文件夹命名为:DJKS5_身份证号; (2)将程序文件夹压缩为1个“rar或zip”格式文件,大小5M以下; (3)将程序文件通过“上传附件”按钮进行上传。 参考资料: 数组NUM[] 保存的是0~9和'.'十六进制形式的数码管显示的段位信息。编程时可参考使用。 // 保存0~9 byte NUM[] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6};