VisuinoでGPSデータをMicroSDカードにログ記録する方法(Arduino Nano)
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | 手元にあったため使用。他のボードでも可 |
| GPS受信モジュール(汎用) | 1 | |
| MicroSDカードモジュール(汎用) | 1 | |
| MicroSDカード(汎用) | 1 | |
| ブレッドボード(汎用) | 1 | 3本のワイヤーを接続できれば何でも可 |
| ジャンパーワイヤー | 1セット | メス-メス 7本、メス-オス 3本(赤) |
使用するアプリとオンラインサービス
- Visuino - Arduino用グラフィカル開発環境
- Arduino IDE
プロジェクト概要
MicroSDカードは安価で手軽なデータストレージ媒体であり、Arduinoセンサーデータの保存に非常に便利です。安価なMicroSDカードモジュールも多数入手可能です。私は以前、超音波距離センサーのデータをMicroSDに記録するチュートリアルと、GPSモジュールから位置情報を取得してLCDに表示するチュートリアルを作成しました。その後すぐに、「GPS情報をMicroSDに記録するチュートリアルを作ってほしい」というリクエストをいただきました。
MicroSDへのデータ記録自体は簡単ですが、ファイルシステム管理にはメモリを消費し、Arduino UnoやNanoのような小型コントローラーでは残りメモリがほぼなくなってしまいます。実際、MicroSDサポートを追加すると、NanoやUnoでは他の処理に使えるメモリがほぼゼロになります。MegaやTeensyなどメモリの多いコントローラーを使う方法もありますが、GPSモジュールからのシリアルデータをそのままMicroSDカードに記録するだけなら、Arduino Nanoでも十分なメモリが残り、記録したデータを後で別のコンピューターで処理できます。
ステップ1: コンポーネント
- Arduino互換ボード(ここではArduino Nanoを使用、他でも可)
- GPSモジュール
- MicroSDカードモジュール
- MicroSDカード
- 小型ブレッドボード(3線接続できれば何でも可)
- メス-メスジャンパーワイヤー 7本
- メス-オス電源ワイヤー(赤)3本
ステップ2: Visuinoを起動し、Arduinoボードタイプを選択
Arduino Nanoにはシリアルポートが1つしかなく、プログラミングに使用するため、GPSを接続する前にプログラミングを完了する必要があります。
- Arduino IDEをインストール: https://www.arduino.cc/
- Visuinoをインストール: https://www.visuino.com
- Visuinoを起動
- Arduinoコンポーネントの「Tools」ボタンをクリック
- ダイアログで「Arduino Nano」を選択
ステップ3: VisuinoでMicroSDカードモジュールコンポーネントを追加・接続
- コンポーネントツールボックスのフィルターボックスに「sd」と入力し、「Micro SD Card Module」コンポーネントを選択して設計エリアに配置
- SDCard1コンポーネントの「Out」ピンを、Arduinoコンポーネントの「SPI」チャネルの「In」ピンに接続
- SDCard1コンポーネントの「ChipSelect」出力ピンを、Arduinoコンポーネントの「Digital[ 10 ]」チャネルの「Digital」入力ピンに接続
ステップ4: VisuinoでMicroSDカードコンポーネントにFile要素を追加・設定
- SDCard1コンポーネントの「Tools」ボタンをクリック
- 「Elements」エディターで右側のウィンドウから「File」要素を選択し、左側の「+」ボタンをクリックしてFile要素を追加
- オブジェクトインスペクターでFile1要素の「Path Name」プロパティを「GPSLog.txt」に設定
ステップ5: VisuinoでシリアルポートをFile要素に接続
- Arduinoコンポーネントの「Serial[ 0 ]」チャネルの「Out」ピンを、SDCard1コンポーネントの「Elements.File1」の「In」入力ピンに接続
ステップ6: Arduinoコードの生成・コンパイル・アップロード
- Visuinoで F9 キーを押すか、ツールバーのボタンをクリックしてArduinoコードを生成し、Arduino IDEを開く
- Arduino IDEで「アップロード」ボタンをクリックしてコンパイルと書き込み
ステップ7: MicroSDモジュールをArduinoに接続
以下の接続を行います(メス-メスワイヤー使用):
- CS (灰色) → MicroSDモジュール
- SCK (橙色) → MicroSDモジュール
- MOSI (青色) → MicroSDモジュール
- MISO (紫色) → MicroSDモジュール
- GND (黒色) → MicroSDモジュール
電源線(メス-オス赤ワイヤー3本):
- MicroSDモジュールのVCC/電源ピンにメス端を接続、オス端は未接続のまま
- Arduinoの5V電源ピンに別のメス-オス赤ワイヤーを接続、オス端は未接続
- GNDワイヤー(黒)のもう一方をArduinoのGNDピンに接続
- SCK (橙) のもう一方をArduino Digital 13 に接続
- MISO (紫) のもう一方をArduino Digital 12 に接続
- MOSI (青) のもう一方をArduino Digital 11 に接続
- CS (灰) のもう一方をArduino Digital 10 に接続
ステップ8: GPSモジュールをArduinoに接続
- GPSモジュールの電源にメス-オス赤ワイヤーを接続、オス端は未接続
- GPSモジュールのGND (黒) と TX (黄) にメス-メスワイヤーを接続
- GNDワイヤーのもう一方をArduinoのGNDピンに接続
- TX (黄) のもう一方をArduinoのRXピンに接続
ステップ9: 電源ワイヤーをまとめて接続、MicroSDカードを挿入
- 3本の電源ワイヤー(赤)のオス端をブレッドボードなどで一緒に接続
- MicroSDカードをモジュールに挿入
ステップ10: 完成 - 動作確認
おめでとうございます!プロジェクト完了です。
ArduinoのDigital Pin 13のLEDが、GPSからの新しいデータがMicroSDカードに記録されるたびに点滅します。記録されたデータ例(NMEAセンテンス)はプロジェクトページの画像で確認できます。Visuinoの完全なダイアグラムも掲載されています。作成したVisuinoプロジェクトファイル(FBY57XIIO8U2WS4.zip)もダウンロード可能です。
製造プロセス
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduino MegaとNEO-6M GPSモジュールの接続:ステップバイステップガイド
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- u-blox LEA-6H 02 GPSモジュール: Arduino & Python 統合ガイド
- Arduino Unoと1Sheeldで作る4x4x4 LEDキューブ – インタラクティブLEDプロジェクト