itB!HatenaPocketLINELINECopyAQM0802はI2C通信でやり取りをします。PiでI2C通信を使えるようにしましょう。PiでI2Cという通信規格でデータのやり取りをおこなうためにはi2c-toolsという追加ソフトが必要になります。i2c-toolsapt-getでインストール後にraspi-configでI2Cを有効化して一旦シャットダウンしたら、液晶モジュールを取り付けて再度起動します。lsmodでカーネルモジュールi2c_bcm2708とi2c_devがロードされていることが確認できればI2C通信が利用できる状態になっています。37液晶モジュールが認識されているかどうかはi2cdetectで確認します。アドレス3eの場所に3eと表示されていればOK。--これでI2C通信を始めることができます。Piならこのままでいいです。I2C通信のことところでI2C通信って何ですかね?ってことですが、物理的にはプラスとマイナスの2本一組の線を使ったデジタル通信です。複数のマスタースレーブ間で情報のやり取りをするので各スレーブには個別のアドレスを振って、通信先を特定しています。今回の例で言えばAQM0802液晶には0x3e(0xは16進数を表す接頭辞)というアドレスが振られています。Piから液晶モジュール3eに対してi2c-toolsのi2csetコマンドを使って様々な命令を送って操作してみます。スイッチサイエンスのブログにあるコードを何も考えずに入力すると「SWITCH(改行)SCIENCE」と表示されました。i2csetは次のようなオプションをとります。PiのI2C通信バス番号を指定。スレーブ側の固有アドレス。0x03から0x77まである。AQM0802液晶は0x3e。スレーブ機器に書き込まれるデータの書き込み先。0x00から0xffまである。AQM0802液晶は各種操作命令の0x00とキャラクタ表示命令の0x40のふたつがある。スレーブ機器に書き込まれるデータ。AQM0802の場合、0x00に続くものは各種制御命令コード、0x40に続くものは表示キャラクタの文字コード。スレーブ機器に与えるデータのモード。b,w,s,iの4種類ある。b...1バイト(8ビット)のデータw...1ワード(16ビット)のデータs...SMバスのデータブロックサイズi...I2CのデータブロックサイズiまたSMバスとかよくわからない単語が出てきましたが気にしない。I2Cバスの一種らしいです。...AQM0802の文字表示もう少し自由にAQM0802に文字を表示してみます。...AQM0802をシェルスクリプトで操作するいちいち文字コードを調べて入力するのは面倒くさいです。...AQM0802を買ってきた千石電商で小型キャラクタ液晶を買ってきました。Piって結構種類があります。