爱好者cnc 发表于 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,进行软件设置。https://xyzdiy.com/wp-content/uploads/2021/08/1.jpg根据向导一步一步,主要参数还要根据自己机器设置。也可以完成后到文档中改数据。https://xyzdiy.com/wp-content/uploads/2021/08/2.jpghttps://xyzdiy.com/wp-content/uploads/2021/08/3.jpghttps://xyzdiy.com/wp-content/uploads/2021/08/4.jpghttps://xyzdiy.com/wp-content/uploads/2021/08/5.jpg设置完成后,桌面上会生成一个快捷方式和一个文件夹,但快捷方式现在不能直接运行,因为我们设置生成的是并口端口,树莓派现在运行会出错。打开文件夹,里面有几个文件,主要看后缀为HAL和INI文件,INI文件是机器的机械参数,爱好者都明白,不多说,重要的是HAL文件,HAL文件也就是驱动文件,原是驱动并口的,现在要为改树莓派的GPIO口,不然软件打不开。https://xyzdiy.com/wp-content/uploads/2021/08/6.jpg看一下原始HAL文件loadrt KINEMATICSloadrt EMCMOT base_period_nsec=BASE_PERIOD servo_period_nsec=SERVO_PERIOD num_joints=JOINTSloadrt hal_parport cfg=”0 out”setp parport.0.reset-time 5000loadrt stepgen step_type=0,0,0addf parport.0.read base-threadaddf stepgen.make-pulses base-threadaddf parport.0.write base-threadaddf parport.0.reset base-threadaddf stepgen.capture-position servo-threadaddf motion-command-handler servo-threadaddf motion-controller servo-threadaddf stepgen.update-freq servo-threadnet spindle-cmd-rpm   <= spindle.0.speed-outnet spindle-cmd-rpm-abs <= spindle.0.speed-out-absnet spindle-cmd-rps   <= spindle.0.speed-out-rpsnet spindle-cmd-rps-abs <= spindle.0.speed-out-rps-absnet spindle-at-speed    => spindle.0.at-speednet xstep         => parport.0.pin-02-outsetp parport.0.pin-02-out-reset 1net xdir            => parport.0.pin-03-outnet ystep         => parport.0.pin-04-outsetp parport.0.pin-04-out-reset 1net ydir            => parport.0.pin-05-outnet zstep         => parport.0.pin-06-outsetp parport.0.pin-06-out-reset 1net zdir            => parport.0.pin-07-outLPT hal_parport是并口驱动,现在要改为树莓派端口GPIO驱动。我把步进电机XYZ轴脉冲方向定义为 GPIOxstep,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 个输出引脚的顺序如下:https://xyzdiy.com/wp-content/uploads/2021/08/7.jpgRPi_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进制是16911384https://xyzdiy.com/wp-content/uploads/2021/08/8.jpg我们把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 base_period_nsec=BASE_PERIOD servo_period_nsec=SERVO_PERIOD num_joints=AXES kins=trivkins tp=tploadrt hal_gpio dir=16911384loadrt stepgen step_type=0,0,0addf hal_gpio.read base-threadaddf stepgen.make-pulses base-threadaddf 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 保存文件就可以运行。https://xyzdiy.com/wp-content/uploads/2021/08/9.jpg软件可以正常打开运行后,就可以做接口板了,因为树莓派电源是3.3V, 驱动电流有限,输入和输出最好有光耦隔离。下面是我做的一个接口板。https://xyzdiy.com/wp-content/uploads/2021/08/10.jpg树莓派体积小,完全可以无头(不要显示器,不要键盘鼠标)运行,还可以手机安装VNC软件,手机做屏幕,做成脱机控制器。https://xyzdiy.com/wp-content/uploads/2021/08/11.jpg此文只是简单介绍一下,起个抛砖引玉作用。在树莓派下完全可以运行LinuxCNC ,LinuxCNC 是免费开源软件,实时稳定,功能强大,爱好者就多一个数控系统了。

猎杀美女 发表于 2022-2-16 09:43:43

这个不错,直接出成品就好了。
页: [1]
查看完整版本: 树莓派数控

中华DIY论坛QQ官群:205778249