ソロでたのしむ

DIY、電子工作、キャンプ用品などの趣味を紹介します

ArduinoとLCDでコクピット情報を追加表示 その①~20x4LCDモニターの表示内容を決める

 

 20x4文字のLCDモニターとArduinoで、戦闘機の計器類と同じような情報を、車内で表示します。実際に車に装着されるまでを、全7回で紹介します。

  1. プロローグ ArduinoとDHT11を使うスケッチ(プログラム)
  2. 今回の記事;その① 20x4LCDモニターの表示内容を決める
  3. その② シリアル通信で加速度出力を確認
  4. その③ ArduinoとGY-521(MPU-6050)を使うスケッチ(プログラム)
  5. その④ 自作オーバーヘッドコンソールを拡大
  6. その⑤ 自作オーバーヘッドコンソールにモニターと回路埋め込み
  7. オーバーヘッドコンソール付けディスプレイ完成

これまでにできた事

これまでに、Arduino(アルドゥイーノ)nano1個で、20x4文字のLCDモニターに表示できている情報は、
・時刻
・高度
・速度
・進行方向
・捕捉している衛星数
・温度
・湿度
の7項目です。

Arduinoとセンサーモジュールでバージュンアップ途中の車内モニター

使用しているモジュールは
・GPSモジュール
・温湿度センサーモジュール
の2つです。

ArduinoのデジタルI/OピンもアナログINピンもまだ余っているので、まだセンサーモジュールを追加できそうです!

最終目標

以前の、ミサイルスイッチを車に追加した記事で紹介しましたが、今後は、戦闘機コクピットの計器類から欲しいものだけを選んで、デジタル情報で20x4文字のLCDモニター画面に追加表示してきます。

似たような情報が表示されるだけでいいので、計器の形までは模擬しません。

 

LCDモニター表示が埋まっている状態で作動確認できたら、車へ取り付けて、完成です。

今日(その①)の目標

加速度センサーモジュールをArduinoにつないで、傾斜計(クライノメーター)風の表示ができるようにしたいのですが、その接続作業は後日に先延ばしします。
最終的に表示する画面構成を先に決めた方がやる気が出るので、今日は20x4文字LCDの画面レイアウトについて考えます。

LCDの画面レイアウト

現状の車内モニター

ArduinoとGPSモジュールで作った、現状の車用GPSモニター

車両停止時のLCD表示。移動中は左下の使用GPS数の位置に速度を表示。

16x2文字のモニターでは、ちょうどいいくらいの情報量と場所取りになっています。
図表化すると、このようになります↓

1602LCD 衛星情報表示レイアウト 現状

各情報を色分けして、わかりやすくした図表↓

1602LCD 衛星情報表示レイアウト 現状(色分け)

温度、湿度、傾斜計を追加した画面レイアウト案

案1

2004LCDにArduinoでたくさんの情報を表示する。案1
まず、場所をとる傾斜計表示(●、▲、▼、<、>で表示する部分)を中央に置いて、そのまわりに他の情報を置いてみました。

まあまあ上手く配置できているのですが、傾斜計の中心点(●)と、進行方向の中心点(この図表の場合は”N”)の、各中心が別の位置にあるのが気になります。


傾斜計と進行方向(磁針)を縦にならべてみる事にしました。

案2

2004LCDにArduinoでたくさんの情報を表示する。案2
傾斜計と進行方向(磁針)を縦にならべました。
速度を示す”Spd”は場所がなくなり、”S”のみとなりました。
進行方向(角度)を示す”Dir”も同様の理由で、”HD”(ヘッディング)にしました。
黒く塗りつぶされている部分は、時刻の秒針を10秒刻み(この図表は50から60秒の間の状態)で示しています。

なんだか傾斜計の周りが窮屈そうに見えます。
傾斜計と進行方向(磁針)を右隅に寄せてみます。

案3

2004LCDにArduinoでたくさんの情報を表示する。案3
傾斜計と進行方向(磁針)を右隅に寄せました。
残りのスペースに、他の情報を入れていきます。
進行方向(角度)を示す”Dir”は、復活できました。

あと少し、傾斜計まわりをスッキリさせたいので、
もうあまり意味がない、速度を示す”S”と、ついでにセミコロンも無くしてみます。

最終案

2004LCDにArduinoでたくさんの情報を表示する。採用案(色あり)
窮屈感もなくなり、見やすくなりました。

実際の見え方に近くするために、色分けをなくすと、こうなります↓

2004LCDにArduinoでたくさんの情報を表示する。最終案

 

画面レイアウトも決まったので、次回は加速度センサーモジュールをArduinoとつないで、動作確認してみます。