SPI通信でラズパイピコからAQM1248Aに出力する

ラズパイピコ

 AQM1248Aは128×48ピクセルで画像表示できる安価な小型液晶ボードです。Raspberry Pi PicoからはSPI通信を利用して制御することができます。本稿ではRaspberry Pi PicoからAQM1248Aに”hello world!”と表示してみたいと思います。

広告

使用する電子部品

 本稿で使用するのはラズパイピコとAQM1248Aのみです。AQM1248Aの電極は1.27mmピッチで、そのままでは扱いにくいため、ピッチ変換キット(AE-AQM1248A)を使用しています。LCDモジュールの動作に必要なコンデンサが基板に実装されており、2.54mmのピッチに変換されます。

電子部品個数備考
1個Raspberry Pi Pico
1個AE-AQM1248A
AE-AQM1248Aは、AQM1248Aにピッチ変換キットが付属したものです。変換キットには自分でハンダ付けするのですが、AQM1248Aの電極は1.27mmピッチなので、ちょっと細かい作業になります。

配線図

  AE-AQM1248Aを使う場合、各電極の内容は以下の通りです。ピコとAE-AQM1248Aの通信には、SPI(Serial Peripheral Interface)を使います。

番号名称ラズパイピコへの接続先
1VDD3.3V電源です。ピコの36番ピン(3.3V(OUT))に接続します。
2CSチップセレクト(マスターとスレーブを決定する)です。ピコの2番ピン(SPI0 CSn)に接続します。
3RESET本稿ではつないでいません。
4RSピコの適当なGPIOに接続します。本稿ではピコの32番ピン(GP27)に接続します。
5SCLKシリアルクロック(SPI通信のタイミングを制御する)です。ピコの4番ピン(SPI0 SCK)に接続します。
6SDIデータ送信用(MOSI=Master-Out, Slave-In)のピンです。ピコの5番ピン(SPI0 TX)に接続します。
7GNDグランドです。本稿ではピコの28番ピンに接続しました。

 ピン番号だと分かりづらいですね。下記のように配線しています。

SPI(SErial Peripheral Interface)を使います

 ちなみに上記のfritzingのAE-AQM1248のパーツは現物を見ながら自分で描いてみました。折角なので公開します。

AE-AQM1248A.fzpz

MicroPythonのコード

 AE-AQM1248Aの利用にはGitHubに公開されているこちらのライブラリにある、fonts.py, aqm1248chrlcd.py, aqm1248largechrlcd.py, aqm1248midchrlcd.pyを使います。これらのファイルをRaspberry Pi Picoにコピーし、以下のコードで表示します。

import machine

import aqm1248chrlcd
#import aqm1248midchrlcd
#import aqm1248largechrlcd

hspi = machine.SPI(0)

lcd = aqm1248chrlcd.ChrLcd( hspi, cs_pin=1, rs_pin=27)
#lcd = aqm1248midchrlcd.MidChrLcd( hspi, cs_pin=1, rs_pin=27)
#lcd = aqm1248largechrlcd.LargeChrLcd( hspi, cs_pin=1, rs_pin=27)

#画面表示をクリア
lcd.clear()

#画面に文字列を表示
lcd.write( 'hello world!' )

 aqm1248chrlcd、aqm1248midchrlcd、aqm1248largelcdの順で、表示される文字列が大きくなります。表示させる内容に応じて文字サイズを変えれば良いです。

コメント

タイトルとURLをコピーしました