6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac環境でPlatformIO IDEを用いてハードウェアコーディングをする時の環境セットアップについて

Last updated at Posted at 2019-06-28

ArduinoやM5Stackのコーディングの際に、PlatformIO IDEという開発統合環境を使って開発をしてみました。
スクリーンショット 2019-06-27 16.13.47.png

これまで、Arduinoの開発を行う時にはArduino IDEを用いていました。お馴染みのこの画面です。
スクリーンショット 2019-06-27 15.12.57.png
Arduino IDEを使っていて特に大きな不満はなかったのですが、チームでコーディングを行う際に、さまざまな利点があるということで、PlatformIO IDEを使って開発をしてみました。PlatformIO IDEの利点を紹介しつつ、Arduino UNOでLチカ(LEDを点灯させる基本的なプログラム)を行うまでの流れを説明したいと思います。

PlatformIO IDEとは?

マイクロソフト社のソースコードエディタであるVisualStudioCode(以下VSCode)や、オープンソースのテキストエディタであるAtomの拡張機能で、ArduinoやM5Stackを始めとするハードウェアプログラミングに適しています。なおこの記事では、ソースコードエディタにVSCodeを使っています。
スクリーンショット 2019-06-27 15.11.07.png
これはArduino IDEと比較して、以下の利点があります。
###コーディングが楽になる
自分はこれが特に便利だと思ったのですが、検証か書き込みボタンを押さないとデバッグが行えないArduino IDE環境と異なり、コーディングをしている時に変数や関数の補完、そしてデバッグをしてくれます。
スクリーンショット 2019-06-27 15.17.03.png
###ターミナルやシリアルモニタなど、様々な機能を1画面で見られる
Arduino IDEの場合は、シリアルモニタやターミナル画面が別ウインドウでしか表示できませんが、PlatformIO IDEの場合はそれを1画面で見られます。図のように、複数のプロジェクトの画面を開くことも可能です。
Qiita.png
###CUIを用いて作業ができる
上の図からも分かるように、VSCode内でターミナルを開けるので、コーディングをチームで行う際に、Git管理をするのが楽になります。また、コマンドラインを用いてArduinoへプログラムの書き込みをしたり、ライブラリのインストールなどを行うことも可能です。
#PlatformIOをインストールしてみる
ということで、VSCode、PlatformIOをインストールし、Arduinoにプログラムを書き込んでみましょう!
*この時のPC環境はmacOS Mojave, バージョン10.14.4でした。
###VisualStudioCodeをインストールする
始めに、VisualStudioCodeをインストールします。公式ホームページhttps://code.visualstudio.com からDownload for Macをクリックしてダウンロードして下さい。
スクリーンショット 2019-06-27 16.25.26.png
###PlatformIO IDEをインストール
VSCodeをインストールしたら、PlatformIO IDEをインストールします。
VSCodeを開き、左側にあるアイコンのうち、赤枠で囲ったEXTENSIONSのアイコンをクリックし、PlatformIOと入力して、インストールを行なって下さい。
アセット 1.png
これで環境のセットアップは完了です。続いて、新しいプロジェクトを作成して、エルチカのプログラムを書いてみましょう。
###プロジェクトを作成し、ボードを選択する
アセット 2.png
PlatformIO IDEをインストールすると、VSCodeを起動する際に自動的に、PIO Homeというタブが開かれるようになります。
このタブの中にある、New Projectというボタンをクリックして下さい。
スクリーンショット 2019-06-27 16.53.36.png

続いて、Nameにプロジェクト名を、Board欄から、Arduino UNOなど、自分が使うマイコンボードを選択して下さい。
Finishをクリックすると、プロジェクトが作成されます。
###ファイル構造について
プロジェクトが作成されると、このような図が出てくるかと思います。
アセット 4.png
枠線で囲った部分が、作成したLEDBlinkプロジェクト内のファイルになりますが、Arduinoに比べ、やたら沢山のフォルダがありますね・・・
まずは、ArduinoIDEで編集してきた.inoファイルの代わりに、srcフォルダ内にあるmain.cppファイルを編集すればOKと考えて下さい。
ちなみにプロジェクトを再度開く際には、platformio.iniファイルをVSCodeで開くとプロジェクトごと開くことができます。

ここに、Lチカのプログラムを書き込んでみます。今回はArduinoUNOに内蔵されているLEDを点灯させるため、以下のようなプログラムを書きました。
スクリーンショット 2019-06-27 16.57.34.png
###スケッチを書き込み
スケッチを書き終えたら、Arduino UNOをMacに接続して、プログラムを書き込みます。
アセット 5.png
画面左下にある右矢印アイコンをクリックすると、書き込みが始まります。USBポートは、選択しなくても自動的にArduinoUNOのポートを認識して書き込んでくれます(これがすごく便利!)。
書き込みが始まるとターミナルが開き、書き込み状況を表示してくれます。
緑色でSUCCESSと表示されれば、書き込みは成功です!
書き込みが成功していれば、下図枠内のArduino内蔵LEDが点灯しているはずです。
アセット 6.png

その他豆知識

###Arduino IDEで使ってきたinoファイルを引き継いで使いたい
プロジェクトを使ってみて分かる通り、PlatformIO IDEでは、Arduino IDEで使用してきた.inoファイルではなく、.iniファイルやmain.cppファイルから構成されます。そのため、今までArduino IDEで使ってきたファイルをPlatformIO IDEで使うために必要な手順を説明したいと思います。

始めに、PIOHome画面を開き、Import Arduino Projectボタンをクリックします。
スクリーンショット 2019-06-27 17.14.46.png
そして、ボードの種類を選択し、開きたい.inoファイルのフォルダを指定してから、Importボタンをクリックします。
ここで、Use libraries installed by Arduino IDEをクリックするようにして下さい。Arduino IDEでインストールしていたライブラリを、PlatformIO内で再インストールすることなく使用することができるようになります。
スクリーンショット 2019-06-27 17.16.05.png
これで、プロジェクトが作成されました。inoファイルは、srcフォルダ内に配置されます。
あとはmain.cppファイルの時と同様、ファイルを編集して書き込みを行うだけです。

###必要なライブラリを追加でインストールしたい
追加でライブラリをインストールしたい場合には、一度PIOHomeを開き、Librariesタブを開きます。ここからキーワードを入力して、必要なライブラリをインストールできます。
スクリーンショット 2019-06-27 17.21.30.png
同様に、Boardsタブからはボードの追加を、Devicesタブからは認識されているデバイスの確認ができます。この辺りはほとんど、Arduino IDEでの操作と同じですね。

なお、ライブラリのインストールなどは、コマンドラインで行うこともできます。こちらのサイト https://qiita.com/hotchpotch/items/4777979835cf04453e2e などを参照して下さい。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?