HM-StarterKitでマイクロマウスを始めよう

I2Cによるスイッチの動作確認 – HM-StarterKit入門 Part 8

HM-StarterKitでマイクロマウスを始めよう

こんにちは、hayashiです。

今回は「HM-StarterKitの購入~迷路完走まで」の第8回、内容は「step4 I2Cによるスイッチの動作確認」になります。今回もサンプルプログラムの動作確認になります。

 

マニュアルの確認

ダウンロードカードのURLからアクセスできる、「HM-StarterKit_パート3_取扱説明書_ソフトウェア解説編」を確認します。

※マニュアルのダウンロードページを開くにはHM-StarterKitに同梱されているダウンロードカードに記載のパスワードが必要になります。

 

今回はI2Cによるスイッチのサンプル動作確認なので、「1.ソフトウェアの解説/1.4 Step4 I2CとIO」に今回の内容が書いてあります。

概要としまして、「I2Cを用いてIOエキスパンダと通信することで、4つのLEDと3つのスイッチを制御する。」と書かれています。

今回は3つのスイッチに関しての内容になります。

 

プログラムのビルドと書き込み

今回使用するサンプルは「step4_i2c_io」になります。

ビルド方法や書き込み方法は今までのサンプルと同様になります。前回までの連載で解説されていますので、参考にしてください。

 

動作確認

書き込みが完了したら、電源スイッチを「OFF」にします。

今回はPC上で確認を行うため、書き込みケーブルは外さずに、書き込み基板のスイッチを「run」側に変更します。

この状態で、本体の電源スイッチを「ON」にします。

本体と「run」状態になった書き込み基板とPCが繋がっていることを確認して下さい。問題なければ、PCで「TeraTarm」を起動します。TeraTermが起動すると”switch=0x0”と表示されます。

この状態で準備完了です。

本体のスイッチ(画像青枠)をそれぞれ押すとそれぞれ出力が変化して、TeraTerm上の値が変化します。

SW2を押した場合のTeraTermの出力は下の画像のように「switch= 0x40」と表示されます。

SW2を押した場合のTeraTerm上の出力

これでstep4_i2c_ioのスイッチの動作確認は完了です。

 

プログラムの解説、補足

今回使用しているI2Cによる通信は前回でも解説がされていますので、ご覧ください。

 

スイッチを使用する

i2c.cのプロジェクトをインポートして、ソースファイル内で以下の定義をします。

extern void init_I2C(void);
extern void IOex_SWITCH(void);
extern void IOex_SETTING(void);
extern void IOex_LED(short led_num);

 

ダウンロードできる、サンプルプログラムが正しい定義になっています。

マニュアルに記載されているスイッチの定義は間違っていますので注意してください。

 

I2C初期設定後の話

スイッチが押されたかを判断するには、IOex_SWITCH()を呼び出します。
どのスイッチが押されたかは以下の対応になっています。

押されたスイッチは「1」で表されていて、複数のスイッチを同時に押した場合、押されているスイッチが全て反映された出力となります。

出力が「0x30」は、SW3とSW4のスイッチが同時に押された状態となります。

 

出力 SW2 SW3 SW4
0x10 0 0 1
0x20 0 1 0
0x30 0 1 1
0x40 1 0 0

IOex_SWITCH()の中身では、マイコンのI2C通信の機能とI2CエキスパンダICがやり取りをしています。
今回の動作で主に扱っているマイコンの機能はハードウェアマニュアルの以下を参考にしてください

  • I2C バスモードレジスタ3 ICMR3 (p1496)
  • I2C バスステータスレジスタ2 ICSR2 (p1507)
  • I2C バス受信データレジスタ ICDRR (p1516)

 

I2C_PUT()などのビット演算は、I2Cエキスパンダのデータ形式になるように作られています。
データ形式の詳細は、ICマニュアルのp20 8.4.2 Readsを参考にしてください。

まとめ

  • HM-StarterKitのサンプルプログラム 「step4_i2c_io」でスイッチの動作確認を行いました。

お知らせ

手のひらサイズのマイクロマウスキット「HM-StarterKit」
33%OFFの特別価格で販売中!

製品ページはこちら

HM-StarterKit
手のひらサイズのマイクロマウス学習キット HM-StarterKit(エイチエム-スターターキット)は人工知能、マイコン、センシング技術が学べる小型移動ロボットです。Widows10での開発が可能。 ※本製品は販売を終了 …

アールティロボットショップで購入する

【販売終了】HM-StarterKit [RT-HM-SK] - ¥0.- : アールティロボットショップ, ロボットキット、部品は専門スタッフがいるアールティへ!
アールティロボットショップ 【販売終了】HM-StarterKit -  こちらの商品は販売を終了しました。 HM-StarterKitで弊社エンジニアがマイクロマウス競技会に出場して走破しています。動画はこちら また「HM-Starter...

また、6月10日(木)からは学生マイクロマウスサークルを対象としたプレゼントキャンペーンを開催予定です!詳細をお楽しみに!

 

今回の内容は以上になります。
特別連載が続きますので、次の内容もぜひご覧ください。

タイトルとURLをコピーしました