こんばんは。
年始はなかなか忙しく、記事アップが遅くなりました。
今回は単なる報告止まりですが、LEDマトリックス電光掲示板をリアルタイムコントロールすることができました。
過去の記事で日本語漢字電光掲示板を作成しましたが、リアルタイムではなく、メッセージ送信に40秒くらいかかってしまって使い勝手が悪かったのです。
でも、今回はWebSocket通信を使ったので、リアルタイムに文字送信やスクロールスピードなどをコントロールすることができたんです。これは私にとってはもの凄い画期的なことなんです。
ただし、アルファベット、日本語ひらがな、カタカナまでです。
なぜかというと、WebSocketのスマホからのデータ送信では文字コードがどうしてもUTF-8になってしまって、Shift_JIS並びの美咲フォントからデータを抽出するのがとても難しかったんです。
でも、相手にメッセージを伝えるにはカナだけでも十分です。
動作した様子はこんな感じです。
どうでしょうか?
スマホから電光掲示板をリアルタイム制御ってなかなか画期的ですよね。
今回使ったものは
●ESP-WROOM-02開発ボード (スイッチサイエンス)
Amazon.co.jp スイッチサイエンスさん販売
かなり売れていて、在庫切れが頻繁です。 待ちきれない方はスイッチサイエンスさんのウェブショップのサイトで登録すると入荷通知を受け取ることができるそうです。
●Bicolor LED Square Pixel Matrix with I2C Backpack (Adafruit)
マルツオンラインさん販売
●I2C 8×8 Mini LED Matrix (Adafruit)
マルツオンラインさん販売
●Android4.2.2スマートフォン、Google Chrome
以上です。
LEDドライバがパッケージされているので、使う部品点数は遙かに少なくなりました。
過去の記事ではEEPROMを別途購入してI2C通信でフォントデータを抽出していましたが、今回はESP-WROOM-02のフラッシュメモリにフォントデータを丸ごと書き込みできたのです。
これはスゴイことです。自作電光掲示板がとてもコンパクトにできそうですね。
ESP-WROOM-02はSPIFFSファイルシステムを使うと1Mバイトのフラッシュを使うことが出来ます。それでいて、プログラムメモリは3MB使えるので、これだけの文字列プログラムを組んでも余裕があります。ほんとこのデバイスはスゴイですね。
今はまだ試行錯誤中ですが、近いうちにUTF-8をShift_JISコードに変換するテーブルを作って、それもフラッシュメモリに格納しようかと思ってます。
そうすると、漢字表示もできるようになります。
もう、世界の文字コードはUTF-8となってしまいました。
貴重なShift_JiSフォントの遺産をうまく利用していくしかないです。
さて、漢字フォントですが、私は美咲フォントを使っています。
過去の記事でも紹介しましたが、LEDの8×8ドットマトリックスを使うには最適な完全フリーのフォントです。
8×8ドットをいっぱいに漢字表示させてしまうと、連続したスクロールでは文字と文字の間がくっついてしまって読みにくくなるので、このフォントは7×7ドットに収めています。これがスゴイ!
電光掲示板については私は8×8ドットにこだわりたいので、このサイズで唯一使える日本語フォントがこれです。
これを開発されて無料で公開されている 門真 さんには改めて敬意を表します。m_ _m
ところで、このフォントファイルはバイナリデータですので、WebSocketを使い始めた頃ではバイナリデータ送信を使えば意外とすんなりと漢字表示できるのではないかと思ってました。
ですが、スマホブラウザのJavaScriptでは漢字をShift_JISコードデータ抽出することができなかったんです。ライブラリを使えばできるという情報もありましたが、なかなかうまくいきませんでした。JavaScriptのバイナリ操作はなかなか厄介です。
そんなわけで、バイナリデータ送信は諦めて、文字コード変換テーブルを自力で作るしかないわけです。
これからは、変換テーブル制作をコツコツと進めていきたいと思います。
今回はソースコード公開というわけにはいきませんでした。まだまだ課題が多いです。単なる報告止まりです。
また進展あったら報告したいと思います。
ではまた・・・。
Amazon.co.jp 当ブログのおすすめ
コメント