【Arduino工作】MacとVS Codeで始める、Arduino開発再起動

これまで、私はレゴブロックのフレームにArduino Unoとブレッドボードを強引に載せた、手作り感満載のロボットを相棒に工作を楽しんできました。写真を見れば分かる通り、前面には「とりあえず付けてみた」感たっぷりのプレートを継ぎ足し、センサーを無理やり固定。配線も色とりどりのジャンパーワイヤが入り乱れ、まさに素人工作の極みを地で行くような風貌です。


前面の下部には、いかにも「後から撮ってつけた」ようなプレートボードを配置。超音波センサーなどのパーツがむき出しになっており、お世辞にもスマートとは言えません。しかし、この「動けば正義」という泥臭い試行錯誤こそが、電子工作の面白さだと思っていました。
1. 動作の重い旧PCからの卒業と、Macへの移行
これまで使っていたパソコンは、動作がとにかく重く、Arduino IDEを立ち上げるだけでも一苦労。ついにはウェブサイトを眺めるのが精一杯の「ただの置き型タブレット」と化してしまいました。電子工作において、ビルド(書き込み)の待ち時間が長いのは致命的です。やりたいことがあっても、PCの動作待ちで熱が冷めてしまう。

そこで今メインで使っているMacへ開発環境を完全に移行しようと思いました。心機一転、まっさらな環境でArduinoを再構築するプロジェクトの始まりです。
2. VS Code × PlatformIOの世界へ
今回の移行にあたって、自分の中に一つ大きなテーマを決めました。それは「公式のArduino IDEを卒業すること」です。


これまで慣れ親しんだ公式ソフトも使いやすいのですが、よりプロフェッショナルな開発体験、そして何より「カッコよさ」を求めて、多くのエンジニアが愛用する「Visual Studio Code(VS Code)」を導入することにしました。ここに「PlatformIO IDE」という拡張機能を組み合わせることで、公式以上のスピード感と、フォルダ管理のしやすさを手に入れることができます。
PlatformIO IDEのインストールとセットアップ
まずはVS Codeを立ち上げ、左側のサイドバーにある「拡張機能(テトリスのブロックのようなアイコン)」をクリックします。


検索窓に「PlatformIO IDE」と入力すると、アリのようなアイコンの拡張機能が出てきます。これを「インストール」ボタンで導入します。インストールが完了すると、サイドバーに「アリのアイコン」が出現します。これが、新しい開発の拠点となるゲートウェイです。
インストール後、初めてアリのアイコンをクリックすると、裏側で必要なコンポーネントのセットアップが自動で始まります。ここで少し待たされますが、これさえ終われば環境が手に入ります。
3. PlatformIO Homeとプロジェクトの構
セットアップが終わると、「PIO Home」という画面が開きます。ここが開発の拠点になります。
画面上の「New Project」をクリックして、新しいプロジェクトを立ち上げます。


・Project Name: 今回は「L-chika-Test」と命名
・Board: 使用している「Arduino Uno」を選択
・Framework: 「Arduino」を指定
プロジェクトが立ち上がると、画面左側のサイドパネルには、Arduino IDEでは見たこともないような整然としたフォルダ群が現れます。
ここで、このフォルダたちが何を意味しているのかを整理しておきましょう。
・include: 自分で定義したヘッダーファイル(.h)を整理して置く場所
・lib: 特定のセンサーやモータードライバ用のライブラリを管理する場所
・src: ここがメイン!実際のプログラムコード(main.cpp)を書き込む場所
・test: プログラムが正しく動くかテストするためのコードを置く場所
・platformio.ini: ボードの種類やシリアルポートの速度などを一括管理する設定ファイル


最初は「フォルダが多くて難しそう」と身構えてしまいましたが、基本は「src」の中のコードを書き、設定が必要な時だけ「platformio.ini」を触る、と覚えておけば大丈夫です。この「整理整頓されている感」が、脱・初心者を感じさせてくれます。
4. Macとの物理的な出会いと、ポート認識
さて、ソフトウェアの準備ができたら、次は物理的な接続です。ここでMacユーザー特有の壁にぶち当たります。
Arduino Unoは伝統的なUSB Type-B端子。対して、私のMacはスマートすぎるUSB-C端子のみ。
そこで、USB-Cへの変換アダプタを噛ませて接続します。Mac側がこの青い基板をちゃんと認識してくれるか不安でしたが、VS Codeのターミナル(画面下の黒い領域)を使って、直接システムに問いかけてみます。
ターミナルで「ls /dev/tty.*」というコマンドを打ち込んでみます。
これは、今Macに繋がっているシリアルデバイスをすべて表示しろ、という命令です。


すると、画面に「/dev/tty.usbmodem1101」といった文字が表示されました!これがMacがArduinoを認識しているという証拠です。これが確認できれば、書き込み準備は万端です。
5. 運命のLチカ(LED点滅)
環境構築が完了したところで基本中の基本、LEDを点滅させる「Lチカ」に挑戦です。
「src」フォルダの中にある「main.cpp」を開き、コードを書き込みます。
C++
#include <Arduino.h>
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Arduino IDEとの最大の違いは、冒頭に「#include <Arduino.h>」が必要なことです。書き終わったら、VS Codeの左下にある「→(矢印アイコン)」をクリックします。
ターミナルに「SUCCESS」の文字が誇らしく刻まれました。その瞬間、手元のArduino Unoに搭載された13番ピンのLEDが正確に点滅を始めました。

勢いに乗って、ブレッドボードを使った外部回路のテストも行いました。赤と緑のLEDを並べ、ジャンパーワイヤを這わせます。Macのキーボードのすぐ横で、自分の書いたコード通りにチカチカとLEDが光ります。
6. メカの裏側に宿る「本気度」と、疑問の解決
今回の再構築にあたり、改めて自分の作ったロボットをひっくり返して観察してみました。
赤いハウジングに収まった力強いモーター、それをつなぐ黒いギアボックス。これまでは「とりあえず動けばいい」と雑に扱ってきましたが、最新のMacから送られる洗練されたプログラムで、このメカたちがどう生まれ変わるのか。メカニズムへの愛着が一段と深まりました。
また、PlatformIOを使っていて感銘を受けたのが、サイドバーにある「?(クエスチョンマーク)」のアイコンの存在です。
「この設定はどうすればいい?」「ライブラリが見つからない時は?」といった疑問に、このアイコンから公式ドキュメントやコミュニティへ直通でアクセスできます。わざわざブラウザで検索し直す手間が省ける、ユーザーに寄り添った設計になっています。
なぜ ls /dev/tty.* というコマンドを使うの?
よくガイドに出てくるこのコマンドは、「Macがデバイスを正しく認識しているか」を確認するための低レベルな確認手段です。
- USBシリアルとして見えているか
- どのポート名で認識されているか
- 抜き差しでリストが増減するか(=そのポートがArduinoだと特定できる)
- ドライバに問題がないかの切り分け
「書き込みに失敗する」といったトラブル時の切り分けに非常に有効です。
PlatformIOなら「ポート設定」はいらない?
結論から言うと、基本的には不要です。そのまま動いたのであれば、それが正常な状態です。
なぜ自動で動くのか? PlatformIOは内部で以下の処理を自動で行ってくれるからです。
- 利用可能なポートをスキャン
- ボード定義と照合
- 最適なものを自動選択
ただし、手動指定が必要な「例外」もあります
次のような状況では、platformio.ini ファイルに upload_port = /dev/tty.usbmodemXXXX のように追記する必要があります。
- USBシリアル機器を複数繋いでいる
- Bluetoothシリアルが混ざって誤認される
- CH340系チップなどで動作が不安定
- 複数のArduinoを同時に接続している
終了する時は「そのまま抜いて」いいの?
Arduino UNOはストレージデバイスではないため、USBメモリのような「取り出し操作」は不要です。基本はそのまま抜いてOK!
ただし、トラブルを防ぐために次の「安全な手順」を意識しましょう。
✅ 安全に抜くおすすめ手順
- Upload中ではないことを確認(書き込み中の抜き取りはフリーズの原因になります)
- Serial Monitor(シリアルモニタ)が開いている場合は閉じる(次回接続時のポート占有エラーを防ぐため)
- USBケーブルを抜く
プロっぽい習慣: 長時間開発するなら、「モニタを閉じてから抜く」「次に挿したときにポートが変わっていないか確認する」の2点を意識するだけで、開発効率がグッと上がります。
これからの展望:さらなる高みへ
今回の成功で、まずはMacとArduinoの橋渡しが完了しました。
次回からは、この爆速環境を武器に、これまで処理が追いつかなかった複雑なモーター制御や、センサーデータのリアルタイム解析に挑んでいこうと思います。また、公式IDEを使わないことによるメリット・デメリットをじっくり検証していきたいと思っています。
あのレゴロボットが、Mac仕込みのキレのある動きを見せてくれる日は、もうすぐそこです。
もし「自分もMacでArduinoを始めてみたいけど、設定が難しそう」と足踏みしている方がいたら、ぜひこのVS Code × PlatformIOの組み合わせを試してみてください。世界が変わりますよ。
今回の手順で、もし特定のライブラリの入れ方が分からなかったり、MacがArduinoをどうしても認識してくれないといったトラブルがあれば、いつでも教えてください。一緒に解決策を探しましょう。

