電光掲示板を作り、記載される文字を自由に変えたいです。
Python3でLEDマトリクスパネルの制御を行っています。
LEDマトリクスパネルに文字列を走らせているのですが、現時点では、Python3のコードに直接文字列を記入しないと反映されません。
今回は、コード内からLEDマトリクスパネルに投影する文字列を決めるのではなく、外部のテキストファイルを参照してLEDマトリクスパネルに文字列を反映したいと考えています。
外部ファイル(テキストファイル)から文字列のデータを入手する機能を実装するときにエラーメッセージが発生しました。
#!/usr/bin/env python # Display a runtext with double-buffering. # coding: utf-8 from samplebase import SampleBase from rgbmatrix import graphics import time class RunText (SampleBase): def __init__(self, *args, **kwargs): super(RunText, self).__init__(*args, **kwargs) self.parser.add_argument("-t", "--text", help="The text to scroll on the RGB LED panel", default = "open('data.txt','r')") def run(self): offscreen_canvas = self.matrix.CreateFrameCanvas() font = graphics.Font() font.LoadFont("../../../fonts/7x13.bdf") textColor = graphics.Color(255, 255, 255) pos = offscreen_canvas.width my_text = self.args.text while True: offscreen_canvas.Clear() len = graphics.DrawText(offscreen_canvas, font, pos, 20, textColor, my_text) pos -= 1 if (pos + len < 0): pos = offscreen_canvas.width time.sleep(0.05) offscreen_canvas = self.matrix.SwapOnVSync(offscreen_canvas) # Main function if __name__ == "__main__": run_text = RunText() if (not run_text.process()): run_text.print_open()
参考にしたコードからの変更点 コードの11行目
self.parser.add_argument("-t", "--text", help="The text to scroll on the RGB LED panel", default = "Hello World")
から、文字列を記入していたdefault = "Hello World")の部分を変更すればよいと考え,openを使いテキストファイルを取り出そうと思いコードを
self.parser.add_argument("-t", "--text", help="The text to scroll on the RGB LED panel", default = "open('data.txt','r')")
に変更しました。
しかし、LEDマトリクスパネルに表示されるのはテキストファイルの結果ではなくopen('data.txt','r')という文字列でした。
LEDマトリクスパネルに表示される文字列を外部ファイル(テキストファイル)から取り出すにはどの部分を改良するべきなのかアドバイスをいただきたく質問させていただきました。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー