通过Python脚本登录SSH给树莓派发送控制指令

来自树莓派实验室群果果投稿,文末有演示视频。

最近这几天作为小学生的我有些无聊,毕竟学校的任务还是很简单的,对我一点没有难度。所以我就想起了半年之前买的树莓派,当时好一个折腾,还入手了一个扩展板,就是为了学习关于GPIO的知识,但是最后因为事情太多而放下了。重新捡起树莓派的我开始考虑要写什么程序:“最近智能家居这个词经常在广告上出现,反正我也闲的没事情干,编个程通过Windows来控制Pi的扩展板吧,估计效果能挺不错的。最近看实验室也有个类似的项目,我也来尝试一下。”

阅读全文

树莓派瑞士军刀扩展板教育特惠活动

树莓派瑞士军刀扩展板(SAKS)已经拥有从基础到应用的丰富教程,极其适合学校和教育机构设置实验课程使用。非常欢迎您将它带入课堂、学生社团、创客空间,为此我们推出了以下特惠活动(长期活动)。

优惠1.购买SAKS扩展板,凭有效学生证或教师证可获得9折优惠(每个淘宝帐号仅享有一件的折扣优惠,且对该型号产品仅限使用一次)。
优惠2.一次购买10件以上的SAKS扩展板,可凭有效学生证或教师证等证件,额外获赠一件SAKS扩展板

阅读全文

瑞士军刀扩展板的跑马灯实现(C++版)

树莓派上通过C和Python来控制GPIO已经成为了很流行的方式,本文介绍如何使用C++/Boost/OOP和用户空间驱动树莓派瑞士军刀扩展板的LED,实现跑马灯效果。相关原理和方法通用,当然也可以用于瑞士军刀扩展板之外的情况。

1、运行环境
系统信息:Linux raspberrypi 4.4.21-v7 #1 SMP Sat Sep 24 20:40:17 CST 2016 armv7l GNU/Linux
硬件搭配:Raspberry Pi 3B + 瑞士军刀扩展板,如图所示。
20161220201908269-0

阅读全文

树莓派“瑞士军刀”扩展板教程 V1.X TO V2.X 的适配说明

本文介绍在树莓派瑞士军刀扩展板升级到V2.0之后,如何对原先V1.X的教程做出适当修改之后应用到V2.0的方法。以下将通过链接引用V1.0的内容并附上差异说明和代码变更来对每一个DIY应用进行阐述。

开始之前,你需要了解SAKS V2.0在硬件和SDK上做了哪些变更,可以参考硬件变更SDK变更

由于V2.0的引脚顺序重新定义过,因此原有教程中的引脚编号对应表需要自行对应到新版本。另外,SDK升级说明中关于LED组的调用方法也请特别注意。虽然Github上我们将SDK的目录结构做了调整,但我们尽可能保证了对旧有代码的兼容性,main.py 主程序中对SDK的导入依然可沿用之前的方式无需变更。

阅读全文

树莓派瑞士军刀扩展板 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

阅读全文

树莓派 SAKS 扩展板实用应用 之 DS1307 RTC 时钟模块

本文所介绍的内容基于树莓派瑞士军刀扩展板(SAKS),由于 SAKS 基于树莓派通用的 GPIO 设计,文中的原理和代码也适用于其他情况。

本节以 SAKS 扩展板为硬件基础,实现让树莓派掉电后系统时间能继续保持的功能。在这个扩展板上已经有一个DS1307 RTC实时时钟模块,它是I2C类的设备,首先我们需要修改树莓派的配置文件使能I2C,通过nano编辑器修改raspi-blacklist.conf 文件内容。

sudo nano /etc/modprobe.d/raspi-blacklist.conf

修改为如下,开启I2C功能

# blacklist spi and i2c by default (many users don't need them)
blacklist spi-bcm2708
blacklist i2c-bcm2708

打开/etc/modules ,在文件结尾加上 i2c-dev

sudo nano /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-bcm2708
i2c-dev

阅读全文