ラズPicoでディスプレイを使おう
2023年10月13日(金)は、8割ほどの出席率でした。
- 18時00分~18時25分 タイピング練習
- 18時25分~19時50分 SSD1306互換OLEDのプログラミング
- 19時50分~20時00分 あとかたづけ
光都ICTクラブの定例会は、出席自由です。自分の都合に合わせて出席できるときに、出席すればかまいません。参加費も一回ごとに頂戴します。欠席したときのムダが発生しません。必要なときに、必要なだけ、JIT(Just In Time)方式です。←ITパスポートにでます。
Contents
タイピング練習
今回のタイピングの練習は、日本語入力です。使う教材は、下のサイトのWebアプリです。
https://manabi.benesse.ne.jp/gakushu/typing/
全体として、すこし伸び悩んできた様子。タイピングはいかに正しく練習したかが上達に直結します。間違った練習は時間のムダです。
SSD1306互換OLEDのプログラミング
この日は、ものづくりチームもゲームプログラミングチームもOLEDのプログラミングに取り組みます。
OLEDは小さなディスプレイです。これが使えると、ものづくりにも幅が出ます。ゲームプログラミングにも、ライブラリの概念を理解するのにちょうどよい教材です。
まずは結線 ラズPicoとディスプレイをI2Cで接続しよう
ラズPicoとOLEDを正しく接続するのが第一歩です。下の写真のように結線します。
たった6本配線するだけなのですが、なれないとなかなか難しいようです。結線図をわたして、お手本を示しているので、よく見てよく見て。
おおむね正しく接続できていました。しかし、この日一番驚いた結線まちがいがありました。電源ピンとGNDピンの短絡です。結線まちがいはよくあるので訂正すれば良いだけですが、電源短絡は別です。ラズPicoかPCが壊れてもおかしくないまちがいです。
今回は特に影響なく、結線を修正したらラズPicoが正常に動き出しました。ひょっとするとPCまたはラズPicoに短絡保護があるのかもしれません。これはそのうち調べてみようと思います。
でも、あなたの環境で無事で済む保証はありません。電源短絡は絶対にしないように、電源(USBケーブル)を接続する前に結線の確認を十分してください。
テキストにはない便利な技をクラブで教えます
テキストというか、参考資料は配りますが、そのとおりには進めないのが光都ICTクラブ。テキストが最適解とは限らないので、もっと良い方法を実践します。
(ちなみに下で紹介してある「最新Pico W対応!ラズパイPico完全ガイド(福田和宏著)」で紹介してある結線とコードをそのまま真似ても、わたしの環境では動きませんでした。データシートを読む限りでは、誤植ではないかと考えています。もちろん、どうしたら動くかは、検証してクラブで伝えてあります。)
今回もテキストはGitHubからライブラリをコピーしてくる手順になっているところを、クラブではThonnyのパッケージ管理機能を使って進めました。どっちがいいというよりか、場合によって使い分ければ良いと思います。
下のコードで使うのは、「ssd1306」というライブラリです。コードは、「最新Pico W対応!ラズパイPico完全ガイド(福田和宏著)」より、スペースとクォーテーションを変更しています。
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
WIDTH = 128
HEIGHT = 64
i2c = I2C(0)
i2c.scan()
print('i2c address : '+hex(i2c.scan()[0]).upper())
print('i2c configuration: '+str(I2C))
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)
oled.fill(0)
oled.text('Raspberry Pi', 5, 5)
oled.text('Pico', 5, 15)
oled.show()
このコードをそのままコピペしても動きません。「ssd1306」というライブラリをラズPicoにインポートする必要があります。わたしはラズPicoでプログラミングを始めた当初、ライブラリの取得方法がさっぱり理解できなくて、何週間か悩みました。クラブにくれば、悩まずに済みます。
コードの入力で間違いが多かったのは、「,」(カンマ)を「.」(ピリオド)と入力する間違いです。大文字・小文字の間違いより、カンマ・ピリオドの間違いが多かったように感じます。入力を間違えると、動きません! 意味を考えながら入力できると、誤入力は減りますが、これからの課題ですね。
ディスプレイの活用方法はたくさんある
さて、今回のプログラムは「Raspberry Pi Pico」と表示するだけのプログラムです。このプログラム自体は、あまり価値があるものではありません。しかし、「ライブラリの使い方」と「ディスプレイの使い方」は応用範囲が広いテクニックです。
ライブラリは、ラズPicoでマイコンプログラミングをするときだけでなく、パソコンでゲームプログラミングするときでも必須です。
そして、ディスプレイに表示させることができれば、プログラムの動きを表示することや、センサーの取得値を表示することが可能になります。今までは、ラズPicoとパソコンを接続して、パソコンの画面に表示することはできました。OLEDが使えると、パソコンと切り離しても、ラズPicoだけでいろいろな値を表示できます。
このように、アイディア次第で用途が広がるのがディスプレイです。今後のメンバーのアイディアに期待しています。