PratformIOを使ってみよう¶
▼ Platform.IOで使えるコマンド¶
基本形¶
pio [OPTIONS] COMMAND
platformio [OPTIONS] COMMAND
※コマンドは両方使用することができます。ただ毎回platformioと記述するのが面倒なので、pioで慣れてしまうのがおすすめです。どちらも同じ動きをします。
Options:
--version Show the version and exit.
PlatformIOのバージョン表示
-f, --force Force to accept any confirmation prompts.
-c, --caller TEXT Caller ID (service).
-h, --help Show this message and exit.
Platformのコマンドの意味などを確認できます。
Commands:
account Manage PIO Account
PlatformIOに登録したアカウントにアクセスしたりできます。
boards Embedded Board Explorer
PlatformIOで開発できるボードを確認できます。
ci Continuous Integration
debug PIO Unified Debugger
device Monitor device or list existing
PlatformIOに登録されているデバイスの確認ができる
init Initialize PlatformIO project or update existing
PlatformIOを新規に作成する際の初期化コマンド
lib Library Manager
platform Platform Manager
PlatformIOに登録されているプラットフォーム(開発環境)への操作
remote PIO Remote
run Process project environments
プロジェクトのmakeや書き込み等一括で行うコマンド
settings Manage PlatformIO settings
PlatformIOの設定の確認や変更ができます。
test Local Unit Testing
update Update installed platforms, packages and libraries
Platformやライブラリをアップデートします。
upgrade Upgrade PlatformIO to the latest version
PlatformIO自体のアップグレードができます。
最初の設定¶
pio init --board <ボードID>
ボードIDは以下のコマンドより確認することができます。
pio boards
これで全部表示
pio boards arduino
Arduinoとして登録されているボード一覧
pio boards mbed
mbedとして登録されているボード一覧
pio boards stm32
STM32系列のボード一覧
pio boards > boards.TEXT
ボード一覧をテキストに保存
PlatformIO, version 3.4.1(2017/10/28 現在登録されているボードリスト)
試しに、ArduinoUno の環境を整えます。ArduinoUnoのボードIDは"uno"となりますので(わかりづら!)
pio init --board uno
するど、フォルダーの中に
platformio.ini - Project Configuration File
PlatformIOの設定ファイル(主にボードIDやファームウェアなど)
src - Put your source files here
プログラムを入れるフォルダ。
lib - Put here project specific (private) libraries
ダウンロードしたライブラリなどを入れるフォルダ
が出力されます。
試しにLチカプログラム Blinks を試して見たいと思います。
以下のプログラムを scrフォルダの中で main.cpp というファイルを作り貼り付けます。
/**
* Blink
*
* Turns on an LED on for one second,
* then off for one second, repeatedly.
*/
#include "Arduino.h"
#ifndef LED_BUILTIN
#define LED_BUILTIN 13
#endif
void setup()
{
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
// turn the LED on (HIGH is the voltage level)
digitalWrite(LED_BUILTIN, HIGH);
// wait for a second
delay(1000);
// turn the LED off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW);
// wait for a second
delay(1000);
}
コピペとかが面倒な際は、以下のコマンドでダウンロードしてきます。
wget https://raw.githubusercontent.com/nonNoise/PlatformIO-MakeIt/master/Sphinx/sorce/arduino/blinks.cpp
blinksプログラムが整ったら、run コマンドでコンパイルをします。
pio run
すると、このタイミングでArudinoUNOに必要な開発環境(主にGCC周りや書き込み用ライブラリ)を自動でダウンロードからインストールまで行います。
この動作が大変、大変便利で気持ちよく開発を行うことができます。真似して行きたい環境セットアップ手法ですね。
開発環境のインストールが行われて無事にコンパイルも行われると、最後に以下のような表示がされるはずです。
AVR Memory Usage
----------------
Device: atmega328p
Program: 928 bytes (2.8% Full)
(.text + .data + .bootloader)
Data: 9 bytes (0.4% Full)
(.data + .bss + .noinit)
========================= [SUCCESS] Took 2.38 seconds =========================
コンパイルまでの時間の確認も面白いですが、肝心な項目は 使用メモリー の箇所です。 自分が作成したプログラムがマイコンのメモリーをどれくらい消費しているか。 プログラマーは常にマイコンのメモリー空間を意識しながら書いて行くと、大変良いプログラムが出来上がると思います。
▼まとめ¶
以上の内容でPlatformIOの基本的なコマンとの流れが掴めたかと思います。
大まかにまとめると
pio boards
これで使いたいボードIDを探す
pio init --board uno
これでボードID"uno"を選択して初期化
scrフォルダにmainソースを書く
pio run
runコマンドでコンパイルを行う。GCC環境とかがなければ自動でインストールする。
こんな感じですかね。
次回以降、それぞれの開発環境に合わせたコマンドや書き込み方法をまとめて行きます。