在我的系列文章的第一篇中,我写了关于 Astro Pi 竞赛,这是一个让英国学生有机会让他们编写的代码实验在太空运行的机会。我们越来越接近 12 月 15 日的发射日期,届时英国欧洲航天局 (ESA) 宇航员蒂姆·皮克将开始他为期六个月的“原理号”任务。他将进行科学实验,并参与年轻人的教育推广活动。作为其中的一部分,他将携带两台 Raspberry Pi 计算机,装在特制的飞行箱中,每个都连接了摄像头模块和传感器板。这些计算机将运行 Astro Pi 竞赛获奖者编写的 Python 程序。
飞行箱
Raspberry Pi 必须使用博根臂安装在空间站上,就像用于对接宇航员笔记本电脑的那些臂一样。它们还必须获得完全安全认证,才能用于将它们送往国际空间站 (ISS) 的 联盟号火箭,以及在太空中的持续使用。Raspberry Pi 团队一直与 ESA 和英国航天局密切合作,以获得飞行安全证书。
除了大量的测试外,我们的工作还包括建造一个由航空级铝制成的定制外壳,该外壳在设计时考虑了热力学因素(对流不会在太空中发生)和实用性,以及使电路板的传感器能够在太空中有效工作。由于外壳制造成本高昂,因此不会对外出售,但我们计划发布原型机的 3D 打印文件,以便人们可以自行制作。甚至有一所学校用乐高积木制作了一个模型。
我们用乐高积木制作了一个 @astro_pi 飞行箱的乐高版本,以使出汗宇航员的测试尽可能逼真。pic.twitter.com/pYETedeWgn
— Richard Hayler ☀ (@rdhayler) 2015 年 7 月 9 日
硬件
每个飞行箱将包含一个 Raspberry Pi、一个 Sense HAT、一个实时时钟和一个摄像头模块。Sense HAT 是基金会工程团队专门为 Astro Pi 任务创建的 Pi 的附加板。它包含一个 8x8 全彩 LED 显示屏;一个迷你操纵杆;一组用于温度、湿度和压力的传感器;一个加速度计;一个陀螺仪;和一个磁力计。
Sense HAT 现已上市,并且注定将在地球上的许多精彩项目和实验中使用。您可以从英国的 Raspberry Pi Swag Store、美国的 Adafruit 或世界各地的任何其他 Pi 配件零售商处购买。
Sense HAT 软件
Raspberry Pi 基金会提供了一个 Sense HAT 的 Python 编程接口,该接口与基于 Debian Jessie 的 最新 Raspbian 镜像捆绑在一起。该接口提供了对 LED 显示屏和传感器的轻松访问,使用户能够围绕硬件构建自己的应用程序和项目。只需几行代码,您就可以在显示屏上显示当前温度传感器值
from sense_hat import SenseHat
sense = SenseHat()
temperature = sense.temperature
sense.show_message("Temperature is %d" % temperature)
一个类似的示例获取湿度值,并通过用绿色像素填充 LED 网格来显示湿度百分比的可视化效果
green = (0, 255, 0)
white = (255, 255, 255)
while True
humidity = sense.humidity
humidity_value = 64 * humidity / 100
print(humidity)
pixels = [green if i < humidity_value else white for i in range(64)]
sense.set_pixels(pixels)
当您对着电路板呼吸时,您会看到绿色像素的数量增加,然后慢慢回落。当您将电路板放入密封的保鲜袋中并用吸管向其中吹气时,这会变得更有趣。通过一些喘气和吹气,您应该能够使其达到 100%!
.@JarJarGeek 使用 Sense HAT 尝试了我的湿度测试。通过将其放入保鲜袋中,成功使其达到 100%。pic.twitter.com/qfUZGTXdYw
— Ben Nuttall (@ben_nuttall) 2015 年 9 月 12 日
在 64 个长度的列表中构建您自己的颜色元组图像,并将其直接传递给 Sense HAT 以显示图像
X = (255, 0, 0)
O = (255, 255, 255)
question_mark = [
O, O, O, X, X, O, O, O,
O, O, X, O, O, X, O, O,
O, O, O, O, O, X, O, O,
O, O, O, O, X, O, O, O,
O, O, O, X, O, O, O, O,
O, O, O, X, O, O, O, O,
O, O, O, O, O, O, O, O,
O, O, O, X, O, O, O, O
]
sense.set_pixels(question_mark)
您可以提供此类图像列表以进行动画处理
animation = [image_1, image_2, image_3, image_4]
while True
for image in animation:
sense.set_pixels(image)
sleep(0.5)
...就像这段在 Sense HAT 上显示的一组复古游戏角色的视频
您甚至可以将 8x8 像素图像文件加载到库中
sense.load_image("space_invader.png")
使用 PyGame 捕获操纵杆事件,这些事件映射到键盘按键
if event.key == pygame.K_DOWN
sense.set_pixels(down_image)
elif event.key == pygame.K_UP
sense.set_pixels(up_image)
elif event.key == pygame.K_LEFT
sense.set_pixels(left_image)
elif event.key == pygame.K_RIGHT
sense.set_pixels(right_image)
elif event.key == pygame.K_RETURN
sense.set_pixels(enter_image)
让您的 Sense HAT 显示笑话
jokes = [
"What happens to a frog's car when it breaks down? It gets toad away",
"Why was six scared of seven? Because seven eight nine",
]
joke = random.choice(jokes)
sense.show_message(joke)
joke = pyjokes.get_joke()
sense.show_message(joke)
使用加速度计制作一个魔术 8 球
replies = [
"Signs point to yes",
"Without a doubt",
"Don't count on it",
"It is decidedly so",
]
while True
x, y, z = sense.accelerometer.values()
if x > 2 or y > 2 or z > 2:
reply = random.choice(replies)
sense.show_message()
else:
sense.clear()
了解 Minecraft API 以及如何使用它将 Sense HAT 显示屏变成 您的 Minecraft 世界地图
尝试这些示例以及更多示例
- Sense HAT Python 文档
- Raspberry Pi 学习资源上的 Sense HAT 入门、《Astro Pi 指南》等
- Dave Honess 的 Sense HAT 示例
- 我的 Sense HAT 示例
- Martin O'Hanlon 的 Sense HAT 示例
- Richard Hayler 的用于创建 8x8 图像的 PyGame 应用程序
专栏
本文是 Ben Nuttall 的 Raspberry Pi 专栏的一部分,他在其中分享来自微型计算世界的新闻和故事。
5 条评论