2012/07/21

BeagleBoneタンク モータ制御

BeagleBoneタンクのモーター制御を行うために、モータードライバを使用するのですが、モータードライバごとに前進・後退・停止の3通りの信号を入力しなければなりません。
BeagleBoneは約60本のGPIOピンを持っているので、モータードライバごとに2本のGPIOピンを使用して制御信号を送ります。



GPIOピンを使用するには、
  • ピンのモードを変更する(omap_mux)
  • ピンをexportする
  • 入出力の方向を決める
  • 出力・入力を行う
という手順をピンごとに行う必要があります。
毎回手順を実行するのは面倒なため、GPIO操作用のクラスを作りました。
ソースコードはGithubに保存してあります。


I use motor driver IC (TOSHIBA TA7291P) to control the BeagleBone tank.
Motor driver needs two control signal. Because beaglebone has many GPIO pins, I use it to control each motor driver.

To use GPIO pin on Ubuntu , we have to do below step per each pin.
  • change omap_mux
  • export pin
  • decide signal direction
  • input/output signal
It is time-consuming steps to do by hand, so I made  a GPIO helper class.


Github:



GPIOが手軽に操作できるようになったので、beagleboneクラスを使用してBeagleBoneTankDriverクラスを作りました。
ひとまず前進、後退、左回転、右回転を実装しています。今のところ与えた命令を何秒も実行する形になっているので、タイマーをつけて一定時間経過後は停止するように変えたほうが良いかもしれません。









あとは移動コマンドを送受信するコードを作れば、ひとまず動く形になると思います。
ではまた。

0 件のコメント:

コメントを投稿