(こちらの中国語記事からの翻訳です)
すでに mbed application boardという記事で、mbed用アプリケーションボードの概要については紹介したので、今回は実際にこのボードを使用している所をご覧ください。
素晴らしいと思いませんか?
「ちょっと小さすぎるんじゃ・・・?」というのが、このボードを見た時の第一印象でした。これだけの多彩な周辺部品を実装した拡張ボードがクレジットカードと同じ大きさだなんて信じられません。見たところ、mbed用の差込口とmbedの制御ボード本体の大きさは、ぴったりと一致しているようです。
さて、実際にこのボードを使うにあたってまず初めに、mbedホームページ上にあるmbed application boardのcookbookを一つずつ目を通してみました。まずサーマルセンサー LM75BDが面白そうだったので、液晶ディスプレイ(LCD)上に温度が表示される温度計を、RGB LEDも使いながら作ってみました。RGB LEDは温度によって色が変化し、低温ならば赤く、高温ならば青く光ります。LEDはとても明るくて見やすいため、一目で現在の室温を把握することができます。
最初に、mbedにログインしてコンパイラを使用しますが、もしもmbedにあまり詳しくない場合は、私の書いた記事であるMbed Helloworldを参考にしてください。今回は、お手本としてHelloworldのcookbook上から、LM75BD、RGB LED、そしてLCDのライブラリをダウンロードします。これにはいくつかのメリットがあり、一つ目はワークスペースにライブラリをコピーするだけですぐに利用する事ができる点、二つ目はより親しみやすいHelloworldのコードを利用することができる点です。
まず、HelloworldのcookbookにLCDの機能を導入しましょう。
コンパイラを利用して、Testという名前の新しいプロジェクトを作成します。
ここで直接、LM758内のファイルをTest内に貼り付けましょう。
新しいプロジェクトのmain.cppに、Hello worldのmyLed部分をあらかじめ貼り付けておきましょう。
以下のコードを直接貼り付けます。
#include "mbed.h" #include "LM75B.h" #include "C12832_lcd.h"
PwmOut r (p23); PwmOut g (p24); PwmOut b (p25);
C12832_LCD lcd; LM75B tmp(p28,p27);
int main () { while (1) { lcd.cls(); lcd.locate(0,3); //表示開始位置の設定 lcd.printf("Room Temp. :%.2foC",tmp.read()); //出力される文字 wait(0.1);
for(float i = 0.0; i < 1.0 ; i += 0.01) { float p = (((tmp.read()/100)-0.298)*60); //色の変化の設定 r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0); g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p); b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0); ; wait (0.01); } } } |
この後、コンパイラとダウンロードを行い、mbedにファイルを入れることで実行することができます。