RPiのLinuxCNCでGPIOからPWMを出力
TurboCNCをHP Omnibook 600CのMSDOSで走らせるところからはじめて、その後LinuxCNCに移行し、スピンドルその他を改良して取り敢えず使えているところで改造をストップしています。
ちょこっとした基板を作るのが目的だったのでそこそこの精度が出ればOKという位には仕上がったと思います。基板専用、POM、木の切削位が限界です。
ちゃんと計算はしていませんが、、モーター類はオークションで購入、分解したプリンタのものを使用したりして総額は2万円代半ば位と思います。最初に持っていた工具は電動ハンドドリル、金ノコ、ドライバーとかもろもろで、わざわざ道具を用意することなく作ることを目標にしましたが、結局、どうにもならない、スピンドル用のルーター、アルミの穴あけ用の安物ボール盤などを揃えることになってしまったのが残念なところで、今はこれらは全く使用していません。
昨年の7月に、Raspberry Pi を購入し、当初はテレビに接続してネット動画再生用にと考えていましたが、微妙なパフォーマンスだったため、もっと効果的な使い道を探していました。
ARMボードで専用のGUIを作ってLinuxCNC(EMC2)を使用している方がいたので、いつかはRPiにも移植されるのではと思っていたら、picncというものが公開されました。現在このカーネルイメージを利用させていただいています。
SSHでRPiに接続し、AXIS GUIも利用可能な素晴らしいもので、これをこのまま利用させてもらえば十分以上なのですが、私の低速CNC(せいぜい150mm/min)だったらGPIOのみでいけるのではと考え現在お試し中です。
RPiとDSO |
切削基板で作った残念なDSOでキャプチャしたPWM出力(GPIO14の波形)
RPi上のLinuxCNCで100μSと1mSのスレッドを作成し、pwmgenで2KHz、デューティ60%でGPIOに出力させています。PWMといっても、10KHz/2KHzで5段階の分解能しかありませんが。