この記事でわかること
- Pro Microとは?
- Platform IOを使ったマイコン開発環境の構築
- Arduino言語を使ったLEDの点滅制御
Pro Microとは??
- Sparkfun社のATmega32U4搭載のArduino互換マイコンボード
- USB HIDを簡単に実装できるため、自作キーボード用MCUとしてよく使用されている
- Sparkfun社が出している純正品およびサードパーティー製がある。純正品は下記の3種類
- 純正品を紹介しておきながら今回は遊舎工房さんで購入できる互換品を使用します
開発環境
- OS: Windows 11
- Editor: VSCode
- IDE: Platform IO
Platform IO
一般的なマイコン開発はマイコンを販売しているメーカーが独自にIDEをだしており、それを使用することが多いです。
- STMicro → STMCubeIDE
- Microchip → MPLAB IDE
- Renesas → e² studio
いろんなマイコンを今後も触りたいので、各マイコンボードごとにIDEをいれて環境構築して、、、を繰り返していると大変なのでVSCode上で動作するPlatform IOを使用します。VSCodeの拡張機能からボタン1つでインストール可能です。
プロジェクトを作成する
インストール後、左のアイコンタブに出現します。
アリさんマークをクリック→ PIO Home → OpenでPlatform IOのHomeタブが開きます。
Quick Accessの New Projectを選択すると、Project Wizardが立ち上がるので下記項目を設定します。
- Name: Projectの名前
- Board: 開発するマイコンボードの選択(今回はSparkfun Pro Micro 5V/16MHz)
- Framework: Projectで使用するFramework(Pro Microを選択すると Arduinoが選択可能になります)
- Location: プロジェクトを作成するディレクトリを指定
プロジェクトを作成するとplatformio.iniというプロジェクトの設定ファイルが表示されます。
シリアルスピード、必要なLibraryなどを設定できます(今回はdefaultで使用します)。
実際のプログラムを書くファイルはsrcディレクトリ内のmain.cppです
デフォルトではmyFunction関数が実装されていますが、実行してもマイコン上では何もわかりません
Lチカプログラムを書いてみる
マイコンボード上にあるLEDが2つあるのでそちらを点滅させるプログラムを作成します。
LEDを光らせるためにはマイコンのGPIOピンをHighに切り替える必要があります。Arduino言語ではdigitalWrite
を使用してgpioのhigh/lowを切り替えれます。
digitalWrite(pin, value);
- parameterは下記のとおりです。
- pin : ピン番号
- value : HIGH/LOW
ちなみにArduino系マイコンはD13をよくLEDに接続されていることもあってか、いろんな記事ではLチカ記事で↓のようにプログラムされますが、ProMicroはD13にはLED接続されていないので動作しません。
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
ProMicroはLED_BUILTIN_TX
とLED_BUILTIN_RX
で動作します↓
void loop() {
digitalWrite(LED_BUILTIN_RX, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN_RX, LOW);
delay(1000);
digitalWrite(LED_BUILTIN_TX, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN_TX, LOW);
delay(1000);
}
ちなみにマクロ定義↓↓17番ピンと30番ピンに割り振られていて
#define LED_BUILTIN 13
#define LED_BUILTIN_RX 17
#define LED_BUILTIN_TX 30
実行
まとめ
今日のまとめです。
- ProMicroはSparkfun社のマイコンボード
- Platform IOはVSCode上で動作するいろんなマイコンを開発できるIDE
- ArduinoでLチカするには
digitalWrite
関数を使う - ProMicroのLEDピン番号はD30とD17(D13には実装されていないので注意!)
今回はここまで、しばらくはProMicroで遊びつつせっかくなので自作キーボードとか作ってみたいですね😶🌫️