机器人等级考试-红外遥控控制小车调速
- 格式:pptx
- 大小:4.43 MB
- 文档页数:15
跟着包老师学机器人四级机器人考级Arduino智能小车机器人小车的红外遥控蚂雅令科技玩得趣/*****************************************************程序名称:RDrobot-car-LED程序功能:测试机器人小车的红外遥控机器人小车版本:RDrobot-car-ver2.1*****************************************************/#include <IRremote.h> //包含红外解码头文件#define motor_left_positive A0 //控制左电机的输入端+#define motor_left_negative A1 //控制左电机的输入端-#define motor_right_positive A2 //控制右电机的输入端+#define motor_right_negative A3 //控制右电机的输入端-int ir_encode_receive = 10; // 红外传感器接到Arduino的D10口IRrecv receiver(ir_encode_receive);decode_results results;void setup() {//初始化电机相关接口pinMode(motor_left_positive OUTPUT); //控制左电机的输入端+设为输出 pinMode(motor_left_negative OUTPUT); //控制左电机的输入端-设为输出 pinMode(motor_right_positive OUTPUT); //控制右电机的输入端+设为输出pinMode(motor_right_negative OUTPUT); //控制右电机的输入端-设为输出 receiver.enableIRIn(); //启动红外接收}void loop(){if (receiver.decode(&results)){if (results.value == 0xFFA857) //按前进键,机器人小车前进{moveStop();delay(50);moveForward();}if (results.value == 0xFFE01F) //按后退键,机器人小车后退{moveStop();delay(50);moveBackward();}if (results.value == 0xFF22DD) //按左转键,机器人小车左转{moveLeft();delay(400);moveStop();}if (results.value == 0xFF02FD) //按右转键,机器人小车右转{moveRight();delay(400);moveStop();}if (results.value == 0xFF906F) //按停止键,机器人小车停止{moveStop();}receiver.resume(); // 继续接收新的指令}}/******************************************函数名称:void moveForward()函数功能:左右电机均正转,机器人小车前进*****************************************/void moveForward(){//注意要先将电机控制相关口设置为输出digitalWrite(motor_left_positive HIGH); //左电机控制输入端+设置为高电平digitalWrite(motor_left_negative LOW); //左电机控制输入端-设置为低电平 digitalWrite(motor_right_positive HIGH); //右电机控制输入端+设置为高电平 digitalWrite(motor_right_negative LOW); //右电机控制输入端-设置为低电平}/******************************************函数名称:void moveBackward()函数功能:左右电机均反转,机器人小车后退*****************************************/void moveBackward(){//注意要先将电机控制相关口设置为输出digitalWrite(motor_left_positive LOW); //左电机控制输入端+设置为低电平 digitalWrite(motor_left_negative HIGH); //左电机控制输入端-设置为高电平 digitalWrite(motor_right_positive LOW); //右电机控制输入端+设置为低电平 digitalWrite(motor_right_negative HIGH); //右电机控制输入端-设置为高电平}/******************************************函数名称:void moveLeft()函数功能:左电机不转,右电机正转,机器人小车左转*****************************************/void moveLeft(){//注意要先将电机控制相关口设置为输出digitalWrite(motor_left_positive HIGH); //左电机控制输入端+设置为高电平 digitalWrite(motor_left_negative HIGH); //左电机控制输入端-设置为高电平 digitalWrite(motor_right_positive HIGH); //右电机控制输入端+设置为高电平 digitalWrite(motor_right_negative LOW); //右电机控制输入端-设置为低电平}/******************************************函数名称:void moveRight()函数功能:左电机正转,右电机不转,机器人小车左转*****************************************/void moveRight(){//注意要先将电机控制相关口设置为输出digitalWrite(motor_left_positive HIGH); //左电机控制输入端+设置为高电平 digitalWrite(motor_left_negative LOW); //左电机控制输入端-设置为低电平 digitalWrite(motor_right_positive HIGH); //右电机控制输入端+设置为高电平 digitalWrite(motor_right_negative HIGH); //右电机控制输入端-设置为高电平}/******************************************函数名称:void moveStop()函数功能:左右电机均不转,机器人小车停车*****************************************/void moveStop(){//注意要先将电机控制相关口设置为输出digitalWrite(motor_left_positive HIGH); //左电机控制输入端+设置为高电平 digitalWrite(motor_left_negative HIGH); //左电机控制输入端-设置为高电平 digitalWrite(motor_right_positive HIGH); //右电机控制输入端+设置为高电平 digitalWrite(motor_right_negative HIGH); //右电机控制输入端-设置为高电平}。
标题:2021年机器人一级考试深度解析一、考试背景机器人一级考试是针对机器人相关领域知识的综合性测试,旨在评估考生对机器人基础理论、编程控制、传感器应用、人工智能等方面的掌握程度。
本考试自2021年起,在全国范围内得到广泛认可和推广。
二、考试内容1. 机器人基础理论:包括机器人的定义、分类、应用场景和发展趋势等基础知识。
2. 编程控制:要求考生能够使用主流的机器人编程语言,如Python、C++等,实现对机器人的基本控制,包括运动轨迹、姿态调整、任务分配等。
3. 传感器应用:考察考生对各类传感器(如超声波传感器、红外传感器、激光雷达等)在机器人中的应用,以及对传感器数据的处理和分析。
4. 人工智能:涉及机器学习、深度学习、自然语言处理等前沿技术,要求考生能够理解并应用相关算法,提升机器人的智能水平。
三、考试形式1. 笔试:主要测试机器人的基础理论知识和相关算法。
2. 实操考试:考生需在规定时间内,使用指定的机器人设备和软件,完成预设的任务。
3. 论文答辩:考生需根据所学知识和实际经验,撰写一篇关于机器人应用的论文,并接受考官的提问和质询。
四、备考建议1. 系统学习:全面了解机器人的定义、分类、应用场景等基础知识,并结合实际情况,制定有针对性的学习计划。
2. 编程控制:熟练掌握主流的机器人编程语言,并了解相关开发环境和调试工具。
3. 传感器应用:熟悉各种传感器的特性和应用场景,并掌握传感器数据的采集、处理和分析方法。
4. 人工智能:了解机器学习、深度学习等算法的基本原理和应用方法,提升机器人的智能水平。
5. 实践操作:多动手实践,通过实际操作加深对理论知识的理解,并积累实际经验。
6. 论文写作:在备考过程中,注意积累相关领域的论文和文献,提高自己的写作水平。
同时,关注机器人领域的发展趋势和新技术,为论文答辩做好充分准备。
五、考试经验分享1. 保持冷静:考试过程中遇到难题时,不要过度紧张,冷静分析问题所在,寻找解决方案。
全国青少年机器人技术等级
考试编程实操试卷(四级)
一、说明:
考虑到考生参加等级考试所用器材各不相同,小车驱动所采用的电机驱动模块也不尽相同。
所以本评分标准没有出具标准程序答案。
由评委老师根据小车的程序和实际运动结果来进行评分。
学生应将所编写的程序拷贝上交并留存备查。
二、具体评分细则如下:
(一)小车搭建。
共20分
1)小车结构搭建完成。
(10分)
2)超声波模块线路连接正确。
(4分)
3)马达驱动线路连接正确(6分)
(二)小车实现运动功能。
共(40分)
1)采用C语言编写程序,程序语法和逻辑基本正确。
(25分)2)将程序成功上传至主控板。
(5分)
3)马达驱动车轮旋转。
(10分)
(三)避障功能实现(40分)
1)实现小车在发现障碍物时(20厘米)有明显减速功能。
(10分)2)实现小车距离障碍物很近时(10厘米)完全停止。
(10分)3)实现小车在停止2秒后开始转向避障功能。
(20分)。
全国青少年机器人技术等级
考试试卷(一级)
一、实操模型样例(70分)
评分标准:
(1)机器人整体(20分)
a. 具备遥控接收装置(10分)
b. 机器人的固定程度(5分)
c. 机器人各部分插线正确(5分)
(2)运行程度和表现形式(15分)
1
a. 机器人整体结构对称美观(5分)
b. 重心合理(5分)
c. 运行平稳(5分)
(3)不同频道对小车的控制(35分)
a. 尝试用不同的频道控制小车运行(15分)
b. 用同一遥控器控制2台小车运行(15分)
c. 频道调节环节流畅(5分)
2
简答题(30分)
1、请在下面写出用到遥控器的设备(5分)
答:电视机空调汽车钥匙游戏手柄;
2、请写出该模型中蕴含的知识点(请同学分条作答,25分)
(1)完成遥控功能必须要有几大部分(5分)
答:遥控发射装载遥控接收装置中央处理器(CPU)
(2)有没有遥控器无需频道调节,开机自动匹配的遥控器(5分)
答:蓝牙遥控器;
(3)生活中要哪几大类遥控器,他们的特是什么?(15分)
答:红外遥控器,穿墙能力弱,一般控制距离小;(5分);
无线遥控器,发出的无线电波无方向性,控制距离较远;(5分)。
蓝牙遥控器无需手动调节频道,通电后会自动匹配连接;(5分);
3
4。
四级等级考试开考以来,两次实操考试都是考察的小车的搭建和程序驱动小车的任务,所以用代码编程来控制电机已经成为四级等级考试的必考内容之一。
在这里简单的通过示例程序来讲解一下如何用代码编程来控制电机的正传、反转、停止。
供各位老师和学员参考。
在三级考试里只考察图形化模块编程驱动电机,但是四级中是要求用代码编程,对于代码编程比较薄弱的新手来说是一个挑战。
但是掌握了方法进行相应的练习还是完全可以掌握的,这部分只是并没有那么深奥。
在这里用的示例套件是芝麻豆主控,我们知道芝麻豆的主控在图形化编程环境中,只有D1、D2、D3三个端口可以接直流电机并驱动电机进行工作。
对应的应该是输出模块,注意电机是可以调速的,不是简单的开关数字量,所以在这里这三个端口对应的就是模拟输出。
之前的帖子里我讲过芝麻豆主控的D1、D2、D3端口对应的arduino UNO的管脚分别是:D1 ——5、6 (其中5是辅助管脚,6是主管脚)D2 —— 9、10 (其中9是辅助管脚,10是主管脚)D3 —— 3、11 (其中3是辅助管脚,11是主管脚)对于arduino UNO主控板3、5、6、9、10、11这些管脚实际上就是模拟输出管脚,也就是具有PWM(脉冲宽度调制)功能的引脚,这些引脚可以通过脉冲宽度调制,来调整占空比,从而实现模拟输出,实现电机调速功能,模拟输出的取值范围是0——255之间。
0代表管脚完全关闭,相当于输出电压为0,255表示管脚完全打开,相当于输出电压5V。
很明显255的时候电机速度应该是最快的。
0的时候电机是停止的。
实际情况由于电机启动需要较大的电流,一般情况下,模拟输出大约在0到120之间的时候,很多电机是启动不起来的,所以建议要想让电机转动,模拟输出的值不能太小。
最好大于120。
为什么要用两个模拟引脚去控制一个电机呢?这里是为了实现程序可以控制电机正反转的功能。
比如D1端口(5、6)上连接直流电机模块驱动电机。
当5引脚输出模拟量255、6引脚输出0的时候,电机是向一个方向最大速度转动,反之,如5引脚输出0,6引脚输出255,那就是以最大速度反转。
在科技制作中,需要执行器给制作的装置提供动力,常用的执行器有直流电机、舵机、步进电机(步进是一种作为控制用的特种电机, 它的旋转是以固定的角度(称为“步距角”)一步一步运行的, 其特点是没有积累误差)等。
直流电机是自常见的执行器之一。
在红外遥控小风扇章节中通过晶体三极管控制电路实现了电机的启停控制和速度控制,但没有实现转向控制。
在很多自动控制场合都需要控制电机的正反转。
那具体应该如何控制电机的呢?H桥电路H桥电路名称的由来是因为控制电路的形状像英文字母H而得名。
控制电机正反转的H桥开关电路如右图所示:M HM C B当开关A与D闭合时,电流如右图指示方向流过电机。
M C B当开关B与C闭合时,电流如右图指示方向流过电机。
同侧的开关A、C或者B、D不能同时打开,否则将导致短路。
将上面的开关换成晶体管,就构成了现在常见的H桥控制电路,采用NPN和PNP 晶体管配对。
如右图所示,晶体管Q1、Q2 和 Q3、Q4的基极分别相连。
当左侧输入低电平,右侧输入高电平时,晶体管Q1和Q4导通,Q2和Q3断开,电流流动方向如右图所示。
当左侧输入高电平,右侧输入低电平时,电流流动方向和图示相反。
直流电机驱动和控制模块除了用晶体管自行组装H桥控制电路,还可以直接选用专用的电机驱动控制IC。
常见的驱动芯片如下图:L293D L298N TB6612 上面三种芯片都包含了两组H桥式电路,可以驱动并控制两个电机的正反转。
L298N和TB6612还需要有外围电路,所以使用时一般都采用成品的电机驱动模块。
使用TB6612电机驱动芯片,MA电机速度控制口:D5MA电机方向控制口:D7MB电机速度控制口:D6MB电机方向控制口:D8小车姿态图示引脚参数前进Motor_run(1,30)Motor_run(2,30)后退Motor_run(1,-30)Motor_run(2,-30)左转Motor_run(1,30)Motor_run(2,0)通过控制MA、MB来实现小车运动方向的控制:小车姿态图示引脚参数右转Motor_run(1,0)Motor_run(2,30)原地左转Motor_run(1,30)Motor_run(2,-30)原地右转Motor_run(1,-30)Motor_run(2,30)速度-30表示马达反着转项目一:让智能小车动起来所需器件:Ø已搭建好的智能小车一辆堵转:由于减速电机受到阻力,当输入的PWM值产生的动力小于阻力时,电机不能转动,此时,电机会发出嗡嗡的声音。