Septentrio mosaicHATを使ってみる3 ~GeeekPi 電源ハットボードを弄る

前回はこちら
hys-iroha.hatenablog.com

ラズパイとmosaicHATとのGPIOを介した通信がそもそも出来なかった.今回は引き続きその問題に取り組む.

なぜGPIOを介した出来ないか?

ハードとソフトの問題に分けられる気がする.ハードなら,機材を交換すれば解決する.前回は割とソフト側の問題に取り組んだ.MosaicHATのgithubに記載されている手順を踏んで通信ができなかった.
今回は,使用しているラズパイが死んでいる可能性を見てみる.具体的には,ファンHATが実は通信で色々できるヤツ*1なので,それが出来るかを試してみる.素直にファンHATの機能が実装できれば,MosaicHAT側の問題と考えられそう.

問題を列挙.ラズパイ,MosaicHATが一番上流かも知れないなあ.

ファンHATの機能を使ってみる

サポートページを見る

ファンHATはこれを使用している.

ディスプレイの表示画面をプログラムでカスタマイズできるとある.これを試してみたい.

amazonのページにテクノロジーサポートのページがある.
wiki.52pi.com

表示できた

OLEDの項に記載してあることを試したら,普通に表示ができた.

ちゃんと起動した

任意の文字列も!

任意の文字列も表示できるようになった.
コードもメモしておく.ちなみに,日本語に対応したフォントを使わないと,日本語は表示できない.フォントは新しくダウンロードした.
qiita.com
qiita.com

import Adafruit_SSD1306 as ssd1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

BUS = 1 
ADDR = 0x3C
RST = None

font = ImageFont.load_default()
font_ttf = '/usr/share/fonts/truetype/kochi/kochi-mincho.ttf'
font = ImageFont.truetype(font_ttf, 15)
oled = ssd1306.SSD1306_128_32(rst=RST, i2c_address=ADDR)

oled.begin()
oled.clear()
oled.display()

width = oled.width
height = oled.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
draw.text((0, 0), "動け!mosaicHAT", font=font, fill=1)

oled.image(image)
oled.display()
なんとか動いてくれないかなあmosaic

GPIOが機能してるのはわかった.でも,通信方式が違う.

色々動かせて楽しかったけれど,これはI2Cで,mosaicHATが使うのはUART.ピンも違うので,これでラズパイが死んでいないとは断定できない.でも,ちゃんと思った通りに動いてくれて,自信が回復した.mosaicHATは希望が見えず,正直萎えている.息抜きにもなったので,次はmosaicHATで何か進捗を生み出せたらと思う次第.

*1:本来の利用では使わない機能.モニターがファンHATについていて,温度の表示とかが出来る