树莓派瑞士军刀扩展板 SAKS SDK 升级

过去的一周我们发布了瑞士军刀扩展板硬件的升级版本,现在我们完成了瑞士军刀扩展板 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")

其他元件,如开关按键、蜂鸣器、温度传感器用法未做变更,请参考之前的相关例程
http://shumeipai.nxez.com/swiss-army-knife-shield-for-raspberry-pi-diy-tutorials-v1

阅读全文

通过USB蓝牙适配器连接BLE设备

20160410105402978-0

前言
最近打算将树莓派用于物联网网关设备,思路就是在树莓派上连接一个有蓝牙4.0的USB蓝牙适配器,然后通过这个适配器去连接外面的BLE设备,比如我这个BLE设备是采集各种环境相关数据的,而且有很多个这样的设备,这样我就可以通过树莓派对这些设备进行管理,当然最基本的就是进行数据传输了。

阅读全文

CentOS 7 ARM版正式发布 支持树莓派2

20151221203146358-0

来自CentOS团队的Karanbir Singh很高兴地宣布,面向ARM硬件架构的CentOS7 Linux已经正式发布。除了Twitter上的简要公示,其在官网上并未注释该移植版有哪些新特性和优化。不过根据下载地址里的镜像名称,我们可知它支持诸多ARMv7设备,只是当前的预编译镜像只有面向热门的树莓派2、香蕉派、以及CubitTruck单片机的版本。

上周,CentOS7 build1511 中带来了各种各样的新特性、以及软件更新与增强,比如面向身份认证管理的Kerberos HTTP代理、OpenJDK7中TLS连接的ECC支持、网络堆栈改进、以及Atomic包的更新等。

阅读全文

Python 包管理工具解惑

一、困惑

作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑)。主要表现在下面几个方面:

  1. 这几个包管理工具有什么不同?
  2. distutils
  3. setuptools
  4. distribute
  5. disutils2
  6. distlib
  7. pip
  8. 什么时候该用pip,什么时候该用 setup.py ,它们有关系么?
  9. easy_installez_setup.pysetup.pysetup.cfg 分别都是干啥的?
  10. wheel 和 pip 的关系?
  11. Egg 和 whl 的关系?
  12. 如何发布自己的模块(发布到PyPI)?
  13. 如何进行模块的私有发布(不发布到PyPI)?

为了弄清这些问题,我找了许多资料。最后发现最好的资料还是 python 的官方文档。

阅读全文

树莓派系统升级 Wheezy 到 Raspbian Jessie

Upgrade-debian-7-to-8-0
树莓派官方在上周放出了 Raspbian 8 Jessie 镜像文件下载。这是 Raspbian Wheezy 2015.5.5 之后的一次更新版本,核心版本升级到了 4.1。而老的 Wheezy 版本也可以通过简单的步骤升级到 Raspbian Jessie 8 且不用重新刷写镜像。下面将介绍如何升级,要知道,升级有可能会破坏现有系统,在此之前请一定注意备份好老的系统(你可以用镜像读写工具备份现有系统)。如果你对之前的系统做的更改越小,升级将会越顺利。

1. 建议:

  • 移除非必要的包
  • 完整升级当前系统
  • 备份数据
  • 虽然用SSH操作问题不大,但还是建议直进入终端来操作

阅读全文