西华大学 机器人创新实验报告

合集下载

机器人创新实践报告

机器人创新实践报告

课程设计报告书题目:智能机器人创新实践学院专业学生姓名学生学号指导教师课程编号课程学分起始日期 2016.04-2016.06目录1 设计原理........................................................................................................错误!未定义书签。

2方案论证........................................................................................................错误!未定义书签。

2.1 巡线模块设计......................................................................................错误!未定义书签。

2.2巡线模块设计......................................................................................错误!未定义书签。

3 设计方案........................................................................................................错误!未定义书签。

3.1小车的总体结构设计..........................................................................错误!未定义书签。

............................................................................................................错误!未定义书签。

机器人创新实验报告

机器人创新实验报告

实验报告(理工类)课程名称: 机器人创新实验课程代码: 6003199学院(直属系): 机械工程学院年级/专业/班:学生姓名: 学号: 实验总成绩:任课教师:开课学院: 机械工程学院实验中心名称: 机械工程基础实验中心一、设计题目:基于Arduino的手机遥控蓝牙小车二、成员分工:(5分)三、设计方案:(整个系统工作原理和设计)(20分)蓝牙小车的工作原理;蓝牙小车分为4个模块:电源模块,电机驱动模块,控制模块,超声避障模块,蓝牙模块。

其中超声避障模块在小车遇到障碍时,把信号传给控制模块,控制模块对信号进行分析,作出响应,并发送给电机模块。

电机模块控制电机转速及转向。

蓝牙模块接受手机发送的信号,再把信号传送至控制模块,控制模块对信号分析计算,作出响应,并发送给电机模块。

电机模块控制电机转速及转向。

电源模块为其他模块供电。

蓝牙小车的工作方案如下:四、实验步骤:(图文说明设计过程中关键步骤)(30分)1.设计制作小车底板2.搭建小车3.接入超声模块并测试避障4.接入蓝牙模块并与手机连接进行测试5.加入LED灯并编写程序,调试小车五、最终作品展示:(图片及性能描述)(20分)通过手机发出信号,小车能准确完成动作,在遇障时能停下并作出回避。

美中不足的是没有加入调速程序,小车不能在行驶时加速减速,而且蓝牙控制的距离有限。

六、设计心得:(10分)通过这门课,了解了Arduino是什么,能做什么。

对于没有编程基础的我来说,利用Arduino能很容易的实现自己的想法和设计。

而且Arduino可以连接不同的模块来实现不同的功能。

将蓝牙和超声模块换为巡线模块后,修改程序,就能把蓝牙小车变为巡线小车了。

很方便快捷。

通过这门课,也了解了很多关于编程的知识。

能过利用Arduino来实现自己的一些简单设计。

----------通过这次机器人的课程,培养了我们实际动手能力和思考能力,作为女生之前没有特别的关注过类似的这个方面,但这次因为课程的原因接触了以后,发现并没有想象中的那么枯燥,并且学会了很多新的知识,同时和同组的同学互相合作,增进了同学之间的感情和协作能力。

校园创新机器人实训报告

校园创新机器人实训报告

一、引言随着科技的不断发展,机器人技术已经渗透到我们生活的方方面面。

为了培养我国青少年的科技创新能力,提高学生的综合素质,我校开展了校园创新机器人实训课程。

本文将从实训背景、实训内容、实训过程、实训成果等方面进行详细阐述。

二、实训背景1. 国家政策支持近年来,我国政府高度重视青少年科技创新教育,出台了一系列政策支持学校开展机器人等科技创新实训课程。

如《关于全面加强新时代大中小学劳动教育的意见》等文件,为学校开展机器人实训课程提供了政策保障。

2. 校园创新氛围浓厚我校一直以来都注重培养学生的创新精神和实践能力,积极开展各类科技创新活动。

在校园内营造了浓厚的创新氛围,为机器人实训课程提供了良好的土壤。

三、实训内容1. 机器人基础知识实训课程首先介绍了机器人基础知识,包括机器人的定义、分类、发展历程等,让学生对机器人有一个全面的认识。

2. 机器人编程与控制实训课程重点讲解了机器人编程与控制技术,包括编程语言、编程环境、控制算法等,让学生掌握机器人编程的基本技能。

3. 机器人硬件设计实训课程介绍了机器人硬件设计的基本原理,包括传感器、执行器、控制器等,让学生了解机器人硬件的构成和功能。

4. 机器人应用案例实训课程选取了多个机器人应用案例,如智能家居、工业自动化、服务机器人等,让学生了解机器人技术在各个领域的应用。

5. 机器人竞赛实训课程还介绍了国内外机器人竞赛的相关信息,鼓励学生参加机器人竞赛,提高自己的实践能力。

四、实训过程1. 理论学习实训课程采用理论授课与实际操作相结合的方式,让学生在理论学习的基础上,掌握机器人编程与控制、硬件设计等技能。

2. 实践操作在实践操作环节,学生按照实训指导书的要求,完成机器人搭建、编程、调试等任务。

教师现场指导,解答学生疑问。

3. 项目实践实训课程设置了一些实际项目,如智能家居、服务机器人等,让学生在实际项目中锻炼自己的创新能力。

4. 机器人竞赛在实训过程中,鼓励学生参加机器人竞赛,提高自己的实践能力和团队协作能力。

机器人创新实验报告

机器人创新实验报告

实验报告(理工类)课程名称: 机器人创新实验课程代码: 6003199 学院(直属系): 机械工程与自动化学院年级/专业/班:10级机械设计及其自动化6班学生姓名: 程俊杰伍星丁念波郭真亮实验总成绩: 任课教师: 李炜开课学院: 机械工程与自动化学院实验中心名称: 机械工程基础实验中心一、设计题目:巡线小车以Arduino控制板为核心的巡线小车。

二、成员分工:姓名学号班级任务分配郭真亮 312010********* 模具设计1班借用往届小车和查阅资料程俊杰 312010********* 制造工程3班接线,编程、小车调试丁念波 312010********* 模具设计1班接线,编程、小车调试伍星 312010********* 产品设计2班现场拍照,整理实验报告三、Arduino 简述1. Arduino简介Arduino是一块简单、方便使用的通用GPIO接口板,并可以通过USB接口和电脑通信。

作为一块通用IO接口板,Arduino提供丰富的资源,包括:13个数字IO口(DIO数字输入输出口);6个PWM输出(AOUT可做模拟输出口使用);5个模拟输入口(AIN模拟输入)。

Arduino开发使用java开发的编程环境,使用类c语言编程,并提供丰富的库函数。

Arduino 可以和下列软件结合创作丰富多彩的互动作品:Flash,Processing,ax/MSP,VVVV…等。

Arduino 也可以用独立的方式运作,开发电子互动作品,例如:开关控制Switch、传感器sensors输入、LED等显示器件、各种马达或其它输出装置。

2.Arduino规格微型控制器 ATmega168工作电压 5V输入电压(建议) 7-12V输入电压(极限) 6-20V数字输入/输出端 14 (3, 5, 6, 9, 10, 11提供输出的PWM)模拟输入端 6PWM (Pulse Width Modulation),即脉冲宽度调制。

机器人实验实验报告

机器人实验实验报告

成绩中国农业大学课程论文(2013-2014学年秋季学期)论文题目:机器人创新实验(1)实验报告课程名称:机器人创新实验(1)任课教师:班级:姓名:学号:机器人创新实验(1)实验报告关键字:ARM TKStudio集成化编程 C语言传感器舵机控制摘要:机器人创新实验课引导我们综合利用机械扩展、电子扩展、软件扩展及传感器扩展能力,以创新为主题,自主完成从机器人的机构组装到编程控制。

通过这门课程,我初步掌握了有关机器人技术的基本知识和机器人学所涉及的技术的基本原理和方法,加深了对理论知识的理解和掌握。

一、认知实验:了解探索者机器人实验一这门课用到的教学材料是探索者教学机器人创新套件。

通过这个实验平台,我们可以完成机器人的创新设计、组装以及编程控制。

在前期的认知实验中,我们搭建了一个二轮驱动的自动避障小车,并且实现了对它的控制,从而对探索者有了很好的了解。

(一)机械部分探索者的机械零件包括金属件、塑胶件、舵机、零配件四部分。

其中金属件共有29种,具有相同的壁厚和丰富的扩展孔。

舵机分为圆周舵机和标准舵机两种。

同学们在创新设计的过程中可以根据零件的特点,灵活运用,合理搭配,从而实现自己所设计的机械结构以及运动方式。

(二)控制部分我们使用的Robotway ARM7 LPC2138 主控板采用32位高性能实时嵌入式芯片,支持用户自定义开发,开放电路图、源代码、库函数。

探索者套件中包含了触碰传感器、触须传感器、近红外传感器、声控传感器等八种传感器,可以实现寻线、避障、声光等多种控制。

(三)编写和烧录程序我们使用的编译环境是TKStudio。

由于我们并没有学习过单片机,所以编程对我们来说是一个难点。

我们先从实验指导书上简单的例程开始学习,结合C 语言的知识,逐渐掌握了ARM的编程方法。

烧写程序的时候,我们用到的是Philips Flash Utility软件。

使用的过程是:1、选择端口;2、读取主控板的ID号;3、擦除主控板中原有的程序;4、选择自己的程序;5、上传。

机器人创新实践报告

机器人创新实践报告

课程设计报告书题目:智能机器人创新实践学院专业学生学生学号指导教师课程编号课程学分起始日期2016.04-2016.06目录1 设计原理 (4)2 方案论证 (4)2.1巡线模块设计 (4)2.2巡线模块设计 (5)3 设计方案 (5)3.1小车的总体结构设计 (5)3.1.1结构元件的选择 (5)3.1.2小车结构图 (6)3.1.3电路驱动部分电路原理图 (6)3.1.4小车的成品外观图 (7)3.2巡线功能介绍 (9)3.2.1反射型光电探测器RPR220 (9)3.2.2寻迹电路图分析 (10)3.2.3寻迹元件在小车的具体实现 (11)3.2.4电源部分 (12)3.3小车三路巡迹算法 (12)3.3.1.直线寻迹图 (12)3.3.2左转弯巡迹图 (13)3.3.3右转弯巡迹图 (13)3.4巡线与电机驱动程序 (14)4 结果与分析 (17)智能巡线小车1 设计原理由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断实际的“道路”情况,使小车在白色地板上循黑线行走。

通常采取的方法是红外探测法。

红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线2 方案论证2.1巡线模块设计采用一体反射式红外对管,所谓一体就是发射管和接受管固定在一起,反射式的工作原理就是接收管接收到的信号是发射管发出的红外光经过反射物的反射后得到的,所以使用红外对管进行循迹时必须是白色地板加黑色引导条。

这次设计中由于是近距离探测,故采用红外对管来完成数据采集。

由于红外光波比可见光长,因此受可见光的影响较小。

同时红外线系统还具有以下优点:尺寸小、质量轻,便于安装。

机器人实验室实习报告

机器人实验室实习报告

一、实习背景随着科技的飞速发展,机器人技术逐渐成为我国高新技术产业的重要组成部分。

为了深入了解机器人领域的研究现状和发展趋势,提高自己的专业技能,我于2023年在我国某知名高校的机器人实验室进行了为期一个月的实习。

二、实习目的1. 了解机器人实验室的基本情况,熟悉实验室的设备、仪器和实验流程。

2. 学习机器人相关理论知识,提高自己的专业素养。

3. 参与实验室科研项目,锻炼自己的实践能力。

4. 拓宽视野,为今后的学习和工作打下坚实基础。

三、实习内容1. 实验室环境与设备实习期间,我首先了解了实验室的基本情况。

该实验室占地面积约200平方米,分为实验室、办公室和会议室三个区域。

实验室配备了机器人、传感器、控制器、示教器等实验设备,为机器人研究和开发提供了良好的条件。

2. 理论学习在实习期间,我学习了以下理论知识:(1)机器人基本原理:包括机器人运动学、动力学、控制理论等。

(2)机器人编程:掌握了机器人编程语言和编程方法,如ROS(机器人操作系统)和Python。

(3)传感器技术:学习了各类传感器的工作原理、应用及信号处理方法。

(4)控制算法:了解了PID控制、模糊控制、神经网络等控制算法在机器人控制中的应用。

3. 实践项目在实习期间,我参与了以下实践项目:(1)基于ROS的移动机器人编程:通过学习ROS的基本原理和编程方法,实现了移动机器人的自主导航、避障等功能。

(2)基于传感器的人体姿态识别:利用传感器采集人体运动数据,通过数据处理和算法实现人体姿态的识别。

(3)基于神经网络的机器人路径规划:运用神经网络算法,实现了机器人路径规划的优化。

四、实习收获1. 理论与实践相结合,提高了自己的专业素养和实际操作能力。

2. 了解了机器人领域的最新研究成果和发展趋势,拓宽了自己的视野。

3. 学会了与他人合作,提高了团队协作能力。

4. 培养了自己的创新意识和解决问题的能力。

五、实习体会1. 机器人技术发展迅速,未来应用前景广阔。

机器人创新实验

机器人创新实验

机器人创新实验(一)实验报告实验目的在熟练使用探索者相关部件和TKStudio、Philips Flash Utility软件使用的基础上自行设计机构以及程序,在规定时间内完成作品。

实验内容一、初步构思在阅读探索者教材的基础上,我们参照机甲战士的设计要求构思方案:目标建议:设计一个大型人形机器人。

功能建议:能行走、能转身、胳膊能挥动。

在确定目标之后我们又初步考虑了机器人的动作。

根据这个机器人的设计要求它可以行走、转身和挥臂,在小组讨论之后我们最终确定“做操机器人”方案。

因为这个机器人所具备的动作与我们平时做操时的基本动作一致,通过程序设计就能完成我们所做体操的内容。

所以我们的最终确定方案如下:作品名称:做操机器人功能要求:能行走、转身,胳膊能挥动在此基础上可以以连贯动作完成体操动作。

二、机构设计和搭建。

根据目标要求,做操机器人的胳膊可以上下运动因此需要一个标准舵机,而他的腰要可以转动一定角度所以选择圆周舵机。

为了使机器人可以行走它的两条腿应该可以前后移动,经过讨论之后我们决定在两条腿上使用两个舵机实现行走功能。

在确定了舵机数目及安装位置之后我们开始搭建做操机器人。

1.所用零件:双足腿(4)四足连杆(2)双足连杆(4)双足支杆(2)5×7孔平板(1)7×11孔平板(2)90度支架(若干)垫片10(4)输出支架(3)舵机双折弯(1)大轮(1)马达支架(5)30齿齿轮(2)螺钉螺母(若干)2.在搭建完初步的结构之后我们又做了一些美化。

最终机器人的造型如下图:三、程序设计及调试在完成了机构搭建之后,核心部分就是程序设计和编写了。

编写程序所用软件为TKStudio。

在设计程序之前要先配置软件。

在软件准备就绪之后就是编写程序了。

在编写程序之前,我们需要检验主板每个连接口是否完好,以便顺利编程。

检验时我们首先将预先编写好的简单程序烧入主板中在与舵机连接观察舵机是否运动。

在反复检验之后我们所选用的舵机连接口为:2、4、5、6、8.在检验接口之后还要调整舵机初始位置,即手臂部分的两个舵机和腿部两个舵机,以便更好的完成动作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告(理工类)课程名称: 机器人创新实验课程代码: 学院(直属系): 机械工程与自动化学院年级/专业/班:学生姓名: 实验总成绩: 任课教师: 李炜开课学院: 机械工程与自动化学院实验中心名称: 机械工程基础实验中心一、设计题目:制作巡线小车二、成员分工:(5分)三、设计方案:(整个系统工作原理和设计)(20分)寻线小车的工作原理:寻线小车分为4个模块:电源模块,控制模块,电机驱动模块,寻线模块。

其中寻线模块把外界采集到的线路信息分别转换为数字信号和模拟信号,然后把信号传给控制模块,控制模块对采集的信号进行分析计算,然后做出响应,并发送给电机驱动模块,电机驱动模块把传来的信号进行放大处理然后驱动电机转动。

电源模块为其它三个模块提供电能。

寻线小车的工作方案如下:寻线小车的电路原理图如下:其中的寻线模板没有包括在内,寻线模块主要由三个红外线传感器和AD转换器组成,其数字输出端接在ATMEGA328P的3,4,5引脚,对应输入端口1,2,3。

模拟量输出接在24,25,26引脚,对就芯片的A1,A2,A3模拟量输入端口。

系统的各个模块分别如下控制模块:ATMega328P的内部结构图寻线模块:寻线模块由三个红外线传感器和AD转换器组成。

通过调节寻线模块上的旋钮,改变其相应的值,来分别是白线还是黑线。

黑线输出的数字量为0,白线输出为1。

而其模拟量是就接收光的多少,范围是0~1023。

电机驱动模块:电机驱动芯片与电机的接线如下:寻线小车寻线原理(简述):寻线小车有三个传感器,分别为左、中、右三个。

通过寻线模块所传送回来的数据量,确定转向。

其真值表如下:四、实验步骤:(图文说明设计过程中关键步骤)(30分)巡线小车各个组件Arduino UNO R3 控制器 1 块;亚克力控制板 1 块;电机2个;普通轮子2个;万向轮1个;杜邦线1排;电机驱动板1块;寻线传感器3个;电池盒1个;螺钉螺母若干;1将各个组件合理布局在亚力克板上,并标识出钻孔位置;2钻孔,然后安装电机万向轮普通车轮铜柱;3安装三个传感器4安装Arduino UNO R3 控制器和电机驱动版5用杜邦线将各个模块连接6 编写程序,并调试,直到小车能按照指定路线完整跑完。

五、最终作品展示:(图片及性能描述)(20分)小车能够准确的沿着规定路线完整的跑完,即使跑道是曲线,直线,甚至是直角,八字形,小车都能平稳的巡线,美中不足的是小车速度不够快,原因是多方面的,还有待改善提高。

六、设计心得:(10分)七、对本课程建议或意见:(选作题)课程学时太短了一点,如果多增加一些课程,就可以在老师的介绍下了解更多的前沿机器人方面的知识,拓宽我们的视野。

附录:(设计文件、工程图、代码等)(15分)int right=3;//int center=2;//int left=1;//int aright=A3;int acenter=A2;int aleft=A1;int vright=0;//int vcenter=0;//int vleft=0;//int al[3]={0,0,0};int mr1=5;//right motor,if this value if Hight,the motor will backint mr2=6;//right motor,if this value if Hight,the motor will away;int ml1=9;//left motor,if this value if Hight,the motor will backint ml2=10;//left motor,if this value if Hight,the motor will away; int dct=0;//The direction of carint spd[2]={0,0};//spd[0] is left mr,spd[1] is right.int count=0;//int vdl;int vdr;void setup() {// put your setup code here, to run once:pinMode(right,INPUT);pinMode(left,INPUT);pinMode(center,INPUT);pinMode(mr1,OUTPUT);pinMode(mr2,OUTPUT);pinMode(ml1,OUTPUT);pinMode(ml2,OUTPUT);pinMode(aright,INPUT);pinMode(acenter,INPUT);pinMode(aleft,INPUT);}void loop() {// put your main code here, to run repeatedly:vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);readAL();vdl=al[1]-al[0];vdr=al[1]-al[2];if(vleft==LOW&&vcenter==LOW&&vright==LOW)//dct=0{HowToTurn();}else if(vleft==LOW&&vcenter==HIGH&&vright==HIGH)//turnLefts dct=3 {turnLefts();}else if(vleft==LOW&&vcenter==LOW&&vright==HIGH){//dct==1trunLeftf();}else if(vright==LOW&&vcenter==LOW&&vleft==HIGH)//dct=4{turnRightf();}else if(vright==LOW&&vcenter==HIGH&&vleft==HIGH)//dct=6{turnRights();}else if(vcenter==LOW&&vright==HIGH&&vleft==HIGH)//dct=5{run();}else if(vcenter==HIGH&&vleft==HIGH&&vright==HIGH)//dct=7{/*for(count=0;count<5;count++){if(vcenter==HIGH&&vleft==HIGH&&vright==HIGH){}else{delay(20);break;}}if(count==5){rollBack();}*/}else//dec=2{readAL();spd[0]=-(al[0]-al[1])/4; spd[1]=-(al[2]-al[1])/4; if(spd[0]>spd[1]){spd[1]=0;spd[0]=spd[0]*2;}else{spd[0]=0;spd[1]=spd[1]*2;}motorControl();delay(20);}}void readAL(){al[0]=analogRead(aleft);al[1]=analogRead(acenter);al[2]=analogRead(aright);}void motorControl()//control the motor {if(abs(spd[0])<256&&abs(spd[1])<256) {if(spd[0]>=0&&spd[1]>=0){digitalWrite(mr1,LOW);analogWrite(mr2,spd[1]);digitalWrite(ml1,LOW);analogWrite(ml2,spd[0]);return;}else if(spd[0]>=0&&spd[1]<0){digitalWrite(mr2,LOW);analogWrite(mr1,abs(spd[1])); digitalWrite(ml1,LOW);analogWrite(ml2,spd[0]);}else if(spd[0]<0&&spd[1]>=0){digitalWrite(mr1,LOW);analogWrite(mr2,spd[1]);digitalWrite(ml2,LOW);analogWrite(ml1,abs(spd[0]));}else if(spd[0]<0&&spd[1]<0){digitalWrite(mr2,LOW);analogWrite(mr1,abs(spd[1]));digitalWrite(ml2,LOW);analogWrite(ml1,abs(spd[0]));}}}/*void spdControl(int leftMax,int leftMin,int rightMax,int rightMin) //the speed of motor contorl{spd[0]+=a[0];spd[1]+=a[1];if(spd[0]>leftMax) {spd[0]=leftMax;}else if(spd[0]<leftMin){spd[0]=leftMin;}if(spd[1]>rightMax){spd[1]=rightMax;}else if(spd[1]<rightMin){spd[1]=rightMin;}}*/void stopM(){digitalWrite(mr2,LOW);analogWrite(mr1,LOW);digitalWrite(ml2,LOW);analogWrite(ml1,LOW);}void trunLeftf()//dct==1,turn left is not urgent{while(true){readAL();spd[0]=(al[1]-al[0])/4;spd[1]=(al[1]-al[2])/4;spd[1]=spd[1]+150;if(spd[1]>255) spd[1]=255;//spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==LOW&&vcenter==LOW&&vright==HIGH){ }else{break;}}dct=1;}void turnLefts(){while(true){readAL();spd[0]=(al[1]-al[0])/4;spd[1]=255;spd[0]=spd[0]/1.2; //spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==LOW&&vcenter==HIGH&&vright==HIGH){ }else{break;}}dct=3;}void turnRightf(){while(true){readAL();spd[0]=(al[1]-al[0])/4;spd[1]=(al[1]-al[2])/4;spd[0]=spd[0]+150;if(spd[0]>255) spd[0]=255;//spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==HIGH&&vcenter==LOW&&vright==LOW){ }else{break;}}dct=4;}void turnRights(){while(true){readAL();spd[1]=(al[1]-al[2])/4;spd[0]=255;spd[1]=spd[1]/1.2;//spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==HIGH&&vcenter==HIGH&&vright==LOW){ }else{break;}}dct=6;}void HowToTurn(){while(true){readAL();spd[1]=(al[1]-al[2])/4;spd[0]=(al[1]-al[0])/4;spd[0]=spd[0]+180;spd[1]=spd[1]+180;if(spd[0]>255) spd[0]=255;if(spd[1]>255) spd[1]=255;//spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==LOW&&vcenter==LOW&&vright==LOW){ }else{break;}}dct=0;}void rollBack(){while(true){readAL();spd[0]=-180;spd[1]=-180;//spdControl();motorControl();delay(15);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==HIGH&&vcenter==HIGH&&vright==HIGH){ }else{break;}}dct=7;}void run(){while(true){readAL();spd[1]=(al[1]-al[2])/4;spd[0]=(al[1]-al[0])/4;int spdd=(spd[0]-spd[1])/2;spd[0]=240;spd[1]=240;if(spdd>0){spd[0]+=spdd;spd[1]-=spdd;}else{spd[0]-=spdd;spd[1]+=spdd;}if(spd[0]>255) spd[0]=255;if(spd[1]>255) spd[1]=255;//spdControl();motorControl();delay(20);vleft=digitalRead(left);vcenter=digitalRead(center);vright=digitalRead(right);if(vleft==HIGH&&vcenter==LOW&&vright==HIGH){ }else{break;}}dct=5;}。

相关文档
最新文档