Nucleo-F401RE(mbed)で遊ぶ01: Lチカ

昨年買ったまま放置していたNucleoで遊びはじめたのでメモ

購入してから基本的な使い方

購入したのは、STMicroelectronicsのNucleo-F401REという評価基板。STM32F401REというマイコンが乗っている。開発環境はmbedに対応しており、web上のIDEで開発ができるので非常にお手軽。また、Arduino Uno Revision3 互換であるため、Arduinoのシールドを簡単に接続できる。 マルツで1450円(税抜)で購入したが、今は円安のせいかもう少し高くなっている模様。

基本的な使い方は以下のサイトでわかりやすく紹介されているので、これを参考にした。

  • 基板をUSBでPCに接続
  • USBメモリと同じように、NUCLEOという名前のデバイスが認識されるので、中に入っているmbed.htmをブラウザで開く
  • ユーザ登録を行う
  • ファームウェアを更新する
  • 「Open mbed Compiler」というボタンをクリックしてIDEを開く
  • プログラムを書いてコンパイル
  • コンパイルに成功すると、バイナリのダウンロード画面が現れる
  • バイナリを、USBメモリに保存するのと同じようにNUCLEOというデバイスに保存
  • プログラムがマイコン上で動き出す

blog.cloudninja.asia

公式のチュートリアル動画もある。 www.youtube.com

Lチカのプログラムを作成

IDEを開き、Newボタンをクリックする。ダイアログが現れるので、templateタブをクリックし、"Blinky LED test for the ST Nucleo boards"を選択しOKをクリックする。すると、プロジェクトが作成され、main.cppには以下のプログラムが記述されている。

#include "mbed.h"

DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1; // LED is ON
        wait(0.2); // 200 ms
        myled = 0; // LED is OFF
        wait(1.0); // 1 sec
    }
}

このプログラムでは、LEDを0.2秒 ON ->1秒 OFF を繰り返す。 LEDの操作に用いているのが、"DigitalOut"というクラスで、"myled"というインスタンス名でインスタンスし、"LED1"というIOピンに接続するということをコンストラクタに渡している 。

"DigitalOut"などのライブラリについての説明は、以下のサイトに説明がある(日本語版の方が詳しい気がする)。
Homepage - Handbook | mbed
mbed 日本語リファレンス (私家版) | mbed

IOピンについては、以下のサイトに載っている図を見れば良い。
NUCLEO-F401RE | mbed
"青背景に白文字", "緑背景に白文字", infomartionの欄に記されている"additional labels"が指定できる。

あとはコンパイルして、バイナリをデバイスに保存してやればLチカが確認できる。