机器谱

S088】投石车

图文展示3264(1)

图文展示3264(1)

副标题

作品说明

作者:李伟 龚江贺 湛柏 马永强

单位:北京石油化工学院

指导老师:曹建树 代峰燕 黄松涛

1. 作品总体设计思路与方案

本项目做的是投石车,根据它要完成的动作进行总体的设计构思,并且选出最合理、最易操作的方案。下图为其设计思路流程图:

作品说明

设计思路流程图

1.1 作品总体方案

本项目做的是投石车,整体构思就是以小车为投石的底座,首先让它寻黑线跑动,在它轮子的地方安装两个舵机让它执行一个旋转九十度的动作,当用手去触发传感器时,小车从运动的状态立刻停止同时两个轮子旋转,把投石的手臂架起来,让车更平稳,之后就是开始执行投石的动作,由于投石车手臂比较长,把它做成折叠方式,先打开手臂上半部分,等待放入所投物,锁住这半部分手臂,让整个手臂处于一条直线,最后开始投射物品,投射完毕后,手臂收起继续执行寻黑线跑动,等待下一次触发变形。

投石车

1.2 作品组成与功能

作品主要组成:① 寻线小车;② 车轮变形装置;③ 折叠手臂;④ 活动连杆。

      功能:小车寻黑线、触发传感器舵机转动使车轮旋转、折叠手臂打开、整个手臂投石。

2

. 机械结构安装与三维设计

      机械结构安装主要就是根据设计思路与方案进行组装,将每个结构组装的更合理,外形优美。拼装完成之后用三维软件对其进行设计,然后通过三维图再进行修改与调整。

2.1机械结构安装与调试

1)安装

      ① 小车的组装:用现有的各种铝镁合金零件组装小车,主要就是把舵机分别安装在两个轮子上,使它们完成轮子旋转的功能,用两个轮子加一个万向轮使小车能够平稳的走动。

      ② 手臂的组装:让手臂投的远是本项目设计最终的目的,手臂的长度就会比小车还要长,所以本项目采用把它的手臂用折叠的方式放在小车上,当执行投石时它自己再自动打开,这需要用两个舵机来控制它分别执行手臂打开和折叠的动作、还有投石的动作。

      ③ 手的组装:手的组装其实很简单,只要在手臂打开时能够把物体放在上面不动就可以了,本项目在手的结构上采用了活动的连杆机构,主要就是为了让抛出去的物体投得更远一些,手转动约为四十五度,因为这个角度会使它投的更远,在手臂投的过程中手还有一个甩的力使物体抛得更远。

2)调试

      调试主要就是对本项目所做的作品进行检查、修改,调试的过程是最重要的环节,也是最繁琐的环节,需要耐心反复的修改与调试。把编好的程序下载到主程序板中,把每一部分想要执行的动作分步进行调试,在调试过程中需要不断修改寻黑线的轨迹,让小车沿着黑线能够运动。舵机旋转的角度和方向需要保持一致,需要不断调试它的角度。手臂投掷的动作需要为舵机调整投掷的角度,以及先后顺序,保证它投的距离是最大的。外部结构的调试既要保证外形优美,又要能够执行设计的动作,手臂投掷的距离是本组主要的设计任务,开始本设计的手为固定的与手臂连在一起,但是投掷的距离不是太理想,本设计在手的部分上进行尝试调试,最后本设计改用为活动的连杆机构,投掷的距离增加了一半。

2.2 三维设计

对实物进行装配,下图为三维图装配实物整体图,可以很直观的把本组的实物展示出来。

投石车装配整体图形

      投石车抛出的距离是本项目设计的重要部分,在这方面本设计进行了很多次的修改,下面是对抛物手的介绍。如下所示,图1、图2为本组抛物手的两个方案。

      图1为方案一的手是本项目最初的设计,手和手臂是固定在一起的,它的特点是手比较稳定,这样设计有利于装设投掷物,但是在实际操作中本组发现方案一投掷的距离比较近,本组对这个方案并不是很满意,于是想就在投掷距离上再做一些改进,本组通过参考书、网络等资源进行查阅与参考。

1 方案一手臂

      图2为本项目改进的方案,由于实际因素小车的长度,要想通过改变手臂的长度来增加抛出的距离不太可能,于是查了一些相关资料,把投石车的手做了改进,根据机械原理,本设计采用手的部位为活动的连杆机构,在手臂抛出的时候手的部分还有一个力,这样会增加它甩出的力和距离,经过本设计改进与调试,方案二改进成功,投掷的距离是原来的两倍。

2 方案二手臂

      夹子的主要功能是使活动连杆的摆动距离为四十五度,因为四十五度这个角度是抛出距离最远的角度,可以增加整体抛出的距离。

3. 控制系统结构分析与硬件系统设计

组装完成之后,运动起来才是最终的目的,这就需要为它设置控制系统,让它服从命令去运行,这时就需要用编程软件对它进行编程。

3.1控制系统结构分析

      控制系统的流程图如下所示,首先控制电机的转动,触发红外近传感器时,两边舵机转动,随后手臂打开投射,投射完毕后手臂收回,并继续沿黑线走,等待下一次触发近红外传感器。

控制系统流程图

3.2 硬件系统设计

3.2.1 Basra主控板

① 参数

 处理器ATmega328

 工作电压5V

 输入电压(推荐)7-12V    

 输入电压(范围)6-20V    

 数字IO引脚14(其中6路作为PWM输出)    

 模拟输入脚6

 IO脚直流电流40mA

 3.3V脚直流电流50mA

 Flash Memory 32KB (ATmega328,其中0.5KB用于bootloader)

 SRAM 2KB (ATmega328)

 EEPROM 1KB (ATmega328)

 工作时钟16MHZ

② 特点

 源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改。

 可以采用USB接口供电,不需外接电源,也可以使用外部DC输入。

 ISP在线烧,可以将新的“bootloader”固件烧入芯片。有了bootloader之后,可以在线更新固件

 支持多种互动程序,如:Flash、Max/Msp、VVVVPD、C、Processing等。

 具有宽泛的供电范围,电源电压可选3V-12V的电源。

 采用堆叠设计,可任意扩展

 主控板尺寸不超过60mm*60mm,便于给小型机电设备安装。

 板载USB驱动芯片及自动复位电路,烧录程序时无需手动复位

 支持Visual Studio、eclipse、sublime text等IDE。

3.2.2 Binfish扩展板  

参数

 4针防反插接口供电5V

 舵机接口使用3A的稳定芯片7805ADJ,为舵机提供6V额定电压

 8*8led模块采用MAX7219驱动芯片

 板载一片直流电机驱动芯片FAN8100MTC,支持5v-9v的vin电压,可同时驱动两个直流电机

 2个2*5的杜邦扩展坞,方便无线模块,OLED,蓝牙等扩展模块直插连接,无需额外接线

4. 软件系统设计

软件系统的设置相当于人的大脑,能不能按本项目设计的要求运动,全靠它来完成,这需要首先熟悉这个软件,对软件有一个详细的了解,才能更好的去编程让它的动作运动的更流畅。

4.1 总体动作流程图

如下所示为总体动作流程图,首先打开电源开关,小车电机转动寻黑线行走,用手或其它物体触发近红外传感器时,小车停止运动并使两边舵机转动,发生变形,类似把手臂架起来的动作,随后手臂上半部分打开装炮弹,整个手臂投射,投射完毕手臂收回,两个舵机回初始位置,并继续沿黑线走,等待下一次触发近红外传感器。

总体动作流程图

4.2 示例程序
#include <Servo.h>

Servo servo_pin_7;                      //定义变量;

bool _ABVAR_1_left;

Servo servo_pin_4;                      //定义变量;

Servo servo_pin_3;                      //定义变量;

Servo servo_pin_8;                      //定义变量;

void setup()                           

{

servo_pin_8.attach(8);                   //把变量8赋给引脚8

pinMode( 10 , OUTPUT);                   

_ABVAR_1_left = false;

pinMode( 14 , INPUT);

pinMode( 17 , INPUT);

servo_pin_4.attach(4);                   //把变量4赋给引脚4           

servo_pin_7.attach(7);                   //把变量7赋给引脚7

servo_pin_3.attach(3);                   //把变量3赋给引脚3

pinMode( 5 , OUTPUT);

pinMode( 18 , INPUT);

}

void loop()                          //总循环;

{

if (!( digitalRead( 14) ))             //如果针脚14触发执行下一步

{

digitalWrite( 5 , LOW );                 //给5号引脚口赋电平;

digitalWrite( 10 , HIGH );               //给10号引脚口赋高电平;

servo_pin_3.write( 15 );                 //给3舵机赋值15角度;

servo_pin_4.write( 65 );                  //给4舵机赋值65角度;

}

Else                                    //如果针脚14不触发执行下一步

{

digitalWrite( 5 , HIGH );                 //给5号引脚口赋高电平;

digitalWrite( 10 , HIGH );                //给10号引脚口赋高电平;

servo_pin_3.write( 15 );                  //给3舵机赋值15角度;

servo_pin_4.write( 65 );                  //给4舵机赋值65角度;

}

if (!( digitalRead( 18) ))                //如果针脚18触发执行下一步

{

digitalWrite( 5 , HIGH );                 //给5号引脚口赋高电平;

digitalWrite( 10 , LOW );                 //给10号引脚口赋电平;

servo_pin_3.write( 15 );                  //给3舵机赋值15角度;

servo_pin_4.write( 65 );                  //给4舵机赋值65角度;

}

Else                                    //如果条件18不满足执行下一步

{

digitalWrite( 5 , HIGH );                 //给5号引脚口赋高电平;

digitalWrite( 10 , HIGH );                //给10号引脚口赋高电平;

servo_pin_3.write( 15 );                  //给3舵机赋值15角度;

servo_pin_4.write( 65 );                  //给4舵机赋值65角度;

}

if (!( digitalRead( 17) ))             //如果针脚17满足传感器17触发

{

_ABVAR_1_left = HIGH ;                    //给“left”数字量赋值1

}

Else                                   

{

_ABVAR_1_left = LOW ;                     //如果17不满足赋0

}

if (_ABVAR_1_left)                  //如果17满足赋left”执行下一步

{

servo_pin_3.write( 90 );                  //给3舵机赋值90角度;

servo_pin_4.write( 0 );                   //给4舵机赋值0角度;

servo_pin_7.write( 160 );                 //给7舵机赋值160角度;

delay( 3000 );                            //延时5秒;

servo_pin_8.write( 1 );                   //给8舵机赋值1角度;

delay( 3000 );                            //延时3秒;

servo_pin_7.write( 20 );                  //给7舵机赋值20角度;

delay( 3000 );                            //延时3秒;

servo_pin_8.write( 70 );                  //给8舵机赋值70角度;

delay( 3000 );                            //延时3秒;


5. 作品总体调试

5.1 软件的调试

      ① 小车寻黑线运动,需要考虑小车摆动的幅度大小是否满足,可以通过改变电压来调节速度;同时也要考虑小车自身重量,如果自身太重但运动幅度太大想要把电压调小,可能会因自身太重不能行走。

      ② 小车在行走中需要把舵机锁住,它的轮子才不会乱动。

      ③ 经过触发传感器车轮变形旋转,需要注意的是舵机的初始位置可能不是自己想要的位置,还要通过调不同的角度来完成最后的执行。

      ④ 手臂的打开以及抛出需要设置一个延时,有足够的时间来装抛出物品。

5.2 硬件的调试

      在运行过程中可能会遇到一些机构不合理或不太理想,需要我们不断调式改进。本项目对抛射的距离不太满意,总想让它抛射的再远一些,本作品把手的部分做了一些改进,把原来固定的手改为活动的手,主要是让手臂再抛出的一瞬间,手会增加一个甩的力,让它抛出的力更大一些,效果也更好,抛出的距离也比原来增加了一半。


6. 结论

      本项目设计的作品基本上都能按要求来完成要求的动作,设计的外形以及软件编程都是最好的,我们对这个作品总体来说比较满意。但是这个作品仍然存在很多不足与改进的地方,例如减轻一些重量,在两个轮子边的舵机转变的时候让它把车架起来更稳定、更好,再让改进手臂及手让它投的更远一些,这些都是可以慢慢进行调试与改进的,我们会对这个作品一直改进,让它达到更完美。


7. 总结与建议

      在这次项目设计实践中收获很多,通过一起组装、编程、画图、编写说明书、做视频等等,在一起讨论的过程中,大家都很快乐、很享受一起学习的乐趣。当然也遇到了很多困难,共同努力去解决这些问题,把本项目的作品争取做得更好,是大家共同的目标,最终我们对本作品都很满意。在整个过程中不断调试与修改,让作品达到更好,一起努力的结果使大家也变得更加团结,团队精神越来越强,配合的更加默契。但是本作品也存在一些还能升华和改进的地方,希望以后还有机会去把它做的更完美。

参考文献

1】工程创兴实训箱(实验教程) 出版社:机器时代科技有限公司  2013.09

2】《机械原理》 刘会英 杨志强 张明勤 编  第二版  机械工业出版社

* 本项目未获得作者开源授权,无法提供资料下载

© 2022 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用