目次

メカ動作テスト

 すでにメカ部分は、制御基板を実装済みです。



 制御基板には、モータ制御回路とセンサーのLED
 モニタが載っているので、これらをテストします。

 各回路は、10ピンケーブルでマイコンやFPGAの
 電子回路に接続できるようになってます。

 まず、10ピンケーブルの仕様を見直し。

 モータ制御回路
  2個のモータにPWM波形を出力する信号ピンと
  2LEDを点灯、消灯する制御ピンがあります。
  また、トグル、プッシュの2種のスイッチの
  信号を扱えるようになっています。
  1. Vcc
  2. illeagal code detect indicator(LED)
  3. cross white line indicator(LED)
  4. mode select
  5. start trigger
  6. (no connection)
  7. left motor PWM output
  8. (no connection)
  9. right motor PWM output
  10. GND
 LEDモニタ   2種類のLEDが8個ずつ基板に実装されて   います。0出力で点灯、1出力で消灯。   信号配置は以下。
  1. Vcc
  2. (2 ^ 7) (MSB)
  3. (2 ^ 6)
  4. (2 ^ 5)
  5. (2 ^ 4)
  6. (2 ^ 3)
  7. (2 ^ 2)
  8. (2 ^ 1)
  9. (2 ^ 0) (LSB)
  10. GND
 LEDの点灯、消灯は、単純にレジスタ値  を出力してテストします。  最下層の関数は、次のように単純に記述。 #define MASKFF 0xff void test_led(UBYTE x) { PORT = x ^ MASKFF ; }  1つ1つLEDを点灯、消灯すればよいので  次のようなデータを用意し、test_led関数  に与えます。  配列の中に16進数で点灯パターン  を用意し、繰返し、test_led関数  に渡します。 typedef unsigned char UBYTE ; UBYTE patled[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01} ; UBYTE i ; UBYTE tmp ; for ( i = 0 ; i < 8 ; i++ ) { /* get LED pattern */ tmp = *(patled+i) ; /* impress */ test_led(tmp); /* wait */ delay(); }  高速動作でLEDを点滅させると目視できないので  ソフトウエアで遅延を入れます。  テストしたマシンは、以下。  ターゲットマシン(制御基板タイプA)  ターゲットマシン(制御基板タイプA)  ターゲットマシン(制御基板タイプB)  mugen2013(制御基板タイプC)  mugen2014予備マシン(制御基板タイプB)  HyperTerminalで、次のようにコマンドを与えて  モータとLEDをテストしてあります。  このテストでmugen2014マシンの制御基板タイプA  上のICおよびギアボックスに不具合があることが  わかりました。  予備マシンの制御基板タイプBを利用することにし  制御基板Aの方は、夏休み中に修理しました。  H8/3048FOne基板に接続する基板を予備として  作成したので、その上にモータドライブ回路  を載せています。  モータドライブ回路は、フォトカプラを介して  Pch−MOSFETをパルス駆動します。  ドライブICを利用しないで、ディスクリートで  組んだのは、モータへの供給電圧を考えたため。  上の基板に合わせたmugen2014のメカは、以下です。  前輪にボールキャスターを利用し、後の2輪で  操舵します。

目次

inserted by FC2 system