検索
連載

シリアル通信でセンサー値をPCのモニターに出力しよう!マイクロマウスで始める組み込み開発入門(11)(3/3 ページ)

市販の組み立てキットを用い、小さくて賢いロボット「マイクロマウス」の開発に取り掛かった北上くんとえみちゃんは、サンプルのソースコードに頼らない、オリジナルプログラムを作成中。今回は、前回取得したセンサーの値を「シリアル通信」でPCのモニターに表示させる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

 これで、通信処理ができるようになりました。

 前回作成したモード2の処理に、文字列送信処理を追加します(ソースコード10)。


/************************************************/
/*  モード2の処理    (app_mode2)              */
/************************************************/
/*  センサーの値をPC側に送信する                */
/************************************************/
void app_mode2(void)
{
    //センサーの値をPC側に送信する
    int r;                    //右センサーの値
    int fr;                   //前右センサーの値
    int fl;                   //前左センサーの値
    int l;                    //左センサーの値
    unsigned char sw_r;       //右スイッチの状態
    unsigned char sw_c;       //中スイッチの状態
    unsigned char sw_l;       //左スイッチの状態
    //
    while(1)
    {
        //センサー値取得
        r  = ctrl_adc_r();    //右
        fr = ctrl_adc_fr();   //前右
        fl = ctrl_adc_fl();   //前左
        l  = ctrl_adc_l();    //左
        //文字列 送信
        ctrl_com_send("\rR:",r);
        ctrl_com_send(", FR:",fr);
        ctrl_com_send(", FL:",fl);
        ctrl_com_send(", L:",l);
        //全てのスイッチの値を取得する
        ctrl_sw_all(&sw_r, &sw_c, &sw_l);
        //スイッチの値をチェック
        if(sw_r == SW_ON || sw_c == SW_ON || sw_l == SW_ON)
        {
            //どれかのスイッチが押されたらブザーを鳴らし、終了する
            ctrl_bz(BZ_FREQ_DO, 100);        //ブザー鳴動(ド)
            break;
        }
    }
}
ソースコード10 ctrl_com_send関数を呼び出す4行を追記。モード2を実行するとセンサーの値を読み込みPCのモニターに出力する。スイッチを押すと終了する

>>ソースコード(Mouse201303.lzh)のダウンロードはこちら

 では、プログラムをビルドして、Pi:Co Classicの動作を確認してみましょう(動画1)。

動画1 Pi:Co ClassicをPCと接続し、モード2を実行するとPCのモニターにセンサー値が表示される

シリアル通信で送られたセンサー値
画像6 シリアル通信で送られたセンサー値

えみ

やった〜。ちゃんとセンサーの値が表示されましたよ!

それにしても、A/D変換やシリアル通信って、ちょっとつかみどころがなくって、正直難しかったです。


北上

確かに、そうかもしれないね。


えみ

それに、データシートなんて、見ているだけで頭痛くなっちゃいますし(汗)。


北上

ハハハッ。その気持ちはよく分かるな〜。ボクも最初のころは、辛かったよ。少しずつ慣れてきたけどね。


えみ

私も、ちょっとずつ自分で読めるようになりたいです。だけど、それはまたおいおいということで……。今日はこの辺にして、ご飯でも食べに行きませんか?


北上

そうだね。えみちゃん、何か食べたいものあるかい?


えみ

え!? あっ、駅前の洋食屋さん! あそこでオムライスを食べたいです。


北上

じゃあ、そこにしよう!!




 ようやく、取得したセンサー値をシリアル通信でPCのモニターに出力させることに成功しました。

 マイコン制御プログラミングを行うには、データシートの中身を理解する必要があります。ついサンプルのソースコードをコピー&ペーストして、「動いているから大丈夫」と逃げてしまいがちですが、それではいつまでたっても自分が書いたソースコードに自信を持つことができません。慣れないうちは、データシートを読むと思うだけで、尻込みしてしまうかもしれませんが、目をそらさずに、一度じっくりと取り組むことをおススメします。まずは、自分が必要とするところから、データシートを読んでみてください。次第に、苦手意識が払拭(ふっしょく)されるはずです。

 次回は、「モータ」を扱います。お楽しみに! (次回に続く)

ロボット開発の最前線

ロボット/ロボット開発コーナー
あらゆる技術の集大成といわれる「ロボット」をテーマに、産業、レスキュー、生活支援/介護分野などにおけるロボット開発の実情や、関連する要素技術、研究開発、ロボットコンテスト、ロボットビジネスの最新動向などをお届けする。

>>ロボット特集のTOPページはこちら


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る