极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1974|回复: 0

机器人制作开源方案 | 立式铣床模型

[复制链接]
发表于 2023-7-3 11:09:24 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2023-7-3 11:09 编辑

1. 功能说明
       铣床主要是指用铣刀在工件上加工多种表面的机床,本文示例将通过程序控制模拟铣床的运动效果--模拟铣床进行加工时各个结构的运动方式。铣床的运动主要包括:主轴的旋转运动、立铣头的上下进给运动、工作台的前后左右进给运动。


2. 结构说明

       该铣床的主轴旋转运动选择用电机直接驱动;立铣头的上下进给运动选择丝杠平移机构,运动稳定,且位移距离较长;工作台的左右进给运动选择丝杠平移机构,运动稳定,且位移距离较长;工作台的前后进给运动选择滑块平移机构,用于短距离的运输。


3. 电子硬件

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

主控板
Basra主控板(兼容Arduino Uno)
扩展板
Bigfish2.1扩展板
传感器
触碰传感器
电池
7.4V锂电池

电路连接说明:在下图所示的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),具体实验效果可参考演示视频。
  1. /*------------------------------------------------------------------------------------

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

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

  4.            https://opensource.org/licenses/MIT

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

  6.   ------------------------------*/

  7. #include <Servo.h>


  8. int i,j,k,l;   //定义几个变量

  9. Servo servo1; //命名一个舵机


  10. void setup() {



  11.   servo1.attach(3); //启动舵机3号口



  12.   pinMode( 14, INPUT);   //定义引脚

  13.   pinMode( 18, INPUT);

  14.   pinMode( 5, OUTPUT);

  15.   pinMode( 6, OUTPUT);

  16.   pinMode( 9, OUTPUT);

  17.   pinMode( 10, OUTPUT);

  18.   pinMode( 4, OUTPUT);



  19. }


  20. void loop() {

  21.   i=digitalRead(14);   //设置i为A0读取数据

  22.   j=digitalRead(18);   //设置j为A4读取数据

  23. //第一步

  24.   servo1.write( 130 );       //舵机置位

  25.   zero();

  26. /****************************

  27. 第二步

  28. *****************************/

  29.       if(i==0&&j==0)      //如果X轴Y轴已归位

  30.       {

  31.            //delay(2000);

  32.            

  33.            digitalWrite( 9 , LOW );   //X轴至中部

  34.            digitalWrite( 10 , HIGH );

  35.            delay(6000);

  36.            digitalWrite( 10 , LOW );

  37.    

  38.            servo1.write( 87 );        //舵机伸出

  39.            digitalWrite( 4 , HIGH );   //电机旋转

  40.            delay(1000);

  41. /****************************

  42. 第三步

  43. *****************************/

  44.            digitalWrite( 5 , LOW ); //Z轴移至中间

  45.            digitalWrite( 6 , HIGH );

  46.            delay(5000);

  47.            digitalWrite( 6 , LOW );

  48.            

  49.            digitalWrite( 9 , LOW ); //X轴左移一秒

  50.            digitalWrite( 10 , HIGH );

  51.            delay(1000);

  52.            digitalWrite( 10 , LOW );   //稍停

  53.            delay(300);

  54.            digitalWrite( 9 , HIGH ); //X轴右移一秒

  55.            digitalWrite( 10 , LOW );

  56.            delay(1000);

  57.    digitalWrite( 9 , LOW );

  58.                                  

  59.            servo1.write( 130 );     //舵机伸缩移动

  60.    delay(300);

  61.    servo1.write( 87 );

  62.    delay(300);

  63. /****************************

  64. 第四步

  65. *****************************/

  66. //   digitalWrite( 5 , LOW ); //Z轴下移一秒

  67.          //   digitalWrite( 6 , HIGH );

  68.          //   delay(1000);

  69. //           digitalWrite( 6 , LOW );//稍停

  70. //           delay(300);

  71.            digitalWrite( 5 , HIGH );    //Z轴上移一秒

  72.            digitalWrite( 6 , LOW );

  73.            delay(1000);

  74.           digitalWrite( 5 , LOW );

  75.    

  76. /****************************

  77. 重复第三步

  78. *****************************/

  79.    digitalWrite( 5 , LOW ); //Z轴移至中间

  80.            digitalWrite( 6 , HIGH );

  81.            delay(1000);

  82.            digitalWrite( 6 , LOW );

  83.          

  84.            digitalWrite( 9 , LOW );   //X轴左右移一秒

  85.            digitalWrite( 10 , HIGH );

  86.            delay(1000);

  87.            digitalWrite( 10 , LOW );

  88.            delay(300);

  89.            digitalWrite( 9 , HIGH );

  90.            digitalWrite( 10 , LOW );

  91.            delay(1000);

  92.            digitalWrite( 9 , LOW );

  93.                                  

  94.            servo1.write( 130 );     //舵机伸缩移动

  95.            delay(300);

  96.            servo1.write( 87 );

  97.            delay(300);

  98.            digitalWrite( 4 , LOW );

  99.            while(1)

  100.            {

  101.              i=digitalRead(14);   //设置i为A0读取数据

  102.             j=digitalRead(18);   //设置j为A4读取数据

  103.             zero();

  104.             }

  105.          

  106.       }

  107.      

  108.   //}



  109. }




  110. void zero()

  111. {

  112.    if(i==0)                   //如果触发限位A0

  113.       {

  114.          digitalWrite( 9 , LOW );   //X轴停止运动

  115.          digitalWrite( 10 , LOW );

  116.       }

  117.       else

  118.       {

  119.          digitalWrite( 9 , HIGH );   //X轴电机置位

  120.         digitalWrite( 10 , LOW );

  121.       }

  122.      

  123.       if(j==0)//如果触发限位A4

  124.       {

  125.          digitalWrite( 5 , LOW );//Z轴停止运动

  126.          digitalWrite( 6 , LOW );

  127.       }

  128.       else

  129.       {

  130.           digitalWrite( 5 , HIGH ); //Z轴电机置位

  131.           digitalWrite( 6 , LOW );

  132.       }

  133. }
复制代码

5. 资料下载
资料内容:

①程序源代码
②样机3D文件
资料下载地址:
立式铣床模型-概述
https://www.robotway.com/h-col-245.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-6 06:31 , Processed in 0.043678 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表