デモンストレーション機能が欲しい! |
模型の展示会等で、動く戦車をデモ走行してると、けっこう人が集まってきます。 逆に、動かさずに展示してるだけでは、興味をもって見る人もほとんどいない..... 動く模型はなるべく動いてる状態で展示したいが、1日・2日の展示会で、一人でずっと 動かし続けるのは大変...食事も行けないし、トイレも.....(^^;; と、いう訳で、操縦者が不在でも、勝手に動くようにプログラムすれば...... | |
デモンストレーションプログラムの違い |
早速、製作したタイガー1のPICのプログラムをデモ可動付きに変更! 砲塔旋回・砲身上下・発光・砲身後退・音の各動作は、すでにプログラムされてるので、 それぞれの動作を適当に組み合わせて実行すれば簡単.......... と、思ったら.....簡単じゃない....(^^;; 通常のプログラムは、複数の動作を同時に出来るように(走行しながら砲塔旋回す出来るとか)、アンプやサーボ全てに同時に命令(パルス)を送ってます...それもすごく短い周期で.. このプログラムをそのままデモ用に使おうとすると、動いていてもいなくても常に全パルスを出力しなくてはいけないので、プログラムは膨大になってしまいます。 実際のデモンストレーションでは、キット自体が走行して動き回る事は出来ないので、砲塔旋回・砲身上下・発砲・機銃の動作になり、それも連続ではなく休み休みになります。 | |
デモンストレーション |
例えば、 <デモンストレーションスタート> 1.砲塔40度右旋回 2.5秒停止 3.砲身15度上に 4.3秒停止 5.大砲発射! 6.10秒停止 7.5秒間機銃掃射 8.10秒停止 9.砲塔50度左旋回 10.5秒停止 11.スタートへ |
左のように、実際にデモしている時は、停止してる時間が長いので、常に全パルスを出力していてはあまりにも無駄が多すぎる。 結局、動かしたい時に動かしたい動作だけ動かせる(なんか変な日本語(^^;;)ように、各動作を独立したプログラム(サブルーチン)にしておいて、個々の動作を単独で動かす事が出来るようにプログラムを変更する必要がある。 |
サブルーチンの作成 | 砲塔左旋回<SENKAIL> |
MOVLW 20 ;砲塔の旋回時間 CALL SENKAIL ;旋回開始 |
砲塔右旋回<SENKAIR> |
MOVLW 20 ;砲塔の旋回時間 CALL SENKAIR ;旋回開始 | |
砲身上下<JYOGE> |
MOVLW 135 ;上下停止位置の指定(100〜200) CALL JYOGE ;砲身上下開始 | |
発砲<TAIHO> | CALL TAIHO ;発砲! | |
機銃<OTOSUB> |
MOVLW 5 ;時間 CALL OTOSUB ;機銃 | |
停止<TIM90> |
MOVLW 7 ;停止時間 CALL TIM90 ;停止中 | |
プログラムの製作 |
上のサブルーチンが出来れば、後はそれぞれのサブルーチンを適当に繋ぐだけ! 実際に作ったプログラムはこれ→「t1c.asm」 通常のモードで動作するか、デモンストレーションモードに入るかは、電源を入れたときに、左右スティックが180以上(右に倒れていたら)入るようになっています。 一度デモモードになったら、受信機の信号は無視されるので、送信機の電源を切っても問題ありません(笑) (デモモードを解除するときは、一度電源を入れなおす。) |
更新日2000.12.8