中华DIY论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5664|回复: 1
打印 上一主题 下一主题

树莓派数控

[复制链接]

该用户从未签到

1

主题

1

帖子

2043

积分

金牌会员

Rank: 6Rank: 6

积分
2043

medal5medal6medal7medal8medal9medal10

跳转到指定楼层
楼主
发表于 2022-2-5 13:38:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 爱好者cnc 于 2023-5-3 14:41 编辑

   
      Raspberry Pi(中文名为“树莓派”,简写为RPi),只有信用卡大小的微型电脑,其系统基于Linux,受众多计算机发烧友和创客的追捧。LinuxCNC软件是控制数控机床专业软件,它可以驱动铣床、车床、3D 打印机、激光切割机、等离子切割机、机械臂、六足机器人等。许多CNC爱好者很早就希望能在树莓派上运行,虽然都是Linux系统,但还是要会编译软件,使不会计算机语言的不能如愿。直到今年LinuxCNC2.81版本出来,软件封装好了树莓派系统,使数控爱好者又多一个运行环境。
     下面介绍一下LinuxCNC如何在树莓派上运行。
首先到LinuxCNC官方网站下载LinuxCNC 2.8.1 Raspberry Pi OS,用Win32DiskImager软件烧写到SD卡上,把SD卡插入树莓派上,打开树莓派电源,第一次进入软件会提示设置,选中文,进入桌面就是中文的了。进入桌面点左上角的树莓LOGO,下拉菜单找到CNC,点开StepconfWizard,进行软件设置。
根据向导一步一步,主要参数还要根据自己机器设置。也可以完成后到文档中改数据。
设置完成后,桌面上会生成一个快捷方式和一个文件夹,但快捷方式现在不能直接运行,因为我们设置生成的是并口端口,树莓派现在运行会出错。
打开文件夹,里面有几个文件,主要看后缀为HAL和INI文件,INI文件是机器的机械参数,爱好者都明白,不多说,重要的是HAL文件,HAL文件也就是驱动文件,原是驱动并口的,现在要为改树莓派的GPIO口,不然软件打不开。
看一下原始HAL文件
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hal_parport cfg=”0 out”
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd-rpm     <= spindle.0.speed-out
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-cmd-rps     <= spindle.0.speed-out-rps
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-at-speed    => spindle.0.at-speed
net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir            => parport.0.pin-03-out
net ystep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir            => parport.0.pin-05-out
net zstep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir            => parport.0.pin-07-out
LPT hal_parport是并口驱动,现在要改为树莓派端口GPIO驱动。我把步进电机XYZ轴脉冲方向定义为
GPIO  xstep,29,xdir,31, ystep,32,ydir,33, zstep,35,zdir,37
loadrt Hal_parport cf=”0 out”就是告诉HAL加载驱动的时候默认是为LPT ,hal_parport是驱动的名字,这里我们改一下树莓派驱动的名字,cf=”0 out”是输出端口。
首先,我们必须确定 3 个轴的输出引脚,每个轴有 2 个 step 和 dir 引脚,因此我们需要 6 个用于步进驱动器的输出引脚。
树莓派 指定 26 个输出引脚的顺序如下:
RPi_gpios[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22 , 21, 23, 24, 25, 26, 27 };
RPi_pins[] = {3, 5, 7, 29, 31, 26, 24, 21, 19, 23, 32, 33, 8, 10, 36, 11, 12, 35, 38, 15, 40, 16, 18 , 22, 37, 13 };
根据这个表规定使用为1,不使用为0,转换为二进制是 1000000100000110000011000,转换10进制是16911384
我们把loadrt hal_parport cf=”0 out”转为loadrt hal_GPO dir=16911384(hal_gpio 的驱动程序是 GPIO 文件)。dir=16911384 声明 GPIO 的输出引脚。 line pets parport.0.reset-time 5000这行我们删除。loadrt stepgen step_type=0,0,0这一行是 step/dir 类型中 step 的输出脉冲类型,我们保持原样。 编辑后我们得到loadrt hal_gpio dir=16911384 loadrt stepgen step_type=0,0,0
在文件中找到所有字母parport.0替换为 hal_gpio
找到这一行addf parport.0.reset base-thread去掉了。修改后:
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES kins=trivkins tp=tp
loadrt hal_gpio dir=16911384
loadrt stepgen step_type=0,0,0
addf hal_gpio.read base-thread
addf stepgen.make-pulses base-thread
addf hal_gpio.write base-thread

根据前面树莓派3轴步进电机定义pin 29 作为 xstep,31 作为 xdir,32 作为 ystep,33 作为 ydir,35 作为 zstep,37 作为 zdir。

转换为树莓派GPIO端口驱动:
net xstep => hal_gpio.pin-29-out
net xdir => hal_gpio.pin-31-out
net ystep => hal_gpio.pin-32-out
net ydir = > hal_gpio.pin-33-out
net zstep => hal_gpio.pin-35-out
net zdir => hal_gpio.pin-37-out
保存文件就可以运行。
软件可以正常打开运行后,就可以做接口板了,因为树莓派电源是3.3V, 驱动电流有限,输入和输出最好有光耦隔离。下面是我做的一个接口板。
树莓派体积小,完全可以无头(不要显示器,不要键盘鼠标)运行,还可以手机安装VNC软件,手机做屏幕,做成脱机控制器。
此文只是简单介绍一下,起个抛砖引玉作用。在树莓派下完全可以运行LinuxCNC ,LinuxCNC 是免费开源软件,实时稳定,功能强大,爱好者就多一个数控系统了。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2022-3-28 17:22
  • 签到天数: 37 天

    [LV.5]常住居民I

    0

    主题

    47

    帖子

    2463

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2463

    medal5medal6medal7medal8medal9medal10

    沙发
    发表于 2022-2-16 09:43:43 | 只看该作者
    这个不错,直接出成品就好了。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    中华DIY论坛QQ官群:205778249

    Archiver|手机版|小黑屋|中华DIY论坛  

    GMT+8, 2024-12-22 20:09 , Processed in 2.832789 second(s), 34 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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