机器谱

R233】卧式车床模型

作者:机器谱

图文展示3264(1)

图文展示3264(1)

副标题

概述

1. 功能说明

      本文示例将通过程序控制模拟车床的运动效果--模拟车床进行加工时各个结构的运动方式。车床的主要运动包括夹持工件主轴的旋转运动、刀具进给运动、刀具的换刀旋转运动、溜板的平动、尾座上顶针的进给运动。

2. 结构说明

      该车床主轴旋转运动选择带传动的传动方式;刀具的进给使用滑块平移机构,用于短距离的移动;刀具的换刀装置使用电机直接驱动;溜板的平移选择丝杠传动,丝杠平移的距离较长且运动稳定;尾座的顶针进给运动使用滑块平移机构,用于短距离的平移。

概述

3. 电子硬件

本实验中采用了以下硬件:

主控板

Basra主控板(兼容Arduino Uno)

扩展板

Bigfish2.1扩展板

传感器触碰传感器
电池7.4V锂电池


/*------------------------------------------------------------------------------------

  版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 机器谱 2023-06-14 https://www.robotway.com/

  ------------------------------*/

#include <Servo.h>


Servo servo_pin_4;

Servo servo_pin_3;

Servo servo_pin_8;

Servo servo_pin_11;

Servo servo_pin_7;

int _ABVAR_1_i = 0 ;


void setup()

{

  pinMode( 14, INPUT);

  servo_pin_4.attach(4);

  servo_pin_3.attach(3);

  servo_pin_8.attach(8);

  servo_pin_11.attach(11);

  servo_pin_7.attach(7);

  pinMode( 9 , OUTPUT);

  pinMode( 10 , OUTPUT);

  pinMode( 5 , OUTPUT);

  pinMode( 6 , OUTPUT);

  servo_pin_4.write( 140 );


  servo_pin_3.write( 170 );


  servo_pin_8.write( 50 );


  servo_pin_11.write( 74 );


  servo_pin_7.write( 94 );


  delay( 1000 );


}


void loop()

{

  if (digitalRead(14))

  {

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 80 ); _ABVAR_1_i++ )

    {

      servo_pin_4.write( ( 140 - _ABVAR_1_i ) );

      delay( 10 );

    }

    delay( 1000 );

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 80 ); _ABVAR_1_i++ )

    {

      servo_pin_4.write( ( 60 + _ABVAR_1_i ) );

      delay( 10 );

    }

    digitalWrite( 9 , HIGH );

    digitalWrite( 10 , LOW );

    delay( 2000 );

    digitalWrite( 9 , LOW );

    digitalWrite( 10 , LOW );

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 100 ); _ABVAR_1_i++ )

    {

      servo_pin_3.write( ( 170 - _ABVAR_1_i ) );

      delay( 20 );

    }

    digitalWrite( 5 , HIGH );

    digitalWrite( 6 , LOW );

    delay( 1000 );

    digitalWrite( 5 , LOW );

    digitalWrite( 6 , LOW );

    delay( 1000 );

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 69 ); _ABVAR_1_i++ )

    {

      servo_pin_3.write( ( 70 - _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 41 ); _ABVAR_1_i++ )

    {

      servo_pin_8.write( ( 50 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 73 ); _ABVAR_1_i++ )

    {

      servo_pin_11.write( ( 74 - _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 85 ); _ABVAR_1_i++ )

    {

      servo_pin_7.write( ( 94 - _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 64 ); _ABVAR_1_i++ )

    {

      servo_pin_11.write( ( 1 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 70 ); _ABVAR_1_i++ )

    {

      servo_pin_8.write( ( 91 - _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 64 ); _ABVAR_1_i++ )

    {

      servo_pin_11.write( ( 65 - _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 169 ); _ABVAR_1_i++ )

    {

      servo_pin_3.write( ( 1 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 170 ); _ABVAR_1_i++ )

    {

      servo_pin_7.write( ( 9 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 39 ); _ABVAR_1_i++ )

    {

      servo_pin_11.write( ( 1 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 40 ); _ABVAR_1_i++ )

    {

      servo_pin_8.write( ( 20 + _ABVAR_1_i ) );

      delay( 20 );

    }

    for (_ABVAR_1_i= 1; _ABVAR_1_i<= ( 85 ); _ABVAR_1_i++ )

    {

      servo_pin_7.write( ( 179 - _ABVAR_1_i ) );

      delay( 20 );

    }

  }

  else

  {

    servo_pin_4.write( 140 );

    servo_pin_3.write( 170 );

    servo_pin_8.write( 50 );

    servo_pin_11.write( 74 );

    servo_pin_7.write( 94 );

    delay( 1000 );

  }

}

电路连接说明:在下图所示位置安装一个触碰传感器作为限位(限位:限定机械设备的运动极限位置)。

① 触碰传感器连接在Bigfish扩展板的A0端口;

② 3号舵机连接在Bigfish扩展板的D7端口;4号舵机连接在Bigfish扩展板的D4端口;5号舵机连接在Bigfish扩展板的D3端口。

③ 1号电机连接在Bigfish扩展板的D5,D6;2号电机连接在Bigfish扩展板的D9,D10。

4. 功能实现

4.1 实现思路

实现车床模拟加工的功能。

复位:

         溜板箱回到+X向极限位置(由1号电机控制),顶针伸出-X向(5号舵机控制),刀具箱回到+Y极限位置(3号舵机控制),刀具1指向-X向  

       (4号舵机控制),主轴开始旋转(2号电机控制)。

第一步(粗加工):

         上刀,刀具1指向Y轴正方向(由4号舵机控制);溜板箱沿-X向移动进入工作区,以刀具1的顶点与顶针顶点在同一直线为止(1号电机开始

         工作,延迟大概4s);刀具箱+Y向伸出去(3号舵机控制);刀具1沿-X向移动1s后停止(1号电机开始工作,延迟1s)。

第二步(换刀,准备精加工):

         刀具箱沿-Y向移动到极限位置(3号舵机角度控制收回来);溜板箱沿+X向移动到+X向极限位置(1号电机控制,传感器限位);换刀,刀

         具2到刀具1的位置(4号舵机角度控制)。

第三步(精加工):

         溜板箱沿-X向移动进入工作区,以刀具1的顶点与顶针顶点在同一直线为止(1号电机开始工作,延迟大概4s);刀具箱+Y向伸出去(3号舵

         机控制);刀具1沿-X向移动1s后停止(1号电机开始工作,延迟1s)。

第四步(加工完成):

         刀具箱收回(3号舵机角度控制);溜板箱沿+X向移动到+X向极限位置(1号电机控制,传感器限位);主轴停止转动(2号电机stop);

         刀具1回到初始位置(4号舵机角度控制);顶针收回,沿+X向移动到极限位置(5号舵机角度控制)。

4.2 示例程序

      编程环境:Arduino 1.8.19

下面提供一个参考例程(lathe.ino),具体实验效果可参考演示视频。

5. 资料清单

序号

内容
1

R233-程序源代码

2
R233-样机3D文件


文件下载
【整体打包】-【R233】卧式车床-概述-资料附件.zip
5.22MB下载3次下载
上一页 1 下一页
© 2024 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用