在我以前关于Pi-Lite的帖子中,我解释了 如何设置 以及你怎么能 在Python中显示滚动文本。在这篇文章中,我将解释如何创建自定义14×9张图片,然后将其发送到Pi-Lite。这与用于在右侧创建“吃豆人”图像的技术相同。
Pi-Lite具有帧缓冲器功能,可让您向其发送数据,以确定每个LED的状态。您可以将每个LED设置为开或关,一旦收到所有数据,Pi-Lite就会按照指示设置LED。
该命令是一个由126个1和0组成的字符串。该字符串定义左上角的LED,然后在第一列下移。然后定义第二个,依此类推,直到所有126个LED都设置为1或0。
示例Python脚本
这是一个示例Python脚本,该脚本定义了两个精灵,先显示它们,然后退出。
#!/usr/bin/env 蟒蛇 import sys import serial import time # Define two sprites sprite1 = '000000000000000000000011110000100010111001001100100101010010101010010101100100101111001001000100010000011110000000000000000000' sprite2 = '000000000000000000000000000000011111011111111111111111110011111110011111111111111011111111000011111000000000000000000000000000' # Configure Pi serial port s = serial.Serial() s.baudrate = 9600 s.timeout = 0 s.port = "/dev/ttyAMA0" try: # Open serial port s.open() except serial.SerialException, e: # 那里 was an error sys.stderr.write("could not open port %r: %s\n" % (port, e)) sys.exit(1) print "Serial port ready" # Clear 显示 s.write("$$$ALL,OFF\r") # Send Sprite 1 to the Pi-Lite print "Sprite 1" s.write('$$$F' + sprite1 + '\r') # Short delay time.sleep(2) # Send Sprite 2 to the Pi-Lite print "Sprite 2" s.write('$$$F' + sprite2 + '\r') # Short delay time.sleep(2) # Quit print "Good bye"
126个字符的精灵字符串具有“$$$F”开头添加了回车符,末尾添加了回车符以形成完整的Pi-Lite命令。该命令通过Pi发送到Pi-Lite’的串口使用“s.write”命令,就像我们在滚动文本示例中所做的一样。
两帧动画示例
在下面的示例中,使用Python列表定义了两个框架。我们可以响应用户按下Enter来显示paddlock [0]和paddlock [1]。它使用与上述相同的技术将帧发送到Pi-Lite,但这一次是在While循环中。
第一帧是简单的挂锁图像。第二个框架是未锁定的挂锁。
#!/usr/bin/env 蟒蛇 import sys import serial import time # Define 挂锁 list containing two sprites padlock = ['000000000000000000000000000000011111011111111111111111110011111110011111111111111011111111000011111000000000000000000000000000', '011100000111100000110000000110011111111111111011111111000011111000011111000011111000011111000011111000000000000000000000000000'] # Define list to describe each sprite description = ['Locked','Unlocked'] # Configure Pi serial port s = serial.Serial() s.baudrate = 9600 s.timeout = 0 s.port = "/dev/ttyAMA0" try: # Open serial port s.open() except serial.SerialException, e: # 那里 was an error sys.stderr.write("could not open port %r: %s\n" % (port, e)) sys.exit(1) print "Serial port ready" # Clear 显示 s.write("$$$ALL,OFF\r") # Initialise some variables loop = True frame = 0 while loop: 写('$$$F' + 挂锁[frame]+ '\r') print description[frame]inp = raw_input("Press [Enter] to toggle 挂锁. [x-Enter] to quit.") if inp.lower()!="x": # Toggle frame to 显示 frame = 1 - frame else: # Exit loop loop = False # Quit print "Good bye"
您可以在没有任何用户干预的情况下将帧发送到Pi-Lite,或者将自定义精灵与滚动文本结合在一起。可能性是无止境。
精灵创建的简单方法
思考精灵并输入126个字符’容易。在方格纸上画出来没有’使其变得更容易。因此,为了加快该过程,我创建了一个在线工具,该工具可让您使用鼠标绘制图片。 126个字符串将自动生成,然后您可以将其粘贴到Python脚本中。
工具’的界面看起来像这样:
点击图片访问 精灵工具。我用它来创建上面的Python示例中使用的精灵。通过一些想象和实验,您可以创建一些有趣的设计和动画。
创建您自己的图像,并将文本框内容剪切-粘贴到示例脚本中。您始终可以构建更大的Python列表来存储更多帧。
尽管Pi-Lite的尺寸有限,但这是使用Raspberry Pi创建显示系统的好方法。它’能够创建自己的子画面并将它们与滚动文本结合在一起,而只需最少的代码或硬件,这非常好。
脚本下载
除了剪切上面的代码,您还可以使用以下命令将这两个脚本直接下载到您的Pi:
wget //bitbucket.org/MattHawkinsUK/rpispy-pi-lite/raw/master/pi_lite_custom_1.py
和:
wget //bitbucket.org/MattHawkinsUK/rpispy-pi-lite/raw/master/pi_lite_custom_2.py
或者,如果您在Pi上使用Git,则可以通过在BitBucket上克隆我的Pi-Lite存储库来获取我的所有Pi-Lite示例脚本:
git clone //bitbucket.org/MattHawkinsUK/rpispy-pi-lite.git
4条留言
建立了非常相似的东西:
//github.com/cameronoxley/pilite-drawing-board
那里’s 上ly 上e d in ‘padlock’ 😉
发现得好。根本不知道为什么我不仅会拼错,而且还会继续多次拼错!
精灵编辑器是一个很大的帮助。现在,制作动画非常容易。谢谢迈克。