趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

超音波センサー HC-SR04 で簡単な超音波レーダを作って見ました

超音波センサー HC-SR04 を STM8S103F3 ボードで動かして見る為に、先に検討した
サーボとLCDを利用して超音波レーダを作って見る事にしました。検討作業は、ほぼ
予想通りに進める事ができ、STM8S103F3のボードでもこのデバイスが利用可能な
事が判りました。以下がその様子となります。

<超音波センサーアプリケーションの概要>
   超音波距離センサー HC-SR04 のSTM8S103F3ボードでの検討に関しては、
   今までに検討したサーボとLCDを組み合わせて簡単な超音波レーダを作って見る
   事にしました。
   イメージ 1
  1.超音波センサーは HC-SR04   関連記事はこちら
  2.サーボは SG90  関連記事はこちら
  3.表示LCDNokia 5110 (New model)  関連記事はこちら

 [動作状況]
    

<テスト内容と結果>
    今回の超音波距離センサーのテストは、今までに検討したサーボとLCD
    組み合わせて、以下の項目の検討を進めながら、超音波レーダを作って
    見る事にしました。

       1.超音波センサーからのエコーの時間をマイクロ秒単位で計測する方法の
             検討と動作の確認
       2.超音波センサーによる距離の計測中でもサーボをコントールをする
             方法の検討と動作の確認
       3.CPUチップのメモリ制限内で、超音波センサー、サーボ、LCD
            3種類のデバイスを動作させられるかを確認

   検討・動作させた結果としては、次の様なものでした。

       1.超音波センサーのエコー出力のマイクロ秒単位の計測に関しては、
            1ミリ秒を計測しているタイマーの入力を 1MHzにして、タイマーの
            1ミリ秒を計測中のカウンタレジスタの値を読み込む事で行える様に
             なりました。
       2.超音波センサーの計測とサーボコントロールの同時処理に関しては、
             超音波センサーからのエコー入力ポートで立ち上がりと立下りの
             両エッジで割り込みを行う様にして対応できました。CPUチップに
             この設定が有ったので実現は比較的容易でした。
       3.3つのデバイスのコントールを実装し、今回は回転軸座標の計算に
              sine/cosの関数が必要で、その為に計算用のライブラリも組み込み
              ましたが、それでも1.5KB程度の空きが有り、デバッグも動作
              させる事が出来ました。コンパイラの能力が高いと感じました。

 [テストでの機器の接続]
    イメージ 2

     イメージ 3

 [コード類]
     コードの開発にはIARのシステムを利用しました。
  (STM8S103F3P6ボードののコード開発に 関してはこちらの記事
         参照して下さい。)

     Code download URL : https://www.dropbox.com/s/qaduiwtxi8n8jtg/IAR_HC-SR04_STM8S.zip?dl=0