Page 1
第 1.01 版
2014.04.10
ルネサスマイコンカーラリー事務局
本マニュアルは、
・モータドライブ基板 Ver.5
・センサ基板 Ver.5
に対応したマイコンカーキット Ver.5.1 の動作確認手順を説明しています。
マイコンカーキットVer.5.1
動作確認マニュアル
RX62T版
2013 年度から、RMC-RX62T ボードに搭載されているマイコンが RX62T から
RX62G に変更されました。RX62T マイコンと RX62G マイコンは、機能的にほぼ互
換で、マイコンカーで使う範囲においてはプログラムの変更はありません。 よって、本マニュアルではマイコンの名称を『RX62T』で統一します。
Page 2
すべての商標および登録商標は、それぞれの所有者に帰属します。
注 意 事 項 (rev.3.1R)
著作権
・本マニュアルに関する著作権はルネサスマイコンカーラリー事務局に帰属します。
・本マニュアルは著作権法および、国際著作権条約により保護されています。
禁止事項
ユーザーは以下の内容を行うことはできません。
・第三者に対して、本マニュアルを販売、販売を目的とした宣伝、使用、営業、複製などを行うこと
・第三者に対して、本マニュアルの使用権を譲渡または再承諾すること
・本マニュアルの一部または全部を改変、除去すること
・本マニュアルを無許可で翻訳すること
・本マニュアルの内容を使用しての、人命や人体に危害を及ぼす恐れのある用途での使用
転載、複製
本マニュアルの転載、複製については、文書によるルネサスマイコンカーラリー事務局の事前の承諾が必要
です。
責任の制限
本マニュアルに記載した情報は、正確を期すため、慎重に制作したものですが万一本マニュアルの記述誤り
に起因する損害が生じた場合でも、ルネサスマイコンカーラリー事務局はその責任を負いません。
その他
本マニュアルに記載の情報は本マニュアル発行時点のものであり、ルネサスマイコンカーラリー事務局は、予
告なしに、本マニュアルに記載した情報または仕様を変更することがあります。製作に当たりましては、 新
の内容を確認いただきますようお願いします。
連絡先
(株)ルネサスソリューションズ ルネサスマイコンカーラリー事務局
〒162-0824 東京都新宿区揚場町 2-1 軽子坂MNビル
TEL (03)-3266-8510
E-mail:[email protected]
Page 3
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- I -
目 次
1. 概要 ......................................................................................................................................................................... 1
2. プログラムのインストール .............................................................................................................................. 2
2.1. プログラムのダウンロード .................................................................................................... 2 2.2. プログラムのインストール .................................................................................................... 3
3. マイコンカーキットの構成 ............................................................................................................................... 4
4. 動作確認用プログラムの書き込み ............................................................................................................. 5
4.1. ワークスペース「kit12_rx62t」を開く ....................................................................................... 5 4.2. 動作確認用プログラムの書き込み ........................................................................................ 6
5. 動作確認 ............................................................................................................................................................ 13
5.1. 動作確認一覧 ................................................................................................................. 13 5.2. LED の動作確認 ............................................................................................................. 14 5.3. プッシュスイッチの動作確認 .............................................................................................. 15 5.4. サーボの動作確認 ........................................................................................................... 16 5.5. 右モータの動作確認 ........................................................................................................ 18 5.6. 左モータの動作確認 ........................................................................................................ 19 5.7. センサ基板の動作確認 ..................................................................................................... 20 5.8. 直進性の確認 ................................................................................................................. 25 5.9. 動作確認終了 ................................................................................................................. 26
6. プログラムソース ............................................................................................................................................. 27
6.1. 「kit12test_rx62t.c」のプログラム内容 ................................................................................... 27
Page 4
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- II -
Page 5
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 1 -
1. 概要
本マニュアルは、下記マニュアルで製作、組み立てたマイコンカーの動作確認方法を説明するマニュアルです。
●モータドライブ基板 Ver.5 製作マニュアル
●センサ基板 Ver.5 製作マニュアル
●マイコンカーキット Ver.5.1 本体組み立て製作マニュアル
動作確認は、下記の手順で行います。
1.パソコンにルネサス統合開発環境をインストールします
パソコンにルネサス統合開発環境(C/C++ Compiler Package for RX Family)をインストールします。詳しくは、
「ルネサス統合開発環境インストールマニュアル(RX62T 版)」を参照して、インストールしてください。
2.サンプルプログラム(動作確認プログラム)をインストールします
パソコンにサンプルプログラム「workspace_kit12_rx62t_eng.exe」をインストールします。
これから行います。
3.動作確認プログラムを、マイコンカーの RMC-RX62T ボードに書き込みます
これから行います。
4.本マニュアルに従って動作確認します
これから行います。
5.サーボセンタと最大切れ角を調整します
マイコンカーキット Ver.5.1 kit12_rx62t プログラム解説マニュアル(RX62T 版)の「6. サーボセンタと 大切れ角
の調整」を参照して、調整してください。
6.走行プログラムを、マイコンカーの RMC-RX62T ボードに書き込みます
マイコンカーキット Ver.5.1 kit12_rx62t プログラム解説マニュアル(RX62T 版)を参照しながら、プロジェクト
「kit12_rx62t」の kit12_rx62t.mot ファイルを RMC-RX62T ボードに書き込み、コースを走らせてみてください。
Page 6
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 2 -
2. プログラムのインストール
2.1. プログラムのダウンロード
1
ルネサス エレクトロニクスのHPからサンプル
プログラムをダウンロードします。
下記URLを開きます。
http://japan.renesas.com/company_info/carr
ally/
「ダウンロード」をクリックします。
2 「workspace_kit12_rx62t_100_jap.exe」をクリッ
クし、ダウンロードします。
3 ダウンロードができました。
Page 7
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 3 -
2.2. プログラムのインストール
1
「workspace_kit12_rx62t_100_jap.exe」を実行
します。
講習会用 CD-R を持っている方は、下記のフ
ォルダから実行してください。
"CD ドライブ:\04-Softwares"
2
「C:\WorkSpace」フォルダにインストールしま
す。
OK をクリックします。
3
左の画面が表示された場合は、
このプログラムは正しくインストールされました
をクリックします。
4
インストールができました。
「C:¥Workspace」フォルダを開きます。
「ki12_rx62t」フォルダの内容が、今回の動作
確認用のプログラムが入っているフォルダで
す。
Page 8
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 4 -
3. マイコンカーキットの構成
本マニュアルでは、マイコンカーキット Ver.5.1 の構成のマイコンカーの動作確認を行うことができます。構成を、
下記に示します。
右モータ
左モータ
5 V5 V
マイコン、センサ、
モータドライブ基板
など制御系電源
単三4本
左モータ、右モータ、
サーボ用
駆動系電源
単三4本
5 V
5 V
センサ基板
Ver.5
モータドライブ基板
Ver.5
7
6
5
2
1
0
3
0
マイコンボード
RMC-RX62T P9
サーボ 5 V
P4
PB
microSD
P7
and P
0
4
モータドライブ基板に「LM350 追加セット」を追加した構成のマイコンカーも、動作確認することができます。追
加したときの構成を、下記に示します。
右モータ
左モータ
9.6 V
9.6 V
センサ基板
Ver.5
マイコンボード
RMC-RX62T モータドライブ基板
Ver.5
P9
P7
andP0
7
6
5
2
1
0
4
0
三端子レギュレータで
制御系5V とサーボ用6V 作成
LM350 追加セット
+
5.0 V
9.6 V
共通電源
電池8 本
サーボ 6 V
P4
PB
3
Page 9
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 5 -
4. 動作確認用プログラムの書き込み
4.1. ワークスペース「kit12_rx62t」を開く
1
ルネサス統合開発環境を実行します。
2
「別のプロジェクトワークスペースを参照する」
を選択します。
3
Cドライブ→Workspace→kit12_rx62t の
「kit12_rx62t.hws」を選択します。
4
ワークスペース「kit12_rx62t」が開きます。この
ワークスペースには、4 つのプロジェクトがあり
ます。
●kit12_rx62t
マイコンカー走行プログラムです。
●kit12test_rx62t
今回使うプロジェクトで、モータドライブ基
板、センサ基板が正しく動作するか確認し
ます。
●sioservo1_62t
サーボのセンタを調整するプログラムで
す。
●sioservo2_62t
サーボの 大切れ角を見つけるためのプ
ログラムです。
kit12_rx62t.hws
Page 10
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 6 -
4.2. 動作確認用プログラムの書き込み
1
「kit12test_rx62t」をアクティブプロジェクトに
設定します。
「kit12test_rx62t」上で右クリックします。
「アクティブプロジェクトに設定」を選択しま
す。
「kit12test_rx62t」が太字になります。
2
「ビルド→ビルド」で MOT ファイルを作りま
す。
3
マイコンカーの電源スイッチは、2 つとも OFF
にします。
右クリック
kit12test_rx62t が太字(有効)か
確認しておきます。
スイッチ OFF
スイッチ OFF
Page 11
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 7 -
4
USB ケーブル
③SW5 を「Program」モードにします。
①USB ケーブルを接続します
LED
SW3
PORRXD
EMLEMDE
OFF
ON
②RXD と EMLEを ON にする
①パソコンとマイコンボ
ードを USB ケーブ
ルで接続します。
②SW3 の RXD と EMLE
を ON にします。
③SW5 を「Program」モ
ードにします。
※SW5 は、電源が OFF
の状態で切り替え
てください。
5
マイコンカーの電源スイッチを、2つともONに
します。
6
「Flash Development Toolkit 4.09 Basic」を実行します。
デスクトップに作成したショートカットアイコンをクリックします。
スイッチ ON
スイッチ ON
Page 12
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 8 -
7
フィルターに「generic」と入力します。
「Generic BOOT Device」を選択し、次へをクリックします。
8 COM 番号を選択し、次へをクリックします。
9 OK をクリックします。
1
2
3
Page 13
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 9 -
10
OK をクリックします。
エラーが出た場合は、手順 4 番からの内容を確認し、もう一度実行してください。
11
1.入力クロックを「12.288」と入力します。
2.メインクロックの逓倍比(CKM):8
3.周辺クロックの逓倍比(CKP):4
を選択します。
次へをクリックします。
12 次へをクリックします。
1
2
3
Page 14
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 10 -
13 完了をクリックします。
14
「User/Data Area」にチェックを入れます。
「▶」を選択し、参照をクリックします。
15
「C:\WorkSpace\kit12_rx62t\kit12test_rx62t\Debug」フォルダを開きます。
「kit12test_rx62t.mot」を選択し、開くをクリックします。
Page 15
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 11 -
16 スタートをクリックし、プログラムを書き込みます。
17
プログラムの書き込みが終わったら、
デバイスとの切断をクリックします。
18 OK をクリックします。
Page 16
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 12 -
19 これで、プログラムの書き込みは完了です。
20
マイコンカーの電源スイッチは、2 つとも OFF
にします。
21
USB ケーブル
②SW5 を「Run」モード
にします。
①USB ケーブルを
外す
プログラムの書き込みが終了したら、下記の手順でプログラムを実行します。
①USB ケーブルを外しま
す。
②SW5 を「Run」モードにしま
す。
スイッチ OFF
スイッチ OFF
Page 17
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 13 -
5. 動作確認
5.1. 動作確認一覧
RMC-RX62T ボードのディップスイッチの状態を変更することにより、マイコンカーのどの部分を動作確認する
か選択し、動作確認を行います。
内容
P1_3 P1_2 P1_1 P1_0
0 0 0 0 LED の動作確認をします。LED が 0.5 秒間隔で交互に点灯します。
0 0 0 1 プッシュスイッチの動作確認をします。
スイッチ OFF で LED3 が点灯、スイッチ ON で LED2 が点灯します。
0 0 1 0 サーボの動作確認をします。
サーボが、「0°→右 30°→左 30°の繰り返し」の動作をします。
0 0 1 1 何もしません。
0 1 0 0 右モータの動作確認をします。
「正転→ブレーキ」動作を繰り返します。
0 1 0 1 右モータの動作確認をします。
「逆転→ブレーキ」動作を繰り返します。
0 1 1 0 左モータの動作確認をします。
「正転→ブレーキ」動作を繰り返します。
0 1 1 1 左モータの動作確認をします。
「逆転→ブレーキ」動作を繰り返します。
1 0 0 0
センサ基板の bit1、bit0 の動作確認をします。
センサ bit1、bit0 の状態を LED2、LED3 に出力します。
※bit0 はスタートバー検出センサと兼用です。
1 0 0 1 センサ基板の bit3、bit2 の動作確認をします。
センサ bit3、bit2 の状態を LED2、LED3 に出力します。
1 0 1 0 センサ基板の bit5、bit4 の動作確認をします。
センサ bit5、bit4 の状態を LED2、LED3 に出力します。
1 0 1 1 センサ基板の bit7、bit6 の動作確認をします。
センサ bit7、bit6 の状態を LED2、LED3 に出力します。
1 1 0 0 まっすぐに走るか確認します。
PWM50%で前進、2 秒後に停止します。
1 1 0 1 まっすぐに走るか確認します。
PWM50%で前進、5 秒後に停止します。
1 1 1 0 まっすぐに走るか確認します。
PWM100%で前進、2 秒後に停止します。
1 1 1 1 まっすぐに走るか確認します。
PWM100%で前進、5 秒後に停止します。
上側
"1"
"0" 下側
Page 18
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 14 -
5.2. LED の動作確認
1
"0"
"1"
0 0 0 0
モータドライブ基板の LED が点灯・消灯する
か確認します。
ディップスイッチを"0000"の状態で、マイコンカーの電源スイッチを 2 つとも ON にします。
2
LED3→
LED2→電源LED です。
電源ON で常に
点灯します
モータドライブ基板の LED2 と LED3 が 0.5 秒
毎に交互に点灯します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
LED2、または LED3 が点灯しない場合は、RMC-RX62T ボードとモータドライブ基板を接続するフラットケーブルの不良、LED の半田付け不良、半田ブリッジ(ショート)、LED の向きが逆など考えられます。目視チェック、テスタなどで原因を突き止めてください。
Page 19
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 15 -
5.3. プッシュスイッチの動作確認
1
"0"
"1"
0 0 0 1
モータドライブ基板のプッシュスイッチが反応
するか確認します。
ディップスイッチを"0001"の状態で、マイコンカーの電源スイッチを 2 つとも ON にします。
2
LED3→
LED2→
プッシュスイッチを押します→
モータドライブ基板上のプッシュスイッチが押
されていない状態で LED3 が点灯、押された
状態で LED2 が点灯します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
LED3 のみしか点灯しない場合は、プッシュス
イッチまでの回路が半田付け不良、LED2 が
付きっぱなしの場合は半田ブリッジなどが考
えられます。目視チェック、テスタなどで原因
を突き止めてください。
Page 20
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 16 -
5.4. サーボの動作確認
1
"0"
"1"
0 0 1 0
モータドライブ基板に接続したサーボが動作
するか確認します。フロント部分が動きますの
で、マイコンカーの回りには何も置かずに、浮
かせた状態にしてください。
ディップスイッチを"0010"の状態で、マイコンカーの電源スイッチを 2 つとも ON にします。
2
②右30 度
① 0 度
③左30 度
サーボが 1 秒毎に、「0 度→右 30 度→左 30
度」の動作を繰り返します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
サーボが動作しない場合は、サーボまでの回路が半田付け不良、サーボコネクタの向きが逆などが考えられます。また、モータドライブ基板の電源 LED が点灯しているかも確認してください。目視チェック、テスタなどで原因を突き止めてください。
3
キット付属ではないサーボに交換したとき、「0 度→左 30 度→右 30 度」の動作になる場合、左右の回転が逆なサーボです。そ の 場 合 、 「 kit12test_ rx62t」の handle 関数内の480 行の「-(マイナス)」を「+(プラス)」に変更すれば左右が入れ代わり、動作が「0 度→右 30 度→左 30 度」となります。
「-」を「+」
にします
Page 21
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 17 -
※サーボのセンタ調整
マイコンカーの電源を入れたとき、サーボは 0 度になっていなければいけません。しかし、ほとんどの場合は電
源を ON にしても 0 度になっていないと思います。これは、サーボのセンタ値(まっすぐにする値)が、サーボによ
ってそれぞれ違うのでマイコンカー1 台 1 台で調整する必要があるためです。「kit12test_rx62t.c」の
SERVO_CENTER の「2300」という値を変えてまっすぐになるように調整します。この数値は、13 で約 1 度です。
54 : #define SERVO_CENTER 2300 /* サーボのセンタ値 */
値を増やせば進行方向に向かって左側、減らせば右側に向きます。
サーボセンタ値の調整は、マイコンカーキット Ver.5.1 kit12_rx62t プログラム解説マニュアル(RX62T 版)の「6.
サーボセンタと 大切れ角の調整」を参照しながら行うと便利です。
増やす 減らす
Page 22
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 18 -
5.5. 右モータの動作確認
1
"0"
"1"
0 1 0 0
右モータが正転、逆転、停止するか確認しま
す。右モータが回りますので、マイコンカーを
持ち上げた状態にしてください。
ディップスイッチを"0100"の状態で、マイコン
カーの電源スイッチを 2 つとも ON にします。
2
右モータが 1 秒ごとに「正転→ブレーキ」を繰
り返します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
右モータが正転しない場合は、右モータ制御
回路の半田付け不良が考えられます。回転し
続ける場合は、半田ブリッジしている可能性
があります。目視チェック、テスタなどで原因
を突き止めてください。
また、タイヤが逆転した場合は、モータのケーブルが逆です。コネクタの 1 ピンと 2 ピンの端子を入れ替えてください。
3
"0"
"1"
0 1 0 1
ディップスイッチを"0101"の状態で、マイコン
カーの電源スイッチを 2 つとも ON にします。
右モータが 1 秒ごとに「逆転→ブレーキ」を繰
り返します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
右モータが逆転しない場合は、半田付け不良やショートが考えられます。目視チェック、テスタなどで原因を突き止めてください。
右モータが正転、ブレーキを繰り返します。
Page 23
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 19 -
5.6. 左モータの動作確認
1
"0"
"1"
0 1 1 0
左モータが正転、逆転、停止するか確認しま
す。左モータが回りますので、タイヤを持ち上
げた状態にしてください。
ディップスイッチを"0110"の状態で、マイコン
カーの電源スイッチを 2 つとも ON にします。
2
左モータが 1 秒ごとに「正転→ブレーキ」を繰
り返します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
左モータが正転しない場合は、左モータ制御
回路の半田付け不良が考えられます。回転し
続ける場合は、半田ブリッジしている可能性
があります。目視チェック、テスタなどで原因
を突き止めてください。
また、タイヤが逆転した場合は、モータのケーブルが逆です。コネクタの 1 ピンと 2 ピンの端子を入れ替えてください。
3
"0"
"1"
0 1 1 1
ディップスイッチを"0111"の状態で、マイコン
カーの電源スイッチを 2 つとも ON にします。
左モータが 1 秒ごとに「逆転→ブレーキ」を繰
り返します。
動作確認が終わったら電源スイッチ 2 つを
OFF にします。
左モータが逆転しない場合は、半田付け不良やショートが考えられます。目視チェック、テスタなどで原因を突き止めてください。
左モータが正転、ブレーキを繰り返します。
Page 24
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 20 -
5.7. センサ基板の動作確認
1
"0"
"1"
1 0 0 0
ディップスイッチを"1000"の状態で、マイコン カーの電源スイッチを 2 つとも ON にします。
2
LED3LED2
7 6 5 4 3 2 1 0
スタートバー検出センサ:0
感度調整用 ボリューム
写真のように、センサ基板のセンサ 0 とセンサ 1 の状態が、モータドライブ基板の 2 つの LED に出力されま
す。センサ基板上の LED も点灯しますので、同じ反応か確認します。センサの感度はボリュームで調整しま
す。
もしセンサ基板上の LED が点灯しない場合は、センサ基板の半田付け不良、半田ブリッジ、部品の逆差し
などが考えられます。センサ基板上の LED は点灯するのにモータドライブ基板上の LED が点灯しない場合
は、コネクタ周りで不具合が発生している可能性があります。目視チェック、テスタなどで原因を突き止めてく
ださい。
※スタートバー検出センサは、センサ 0 の LED(LED15)に出力されます。ディップスイッチ"1000"のときに(今回)、スタートバー検出センサの確認を行ってください。
Page 25
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 21 -
3
ディップスイッチ
モータドライブ基板の
LED2 に出力される
センサ番号
モータドライブ基板の
LED3 に出力される
センサ番号
"0"
"1"
1 0 0 0
1
0 スタートバー検出センサの
反応でも光ります
"0"
"1"
1 0 0 1
3
2
"0"
"1"
1 0 1 0
5
4
"0"
"1"
1 0 1 1
7
6
同じように左の表の
ようにディップスイッ
チを切り替えて、セ
ンサ基板のセンサ 7
~0 の合計 8 個を確
認します。
※センサ 0 とスタート
バー検出センサは、
OR 接続されていま
す。同じ LED が光り
ますが、故障ではあ
りません。
Page 26
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 22 -
※センサの調整方法
1
※横から見たところ
写真のようにコース中心の灰色線とセンサ基板を平行に置きます。このときマイコンカーは、コース同一面上に置き、走っている状態と同じにします。
2
※横から見たところ
このように、手で持ちながらセン
サの調整をしようとしてもセンサ
とコースとの間隔が一定になら
ないため、きちんと調整できませ
ん。必ずコース同一面上に置い
てください。
3
9 個のボリュームをすべて、反時計回りに回します。
NG!
Page 27
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 23 -
4
基板の横線とコースの白色と灰
色の切り替わり部分を合わせま
す。真上から見て合わせるよう
にしてください。
5
8 個のボリュームを時計回りに回して LED が点くようにします。一つ一つゆっくりと回して、LED が点いた瞬間回すのを止めます。今回の調整で灰色も反応するように調整します。マイコンカーキットは、白色・灰色で反応するよう調整します。
6
センサを少し下げます。すべて消えます。
7
再度センサを灰色の位置にゆっくりと平行に近づけます。点かない LED は感度を上げます(時計回り)。他の LED より先に点く場合、感度を下げます(反時計回り)。ほぼ同時に LED が点くように何度も調整します。
VR9 は、スタートバー用です。今は調整しません。
Page 28
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 24 -
8
次に、スタートバーを検出するセ
ンサの調整をします。
センサの先頭から約 1cm 離した
ところに白色の板か紙を立てて
おきます。スタートバーの変わり
です。
このとき、いちばん右のコース検出センサ(U8)の下が黒色でLED15 が消灯していることを確認してください。
9
○の VR9 をゆっくりと時計回りに
回し、LED15 が点くように調整し
ます。
LED15 はいちばん右のコース検
出センサ(U8)と兼用なので、こ
のセンサの下が黒色で調整して
ください。
板や紙などを外したときに、LEDが消えれば完了です。
約 1cm
bit0 の LED 点灯
VR9
Page 29
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 25 -
5.8. 直進性の確認
1
"0"
"1"
1 1 0 0
マイコンカーを走らせ、まっすぐに進むか確
認します。廊下など平らで直線の長い場所
に、マイコンカーを置いてください(ここでは、
マイコンカーのコースには置きません)。
ディップスイッチを"1100"の状態にします。
2
マイコンカーの電源スイッチを 2 つとも ON に
します。電源をONにしてから、2秒後にPWM
値 50%で 2 秒間直進します。廊下など平らで
直線の長い場所でマイコンカーを走らせ、ま
っすぐに進むか確認してください。
曲がってしまう場合は、「5.4, サーボの動作確認」で説明したとおり、SERVO_CENTER の値を調整して直進するように調整します。直進性はマイコンカーのスピードが上がると非常に重要になりますので、必ずまっすぐ進むよ う に 調 整 し て く だ さ い 。 終 的 に は 、SERVO_CENTER 値を1ずつ調整するぐらいの心がけで調整してください。
Page 30
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 26 -
3
ディップスイッチ PWM 値 停止するまでの時間
"0"
"1"
1 1 0 0
50%
2 秒
"0"
"1"
1 1 0 1
50%
5 秒
"0"
"1"
1 1 1 0
100%
2 秒
"0"
"1"
1 1 1 1
100%
5 秒
直進性の確認は、
PWM 値と停止する
までの時間の違い
で 4 パターンありま
す。PWM 値が大き
いほど、また停止す
るまでの時間が長い
ほど、長く走ります。
確保できる場所の長
さに応じて 4 つのど
れかから選び、平ら
で直線の長い場所
でマイコンカーを走
らせ、まっすぐに進
むか確認してくださ
い。
※サーボのセンタ調整は、マイコンカーキット Ver.5.1
kit12_rx62t プログラム解説マニュアル(RX62T 版)の 「6. サーボセンタと 大切れ角の調整」で行うと便利です。
5.9. 動作確認終了
全機能が正常に動作したなら走行プログラムを書き込み、コースを走らせてみましょう。その前に、調整項目が
あります。
●マイコンカーキット Ver.5.1 kit12_rx62t プログラム解説マニュアル(RX62T 版)の「6. サーボセンタと 大切れ角
の調整」でサーボセンタと 大切れ角を調整してください。 ●マイコンカーキット Ver.5.1 kit12_rx62t プログラム解説マニュアル(RX62T 版)を参照しながら、ワークスペース
「kit12_rx62t」のプロジェクト「kit12_rx62t」のプログラムを RMC_RX62T ボードに書き込み、コースを走らせてみ
てください。
Page 31
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 27 -
6. プログラムソース
6.1. 「kit12test_rx62t.c」のプログラム内容
1 : /***********************************************************************/ 2 : /* 対象マイコン RX62T */ 3 : /* ファイル kit12test_rx62t.c */ 4 : /* ファイル内容 マイコンカーキットVer.5.1 動作確認プログラム(RX62T版) */ 5 : /* バージョン Ver.1.00 */ 6 : /* Date 2013.09.01 */ 7 : /* Copyright ルネサスマイコンカーラリー事務局 */ 8 : /***********************************************************************/ 9 : /* 10 : このプログラムは、下記基板に対応しています。 11 : ・RMC-RX62Tボード 12 : ・センサ基板Ver.5 13 : ・モータドライブ基板Ver.5 14 : */ 15 : 16 : /* 17 : マイコンカーキット用センサ基板Ver.5、モータドライブ基板Ver.5の 18 : 動作確認を行います。 19 : 20 : マイコンボードのディップスイッチにより動作確認する内容を変更します。 21 : DipSW 22 : bit3 2 1 0 23 : 0 0 0 0 LEDの確認 LEDが0.5秒間隔で交互に点灯 24 : 0 0 0 1 プッシュスイッチの確認 OFF時:LED0点灯 ON時:LED1点灯 25 : 0 0 1 0 サーボの確認 0°→右30°→左30°の繰り返し 26 : 0 0 1 1 動作無し 27 : 0 1 0 0 右モータの確認 正転→ブレーキの繰り返し 28 : 0 1 0 1 逆転→ブレーキの繰り返し 29 : 0 1 1 0 左モータの確認 正転→ブレーキの繰り返し 30 : 0 1 1 1 逆転→ブレーキの繰り返し 31 : 32 : 1 0 0 0 センサ確認 センサbit1,0をLED1,0に出力 33 : 1 0 0 1 センサbit3,2をLED1,0に出力 34 : 1 0 1 0 センサbit5,4をLED1,0に出力 35 : 1 0 1 1 センサbit7,6をLED1,0に出力 36 : 37 : 1 1 0 0 直進性の確認 PWM 50%で前進、 2秒後ストップ 38 : 1 1 0 1 直進性の確認 PWM 50%で前進、 5秒後ストップ 39 : 1 1 1 0 直進性の確認 PWM 100%で前進、 2秒後ストップ 40 : 1 1 1 1 直進性の確認 PWM 100%で前進、 5秒後ストップ 41 : */ 42 : 43 : /*======================================*/ 44 : /* インクルード */ 45 : /*======================================*/ 46 : #include "iodefine.h" 47 : 48 : /*======================================*/ 49 : /* シンボル定義 */ 50 : /*======================================*/ 51 : 52 : /* 定数設定 */ 53 : #define PWM_CYCLE 24575 /* モータPWMの周期 (16ms) */ 54 : #define SERVO_CENTER 2300 /* サーボのセンタ値 */ 55 : #define HANDLE_STEP 13 /* 1゜分の値 */ 56 : 57 : /*======================================*/ 58 : /* プロトタイプ宣言 */ 59 : /*======================================*/ 60 : void init(void); 61 : unsigned char sensor_inp( unsigned char mask ); 62 : unsigned char dipsw_get( void ); 63 : unsigned char buttonsw_get( void ); 64 : unsigned char pushsw_get( void ); 65 : void led_out_m( unsigned char led ); 66 : void led_out( unsigned char led ); 67 : void motor( int accele_l, int accele_r ); 68 : void handle( int angle ); 69 : 70 : /*======================================*/ 71 : /* グローバル変数の宣言 */
Page 32
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 28 -
72 : /*======================================*/ 73 : unsigned long cnt0; 74 : unsigned long cnt1; 75 : int pattern; 76 : 77 : /***********************************************************************/ 78 : /* メインプログラム */ 79 : /***********************************************************************/ 80 : void main(void) 81 : { 82 : unsigned char now_sw; /* 現在ディップスイッチ記憶 */ 83 : unsigned char before_sw; /* 前回ディップスイッチ記憶 */ 84 : unsigned char c; /* 作業用 */ 85 : 86 : /* マイコン機能の初期化 */ 87 : init(); 88 : 89 : /* マイコンカーの状態初期化 */ 90 : handle( 0 ); 91 : motor( 0, 0 ); 92 : led_out( 0x0 ); 93 : 94 : /* 変数初期化 */ 95 : before_sw = dipsw_get(); 96 : cnt1 = 0; 97 : 98 : while( 1 ) { 99 : /* ディップスイッチ読み込み */ 100 : now_sw = dipsw_get(); 101 : 102 : /* 前回のスイッチ値と比較 */ 103 : if( before_sw != now_sw ) { 104 : /* 不一致なら前回値更新、タイマ値のクリア */ 105 : before_sw = now_sw; 106 : cnt1 = 0; 107 : } 108 : 109 : /* ディップスイッチの値により動作確認モードの選択 */ 110 : switch( now_sw ) { 111 : 112 : /* LEDの確認 LEDが0.5秒間隔で交互に点灯 */ 113 : case 0: 114 : if( cnt1 < 500 ) { 115 : led_out( 0x1 ); 116 : } else if( cnt1 < 1000 ) { 117 : led_out( 0x2 ); 118 : } else { 119 : cnt1 = 0; 120 : } 121 : break; 122 : 123 : /* プッシュスイッチの確認 OFF時:LED0点灯 ON時:LED1点灯 */ 124 : case 1: 125 : led_out( pushsw_get() + 1 ); 126 : break; 127 : 128 : /* サーボの確認 0°→右30°→左30°の繰り返し */ 129 : case 2: 130 : if( cnt1 < 1000 ) { 131 : handle( 0 ); 132 : } else if( cnt1 < 2000 ) { 133 : handle( 30 ); 134 : } else if( cnt1 < 3000 ) { 135 : handle( -30 ); 136 : } else { 137 : cnt1 = 0; 138 : } 139 : break; 140 : 141 : /* 何もしない */ 142 : case 3: 143 : break; 144 : 145 : /* 右モータの確認 正転→ブレーキの繰り返し */ 146 : case 4: 147 : if( cnt1 < 1000 ) { 148 : motor( 0, 100 ); 149 : } else if( cnt1 < 2000 ) { 150 : motor( 0, 0 ); 151 : } else {
Page 33
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 29 -
152 : cnt1 = 0; 153 : } 154 : break; 155 : 156 : /* 右モータの確認 逆転→ブレーキの繰り返し */ 157 : case 5: 158 : if( cnt1 < 1000 ) { 159 : motor( 0, -100 ); 160 : } else if( cnt1 < 2000 ) { 161 : motor( 0, 0 ); 162 : } else { 163 : cnt1 = 0; 164 : } 165 : break; 166 : 167 : /* 左モータの確認 正転→ブレーキの繰り返し */ 168 : case 6: 169 : if( cnt1 < 1000 ) { 170 : motor( 100, 0 ); 171 : } else if( cnt1 < 2000 ) { 172 : motor( 0, 0 ); 173 : } else { 174 : cnt1 = 0; 175 : } 176 : break; 177 : 178 : /* 左モータの確認 逆転→ブレーキの繰り返し */ 179 : case 7: 180 : if( cnt1 < 1000 ) { 181 : motor( -100, 0 ); 182 : } else if( cnt1 < 2000 ) { 183 : motor( 0, 0 ); 184 : } else { 185 : cnt1 = 0; 186 : } 187 : break; 188 : 189 : /* センサ基板の確認 センサbit1,0をLED1,0に出力 */ 190 : case 8: 191 : c = sensor_inp( 0x03 ); 192 : led_out( c ); 193 : break; 194 : 195 : /* センサ基板の確認 センサbit3,2をLED1,0に出力 */ 196 : case 9: 197 : c = sensor_inp( 0x0c ); 198 : c = c >> 2; 199 : led_out( c ); 200 : break; 201 : 202 : /* センサ基板の確認 センサbit5,4をLED1,0に出力 */ 203 : case 10: 204 : c = sensor_inp( 0x30 ); 205 : c = c >> 4; 206 : led_out( c ); 207 : break; 208 : 209 : /* センサ基板の確認 センサbit7,6をLED1,0に出力 */ 210 : case 11: 211 : c = sensor_inp( 0xc0 ); 212 : c = c >> 6; 213 : led_out( c ); 214 : break; 215 : 216 : /* 直進性の確認 PWM 50%で前進、 2秒後ストップ */ 217 : case 12: 218 : if( cnt1 < 2000 ) { 219 : motor( 0, 0 ); 220 : } else if( cnt1 < 4000 ) { 221 : motor( 50, 50 ); 222 : } else { 223 : motor( 0, 0 ); 224 : } 225 : break; 226 : 227 : /* 直進性の確認 PWM 50%で前進、 5秒後ストップ */ 228 : case 13: 229 : if( cnt1 < 2000 ) { 230 : motor( 0, 0 ); 231 : } else if( cnt1 < 7000 ) {
Page 34
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 30 -
232 : motor( 50, 50 ); 233 : } else { 234 : motor( 0, 0 ); 235 : } 236 : break; 237 : 238 : /* 直進性の確認 PWM 100%で前進、 2秒後ストップ */ 239 : case 14: 240 : if( cnt1 < 2000 ) { 241 : motor( 0, 0 ); 242 : } else if( cnt1 < 4000 ) { 243 : motor( 100, 100 ); 244 : } else { 245 : motor( 0, 0 ); 246 : } 247 : break; 248 : 249 : /* 直進性の確認 PWM 100%で前進、 5秒後ストップ */ 250 : case 15: 251 : if( cnt1 < 2000 ) { 252 : motor( 0, 0 ); 253 : } else if( cnt1 < 7000 ) { 254 : motor( 100, 100 ); 255 : } else { 256 : motor( 0, 0 ); 257 : } 258 : break; 259 : 260 : /* どれでもないなら */ 261 : default: 262 : break; 263 : } 264 : } 265 : } 266 : 267 : /***********************************************************************/ 268 : /* RX62T 周辺機能の初期化 */ 269 : /***********************************************************************/ 270 : void init(void) 271 : { 272 : // システムクロックの設定 273 : SYSTEM.SCKCR.BIT.ICK = 0; //12.288*8=98.304MHz 274 : SYSTEM.SCKCR.BIT.PCK = 1; //12.288*4=49.152MHz 275 : 276 : // I/Oポートの設定 277 : PORT1.DDR.BYTE = 0x03; //P10:LED2(モータドライブ基板Ver.5) 278 : 279 : PORT2.DR.BYTE = 0x08; 280 : PORT2.DDR.BYTE = 0x1b; //P24:SDCARD_CLK(出力) 281 : //P23:SDCARD_DI(出力) 282 : //P22:SDCARD_DO(入力) 283 : //CN:P21-P20 284 : PORT3.DR.BYTE = 0x01; 285 : PORT3.DDR.BYTE = 0x0f; //CN:P33-P31 286 : //P30:SDCARD_CS(出力) 287 : //PORT4:入力専用 //センサ基板Ver.5 288 : //PORT5:入力専用 289 : //PORT6:入力専用 290 : 291 : PORT7.DDR.BYTE = 0x7e; //P76:LED3(モータドライブ基板Ver.5) 292 : //P75:正転・逆転信号(右モータ) 293 : //P74:正転・逆転信号(左モータ) 294 : //P73:PWM(右モータ) 295 : //P72:PWM(左モータ) 296 : //P71:PWM(サーボモータ) 297 : //P70:プッシュスイッチ(モータドライブ基板Ver.5) 298 : PORT8.DDR.BYTE = 0x07; //CN:P82-P80 299 : PORT9.DDR.BYTE = 0x7f; //CN:P96-P90 300 : PORTA.DR.BYTE = 0x0f; //CN:PA5-PA4 301 : //PA3:LED3(出力) 302 : //PA2:LED2(出力) 303 : //PA1:LED1(出力) 304 : //PA0:LED0(出力) 305 : PORTA.DDR.BYTE = 0x3f; //CN:PA5-PA0 306 : PORTB.DDR.BYTE = 0xff; //CN:PB7-PB0 307 : PORTD.DDR.BYTE = 0x0f; //PD7:TRST#(入力) 308 : //PD5:TDI(入力) 309 : //PD4:TCK(入力) 310 : //PD3:TDO(出力) 311 : //CN:PD2-PD0
Page 35
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 31 -
312 : PORTE.DDR.BYTE = 0x1b; //PE5:SW(入力) 313 : //CN:PE4-PE0 314 : 315 : // コンペアマッチタイマ 316 : MSTP_CMT0 = 0; //CMTモジュールストップ状態の解除 317 : MSTP_CMT2 = 0; //CMTモジュールストップ状態の解除 318 : 319 : ICU.IPR[0x04].BYTE = 0x0f; //CMT0_CMI0割り込み優先度 320 : ICU.IER[0x03].BIT.IEN4 = 1; //CMT0_CMI0割り込み許可 321 : CMT.CMSTR0.WORD = 0x0000; //CMT0,CMT1カウントストップ 322 : CMT0.CMCR.WORD = 0x00C3; //PCLK/512 323 : CMT0.CMCNT = 0; 324 : CMT0.CMCOR = 96; //1ms/(1/(49.152MHz/512)) 325 : CMT.CMSTR0.WORD = 0x0003; //CMT0,CMT1カウントスタート 326 : 327 : // MTU3_3 MTU3_4 リセット同期PWMモード 328 : MSTP_MTU = 0; //モジュールストップ状態の解除 329 : MTU.TSTRA.BYTE = 0x00; //MTUカウントストップ 330 : 331 : MTU3.TCR.BYTE = 0x23; //ILCK/64(651.04ns) 332 : MTU3.TCNT = MTU4.TCNT = 0; //MTU3,MTU4TCNTクリア 333 : MTU3.TGRA = MTU3.TGRC = PWM_CYCLE; //周期(16ms) 334 : MTU3.TGRB = MTU3.TGRD = SERVO_CENTER; //PWM(サーボモータ) 335 : MTU4.TGRA = MTU4.TGRC = 0; //PWM(左モータ) 336 : MTU4.TGRB = MTU4.TGRD = 0; //PWM(右モータ) 337 : MTU.TOCR1A.BYTE = 0x40; //出力レベルの選択 338 : MTU3.TMDR1.BYTE = 0x38; //TGRC,TGRDはバッファ動作 339 : //リセット同期PWMモード 340 : MTU4.TMDR1.BYTE = 0x00; //MTU3の設定に影響されるため、0を設定 341 : MTU.TOERA.BYTE = 0xc7; //MTU3TGRB,MTU4TGRA,MTU4TGRB 出力許可 342 : 343 : MTU.TSTRA.BYTE = 0x40; //MTU0,MTU3カウント動作 344 : } 345 : 346 : /***********************************************************************/ 347 : /* タイマRB 割り込み処理 */ 348 : /***********************************************************************/ 349 : #pragma interrupt Excep_CMT0_CMI0(vect=28) 350 : void Excep_CMT0_CMI0(void) 351 : { 352 : cnt0++; 353 : cnt1++; 354 : } 355 : 356 : /***********************************************************************/ 357 : /* センサ状態検出 */ 358 : /* 引数 マスク値 */ 359 : /* 戻り値 センサ値 */ 360 : /***********************************************************************/ 361 : unsigned char sensor_inp( unsigned char mask ) 362 : { 363 : unsigned char sensor; 364 : 365 : sensor = ~PORT4.PORT.BYTE; 366 : 367 : sensor &= mask; 368 : 369 : return sensor; 370 : } 371 : 372 : /***********************************************************************/ 373 : /* ディップスイッチ値読み込み */ 374 : /* 戻り値 スイッチ値 0~15 */ 375 : /***********************************************************************/ 376 : unsigned char dipsw_get( void ) 377 : { 378 : unsigned char sw,d0,d1,d2,d3; 379 : 380 : d0 = ( PORT6.PORT.BIT.B3 & 0x01 ); /* P63~P60 read */ 381 : d1 = ( PORT6.PORT.BIT.B2 & 0x01 ) << 1; 382 : d2 = ( PORT6.PORT.BIT.B1 & 0x01 ) << 2; 383 : d3 = ( PORT6.PORT.BIT.B0 & 0x01 ) << 3; 384 : sw = d0 | d1 | d2 | d3; 385 : 386 : return sw; 387 : } 388 : 389 : /***********************************************************************/ 390 : /* プッシュボタン(マイコンボード) */ 391 : /* 戻り値 スイッチ値 ON:1 OFF:0 */
Page 36
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 32 -
392 : /***********************************************************************/ 393 : unsigned char buttonsw_get( void ) 394 : { 395 : unsigned char sw; 396 : 397 : sw = ~PORTE.PORT.BIT.B5 & 0x01; /* スイッチのあるポート読み込み */ 398 : 399 : return sw; 400 : } 401 : 402 : /***********************************************************************/ 403 : /* プッシュスイッチ値読み込み */ 404 : /* 戻り値 スイッチ値 ON:1 OFF:0 */ 405 : /***********************************************************************/ 406 : unsigned char pushsw_get( void ) 407 : { 408 : unsigned char sw; 409 : 410 : sw = ~PORT7.PORT.BIT.B0 & 0x01; /* スイッチのあるポート読み込み */ 411 : 412 : return sw; 413 : } 414 : 415 : /***********************************************************************/ 416 : /* LED制御(マイコンボード) */ 417 : /* 引数 スイッチ値 LED2:bit1 LED3:bit0 "0":消灯 "1":点灯 */ 418 : /* 例)0x3→LED2:ON LED3:ON 0x2→LED2:ON LED3:OFF */ 419 : /***********************************************************************/ 420 : void led_out_m( unsigned char led ) 421 : { 422 : led = ~led; 423 : PORTA.DR.BYTE = led & 0x0f; 424 : } 425 : 426 : /***********************************************************************/ 427 : /* LED制御(モータドライブ基板Ver.5) */ 428 : /* 引数 スイッチ値 LED2:bit1 LED3:bit0 "0":消灯 "1":点灯 */ 429 : /* 例)0x3→LED2:ON LED3:ON 0x2→LED2:ON LED3:OFF */ 430 : /***********************************************************************/ 431 : void led_out( unsigned char led ) 432 : { 433 : led = ~led; 434 : PORT7.DR.BIT.B6 = led & 0x01; 435 : PORT1.DR.BIT.B0 = ( led >> 1 ) & 0x01; 436 : } 437 : 438 : /***********************************************************************/ 439 : /* モータ速度制御 */ 440 : /* 引数 左モータ:-100~100、右モータ:-100~100 */ 441 : /* 0で停止、100で正転100%、-100で逆転100% */ 442 : /* 戻り値 なし */ 443 : /***********************************************************************/ 444 : void motor( int accele_l, int accele_r ) 445 : { 446 : int sw_data; 447 : 448 : sw_data = dipsw_get() + 5; 449 : accele_l = accele_l * sw_data / 20; 450 : accele_r = accele_r * sw_data / 20; 451 : 452 : /* 左モータ制御 */ 453 : if( accele_l >= 0 ) { 454 : PORT7.DR.BYTE &= 0xef; 455 : MTU4.TGRC = (long)( PWM_CYCLE - 1 ) * accele_l / 100; 456 : } else { 457 : PORT7.DR.BYTE |= 0x10; 458 : MTU4.TGRC = (long)( PWM_CYCLE - 1 ) * ( -accele_l ) / 100; 459 : } 460 : 461 : /* 右モータ制御 */ 462 : if( accele_r >= 0 ) { 463 : PORT7.DR.BYTE &= 0xdf; 464 : MTU4.TGRD = (long)( PWM_CYCLE - 1 ) * accele_r / 100; 465 : } else { 466 : PORT7.DR.BYTE |= 0x20; 467 : MTU4.TGRD = (long)( PWM_CYCLE - 1 ) * ( -accele_r ) / 100; 468 : } 469 : } 470 : 471 : /***********************************************************************/
Page 37
マイコンカーキット Ver.5.1 動作確認マニュアル(RX62T 版)
- 33 -
472 : /* サーボハンドル操作 */ 473 : /* 引数 サーボ操作角度:-90~90 */ 474 : /* -90で左へ90度、0でまっすぐ、90で右へ90度回転 */ 475 : /* */ 476 : /***********************************************************************/ 477 : void handle( int angle ) 478 : { 479 : /* サーボが左右逆に動く場合は、「-」を「+」に替えてください */ 480 : MTU3.TGRD = SERVO_CENTER - angle * HANDLE_STEP; 481 : } 482 : 483 : /***********************************************************************/ 484 : /* end of file */ 485 : /***********************************************************************/