Raspberry Piでインターネットラジオを作る #7
RPLCDを使ってLCD表示をスクロールさせる
RPLCDのサンプルスクリプトを参考に、LCDの表示をスクロールさせるスクリプトを作りました。
Scrolling Text with RPLCD - blog.dbrgn.ch
スクロールさせたい文字の前後に、LCD表示幅分の空白を入れ、それを順々に表示させていけばいいようです。なるほどー。
サンプルでは1行目が固定、2行目がスクロールでしたが、設定を変えれば1行目と2行目を入れ替えることができるように書き換えました。
# -*- coding: utf-8 -*- # LCD スクロール # import time from RPLCD import CharLCD class WriteLcd(): lcd = CharLCD() def __init__(self): self.col = 16 self.delay = 0.2 # 速度 self.pad = 4 # 間隔 self.line = 2 # 1: 1行目がスクロール 2: 2行目がスクロール def write(self, buffer): self.lcd.home() for i in buffer: #print(i.ljust(self.col)[:self.col]) self.lcd.write_string(i.ljust(self.col)[:self.col]) def scroll(self, buffer): sp = ' ' * self.col if self.line == 2: sc = 1 elif self.line == 1: sc = 0 buffer.reverse() s = sp + buffer[sc] + sp for i in range(len(s) - self.col + self.pad): buffer[sc] = s[i:i+self.col] self.write(buffer) time.sleep(self.delay) w = WriteLcd() title = 'Static' scroll = 'I want to scroll and scroll.....' while True: w.scroll([title, scroll])
36-37行目
title が固定文(16文字でカットされます)
scrollがスクロールする文です
self.lineで文字の位置が設定できます
self.line = 2
1行目:タイトル(固定)
2行目:スクロール
self.line = 1
1行目 :スクロール
2行目:タイトル(固定)
※19行目のprint文がコメントになっていますが、コメントを外すと何が起きているかわかります。
さて、これをどうやってラジオに組み込むかが問題です。
Raspberry Pi Zero - ラズベリー・パイ ゼロ
- 発売日: 2015/11/26
- メディア: Personal Computers