マイコンカーゲートタイマー2.1代目

全日本マイコンカーラリー大会2019でも引き続き使用します。

そのために一部プログラムの改良を行いました。

主な変更点はタイム計測の方法です。

今まではmillis()関数を用いてカウントしていましたが、今回はMsTimer2を用いたタイマー割り込みです。

OUT側とIN側でそれぞれタイムをカウントしていましたが、誤差を減らすために1つにまとめました。

下に時間に関する部分のプログラムを記載しています。

今まで

OUT側のタイム計測

void timerOUT() {

  pattern = button();

  switch (OUTTimepattern) {

    case 0:

      Otimemillis = millis();

      Otime2 = Otimemillis - Otime1;

      if (Otime2 > 999) {

        Otime1 = Otimemillis;

        Ocnts += 1;

      }

      if (Ocnts > 59) {

        Ocnts = 0;

        Ocntm += 1;

      }

      //if (pattern == RIGHT && OT > 500)

      if (OUTMainpattern == 21) {

        secondOTIME = Otime2;

        secondOcntS = Ocnts;

        secondOcntM = Ocntm;

        outTime_c = secondOTIME / 10;

        outTime_s = secondOcntS;

        outTime_m = secondOcntM;

      }

      OT++;

      OcntOUT = 0;

      break;

 

    case 2:

      OcntOUT++;

      break;

 

    case 4:

      OcntOUT++;

      Otimemillis = millis();

      Otime1 = Otimemillis;

      Otime2 = Otimemillis - Otime1;

      Ocnts = 0;

      Ocntm = 0;

      secondOTIME = 0;

      secondOcntS = 0;

      secondOcntM = 0;

      outTime_c = secondOTIME;

      outTime_s = secondOcntS;

      outTime_m = secondOcntM;

      break;

  }

}

 

今回

タイマー割込みで得た数値をOUT側とIN側の両方で使う

タイマー割込みの処理は省略

void Timer2_Int(){

  static int cnt10;

 

  InIntervalTime++;

  OutIntervalTime++;

  cnt++;

  icnt++;

  ocnt++;

 

  // 10ms周期の処理

  cnt10++;

  if ( cnt10 >= 10 ) {

    Time_c++;

    if ( Time_c > 99 ) {

      Time_s++;

      Time_c = 0;

    }

    if ( Time_s > 59 ) {

      Time_m++;

      Time_s = 0;

    }

    if ( Time_m > 9 ) {

      Time_m = 0;

    }

    cnt10 = 0;

  }

}


ダウンロード
Newstartgate5
2019年最新版です。
Newstartgate5.pdf
PDFファイル 537.3 KB

マイコンカーゲートタイマー2代目

前作に引き継いでスタートゲートタイマー制御基板を作り直しました。

前作との違いは割り込み処理を入れてなるべく同時に計測できるようにしたこと。

そして、読み飛ばしを気にしなくてよくしたことです。前回は読み飛ばしの問題がありました。

Processing側も改良してExcelで表示するためにCSVファイル出力をさせることができるようになりました。

また、コースアウトを視覚的に分かるような処理も入れました。こちらは計測に影響のないものです。

プログラムは一番下にPDFとして公開しておきます。

全日本マイコンカーラリー大会2018で使用していたゲートタイマーは今回の作品です。

もとは部活のサイトに公開していたものです。

公開元サイトはこちら

回路図

1番下の3ピンコネクタの真ん中に5Vと書かれていますが12Vの間違いです。

電源コネクタ3ピンコネクタと3ピンコネクタは画像は違いますが同じものです。

DCジャックに対応しています。(電源の3ピンコネクタの真ん中とArduinoのVinは接続されています。)

ゲートにつなぐコネクタは3ピンでも2ピンでも構いません。(3ピンの理由は名残です。)

D2とD3は外部割込み、D12とD13はサーボにつないであります。

A1とA2とA3とA4につないであるピンは使わなくても良いです。

左半分はD-subと3ピンコネクタを差し込み口から見た図です。

右半分は関係ありません。

1代目と同じ資料になります。

基板完成までの様子

基板が完成した様子です。

グルーガンで固定はしていませんが、基本的な回路は完成しました。

1回作っているだけあってすぐにできました。

のちに改良します。

前回はジャンパー線でのみ配線しましたが、今回は手を抜いて被服付きの線で配線をしました。

結構良い感じだと思います。

D-subのピンが折れたので付け替えました。

その時に手前の3ピンコネクタを基準にして2本の線を用いてそれぞれを接続していましたが、今回は負担をかけないように3本の線を用いて影響のない場所でそれぞれのパーツを接続することにしました。

D-subのピンもグルーガンで固定しました。

大分負担を軽くしたと思います。

基板に関してはこんな感じです。

PROCESSINGでCSV出力までの様子

難しかったですけどCSV出力はできました。

出力したCSVファイル

PDFに変換していますけど出力したものです。

ダウンロード
201802221631.pdf
PDFファイル 70.9 KB
ダウンロード
201802261449.pdf
PDFファイル 61.7 KB
ダウンロード
201802261457.pdf
PDFファイル 71.8 KB
ダウンロード
試走会で取ったタイム
誰が走らせたのかは分からないけどタイムを記録することはできた。
全日本マイコンカーラリー大会2018試走会タイム.pdf
PDFファイル 247.7 KB

スタートゲートタイマー完成

ゲート本体にスプレーで塗装した後に衝突による破損防止のためにスポンジを付けました。

新たに別のセンサーを取り付けるためにバーの一部を切り取ってサーボに取り付けています。

スタートゲートとしてはこれで完成です。

完成時に動作確認をして無事に動作しました。

全日本マイコンカーラリー大会でも無事に動作しました。

おまけ

ゲート2からも接続して使えるように変換基板を作りました。

画像は初期のものですが実際は配線が間違えていたので違うものになります。

下の画像はD-subのピンが折れた様子です。

プログラム

使用したプログラムをPDFで公開します。

今回は細かい説明を省きますが、最低限のことは以下のPDFに載せておきます。

ダウンロード
最低限の説明
プログラムを起動する際に守ってほしいこととか書いておきました。
基本事項については一切書いておりません。
赤文字部分が大事なところだと思います。
使用可能ソフトウェア一覧.pdf
PDFファイル 409.6 KB

ARDUINO側

ダウンロード
Newstartgate5
最新版です。
スタートゲート制御基板用スケッチ
Newstartgate5.pdf
PDFファイル 537.3 KB
ダウンロード
Newstratgate4
スタートゲート制御基板用スケッチNewstartgate4.pdf
PDFファイル 524.9 KB
ダウンロード
Newstratgate3
スタートゲート制御基板用スケッチNewstartgate3.pdf
PDFファイル 547.6 KB
ダウンロード
Newstratgate2
スタートゲート制御基板用スケッチNewstartgate2.pdf
PDFファイル 516.3 KB
ダウンロード
Newstratgate1
スタートゲート制御基板用スケッチNewstartgate1.pdf
PDFファイル 600.1 KB

PROCESSING側

ダウンロード
MCR_GateAPP01
Newstartgate4で送信したデータをパソコン画面に表示するためのプログラムです。
MCR Gate System シリアル通信MCR_GateAPP01.pdf
PDFファイル 495.2 KB
ダウンロード
MCR_GateAPP02
Newstartgate4で送信したデータをパソコン画面に表示してかつCSVに出力するためのプログラムです。
注意事項があります。
守らないとエラーはいて停止します。
MCR Gate System シリアル通信MCR_GateAPP02.pdf
PDFファイル 450.6 KB