結論
- マイナーなboardだとサンプルプログラムが置いてないことがありますが、LPC1768など有名なボードのプログラムをコピーしてくると動きます。
- Mbed Studioを使ってみたところ、こちらの方が楽にサンプルプログラムを動かせます。
-> Mbed Studioで基板LEDを光らせる
mbedとは
ARM社のプロトタイピング用のワンボードマイコンとその開発環境のことです。オンライン上でコンパイルして、実行ファイルを作れることが特徴で、公式サイトにはmbed対応のボードが各社から販売されています。
Free open source IoT OS and development tools from Arm | Mbed
nucleo-L496ZGとは
STマイクロ社製のボードで、mbed対応マイコンの中では高性能な部類に入ります。Flashが1MB以上で入手でき、比較的安価なボードということでこのボードを購入しました。nucleoはPIN数/基板サイズにより、3種類ありますが、一番大きなnucleo-144シリーズです。


mbed Compiler で nucleo-L496ZGを使ってみる
早速mbed Compilerでnucleo-L496ZGをつかってみます。
まずはmbedのページから登録し、アカウントをつくます。「signup for free」をクリックします。

アカウント作成後nucleo-L496ZGのページにアクセスしましょう。そして、右下の「Add to your Mbed Compiler」をクリックして、このボードをmbed Compilerに追加しましょう。

Compilerを起動すると、このボードにあったサンプルプログラムが選べます。nucleo-L496ZGにはサンプルプログラムが一つしかないのですが、このMbed OS Device Management example for various ST boardのpelion-example-commonというサンプルプログラムが曲者です。実はこのボードと合っていませんし、使うことが推奨されていません。もちろんそのままCompileしても、「ネットワーク設定をユーザーがつかうものに書き換えてね」というエラーがでます。


もう開発されていないし、使わない方がいいよとのこと。しかも動作確認済のボードは限られている。
さてどうしましょう?
空のモデルから作るほかなさそうです。テンプレートで「空のプログラム」を選びます。プログラム名は「mbed_blinky_nucleo」など自由につけます。

作成後は何も出てきません。「空のモデル」ですからね。残念な気持ちになります。

さて、このままではどうしようもないので、LEDを点灯させるサンプルプログラムをコピーしてきます。一番有名なLPC1768のページに行きましょう。そしてこのボードの情報をCompilerに追加します。もちろんLPC1768は購入しなくても大丈夫です。

さて、LPC1768を選ぶとちゃんとLEDを光らせるサンプルプログラムがあります。(あたりまえですが)

OKを押すと、ライブラリとmain.cppファイルがきちんと入っているプログラムができます。

この「mbed」という名前のライブラリビルドとmain.cppを選択して、コピーします。


あとはmbed_blinky_nucleoを選択した状態でCompileを押せばソフトがコンパイルされて、実行ファイルがダウンロードできます。LPC1768のプログラムをコピーしただけで動くなんて素晴らしい!!普通はボードが変わったら全部作り直しなのによくできています。

ちなみにmain.cppの中身は以下のようなシンプルなコードです。
#include "mbed.h"
DigitalOut myled(LED1);
int main() {
while(1) {
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
1行目:mbedライブラリを使いますよと宣言
3行目:DigitalOutとしてLED1端子をmyledという名前で設定。
各マイコンのLED1端子PINが「LED1」という名前で設定されており、この共通名称を使うことでボードが変わってもプログラムが動くようになっているのですね。
5行目:メイン関数定義
6行目:無限ループの定義
7-10行目:先ほど3行目で定義したmyledを1=ONにして0.2秒待ち、0=OFFにして0.2s待ちの繰り返し
今回はここまでです。御覧頂きありがとうございました。