作成した駆動部の基板をミニ四駆へマウントしましたので報告いたします.
もとのミニ四駆では,電源を入れればモータが回りだす仕組みとなっていますが,今回はモータドライバで制御するため,一部改造をしてモータへの電気の供給をモータドライバ経由にするようにしなければなりません.また,マイコン用電源も確保するため,電池に接触する電極からリードを出しました.具体的には,まず,下の図のようにモータの電源端子と接触する電極をカットし,そこからリードを出しました.このリードにより電気をマイコンとモータドライバへ供給します.


もともとは,これらの電極とモータの電極が接触するようになっていたので,その個所をニッパで切り取りました.

次に,モータの電極からリードを出しました.

モータをマウントした様子を下に示します.シャーシの隙間を使ってリードを出しています.

モータの上にはそれを押さえつけるためのシャーシがありますので,それの隙間からリードを出しました.


最後に,基板の付いたシャーシと本体のシャーシとを接続しました.試作のため,リードの長さがかなりおかしなことになってしまいました.今回の場合,リードはおよそ20[cm]必要であったようです(←備忘録として書き残しました).


おまけとして,ポリカーボネート製のボディを付けてみました.若干,コネクタ付近がボディと干渉しているようでしたので,最終版の基板では修正をしておきました.というか,そもそもこのボディを取り付けるか今もなお悩んでいます.その理由は,赤外線受信モジュールがこのボディのために正しく動作しなくなるのではと思っているからです.これから赤外線通信をするプログラムを書いていきますが,変な挙動をするようであれば,このボディは取り付けないこととします.

とりあえず,モータドライバによりミニ四駆が動くか確かめるため,下に示す簡単なプログラムを書きました.
{code}#define _XTAL_FREQ 4000000
__CONFIG( FOSC_HS & /* ハイスピード水晶発振子 */
WDTE_OFF & /* ウォッチドックタイマ-オフ */
PWRTE_OFF & /* パワーアップタイマ-オフ */
MCLRE_ON & /* ポートAビット5端子をマスタークリア(RESET)端子として使う */
BOREN_OFF & /* ブラウンアウトリセット-オフ */
CPD_OFF & /* EEメモリを保護しない */
CP_OFF); /* コードを保護しない */
void main(void) {
TRISC1 = 0; /* LED1用端子を出力にする */
TRISC2 = 0; /* LED2用端子を出力にする */
RC4 = 0; /* モータドライバに接続されている端子の初期化 */
RC5 = 0; /* モータドライバに接続されている端子の初期化 */
TRISC4 = 0; /* モータドライバに接続されている端子を出力にする */
TRISC5 = 0; /* モータドライバに接続されている端子を出力にする */
TRISC4 = 0; /* モータドライバに接続されている端子を出力にする */
TRISC5 = 0; /* モータドライバに接続されている端子を出力にする */
RC1 = 0; /* LED1点灯 */
RC2 = 1; /* LED2消灯 */
__delay_ms(1000); /* 1秒待つ */
RC2 = 0; /* LED2点灯 */
/* RC4とRC5がともに1の時⇒ブレーキ */
/* RC4が0,RC5が1の時⇒前進 */{lang}c{highlight}{end-code}
RC5 = 1; /* デューティ比70%の信号をモータドライバへ */ while(1) { RC4 = 1; __delay_ms(10); /* 10[ms] */ RC4 = 0; __delay_ms(7); /* 7[ms] */ } } |
上記プログラムを動作させた様子を動画にしましたので,ご覧ください.デューティ比70%だとこの程度のスピードに抑えられるみたいです.なお,今回のNEXT2012では,ミニ四駆用コースを使わない予定なので,あまり速すぎると会場の壁にミニ四駆が激突し破壊してしまう危険性があります.そのため,ある程度スピードは抑えたものにする予定です.
{youtube}YZiva3PQOok{/youtube}