过去的一周我们发布了瑞士军刀扩展板硬件的升级版本,现在我们完成了瑞士军刀扩展板 SAKS SDK 的适应性升级,并提交到 Github 上,通过以下命令获取。
git clone https://github.com/spoonysonny/SAKS-SDK.git
本次 SDK 的升级作了如下改动:
- 加入了两种IC的支持——IC_74HC595类和IC_TM1637类,以及依赖这两个IC的LED排灯(Led74HC595类)和数码管(DigitalDisplayTM1637类)。
- 重新定义了适用于瑞士军刀V2.0的模板——SAKSPins、SAKSHAT。
- 适用于瑞士军刀V1.X的模板被移动到了 v1.x 目录下,如果您在使用旧版本的 SAKS,请注意使用该目录下的源文件覆盖根目录相应的文件。
- 原有的蜂鸣器、开关按键、温度传感器通过修改GPIO映射的配置已经被无缝移植过来,使用方法同之前的SDK教程所述。
下面结合示例先简要地说明下新特性的用法,该部分示例亦可在 examples 目录下的 main.py 文件找到。
#批量设置LED排灯的状态,从左到右依次为:亮,灭,亮,灭,亮,灭,亮,灭 SAKS.ledrow.set_row([True, False, True, False, True, False, True, False]) #批量设置LED排灯的状态,从左到右依次为:不变,亮,灭,不变,不变,不变,不变,亮 SAKS.ledrow.set_row([None, True, False, None, None, None, None, True]) #点亮LED排灯的第8个灯,0代表第1个灯,依次类推 SAKS.ledrow.on_for_index(7) #灭掉LED排灯的第1个灯 SAKS.ledrow.off_for_index(0) #LED排灯全亮 SAKS.ledrow.on() #LED排灯全灭 SAKS.ledrow.off() #注意,新的SDK不再支持 SAKS.ledrow.items[3].on() 这种用法了。 #数码管的用法完全兼容之前的 SDK,由于硬件层使用了专用芯片,数码管的显示不再闪烁,效果更稳定了! # 将显示“1234”4位数字,并且每一位右下角的小点点亮 SAKS.digital_display.show("1.2.3.4.") # 将显示“1234”4位数字,并且数字2后面的小点点亮 SAKS.digital_display.show("12.34") # 在第4位数码管显示“1”,其他3位数码管不显示 SAKS.digital_display.show("###1")
其他元件,如开关按键、蜂鸣器、温度传感器用法未做变更,请参考之前的相关例程
https://shumeipai.nxez.com/swiss-army-knife-shield-for-raspberry-pi-diy-tutorials-v1
测试和学习SDK时,请进入到SDK所在目录,将 examples 下的 main.py 文件复制到SDK根目录(和sakshat.py放在一起),然后通过终端进入到SDK目录运行以下命令即可看到效果,随时可修改 main.py 文件再运行方便验证尝试的改动。
sudo python main.py
有一部分老教程,或许可以通过你的简单修改就能在新的瑞士军刀扩展板上正确运行起来哦!当然我们后面也会跟进陆续发布SAKS的教程,敬请期待!
(树莓派瑞士军刀扩展板购买请移步此处)
树莓派实验室 QQ 群号 62335986
从以前的V1.X升级后运行main.py出现以下错误,求解!
pi@raspberrypi:~/SAKS-SDK/examples $ sudo python main.py
Traceback (most recent call last):
File “main.py”, line 23, in
from sakshat import SAKSHAT
ImportError: No module named sakshat
将 examples 里面的 main.py 移动到 SAKS-SDK 目录下,再在 SAKS-SDK 目录下运行 sudo python main.py
V2.0的教程什么时候出来啊?
SAKS数码管能显示字母么?怎么写代码?