niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

キャラクタLCDで文字列をスクロールするやつの解説(1回目)

Twitterに載せたやつね

先日、Twitterで動画を公開したコレ↓について簡単に解説を書こうかなという日記。仕組みが分かってる人には面白いのだけど、そうじゃないとよくわからないよねということで。

キャラクLCDとは?

呼び名は色々あるぽいですが、文字列を表示するための液晶ディスプレイです。

これは、あらかじめ登録されている文字の字形を表示することに特化した液晶ディスプレイで、いわゆる7セグみたいな物理的に表示領域の形状が決まっているようなものと、普段我々が使っているような画像の表示が出来る液晶の中間にあたるもの、といえそうです。

あらかじめ登録されていると言っても例えばJISの字形が全部登録されているというわけではなく、今回使用したものは英数字+記号+半角カナが登録されています。(内部的には0-255の文字コードを受け取り、対応する字形を表示するというもの。この辺りはキャラクタ液晶の仕様(より正確にはコントローラICの仕様)に依存します) また、字形も変更はできません。好きなフォント(の字形)に変えるというのも出来ないわけです(ROMに書かれているので)

ただし、それでは不便でしょうということなのか、字形を登録して使うことが出来ます。ただし、8種類だけ(これも機種に依存) これによって、登録されていない字形を自分で登録し、それを使用することができる、というわけです。

詳細は、また後程。

今回使用したハードウェア

今回はArduino UNO R3とPLCD1602を使っています。

Arduino Uno R3

www.switch-science.com

PLCD1602 1.8V〜5.0V対応I2C接続LCD www.switch-science.com

HWのちょっとした説明

Arduino…の説明はいいか。PLCDの方ですが、中の液晶は秋月電子通商 AQM1602Y-RN-GBWです。そのため今回はこの仕様に依存しています。

LCDモジュール 16×2行 AQM1602Y-RN-GBW

akizukidenshi.com

なので、コントローラであるST7032iの仕様ともいえます(が、液晶側が対応していない機能があるので注意。詳しくは各データシートと販売ページのFAQなどを読んでください。たとえばこの液晶はITO option(OPR1、OPR2)について固定されています(FAQのページ))

I2Cで制御できるのも良いですね。試していませんが、同じコントローラを使用していれば同様のことがプログラムの移植で簡単にできるはずです。このあたりがI2CやArduinoのプラットフォームの強みですね。

ですが、HWの違いについては設計者がちゃんと考えてその差異をどうするかなど検討することはあります。特に気を付けないといけないのは電圧レベル(後述)ですが、それ以外にも色々…。

PLCD1602を使うメリット

PLCD1602を使ってる理由は中の人が知り合いだから…というのがきっかけですが、この製品、GroveとQwiicというインタフェースでつなげられるうえ、電圧としては1.8V-5.0Vまで対応しているという点があります。

I2C制御で簡単な液晶でも、配線の接続をしないと(当たり前ですが)動きません。コネクタ形状が決まっているGroveとQwiicであれば、つなげれば動くという点が魅力です。 しかし、どちらもコネクタ形状とどの配線が電源/GND/クロック/データかを決めていますが、電源電圧については特にケアされていないので、信号の送信側と受信側で電圧レベルが異なる場合はどちらかが壊れる可能性があります

たとえば、今回の秋月の液晶はページを見ればわかりますが、 3.3Vの対応です。素のモジュールを使う場合は気を付けましょう。

それでもまだ注意… PLCD1602を使う時の注意点

その点、PLCD1602はGrove/Qwiicの接続先を間違えなければ大丈夫です(フラグ) コネクタと配線の接続についてはPLCDの製品ページに回路図があるのでそれを参照して確認しながらつなぎましょう。データがちゃんと載ってるページは良いですね。

あと、Arduinoはピンで刺したいので、こういうケーブルが必要ですね。あるいはGrove/Qwiicに変換できるArduino用のシールドを買うかなど。

www.switch-science.com

www.switch-science.com

www.switch-science.com

長くなってきたな…。分けるか。続きます。結局、文字がスクロールするところまで説明できていない…。

次の記事

niszet.hatenablog.com

(雑記)R MarkdownでWord文書を作ろうを自宅発送に切り替えてBoothに置いています

今更の告知。

年明けくらいだったか、Boothの自宅から発送で送るのでも問題なく送れることに気づいた?ので、対応しました。 ただ、倉庫から発送でウォッチしていた方には通知が行かないと思うのでどうしたものか…。ということで今更ながら告知です。

こちらからお選びください。

niszetkoubou.booth.pm

最新の環境でチェックしていないですが、多分動く…と思う。あと考え方についてはそのまま使えますので、見てみてください。

後わかんなかったらBoothのDMなどで聞いていただければ…。あるいはPandocのSlackとかでも。

(Pandoc) Pandocのtest時に出るエラーメッセージについて(開発者向けメモ)

まずは過去issueを検索しろって言うよね。それね。

Pandoc はstack testでテストが一式走るので、手元でFAILが出ないことを確認してからcommitします(当たり前だ…)

が、test時のlogを見るとこんなメッセージが。

Error: Circular defaults file reference in 'command/defaults7.yaml'

気になったので聞いてみたんですが、ちょっと調べてみると

github.com

github.com

で議論済みの内容でした。ちゃんと調べようね…。

ということでとりあえず無視して良さそうですし、これが出ているからFAILが出るという事もなさそうです(現に7185はテスト追加してもall PASSでマージ済) ビルドに時間かかるけど、ちゃんとtestで全てPASSすることを確認してからcommitしようね。

明日から放送大学

書いてなかったので

そんなわけで、明日から?放送大学で専科履修生としてやっていきます。 やっていきますと言ってもどうやっていくのかまだよくわかってない気がするけども…。

色々あり、情報系の大学院に社会人大学院生として入ろうと思っていた時期があったんですが、基礎的なことが分かってないことがわかり、学部レベルからやるべきだろうと考え直し、一方で放送大学は文系科目も多く自分に足りない分野の知識を吸収する良いタイミングかなということで、特に卒業を目指すわけではなくしかし単位としてはちゃんと取れることを指標としてちゃんと習得していこうということでこのような形にしてみました。

履修登録時にうっかり試験時間が同じ科目を登録したので一個予定より少ないですが…。

まずは勉強の習慣づけからですかね…。

いやその前に生活リズムを規則正しくしないとダメかな。

とにかく、色々と新しい気持ちで明日からやっていこう、そういう決意の日記でした。

(Pandoc) ODT Readerでtabが無視される問題の対応をしています

PRは出した。

元になるissueはこれ。

github.com

これによると、ODTを入力ファイルとしたときにtabが全部無視されてしまうということでした。

コードを読んで対応する場所がわかったのでいじってたら出来たのでPRを出しました。

github.com

年度末なので(なのか?)jgm氏が不在期間なのでマージはしばらく先かなーという感じですが、多分これで問題は解決です。良かったよかった(予定)

(Pandoc) docx出力の脚注の区切り文字をテンプレートから反映させる修正をしています。

マージされたら褒めてくれ。

issueはこれ。

github.com

そういえば、テンプレートから反映されないなコレ…ってことでここ2-3日うにょうにょHaskell書いてPRを投げました。

github.com

さてどうなるかなー…

今回のことでまた理解が深まったので、ODT形式の方もそろそろ再開したい(今までよくわからんかったことが今回のことで出来ることが分かったので)

(Word)脚注の区切り線は色々とカスタマイズできる

いらん知識な気はするが…。

現在、Pandocの脚注の区切り線をテンプレートから持ってこれるように更新をしています。それをどこまでやればよいのかを検討するために調べていたら思った以上に色々設定できることが分かったのでメモを残しておきます。

脚注の区切りどこで修正すればよいの

ツールバーの表示を押した後にリボンの左側にある下書き(下図)を選び、

f:id:niszet:20210328175700p:plain

次にツールバーの参考資料を選択して、リボンの脚注にある注の表示を押すと下の方に編集画面が出るのでここで修正をする。

f:id:niszet:20210328175805p:plain

通常使う脚注は、脚注の境界線なので、これを図のように選び、編集する。長い棒が欲しければ「脚注の継続時の境界線」からコピーしてくると良い。

f:id:niszet:20210328175910p:plain

が、図のように文字を入れたり、それにスタイルを適用したり太文字や色付けなども可能で、日本語を入れても大丈夫なことがわかりました。実際に使うとこんな感じ。

f:id:niszet:20210328175505p:plain

これが脚注のあるページごとに出てくるようです。

まぁこんな脚注の区切り使ってたら怒りますが、仕様上は出来るということで。

絵文字も入れられるんだけども、入れると更新したあともPandocはエラー吐いちゃうのでそれはやめてね…(そんな脚注の区切り文字使わないデショ?)