スイッチサイエンスのchibi:bit と ナダ電子のAS-289R2の組み合わせで、chibi:bit公式のブロックエディタで作ったプログラムを利用してAndroidスマホから日本語の印字ができましたので、ここに記録を残しておきます。
ナダ電子AS-289R2
先日のmbed祭りの抽選会でナダ電子のAS-289R2プリンタシールドが当たりました!買うかどうか迷っていたので、非常にありがたい!
AS-289R2はArduinoシールド形式のサーマルプリンタ(レジなどで使う感熱式プリンタ)です。
詳細はナダ電子の公式ホームページを見て頂くと良いですが、以下の特徴があります。
- 非常に多くのデバイスで使用可能です。
- 基本的には、3.3V/5VでUART出力できるデバイスであれば利用可能です。
- 日本語の印字はUTF-8(あるいはShift JIS)で文字コードを出力する。
- 制御コードを送ることで文字サイズ、バーコード、QRコードなどの印字が可能です。
chibi:bitでの利用
さて、AS-289R2で何を作ってみようか?ということで、switch-scienceのchibi:bitと組み合わせを試してみることにしました。
接続は、chibi:bitとP0とプリンタシールドのTX、両者のGNDの接続の2線のみとなります。
chibi:bitはKitronikのPrototyping System for the BBC micro:bitに装着しています(この製品は現在Switch Scienceから購入可能です:4/1加筆)。
まず、chibi:bitのIDEを開いて以下を行ってください。
- Bluetoothパッケージを追加する
- プロジェクトの設定を開き、「Unsecure: Anyone can connect via Bluetooth.」に設定する。
本当はその下の2モードのどれかにするべきだとは思うのですが、その状態では手持ちのAndroidスマホでうまく動作しなかったための措置です。
let message = ""let connected = 0bluetooth.onBluetoothConnected(() => {connected = 1serial.writeLine("Connected")basic.showIcon(IconNames.Yes)})bluetooth.onBluetoothDisconnected(() => {connected = 0serial.writeLine("Disconnected")basic.showIcon(IconNames.No)})basic.forever(() => {if (connected == 1) {message = bluetooth.uartReadUntil(serial.delimiters(Delimiters.Fullstop))serial.writeLine(message)}})serial.redirect(SerialPin.P0,SerialPin.P1,BaudRate.BaudRate9600)serial.writeLine("+++ Start +++")connected = 0bluetooth.startUartService()basic.showIcon(IconNames.No)
ブロックモードに切り替えると次のような表示になります(配置は自動的に行われるのでこの画面とは異なると思います)。
これをchibi:bitに書き込んでリセットボタンを押して準備完了です。
Androidからの操作
スマホ側のアプリはmicro:bit UART terminalを使いました。他のBluetooth UARTアプリも使えると思いますが、その場合は操作法は異なってきます。- [Connect]を押してデバイス"BBC micro:bit [hogen]"に接続します。LEDの模様が[×]から[レ]に変わります。 (hogenはデバイスにより変わってきます)
- 文字列を打ち込んで最後に"."を付けてから、[Transmit]を押してください。対応した文字列が印字されます。
この時、日本語は一度に6文字までしか送れません。もし、1行に6文字以上印字したいときは、最初に6文字を行末の"."を付けずに送信してから、次の6文字を送信してください(面倒くさいですよね。サンプルプログラムだから、許してください)。
その他
- ブロックエディタで[serial write line "日本語"]のようにしても、うまく印字されません(コンパイル済みのHEXファイルを確認しましたが、UTF-16LEの最初の1バイトだけの文字列に化けて埋め込まれています。それをプリンタに送るので漢字が出るわけもありません)。
- chibi:bitはmbed環境でサポートされていまあすので、こちらのAS-289R2のサンプルが動作します(ピンの割り当てなど多少の変更は必要)
- chibi:bit (micro:bit)の開発環境はptx-microbitとしてMicrosoftからオープンソースとして公開されており、自分のシステム上に環境を構築することが可能です。いろいろ面白そうなので、これはこれで研究中です。とりあえず、serial write lineか、あるいはそれに近い方法で組み込み文字列が印字できるようになると良いですね。
0 件のコメント:
コメントを投稿