作者:王晨曦, 敖欣, 王薇薇, 安尚琪
单位:北京理工大学
教练:李忠新, 朱杰
如今,输送机在我们的生产经营和生活中扮演着越来越重要的角色,现代社会对升降机的需求日益增加,市场的不断扩大,使得升降机的种类不断丰富,以满足不同作业场合的需求。 目前有移动式、固定式、车载式、铝合金式、自走式等多种类型的升降机,在大量社会需求的带动下,升降机的发展速度和空间也得到了拓展,无论是在工厂、企业、机场、码头、酒店等需要高空维护、安装和清洁的地方,电梯的存在随处可见, 这给我们的日常运营带来了极大的便利。在设计之前,我们团队对搬运机的工厂应用进行了一定的调查,主要得出以下结论:
在许多危险情况下,仍然需要人工操作才能实现货物的运输和堆垛,这不仅是对人力资源的浪费,也是对工人安全的不负责任。 由于各种特殊需求,一些工厂或仓库需要运输和储存危险品,当需要在危险场景下进行起重和控制作业时,无人智能起重装置就派上用场了。
有的加工生产线除了需要货物能够垂直升降外,还可以完成设备的一些功能,以水果加工为例,水果加工生产线需要提前清洗,这需要具备擦洗等辅助功能。
手动货物装卸。
水果生产线起重设备。
2.1 五金件-升降平台
(1)齿轮传动-动力源
受各种物理书籍中经典示例问题的启发:滑轮和铁的经典组合,我们用齿轮组装了一个带齿轮的滑轮,并利用齿轮将舵机旋转的位移转换为垂直方向的位移,从而实现电梯的升降功能。
2)固定导轨-轨迹控制
为了使电梯在运行过程中更加稳定,我们在运行轨迹中额外使用了一根长铁串,使升降篮与铁串配合,从而做成导轨(在红滥用线中间),一个可控性强、安全性高的升降平台。
(3)金属筐-装货
我们在齿轮制成的滑轮上将装满货物的金属篮子固定在细线上,通过控制滑轮的转速来控制整体提升速度,并在铁筐中安装了红外传感器、气孔和擦洗设备,以便我们可以针对不同类型的货物选择不同的处理方法。
2.2 软件部分
(1)编程软件
我们使用Arduino作为编程的核心语言,为了简化编程步骤,提高编程的准确性,我们采用了图形化编程来控制整个设备。
(2) 编程
在程序中,我们大多采用延时控制,通过计算机构整体升降所需的时间,让控制升降的360舵机和控制推物的270舵机在完成相应的功能后,在原地延时停滞,直到另一部分功能完成再恢复运动, 直到它再次返回初始状态进行下一个动作。
该装置的运行逻辑是以水果为货物设计:
3.1 **运输臂
*运输臂整体设计如下图所示
*运输臂的旋转功能是通过安装在中心旋转轴上的270°舵机实现的,为了保证旋转的平稳性,我们在中心旋转轴的底部安装了四个小轮子,在臂的最前端安装了万向轮。 旋转时,四个小轮子同时与中心轴线旋转,前端的万向轮以旋转轴为圆心,在半径不变的情况下做匀速圆周运动,从而保证了结构的稳定性,不影响旋转的流畅性。
*运输臂的伸缩功能是通过安装在旋转轴上方的联动结构实现的,为了保证臂可以沿直线伸缩,我们增加了两个导轨来约束臂的伸缩方向。 这样可以收缩手臂,保证在旋转过程中不影响其他平台的正常运行,实现各平台之间的连接平稳顺畅。
推进装置
输送臂、清洗模块、剥皮模块、切割模块分别装有伸缩推进装置,主要通过连杆结构和导轨的配合,使推进片可以向一个方向自由展开,从而实现推进功能,使果实在各个功能模块之间转移。
以臂式运输结构为核心,通过其旋转和伸缩功能可以建立极坐标系,如下图所示,第一机械臂可以通过一定的计算实现定点到达二维平面上几乎任何位置,具有充分的自由度和可控性。
考虑到我们的机器需要涉水或在一些危险场景中工作,为了减少对舵机的损坏,我们决定采用方向舵向上的方式,尽量减少复杂的现场环境和危险品对设备运行造成的障碍。
自动感应,强力配合,通过红外传感器感应实现全程,减少人工操作与货物的接触,确保工作人员安全。 360°舵机的速度可以调节,改变货物运输的速度和升降位置的高度,同时可以配合现有的叉车、输送带等设备,实现更智能的工作,进一步减少工人与危险品的接触,简化工作流程。
只要将初始平台高度调整到每个模块之间保持一致,模块的高度就可以自由调节,以满足各种复杂地形的需求,同时占地面积小,便于携带,适合家庭或个体工商户在各种不同情况下使用。
起初,我们只打算通过旋转或轨道的传输来完成各种功能的协调,后来发现各个单独的模块与输送装置之间的协调会比较困难,所以我们大胆地利用极坐标的特点,设计了一个伸缩旋转的**输送臂,如下图所示, 这样就可以轻松实现定点协调。
工厂运行时,我们发现球形货物很容易滚动,从设备上脱落,无法按照既定路线运输。 因此,我们通过对程序的重写和延迟的增加来改变伺服电机的运行速度,使推进装置和旋转装置在运输货物和不运输货物时的速度不同,这样既可以节省时间,又可以保证货物在运输过程中的稳定性。 同时,我们在许多水平或垂直运行结构中增加了导轨的限制,使其能够沿着所需的方向平稳运行,减少了货物运输过程中的障碍物。
由于硬件设备的原因,我们缺乏足够的长杆来实现一次性推进的功能。 因此,我们利用两个舵机的配合,采用了一些二次推进结构,如下图所示,虽然结构不够简化,但最终实现了将水果运送到指定位置的功能。
部分
#include
servo servo_pin_7;
servo servo_pin_4;
servo servo_pin_11;
void setup()
pinmode( 14, input);
servo_pin_4.attach(4);
servo_pin_7.attach(7);
servo_pin_11.attach(11);
void loop()
if (!digitalread(14) )
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i = 0; i < 80; i++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 45000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k = 56; k < 85; k++)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i2 = 0; i2 < 80; i2++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 2000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k5 = 85; k5 > 54; k5--)
delay( 1000 );
delay( 30000 );
for( int k6 = 54; k6 < 85; k6++)
delay( 2000 );
servo_pin_7.write( 100 );
delay( 28000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k7 = 85; k7 > 54; k7--)
delay( 1000 );
delay( 8000 );
for( int k3 = 54; k3 < 120; k3++)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i3 = 0; i3 < 80; i3++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 40000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k4 = 120; k4 > 30; k4--)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i4 = 0; i4 < 80; i4++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 2000 );
servo_pin_7.write( 60 );
delay( 2000 );
else
*欲了解更多信息,请参阅:【S035】“AIBOT”-多功能货物装卸机