【S080】全自动避障收割机
作品说明 |
作者:尚利 林欢欢 田振平 尚海龙
单位:内蒙古工业大学 机械学院
指导老师:武建新
“探索者”机器人创意组件是机器时代推出的一套机器人创新设计理念产品。探索者采用了世界先进的仿生和欠驱动设计理念,机械结构设计概念明显,传动结构突出,可以满足绝大部分的机械原理结构。金属机械零件美观耐用,除了可以的搭建常规的机器人机构,还可以组合成各种仿真及智能家居产品。
本文研究的主要内容是模拟避障,主控板采用了32位高性能主控芯片,拥有C语言编程,图形化编程及便捷式编程三种编程模式,能满足任何软件水平的用户实现简单或复杂的自动化控制程序。包装箱里更配备了多种常见传感器,能让用户搭建的机器人活起来,使它们能够听到、看到、触摸到人类世界。
控制器采用ARM7 LPC2132,32位的高性能主控芯片,是一款专为智能机器人和小型智能设备设计的多功能控制器。拥有巨大的缓冲区空间和强大的处理功能,可同时控制6路舵机,2路直流电机,4路传感器,并可串联协同工作,非常适合作为智能机器人的主控制器。
关键词:变形操作、避障系统、模拟动作、C语言编程
1. 引言
机器人(Robot)是自动执行工作的机器装装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业、或是危险的工作。机器人种类繁多,大致可分为工业机器人、空间机器人、水下机器人。
本项目设计的全自动避障收割机是基于现代收割机的机构进行改进而组装成的,它既可以编程实现自动控制,也可以通过人控制,可以实现自动前进、后退、转弯、避障等操作。本项目的设计理念是更智能,更省人力与资源,此外我们设计的收割机的收割部分可以自由升降,实现收割各种不同的植物。收割机的后轮用电机驱动,前轮由双电机驱动,强劲有力,转弯自如。
作品说明
全自动避障收割机
2. 主要控制元件及应用原动件
2.1 主控板
①. 输入端口A,连接传感器
②. 输入端口B,连接传感器
③. 输入端口C,连接传感器
④. 输入端口D,连接传感器
⑤. 红外接收端口,连接红外接收头
⑥. 通道选择键,对应手柄的通道选择键,分为ABC三个通道
⑦. 程序写保护口,1为正常工作状态,当按钮拨向ON时才可以进行程序下载
⑧. 程序下载端口,连接下载线
⑨. 输出端口1~8,连接电机、LED、语音模块等执行部件,从左起竖排4针接口为一组,共分为8组。1~6端口仅供舵机连接,7,8端口仅供LED和语音模块连接。(注意:具体连接方式在操作说明中会用图示详细说明,在没有看过操作说明之前请不要连接电机、LED以及语音模块)
⑩. 电源端口,接入电池或适配器连接
⑪. 复位键,对单片机进行重启,会清除单片机内所有未保存的动作
⑫. 电源开关
⑬. 电源指示灯,当开关打开后,指示灯长亮并且呈红色
2.2 红外接收头
红外接收头主要用于接收来自手柄控制发出的红外信号。
①. 红外接收元件,用于接收手柄发出的红外信号
②. 固定孔,便于用螺丝将接收头固定于机器人上
③. 三芯输入线接口,连接三芯输入线
2.3 LED模块
①. 固定孔,便于用螺丝将模块固定于机器人上
②. 双色LED灯,颜色为红色与绿色
③. 四芯输出线接口,用于连接四芯输出线
2.4 舵机
分为标准舵机与圆周舵机两种。技术规格如下:
工作电源:4.8-6V
工作电流:<10mA
扭力:2.2kg/cm
转动角度:标准舵机±90°
圆周舵机可实现连续转动。
2.5 传感器
2.5.1 近红外传感器
近红外传感器可以发射并接收反射的近红外信号,有效检测范围在20cm以内。
①. 固定孔,便于用螺丝将模块固定于机器人上
②. 四芯输入线接口,连接四芯输入线
③. 近红外信号发射头,用于发射红外信号
④. 近红外信号接收头,用于接收反射的红外信号
注意事项:在安装近红外传感器时,注意不要遮挡发射和接收头,以免传感器检测发生偏差
2.5.2 触须传感器
触须传感器可以检测到物体对弹簧触须的有效触动,安装时通常是将弹簧与地面平行。
①. 固定孔,便于用螺丝将模块固定于机器人上
②. 四芯输入线接口,连接四芯输入线
③. 弹簧触须:与障碍物接触后发生弹性形变,触发传感器
注意事项:触须感应器需要安装在机器人前端容易被触碰到的位置,需要弹簧触须被物体折弯至接触金属卡桥才会被触发。
2.6 编程手柄说明
①. 红外信号发射端口
②. 摇杆1,控制连接在主控板输出端口1和端口2所连接的舵机的动作
③. 摇杆2,控制连接在主控板输出端口3和端口4所连接的舵机的动作
④. 摇杆3,控制连接在主控板输出端口5和端口6所连接的舵机的动作
⑤. 摇杆4,控制连接在主控板输出端口7和端口8所连接的语音模块或LED的动作
⑥. 动作加载键,清除当前未保存的动作
⑦. 通道选择键,选择通道时,与主控制板通道配合使用,调整到对应通道
⑧. 动作保存键,保存当前操作的动作
⑨. 上方为动作记录键1,下方为动作播放键1,播放动作记录键1录制的动作,与主控板输入端口A的触发功能对应
⑩. 上方为动作记录键2,下方为动作播放键2,播放动作记录键2录制的动作,与主控板输入端口B的触发功能对应
⑪. 上方为动作记录键3,下方为动作播放键3,播放动作记录键2录制的动作,与主控板输入端口B的触发功能对应
⑫. 上方为动作记录键4,下方为动作播放键4,播放动作记录键2录制的动作,与主控板输入端口B的触发功能对应
⑬. 程序下载口,更新手柄程序
⑭. 电源开关
⑮. 微调,校正标准舵机角度以及圆周舵机停止不稳定状态
⑯. 电源、信号指示灯,标志为红色时表示电源接通,蓝色时表示正在发射信号
3. 全自动收割机外观设计
4. 主要程序控制
#include"config.h" #include"lib_io.h" #include"lib_arm.h" void init_move() { Servo(1,110); Servo(2,110); Servo(3,140); Delay(25); } int main(void) { int i,k; Initial_ARM(); while (Input(1,1)==0) { init_move(); } while (Input(1,1)==1); for (i=110;i>130;i++) //jiangxia { Servo(1,i); Servo(2,i); Delay(30); } while (1) { k=0; while (k<3) { for (i=60;i<140;i++) {Servo(1,130); Servo(2,130); Servo(3,i); Delay(25); } for (i=140;i>60;i--) { Servo(1,130); Servo(2,130); Servo(3,i); Delay(25); } k++; } for (i=130;i>70;i--) //升起 { Servo(1,i); Servo(2,i); Servo(3,60); Delay(25); } while (Input(1,1)==0) //保持 { Servo(1,i); Servo(2,i); Servo(3,60); Delay(25); } while (Input(1,1)==1); for (i=60;i>140;i++) //放置 { Servo(3,i); Servo(1,70); Servo(2,70); Delay(30); } for (i=140;i>60;i--) //放置 { Servo(3,i); Servo(1,70); Servo(2,70); Delay(30); } while (Input(1,1)==0) { for (i=0;i>100;i--) //等待 { Servo(1,70); Servo(2,70); Delay(30); } } for (i=70;i<130;i++) //shengqi { Servo(1,i); Servo(2,i); Delay(25); } while (Input(1,1)==0); while (Input(1,1)==1); } |
5. 项目总结
经过两周的创新机器人设计,大家完全体会到创新的乐趣,与以前的理论学习相比大家兴趣明显的提高,这是一次完全自主的学习,大家将以前课本学到的知识运用于实践,这是一次真正地理论与实践的结合。让我们真正了解到想法与实践之间的差距,同时也明白严谨态度的必要性,比如说有时候可能是一个螺钉没有拧紧,可能导致后面的机构无法运行。在组装的工程中大家积极参与,有争吵也有合作,那种思想的激烈碰撞,思维之间的那种默契,让大家体会到团队合作的快乐。
这次课程设计,形式开放,我们接触到一些全新的东西,理论与实践完美的结合,以前学到的东西得到了很好的巩固,在期间大家一些不理解、不明白的东西相互学习、相互进步,从而创造出许多形式各异的机器人。在此感谢武建新老师给我们提供这次宝贵的机会,让我们全身心到其中的乐趣,激发大家创新的意识。在此也感谢那些帮助过我们的同学,在你们身上让我们学到一些课上学不到的东西,比如说严谨的态度、专研的精神。在此也感谢我们组里的每一位成员,大家分工协作,加强了团队合作精神。
* 本项目未获得作者开源授权,无法提供资料下载。
|