mbedを使う


7セグメントディスプレイをつかってmbedを確認

mbedはARMの開発環境。OSに依存せずブラウザだけで開発ができることが最大の特徴。

用いたもの

配線

NUCLEO-F303REのPC_0にCLKをPC_1にDIOを配線する(VDDとGNDとの説明は省略)。

mbed

準備

コンソール上のNUCLEO-F303REを選択する。または’+’を選択してターゲットを追加する。

選択すると、これが見える。

Open Mbed Compilerをクリックすると、次が表示される。

ここでは、新規プログラムとして「7SegTest」とした(テンプレートはなんでもよい)。すると、次のような表示となる。

TM1637ライブラリのインポート

TM1637ライブラリをインポートする。左上の「インポート」をクリックし、TM1637を入力して検索。

ここで最初に検索されたものを選択して、右の「インポート!」をクリック。すると、

が表示され、LibraryとしてImportする。次のようにTM1637ライブラリがこのプログラムにインポートされる。

TM1637ライブラリの修正

そのままではビルドエラーが発生していた。調べるとCATALEXというものを使うように設定する必要があるらしい。TM1637_Config.hを下記のように修正する。

TM1637_Config.h
// Select one of the testboards for TM1637 LED controller
#define TM1637_TEST   0
#define CATALEX_TEST  1 
#define ROBOTDYN_TEST 0 
#define EYEWINK_TEST  0 

テストプログラム

Font_7Seg.hを見ると表示できる文字がわかる。CATALEXのクラスを見て作ったプログラムは下記のとおり。

main.cpp
#include "mbed.h"
#include "TM1637.h"

TM1637_CATALEX CATALEX(PC_1, PC_0);

char digits[] = {C7_0,C7_1,C7_2,C7_3,C7_4,C7_5,C7_6,C7_8,C7_9};

TM1637::DisplayData_t hi_str = {C7_H, C7_I, 0x00, 0x00};
TM1637::DisplayData_t bye_str   = {C7_B, C7_Y, C7_E, 0x00};


int main()
{
    int i;
    TM1637::DisplayData_t disp_str;

    CATALEX.cls();
    CATALEX.writeData(hi_str);
    wait(2);
    for (i=0; i<10; i++) {
        memset(disp_str, digits[i], 4);
        CATALEX.writeData(disp_str);
        wait(2);
    }
    CATALEX.writeData(bye_str);
}

ビルド

コンパイルをクリック。

ビルドが終わると、プログラムを保存するダイアログが表示される。

ボードへのプログラム転送

いたってかんたん、ドラッグ&ドロップ。

実際の動作の様子

感想

時代遅れの年寄りにはびっくり。しかもこういった開発環境レスはかなり前から存在していたので。