CNCjs 开源项目使用教程
1. 项目介绍
CNCjs 是一个功能齐全的基于 Web 的 CNC 控制器界面,支持 Grbl、Marlin、Smoothieware 或 TinyG 等多种控制器。它为用户提供了一个易于使用的 Web 界面,通过该界面可以与 CNC 机器进行交互和控制。
2. 项目快速启动
环境准备
- Node.js 14 或更高版本(推荐使用 Node.js 14)
- Git
安装 Node.js
推荐使用 Node Version Manager (nvm) 来管理 Node.js 版本。如果已经安装了 git,可以按照以下步骤安装 nvm:
git clone https://github.com/creationix/nvm.git ~/.nvm
cd ~/.nvm
git checkout `git describe --abbrev=0 --tags`
cd ..
. ~/.nvm/nvm.sh
将以下行添加到 ~/.bash_profile
、~/.bashrc
或 ~/.profile
文件中,以便在登录时自动加载 nvm:
export NVM_DIR="$HOME/.nvm"
[[ -s "$NVM_DIR/nvm.sh" ]] && . "$NVM_DIR/nvm.sh"
安装 Node.js 14:
nvm install 14
nvm use 14
升级 npm 到最新版本:
npm install npm@latest -g
安装 CNCjs
以非 root 用户身份安装 CNCjs,否则在某些平台(如 Raspberry Pi)上可能无法正确安装 serialport
模块:
npm install -g cncjs
如果要使用 sudo 或 root 账户安装 CNCjs,需要指定 --unsafe-perm
选项:
sudo npm install --unsafe-perm -g cncjs
运行 CNCjs
运行以下命令启动 CNCjs 服务器:
cncjs
在浏览器中访问 http://yourhostname:8000/
查看网页界面。
3. 应用案例和最佳实践
- 6-axis DRO:支持 6 轴数字读数器,方便监控和操作。
- 工具路径 3D 可视化:实时显示工具路径,提高加工精度。
- 多客户端通信:可以同时与多个客户端进行通信。
- 响应式视图:适应小屏幕设备,如 iPhone 5S。
4. 典型生态项目
- cncjs-widget-boilerplate:创建自定义 CNCjs 小工具的起始代码。
- cncjs-pendant-boilerplate:开发 CNCjs 挂件的基础示例。
- cncjs-pendant-keyboard:使用无线键盘或 USB 的简单挂件。
- cncjs-pendant-numpad:使用无线小键盘或 USB 的简单挂件。
- cncjs-pendant-lcd:为 Raspberry Pi 触摸显示器设计的 CNCjs Web Kiosk。
- cncjs-pendant-ps3:用于 CNCjs 的双震动 / PS3 蓝牙远程挂件。
- cncjs-pendant-raspi-gpio:基于 Raspberry Pi GPIO 的简单挂件控制。
- cncjs-pendant-tinyweb:适用于小型 320x240 LCD 显示器的小型 Web 控制台。
- cncjs-shopfloor-tablet:为生产环境中的平板电脑优化的简化 UI。