【R234】立式铣床模型
作者:机器谱
概述 |
1. 功能说明
概述
2. 结构说明
该铣床的主轴旋转运动选择用电机直接驱动;立铣头的上下进给运动选择丝杠平移机构,运动稳定,且位移距离较长;工作台的左右进给运动选择丝杠平移机构,运动稳定,且位移距离较长;工作台的前后进给运动选择滑块平移机构,用于短距离的运输。
3. 电子硬件
本实验中采用了以下硬件:
主控板 | |
扩展板 | |
传感器 | 触碰传感器 |
电池 | 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> int i,j,k,l; //定义几个变量 Servo servo1; //命名一个舵机 void setup() {
servo1.attach(3); //启动舵机3号口
pinMode( 14, INPUT); //定义引脚 pinMode( 18, INPUT); pinMode( 5, OUTPUT); pinMode( 6, OUTPUT); pinMode( 9, OUTPUT); pinMode( 10, OUTPUT); pinMode( 4, OUTPUT); } void loop() { i=digitalRead(14); //设置i为A0读取数据 j=digitalRead(18); //设置j为A4读取数据 //第一步 servo1.write( 130 ); //舵机置位 zero(); /**************************** 第二步 *****************************/ if(i==0&&j==0) //如果X轴Y轴已归位 { //delay(2000);
digitalWrite( 9 , LOW ); //X轴至中部 digitalWrite( 10 , HIGH ); delay(6000); digitalWrite( 10 , LOW );
servo1.write( 87 ); //舵机伸出 digitalWrite( 4 , HIGH ); //电机旋转 delay(1000); /**************************** 第三步 *****************************/ digitalWrite( 5 , LOW ); //Z轴移至中间 digitalWrite( 6 , HIGH ); delay(5000); digitalWrite( 6 , LOW );
digitalWrite( 9 , LOW ); //X轴左移一秒 digitalWrite( 10 , HIGH ); delay(1000); digitalWrite( 10 , LOW ); //稍停 delay(300); digitalWrite( 9 , HIGH ); //X轴右移一秒 digitalWrite( 10 , LOW ); delay(1000); digitalWrite( 9 , LOW );
servo1.write( 130 ); //舵机伸缩移动 delay(300); servo1.write( 87 ); delay(300); /**************************** 第四步 *****************************/ // digitalWrite( 5 , LOW ); //Z轴下移一秒 // digitalWrite( 6 , HIGH ); // delay(1000); // digitalWrite( 6 , LOW );//稍停 // delay(300); digitalWrite( 5 , HIGH ); //Z轴上移一秒 digitalWrite( 6 , LOW ); delay(1000); digitalWrite( 5 , LOW );
/**************************** 重复第三步 *****************************/ digitalWrite( 5 , LOW ); //Z轴移至中间 digitalWrite( 6 , HIGH ); delay(1000); digitalWrite( 6 , LOW );
digitalWrite( 9 , LOW ); //X轴左右移一秒 digitalWrite( 10 , HIGH ); delay(1000); digitalWrite( 10 , LOW ); delay(300); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); delay(1000); digitalWrite( 9 , LOW );
servo1.write( 130 ); //舵机伸缩移动 delay(300); servo1.write( 87 ); delay(300); digitalWrite( 4 , LOW ); while(1) { i=digitalRead(14); //设置i为A0读取数据 j=digitalRead(18); //设置j为A4读取数据 zero(); }
}
//}
} void zero() { if(i==0) //如果触发限位A0 { digitalWrite( 9 , LOW ); //X轴停止运动 digitalWrite( 10 , LOW ); } else { digitalWrite( 9 , HIGH ); //X轴电机置位 digitalWrite( 10 , LOW ); }
if(j==0)//如果触发限位A4 { digitalWrite( 5 , LOW );//Z轴停止运动 digitalWrite( 6 , LOW ); } else { digitalWrite( 5 , HIGH ); //Z轴电机置位 digitalWrite( 6 , LOW ); } } |
电路连接说明:在下图所示的2个位置分别安装一个触碰传感器作为限位(限位:限定机械设备的运动极限位置)。
① 2个触碰传感器分别连接在Bigfish扩展板的A0、A4端口;
② 舵机连接在Bigfish扩展板的D3端口;
③ 电机连接在Bigfish扩展板的D5,D6;D9,D10。
4. 功能实现
4.1 实现思路
实现铣床模拟加工的功能。
第一步(复位):
工作台运动到X正向极限位置(控制1号电机旋转,直到工作台碰到限位的触碰传感器停止);铣头运动到Y正向极限位置(控制2号电机旋转,直到洗头碰到限位的触碰传感器停止),工作台运动到Y正向极限位置(控制4号电机);
第二步:
工作台在一号电机所在的丝杠上向-X方向运动,其中心位置与铣头的中心位置在同一平面上(控制1号电机);工作台在一号电机所在的丝杠上向-Y方向运动,其中心位置与铣头的中心位置在同一直线上(控制1号电机);铣头开始旋转(控制3号电机)
第三步:
铣头-Z方向移动,移动到2号电机所在丝杠的中间位置停止(控制2号电机);工作台在+X与-X方向各匀速移动1S的时间(控制1号电机正转与反转延迟各1s);工作台在+Y与-Y方向各移动一段距离(控制4号舵机顺时针、逆时针各旋转一定的角度);
第四步:
铣头在-Z向移动1s(控制2号电机旋转1s),暂停0.3s;洗头在+Z向移动1s(控制2号电机反向旋转1s);工作台的运动重复第三步中工作台的运动;
第五步:
复位,回到第一步中的位置。
4.2 示例程序
编程环境:Arduino 1.8.19
下面提供一个参考例程(xichuang.ino),具体实验效果可参考演示视频。
5. 资料清单
序号 | 内容 |
1 | R234-程序源代码 |
2 | R234-样机3D文件 |
【整体打包】-【R234】立式铣床-概述-资料附件.zip | 6.92MB | 下载6次 | 下载 |
|