microbit-dalでAS-289R2サーマルプリンタを使う
これは、Mbed Advent Calendar 2017の21日目の記事です。

micro:bitでサーマルプリンタを制御してみました。 microbit-dalやサンプルコードの解説は、かんぱぱさんの記事をご覧ください。
用意するモノ
- micro:bit本体
- AS-289R2サーマルプリンタシールド
今回は接続にベースボード(非売品?)とエッジコネクタブレークアウトボードを使いましたが、電気的に接続されていれば他の接続ボードを使っても問題ないと思います。
接続
micro:bitのシリアルポート(p16)とベースボードのRxD1を接続します。あと、GNDも接続します。
| micro:bit | AS-289R2ベースボード | AS-289R2シールド |
| 0V | CN1-6 (GND) | GND |
| p16 | CN1-8 (D1) | RxD1 |
プログラム
コードは、こちらにパブリッシュしました。インポートして使ってください。
Import programmicrobit_AS-289R2
AS-289R2 test program for micro:bit
実際のコードは、こんな感じです。
#include "MicroBit.h"
#include "AS289R2.h"
MicroBit uBit;
AS289R2 tp(p16);
void printTemp(MicroBitEvent)
{
tp.printf("温度: %d\r", uBit.thermometer.getTemperature());
}
void printAcc(MicroBitEvent)
{
int x = uBit.accelerometer.getX();
int y = uBit.accelerometer.getY();
int z = uBit.accelerometer.getZ();
tp.printf("加速度: %+5d, %+5d, %+5d\r", x, y, z);
}
int main()
{
// Initialise the micro:bit runtime.
uBit.init();
// Register event handlers for button presses (either button fires!)
uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, printTemp);
uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, printAcc);
tp.initialize();
tp.putLineFeed(2);
tp.printf("** Thermal Printer Shield **\r\r");
release_fiber();
}
Mbedのオンラインコンパイラで日本語を入力すると、UTF-8な文字列リテラルになるので、文字コードをそのままAS-289R2に渡すことが出来るのでお手軽です。
動作例
こんな感じで動きました。micro:bitの温度センサーと加速度センサの値を表示します。
以上です。明日は、土井さんです。
Please log in to post comments.
