ハードウェアからサーバ・アプリまでワンストップで開発

CNCを快適に使うためにセットアップした内容をまとめました。
現在は以下の構成で使用しています。

CNC本体

SainSmart Genmitsu CNCルーター3018-PRO DIYキット,オフ・ライン・コントローラー・モジュール付き
組み立てから初期動作までの過程は以下のエントリーにあります。

CNCがやってきた

 

セットアップした内容

快適に利用するために行った内容は以下5点です。

  1. CNCソフトの変更
  2. 集塵機能
  3. 稼働中の映像をライブストリーミング
  4. 粉塵対策
  5. ライトアップ

1.CNCソフトの変更

付属のCDにオープンソースのGRBLコントローラー「candle」が入っていました。
このソフトは使い勝手は悪くはないのですが、CNCとPCが物理的に接続されている必要があります。

しかし、この方式は以下のような点で大変不便です。

  • ノートPCが粉塵で汚れる
  • 加工中は加工機のすぐそばでPC作業しなくてはいけない(自分に粉塵がかかる)
  • 加工中にwindowsアップデートが発生すると途中でPCがシャットダウンされ、加工途中で止まる
  • メインPCがノートPCではないため、加工ファイルをノートPCがアクセスできる場所に置き、ノートPCから加工命令を出さなくてはいけない

加工中はそばを離れてはいけないのは正しいのですが、これはちょっと辛すぎます。

ということで、cncjsを使うことにしました。
cncjsはCNCへの操作をブラウザから行えます。これをraspberry piにインストールしCNCと接続した状態にしておきます。これで同じネットワーク内にあるブラウザが使える機器からならばCNCを自由に操作できます。
このようにして、普段はメインPCから加工ファイルを投入し、加工機の調整コントロールはタブレットから行っています。

2.集塵機能

ここで使用する掃除機に強い吸引力は不要です。妥当そうなスペックで探してみつけた以下の掃除機を使用します。

電源の用意

この掃除機は車内用清掃用で、電源コネクタがシガーソケットにささるようになっています。使用に当たり、このコネクタを変更し、掃除機に必要な電源を用意します。
この電源には使用していないPC電源を改造したものを使います。

電源箱の設計

CNC本体を動かすのは24V電源、掃除機を動かすのはPC電源、CNCをコントロールするアプリが動いているのはraspberry piとCNCの周辺機器が増えてきました。
加工機周りはすっきりさせたいので、これらを一つにまとめた電源箱として設計します。
以下の図内の赤い箇所が電源箱に収める範囲です。

電源箱の外装

箱の外装はFreeCadで設計しました。レーザーカッターでMDFをカットしたものを貼り合わせています。

電源箱の配線

電源箱の裏側の端子台からCNCコントロールボード、掃除機が接続できるように、電源箱内を配線します。
PC電源からはraspberry piのための電源、掃除機を動かすための電源をとります。図の中のPC電源からでている線はもともとPC電源内からでている線を使用しています。

背面

配線を終えて掃除機を稼働させた

掃除機のPWM

掃除機の強弱を調整する機能を追加します。
掃除機内のモーターをPWMで制御します。この制御をcncjsが稼働しているraspberry piに兼任させることにしました。
掃除機をコントロールする部分はWebAPIにし、掃除機のコントロールUIから操作命令を受け取るように作成しました。
掃除機のコントロールUIはCNCコントロールソフトのカスタムウィジェットとして組み込みます。
カスタムウィジェットはcncjsが提供しているボイラープレートを利用して作ります。

厳密ではないですが概要図です。

ブラウザ上の掃除機ウィジェットから吸引力(図では40%)のスライダーを動かすと、raspberry pi上の掃除機APIにその値が送信されます。
掃除機APIは受信した値(40%)で掃除機が動作するように、トランジスタのつながるraspberry piのピンへ出力を調整します。
結果、40%分の電流が掃除機に流れ、掃除機が40%のパワーで動きます。

3.カメラを使った切削中のライブストリーミング

CNCのそばに行かなくても稼働状態を簡単に確認できるようにします。
Webカメラをraspberry piに取り付けて、撮影した内容をストリーミングします。
カメラのストリーミングは以前流しそうめんのエントリーで使用したMJPEG-Streamerを使います。
cncjsにはコントロール画面上に組み込めるカメラウィジェットが用意されています。このウィジェットにセットアップしたストリーミングURLを登録するだけで一画面でCNCの稼働状態を把握することができます。

4.粉塵対策

2.で集塵機を取り付けましたが、完全に削りかすがなくなるわけではありません。吸引されなかった削り粉が案外まわりに舞っているらしく、CNCの少し離れた場所でも木屑がほこりのようにたまっています。木くずならまだましですが、レジンのようにさらに軽い材料だとかなり広範囲に飛び散ります。対策としてCNCにカバーを取り付けることにしました。

内側にはコルクボードを張り付けてみました。

5.ライトアップ

ケース内にライトを取り付けます。電源は電源箱の端子台から空いている12Vを使用します。

ライトカバーを付けて、配線しました。

以上、CNCを快適に使えるまでのセットアップでした。詳細は以下のエントリーをご覧ください。

CNC電源箱の作成1

CNC電源箱の作成2(コントロールボックスの組立)

CNC電源箱の作成3(コントロールボックスの配線)

中華掃除機の改良1(掃除機を動かすと電線に熱が発生してしまう対応)

中華掃除機の改良2(掃除機をPWMでコントロール)

中華掃除機の改良3

CNC電源箱の作成4

最後に

弊社はハードウェアの関係するウェブシステムを得意としております。
今回はオープンソースのcncjsに掃除機操作ウィジェットとウェブストリーミングウィジェットを追加しました。
cncjsはCNCに特化したアプリケーションですが、弊社では幅広いデバイスに対応可能なIoTプラットフォーム「DeviceConsole」をサービス予定です。
気になる方はお問い合わせまでご連絡ください。

最近のエントリー

最近のできごと

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)