跳转至

Klipper入门


创建日期:2024-06-23 | 更新日期:2024-06-23

注意💡: python2.7的代码开头需要加入字符编码声明,避免发生 SyntaxError: Non-ASCII character '\xe5' 错误🙅

Python
1
# -*- coding: utf-8 -*-

SSH(远程通信)推荐

一款国产的SSH软件,相较于需要扎实的 Linux 基础的ssh使用习惯 这款软件只需要输入对应的ip地址、用户名、密码等信息即可使用 支持鼠标对文件进行直接操作

IDE(集成开发环境)推荐

这是一款集多种编程语言,如C、C++、C#、Python、Java等的优质编译器。 通过安装扩展(Extension)插件,兼容不同编程语言以及框架的开发。

Discord(klipper社区)

官方推荐的社区,在这里可以与klipper开发者探讨关于一些bug的解决方案, 以及改进和贡献的内容。

上位机(树莓派)

OctoPrint是一个开源的3D打印机控制软件,它允许用户通过网络浏览器远程监控和控制3D打印机。它提供了许多功能,如实时打印监控、温度控制、文件管理、切片等。OctoPrint旨在取代3D打印机上的内置控制面板,提供更直观和强大的用户体验。

OctoPi是一个为树莓派(Raspberry Pi)优化的OctoPrint发行版。它是一个完整的操作系统镜像,包含了预配置的OctoPrint以及所有必要的支持软件,使得用户可以轻松地将树莓派变成一个专门的3D打印机控制器。OctoPi基于Raspbian(树莓派的官方操作系统),并针对3D打印机的使用场景进行了优化。

Moonraker(添加Http接口)

使用Server.register_endpoint()函数添加新的接口url:

Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class KlippyAPI(APITransport):
    def __init__(self, config: ConfigHelper) -> None:
        self.server = config.get_server()
        self.klippy: Klippy = self.server.lookup_component("klippy_connection")
        self.eventloop = self.server.get_event_loop()
        app_args = self.server.get_app_args()
        self.version = app_args.get('software_version')
        # Maintain a subscription for all moonraker requests, as
        # we do not want to overwrite them
        self.host_subscription: Subscript = {}
        slef.subscription_callbacks: List[SubCallback] = []
        slef.server.register_endpoint("/printer/probe_query", RequestType.POST, self._gcode_probe_query)

        # Resgister GCode Aliases
        self.server.register_endpoint(
            "/printer/print/pause", RequestType.POST, self._gcode_pause
        )

以及相应的响应函数_gcode_probe_query:

Python
1
2
async def _gcode_probe_query(self, web_request: WebRequest)-> str:
        return await self._gcode_probe_query()

与klipper通信说明

  • 若要与klipper通信,需要调用_send_klippy_request函数,制定klipper中对应的接口名“probe_query/query”。

  • 并在klipper中调用webhooks的register_endpoint函数定义接口,接口名与Moonraker中的接口名对应,同时制定响应函数。

  • 在响应函数中可以调用web_request的send函数给Moonraker返回数据。

事件响应

  • 使用Server的register_event_handler函数注册事件,指定事件名和回调函数。

  • 调用Server.send_event函数触发事件,需要指定事件名和参数

Debian_11 安装

配置阿里源镜像

Bash
1
vim /etc/apt/sources.list

将下面的代码写入上面的文件中

Bash
1
2
3
4
5
6
deb http://mirrors.aliyun.com/debian stable main contrib non-free
deb http://mirrors.aliyun.com/debian stable-proposed-updates main contrib non-free
deb http://mirrors.aliyun.com/debian stable-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable-proposed-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable-updates main contrib non-free

安装Klipper | Moonraker

Bash
1
2
3
4
5
6
7
su klipper  # 切换用户
cd ~        # 切换根目录
git clone https://github.com/dw-0/kiauh.git     # git下载kiauh脚本
git clone https://github.com/zm112/kiauh.git    # git下载kiauh脚本
./kiauh/kiauh.sh
# 运行脚本(无报错)表示安装成功
# 右侧显示Not installed!表示未安装内容