首先感谢以下几位大佬
Klipper】调用上位机引脚控制继电器实现超低成本控制打印机电源开关
https://www.bilibili.com/read/cv16160890?spm_id_from=333.999.0.0
3d打印机端口不够用怎么办,klipper 添加香橙派gpio接口
官方文档
本文档描述了在 RPi 上运行 Klipper 并使用相同的 RPi 作为辅助 mcu 的过程。
视频如下
我使用的是香橙派zero2,首先是通过上面大佬的教程,
1,将上位机配置为一个辅助mcu
使用putty链接上位机后分别输入下面的代码
cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
这里可能会提示你输入klipper密码
sudo update-rc.d klipper_mcu defaults
然后继续输入
make menuconfig
会出现下面的界面
选择第二行
进入
再选择Linux Process
确定 按Q保存 退出
分别输入
sudo service klipper stop
make flash
等待安装完成
sudo service klipper start
照着大佬的教程,进行到这一步,但是下面的步骤无法进行,查看了官方文档,提示了
如果 klippy.log 在尝试连接时报告“权限被拒绝”错误,/tmp/klipper_host_mcu
那么您需要将您的用户添加到 tty 组。以下命令会将“pi”用户添加到 tty 组:
sudo usermod -a -G tty pi
我的提示是无法连接到host这个mcu
照着官方文档,把用户添加到tty 组,不再显示无法连接的提示
照着第二位大佬的视频 教程,香橙派中安装
gpioinfo 命令
sudo apt install gpiod
输入
sudo gpioinfo
显示如下
通过安装 wiringOP来查看香橙派zero2各对应IO口
apt update
apt install git
apt clone https://github.com/orangepi-xunlong/wiringOP
#以下编译wiringOP
cd wiringOP
./build clean
./build
#编译完成后,输入
gpio readall
显示如下
图中只有name下面PC开头的管脚可以使用,有
例如,我想利用双排针的PC9这个IO口来当下位机的电源开关,首先,查到对应PC9的gpio口是73,然后查看到klipper中对应芯片gpiochip0中只有32条line,查看到gpiochip1中有288条 line,包含了我需要的gpio口73,所以在printer.cfg中这样写
#####################################################################
# 电源控制
#####################################################################
#继电器控制引脚设置
[mcu host]
#serial: /usr/local/bin/klipper_mcu #调用mcu
serial: /tmp/klipper_host_mcu
[output_pin ATX]
pin: host:gpiochip1/gpio73 #这个就是PC9的gpio,
#控制引脚电平,高电平为 1
value: 1
shutdown_value: 1
#电源开启
[gcode_macro M80]
gcode: SET_PIN PIN=ATX VALUE=1
#电源关闭
[gcode_macro M81]
gcode: SET_PIN PIN=ATX VALUE=0
保存重启后,就会出现
分别点击M80 打开下位机电源,M81关闭下位机电源