戦車プログラムの作成

戦車クラスの作成

プログラミング回です。

今まで実験してきたモノを、戦車クラスとしてまとめます。

言語はもちろんPythonです。とりあえず2.7系です。

とりあえず採用する機能は、
– 走行(DCモーター)
– 砲塔旋回(ステッピングモータ)
– 砲身制御(サーボモータ)

です。
ソースを直書きするのも良くないので、GitHubに置いています。

GitHub - kyo-kato/raspi
Contribute to kyo-kato/raspi development by creating an account on GitHub.

tankフォルダ配下が今回のテーマです。

  • tank.py
    • メインクラスです。モジュール呼び出して実行するだけです。
  • parts/__init__.py
    • モジュール化のお決まりクラスです。中身はありません。
  • parts/cannon.py
    • 砲身制御クラスです。サーボモータを制御しています。砲撃もここでいい気がしています。用意するインタフェースに改善の余地ありです。
  • parts/fire.py
    • 砲撃クラスです。単にピンをON/OFFするだけです。LEDやスイッチングの制御を行おうと考えています。
  • parts/track.py
    • 履帯クラスです。2つのDCモータを制御して走行を制御するクラスです。
  • parts/turret.py
    • 砲塔旋回クラスです。ステッピングモータを制御し砲塔を回転させるクラスです。

普段使ってるJavaとは、勝手も違ってくるので新鮮です。
Javaで行末セミコロン省いてビルドエラーする位には馴染んできています。クラスを作った際の、selfが手間ですかね・・・。

各機能は parts配下に追加し、tank.pyで動作確認というイメージです。

さて、いざ実動作確認と行きたかったのですが、まともに動けませんでした・・・。

今の全部載せ戦車がこんな感じになっています。
戦車

見るからにケーブルがごった返していますが、このケーブルが邪魔をして砲塔旋回が出来なかったり、重量で進めなかったりと、前回よりも課題が増えてしまいました。

配線をコンパクトにしたり、必要なケーブルは長めにとる等して、対応が必要かもしれません。
ブレッドボートと、ステッピングモータが上下関係にある限り、
砲塔旋回するときに、ケーブルを引っ張りますので、どれだけ改善しても、
一回転の砲塔旋回は無理なんですが・・・
現在最下層はスペースありませんので、車体をさらに大きくするしか方法がありませんが、モータもなかなかギリギリな感じで・・・

一回転は無理にしても、左右60度くらいは回せるよう改善していきたいところです。

平日は秋月商店等に通えませんので、お試しできる期間が開いてしまうのも難しいところです。

コメント

タイトルとURLをコピーしました