電波時計Arduinoの機能を拡張するシールドは様々なものがでており、LANや無線LAN、モーター制御やLCD制御等複雑な電子機器の制御がArduinoの基板上に乗せるだけで簡単に出来るようになっている。ソフト的にもライブラリを追加してクラスや関数を少し呼び出すだけで使えてしまう便利な世の中になっている。GPSシールドもその一つで、Arduinoで簡単にGPS情報を取得し扱う事が出来る。今回使用しているのはElecrow製のGPSシールドで、NEO-6Mと言うモジュールが使われている。http://www.elecrow.com/wiki/index.php?title=GPS_shieldSDカードスロットもついているが、今回SDカードの使い方については割愛する。SDカードはライブラリを使用して読み書き出来るので、GPSのログ等の記録に使えそうだ。http://www.elecrow.com/wiki/index.php?title=Wireless_SDshieldGPSの使い方は簡単で、ライブラリすら必要無い。GPS情報がRX/TXピンからシリアル通信でどんどん流れてくるだけだ。シールド上のジャンパピンでどのピンをRX/TXにするか設定し、後はSoftwareSerialでピンを指定し、9600bpsで開けばどんどんデータが流れてくる。ピンを0/1に指定すれば、シリアルモニタを開いた途端GPSの情報が表示される。GPSの情報を見て楽しみたいのであれば、無償で提供されているu-centerのソフトをインストールし、Arduinoのポートを指定して開けば各種情報が表示される。http://www.elecrow.com/wiki/images/4/4a/U-centersetup-7.0.2.1.zipBluetoothモジュールをArduinoに追加すれば、GPS情報を離れたPC等から見ることも出来る。GPSロガー等色々用途は考えられるが、使い方の例としてLCDシールドと組み合わせてGPS時計を作ってみよう。単純なGPS時計だけでは他でも紹介されていて芸が無いので、さらに組み合わせてGPS時計で時計合わせをした後、JJY信号を発信し電波時計の調整が出来る様にしてみる。GPSシールドの性能はなかなか良く、電波時計の電波が入らない屋内でもGPS情報は取得出来たりしたので(位置までは計測出来ないが)、GPS信号は入るが電波時計が入らない場所に設定してある電波時計を調整したり、海外で日本で購入したお気に入りの電波時計を調整するのにも使えるかもしれない。SainsmartのLCDシールドとの組み合わせで、GPSシールドはRX/TXを0/1ピンに設定(このため通信にソフトシリアルでなく通常シリアル使用)、JJY信号の発信にはピン3を使用している。配線はArduinoの上にGPSシールド、その上にLCDシールドをスタックするだけ。Pin3とGNDの間にJJYのアンテナケーブル。LCDシールドのピンアサインは下記参照。http://www.dfrobot.com/wiki/index.php/LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009GPSシールドが無い場合でも、シリアルモニタから直接$GPRMCコマンドを入力する事で時計合わせをする事も可能。Arudinoの電源を入れるとGPS情報待ちとなり、GPS情報から日時情報が取得出来たらLCDに時計が表示される。この状態でもJJY信号は発信するが、余分な処理が走り信号が正しく出るかわからないのでLCDシールドのSELECTボタンを押すことでJJY信号発信専念モードと切り替える様にしている。GPS信号を受信できるところで時計合わせを行い、電波時計のそばでJJY発信モードに切り替え。電波はあまり飛ばないので、時計の電波状況を見ながらアンテナの位置を調整する。すると電波時計の時計がArduino表示の時計と同期する。下記サイトからタイムライブラリも入れておく事。http://www.pjrc.com/teensy/td_libs_Time.htmlcsvテキストからパラメータ抜き出す関数は他の用途でも便利に使えるのではないかと思う。terminated.コンパイル時にエラーが発生しました。<Arduino.h>にしてみて下さい。コンパイルが通り作動しました、有難うございます。コメントをキャンセルメールアドレスが公開されることはありません。*上に表示された文字を入力してください。ProgramResource.net本サイトは開発者向けに様々な情報を筆者ねふぁが提供するサイトです。筆者の個人的な経験や知識、他のサイトの情報を参考にしながらまとめています。内容に誤りや偏見などある可能性がありますのでご注意下さい。本サイトの情報を元に工作等を行い、万が一機器等が破損した場合でも責任は負いかねますので、最終的にはご自身でチェックしてから動かす様にして下さい。