mbedはじめました
 突然、またワンチップマイコンの類をいじりたくなった。

 最近のマイコン事情を調べてみると、安い物では百円くらいから、5千円出すとかなりリッチな環境が手に入る事が分かった。そして百円くらいと言えども、昔とはマイコンの能力やライブラリの充実度などがまったく異なる。

 代表的な物をいくつか挙げると
arduino
 AVRマイコン。オープンソースハードウェアの先駆け。シールドと呼ばれる種々の拡張基盤が売られている。
mbed
 ARMマイコン。Web上のオンライン統合開発環境で開発(オフラインもある)、USBメモリへの実行ファイルコピーでマイコンにプログラムがダウンロードされる。
raspberry pi
 教育用ワンボードマイコン。最近raspberry pi2が出てハードが著しく強化された上に、Windows 10の提供も発表されている。

などなと。それぞれに特色があるが、少なくとも昔のPICをいじっていた頃の無駄な苦労(書き込みハードやマイコン毎の違いなどの学習)を減らす工夫がされている。

 中でも個人的にはmbedの言語仕様の美しさが気に入ったし、一家に一個はある?USBシリアル変換器があれば百円位で始められる所も良いと思ったので、mbedを環境として選ぶことにした。

 そうと決まれば秋月で買い物だ。
NUCLEO-F401RE 1500円
 mbed対応のCortex−M4コアのマイコンボード+書き込み/デバッグボードが一体化しているもの。この内容で1500円は安い。
LPC1114FN28 140円
 Cortex-M0コアのマイコン単体。ARMマイコンで貴重なDIP品。マイコン単体の場合、USBシリアル変換器やSWD(Single Wire Debug)でプログラムを書きこむ。
LPC-LINK2 2800円
 JTAG/SWDボード。書き込み、デバッグ時にUSBシリアルより便利だし、LPC1114の一個しかないシリアルを塞ぎたくないのて購入。

 まずはF401REでLチカ。

(1) mbedサイトでユーザ登録。使用するmbedデバイスも登録(うちの場合はF401REとLPC1114)
(2) F401REのドライバ(“Related Tools and Software”のところ)をダウンロードしてインストール。F401REをUSBで接続。
(3) mbedサイトのオンライン開発環境で新規プロジェクト→サンプルLチカを選んでコンパイル。そうすると実行ファイルがダウンロードされるので、F401REを接続した時に出来たUSBメモリに保存する。
(4) 自動的に実行ファイルがF401REのマイコンに書き込まれ、実行される。

 事前に学習していたとはいえ、(1)から(4)まで10分足らず。恐ろしい程の取っ付きの良さです。

 サンプルLチカを改造して、0.01秒間隔でタイマ割込をかけ、LEDをPWM制御で1%ずつ明るく/暗くするようにするのもあっという間。ちなみにコードは↓こんな感じ。実に直観的でかつ言語的にも美しい。

---------------
#include "mbed.h"

Ticker toggle_led_ticker;

PwmOut mypwm(LED1);

float fDuty;
float fAdd;

void toggle_led() {
if (fDuty >= 1.00f){
fAdd = -0.01;
}
else if (fDuty <= 0.00f){
fAdd = 0.01;
}
fDuty += fAdd;
mypwm.write(fDuty);
}

int main() {
fDuty = 0;
fAdd = 0.01;
mypwm.period_ms(1);

toggle_led_ticker.attach(&toggle_led, 0.01);

while(1) {
}
}

---------------

 次はターゲットをLPC1114に変え、更にオフライン開発、LPC-LINK2での書き込みにチャレンジしてみます。
[PR]
by r34_gtt | 2015-04-21 23:36 | 活動(電気) | Comments(0)


<< mbedはじめました(2) 塀のペンキ塗り >>