Raspberry Pi 3を用いた総合制御計画 <モータードライバ編>

Raspberry Pi 3を用いた総合制御計画 Part3

こんにちは! 楓@天文研究会だよ。

前回はこちらから

ラズベリーパイでプラネタリウムを改修するという目的のために動き出したある大学生の物語。Part2。実は地味に需要のあるデスクトップ環境の導入。

ステッピングモーターを動かすよ。何故か説明書が付属しなかったから、似たような機械の説明を必死に読み解いていたよ。

回路の文字を読んでいれば大まかな意味は解るとはいえ、物が違うと挙動が違うから本当に大変だったね。

スポンサーリンク




ステッピングモーターの購入

Longruner NEMA17 ステッピングモーター+ドライバーコントローラー
+Nema17取付ブラケット+M3 ネジ 9V-40V CNC単軸 2位相4位相(4/6/8線) 3Dプリンター用 LD09

別に何でもいいよ。適当に選んで買ったよ。

ただし、今回の楓みたいにどう使えばいいのかもわからないものは買わないほうが賢明だね。

ついでに言うと、AmazonよりもAliExpressのほうが安かったよ。知ってた。

DC電源での給電が必要だよ。9-40Vって書いてあったね。

流石にラズパイの5Vじゃ動かせないよ。

ノートパソコンのACアダプタを壊してつなげればちょうどよさそうだね。

説明書がなかったので調べた結果判ったことをまとめるよ。

  • ENA+にhighで動作停止
  • DIR+にhigh or lowで方向変更
  • PUL+にパルスで回転

他のつなぎ方は商品ページの画像の通り。

時々、基盤の文字と実際の回路が違うことがあるからちゃんと動作確認しようね。

動作準備

もうsshのつなぎ方は省略するよ。Part1を見てね。今回はxを飛ばさないよ。

$ sudo apt-get update
$ sudo apt-get install pigpio
$ sudo pigpiod

pigpioはGPIOピンを制御するためのライブラリだよ。pythonとCに対応しているよ。

まあ今回の場合は、GPIOをコマンド制御できるから使うんだけどね。

判らない人向けの解説

pigpioをインストールしただけではGPIOピンは動かないよ。

これをためのコマンドがsudo pigpiodだよ。毎回起動するたびに実行しないといけないよ。

面倒なら起動時実行のスクリプトに書き加えておくようにね。

コマンドについてはこのページを読むと判るよ。

Raspberry Pi Reg. C GPIO library and Python GPIO module and shell command utilities to control the GPIO, including SPI, I2C, and serial links.

動作検証

GPIOとモータードライバとステッピングモーターと電源を繋いで動作を確認するよ。

後方のDELLノートはssh用のLinux Mintだよ。気にしないでね。

モータードライバ―の上にラズベリーパイが載ってるよ。コンパクトでいいね。

ENA+をPin 3(GPIO2)に、DIR+をPin 5(GPIO3)に、PUL+をPin 12(GPIO18)に。

ENA-, DIR-, PUL-は全部GND。繋げてればどこでもいいかな。

PUL+がGPIO18なのは、ここが連続パルスを出力できるからだよ。

$ pigs w 2 1
$ pigs w 3 1
$ pigs servo 18 1500
$ pigs w 2 0

ターミナルでこのコマンドを入力して動かすよ。

最初にGPIO2をHighにすることで作動を防止したよ。

次にGPIO3をHighにすることで回転方向を決めるよ。初期値もHighだけどね。

続いてGPIO18からPWMを出力するよ。

で、最後にGPIO2をLowにして回りだしたら成功だね。

難なく終わったよ。今はこれでいいことにするよ。

まとめ

あとはプログラムを書いていくだけだね。面倒で仕方がないけれども。

Pythonで書くからプログラマーでなくても簡単に作れると思うんだけど協力者いないかな。

そもそもメンバーを集めてない自分が悪いか。

スポンサーリンク