在树莓派中玩转Sense HAT

上图来自ESA(欧洲空间局)

介绍

Sense HAT的产品介绍中,我们知道Sense HAT是Raspberry Pi的附加板,直接插到树莓派的针脚阵列上即可使用,十分方便

Sense HAT为Astro Pi而生,它在2015年登上国际空间站,有兴趣的同学可以看这里,目前这个活动吸引了很多孩子的眼球,毕竟你写的代码可能跑在空间站里呢

我上周入手了一块Sense HAT,它长这样:

我们可以看到,它有一块8x8的led阵列,值得一提的是它是RGB的,可以把它视为一个彩色像素屏。此外它还带有一个五个按钮的操纵杆,同时携带以下传感器:

  • 陀螺仪传感器
  • 加速度传感器
  • 磁传感器
  • 温度传感器
  • 气压传感器
  • 湿度传感器

本着自带电池的python精神,当然也是有一个python库来方便你使用这些硬件设备的:Python module to control the Raspberry Pi Sense HAT

是不是有点激动!你再不用吭哧吭哧地逐个购买传感器,然后吭哧吭哧地去连线,还得担心引脚被占用而购买面包板,接好传感器,你又得吭哧吭哧地去网上逐个搜索驱动它们的代码,不出意外的话,许多地代码年久失修跑不起来,又或者系统地更新导致的不兼容...

现在你一次性得到这么多与物理世界沟通的设备,而需要做的不过是把这块板子插入树莓派

上手

首先你当然需要一个可运行的树莓派,如果你是新手,可以参考我之前的文章:树莓派折腾笔记之系统安装与配置

我用的是2016-05-27的版本(最新的版本特别不稳定,我当小白鼠也是当够了)

如果你用的也是我这个版本,那么你的sense-hat不是最新的(默认是2.1.0),你最好去更新以下它(截止到2017-05-20,sense-hat最新的版本是2.2.0)

更新python-sense-hat

直接更新:sudo pip install sense-hat==2.2.0尽管也能安装成功,不过使用的时候会报错,系统依赖问题,你需要按照下边的做法:

virtualenv env --system-site-packages #这样能使用系统已有的依赖,不然会报错
source env/bin/activate
pip install sense-hat==2.2.0

连接硬件

连接硬件特简单,直接对着针脚插上去就行,如果你连外壳都买了,组装好应该和下边一样:

美美哒

跑起来

我们可以跟着起步教程来做:Getting Started with the Sense HAT,你可以现在网页上看模拟器的表现

首先当然是hello world

from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello world")

在树莓派中运行上边的代码,led屏幕上将滑过hello world,很像店面门口电子公告板上闪烁的: 春节快乐这种公告

不过遗憾的是,并不能显示中文

其他传感器

其他传感器的用法,在Getting Started with the Sense HAT都有范例

你也可以把A Guide to Astro Pi当成学习传感器入口

跑个游戏玩

黑客门对像素游戏的痴迷可以追溯到计算机早期,《黑客:计算机革命的英雄》一书中提到的life就是有趣的像素游戏,我原本想在这个8*8的led阵列上做一个life,后来在trinket.io已经有人做了不少有意思的游戏,于是决定先试玩它们

flappy是我喜欢的一个游戏,恰好看到有人把它移植到sense hat里,就玩了下,很有意思

我把代码放到gist上了,你可以直接从gist上拉取代码:wget https://gist.githubusercontent.com/wwj718/81ba103c1e64c66c5bec3eb94cbfb062/raw/1a0a6547b5c9e059029d09c2df98057e2b5e7816/flappy_hat.py

然后运行它:python flappy_hat.py

哈哈 玩得开心

脑洞

我之前用树莓派和超声波传感器/震动传感器做了flappy(疯狂的小鸟)的体感版本

如今我们有了sense hat要做体感游戏容易多了,它有陀螺仪传感器和加速度传感器 ,而且非常灵敏

等之后闲下来慢慢玩

官方的有趣教程

树莓派官方网站有许多开脑洞的教程:

资料




Fork me on GitHub