シリアル通信の世界へようこそ!このチュートリアルでは、Velxioブラウザ内シミュレーターを使って、シンプルな「シリアルHello World」プロジェクトを構築します。Arduino Unoからパソコンのシリアルモニターにメッセージを送信する方法を学びます。これは、センサーの読み取りから複雑なコードのデバッグまで、数え切れないプロジェクトの基礎となります。
作成するもの
外部部品を一切必要としないArduino Unoだけの回路を作成し、2秒ごとに挨拶とシステム稼働時間を表示するスケッチを書きます。出力はVelxioに組み込まれたシリアルモニターで確認できます。
回路の解説

回路は最小限で、Arduino Unoボードのみです。配線、LED、抵抗は一切不要です。Arduinoは内蔵のUSB-シリアル変換器を介してパソコンと通信します。Velxioではこれが自動的にシミュレートされるため、何も接続する必要はありません。
Arduino Unoをキャンバスに追加するには:
- キャンバスツールバーの**+**ボタン(下図参照)をクリックして、コンポーネントピッカーを開きます。

- コンポーネントピッカーで、カテゴリ別に参照するか、「Arduino Uno」を検索します。

- クリックしてキャンバスに配置します。
これで完了です!回路の準備は整いました。
コードの解説

以下が完全なスケッチです:
// Serial Communication Example
// Send messages to Serial Monitor
void setup() {
Serial.begin(9600);
Serial.println("Hello, Arduino!");
Serial.println("System initialized");
}
void loop() {
Serial.print("Uptime: ");
Serial.print(millis() / 1000);
Serial.println(" seconds");
delay(2000);
}
詳しく見ていきましょう:
Serial.begin(9600);– シリアル通信を9600ビット/秒のボーレートで初期化します。これはシリアルモニターで設定するボーレートと一致している必要があります。Serial.println("Hello, Arduino!");– 文字列を出力し、末尾に改行(キャリッジリターン+ラインフィード)を追加します。Serial.print("Uptime: ");– 改行なしでテキストを出力するため、次の出力が同じ行に表示されます。millis() / 1000– プログラム開始からの経過ミリ秒を返し、1000で割ることで秒単位に変換します。delay(2000);– ループを繰り返す前にプログラムを2000ミリ秒(2秒)一時停止します。
シミュレーションの実行
- エディターツールバーのRunボタンをクリックします。

- キャンバスツールバーからシリアルモニターを開きます(通常は虫眼鏡アイコンまたはターミナルアイコンです)。
- 次のように表示されるはずです:
Hello, Arduino! System initialized Uptime: 0 seconds Uptime: 2 seconds Uptime: 4 seconds ...
重要な概念
- シリアル通信:1本のワイヤーでデータを1ビットずつ送信する方法です。Arduinoはシリアル通信にUART(Universal Asynchronous Receiver/Transmitter)を使用します。
- ボーレート:シリアル通信の速度で、ビット/秒で測定されます。送信側と受信側で同じボーレートに設定する必要があります。
Serial.print()とSerial.println()の違い:print()は改行なしでテキストを送信し、println()はテキストの後に改行を追加します。millis():Arduinoが起動してからの経過時間をミリ秒単位で返す関数です。プログラムをブロックせずにタイミングを取るのに便利です。
よくある落とし穴とデバッグのヒント
- ボーレートの不一致:文字化けが表示される場合は、シリアルモニターのボーレートが
Serial.begin()と一致しているか確認してください。Velxioでは通常自動検出されますが、念のため確認しましょう。 Serial.begin()の記述漏れ:これがないと何も出力されません。必ずsetup()内に記述してください。delay()によるブロッキング:delay()はすべての処理を停止させます。より応答性の高いコードにするには、millis()を使ってノンブロッキングなタイミング処理を検討してください。- シリアルモニターが開かない:シミュレーションが実行中であることを確認してください。最初にRunボタンをクリックしましょう。
発展のための提案
- ユーザー入力の読み取り:
Serial.read()やSerial.parseInt()を使ってシリアルモニターからコマンドを受信し、LEDを制御してみましょう。 - センサーデータの送信:ポテンショメーターや温度センサーを接続し、その値を出力してみましょう。
- 複数メッセージの送信:
Serial.print()で複数の変数を使ってフォーマットされたデータを出力してみましょう。 - ライブラリの追加:ライブラリマネージャーを使って、追加のシリアルポート用の
SoftwareSerialなどのライブラリをインクルードしてみましょう。
自分で試してみよう
実際に試してみませんか?Velxioでライブサンプルを開き、コードを変更してみてください:挨拶文を変えたり、遅延時間を調整したり、カウンターを追加したり。学ぶ最善の方法は実際にやってみることです。
楽しいコーディングを!