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.