维基少年:树莓派/树莓派尖叫果冻宝贝教程
在本教程中,您将制作一个尖叫的果冻宝贝!或者,如果您住在英国或澳大利亚以外的地方,可以使用软糖熊。
您的导师应该已经为您准备了树莓派的 SD 卡。如果没有,请阅读最后一节“给导师”。
Things that appear on the screen or need to be typed in are written like this.
在每行的末尾,您通常需要按 ↵ Enter 键。
当您打开树莓派时,几秒钟后它会要求您登录。您需要键入用户名 (pi
),然后按 ↵ Enter 键,然后输入密码 (raspberry
),然后按 ↵ Enter 键。
raspberrypi login: pi
password: raspberry
请注意,输入密码时,密码不会显示在屏幕上。
从现在开始,您应该假设您始终需要在每行的末尾按 ↵ Enter 键。
登录后,屏幕会变黑几秒钟,然后桌面应该会显示出来,您可以用鼠标移动指针。如果不行,输入
startx
找到“IDLE”图标并双击它。如果您难以双击,您可以右键单击它并选择“打开”。
您需要的是 IDLE,而不是 IDLE3。
IDLE 是一个用于编写程序的程序,使用 Python 版本 2 编程语言。您对 Python 越加精通,您将使用的功能就越有用。但是,可以使用文本编辑器(如 nano)来编写程序,而无需 IDLE。还有其他版本的本教程使用 nano 代替 IDLE。
IDLE3 用于 Python 的版本 3。本教程是为版本 2 编写的。
输入以下程序
print "Hello World"
使用“文件”菜单、“保存”保存它,然后双击进入 python 文件夹,然后进入 jellybaby 文件夹。将程序保存为
jellybaby.py
在桌面上,双击 LX Terminal 图标。将出现一个新的黑色窗口。
通过输入以下内容进入 python/jellybaby 文件夹
cd python/jellybaby
通过输入以下内容查看此文件夹中的文件
ls
您应该看到您的 jellybaby.py
程序,一些 .wav 声音文件(这些是我们稍后将使用的尖叫声)和一个 examples 目录(如果您想作弊,您将在那里找到一个完全工作的尖叫果冻宝贝程序!)。
现在运行您的程序
sudo python jellybaby.py
计算机应该响应
Hello World
让我们快速了解一下我们在那做了什么
sudo
表示“超级用户执行”。对于许多程序来说,这并不重要,但我们很快就会使用连接到树莓派 GPIO 端口(通用输入输出)的电子设备,您需要成为超级用户才能这样做。
不利的一面是,以超级用户身份运行程序允许您执行可能会破坏计算机的操作 - 超级用户就像一个无所不能的超级英雄。由于树莓派是一款非常便宜的计算机,因此这并不重要,但在其他昂贵的计算机上,您可能需要对 sudo
更小心。
python
指示计算机运行用 Python 编程语言编写的程序。jellybaby.py
是您的程序的名称。
请再次检查您是否插在了正确的引脚上。如果弄错,您可能会永久损坏您的树莓派。请您的导师检查。 |
在连接电线到树莓派之前,你应该先关闭树莓派。请确保你在拔掉电源之前,安全地关闭树莓派。
你可以使用桌面右下角的红色电源图标,或者在 LXTerminal 窗口(黑色窗口)中输入
sudo shutdown –h now
sudo
是超级用户命令,再次确认。shutdown
表示关机。–h
表示停止(与–r
表示重启相反)now
表示现在!(如果还有其他人通过网络使用你的树莓派,你可以说+5
而不是 now,这样可以发出五分钟的警告)。
引脚分为两排。偶数引脚位于板的边缘,奇数引脚位于另一排。你需要从左侧的 1 开始以 2 为单位计数,所以计数为 1、3、5、7 等等。
识别 引脚 25(GND)很容易出错,尤其是在有 40 个引脚的 Raspberry Pi “Plus” 型号上!在旧的 Model B 和 Model A 型号上,只有 26 个引脚,识别起来就容易多了 – 引脚 25(GND)是位于右侧末端的引脚。
步骤 1:等待树莓派自动关机,然后拔掉电源线。
步骤 2:将一个金属回形针展开,使其变成一根长而直的导线。
步骤 3:取一根母对母跳线,将展开的回形针插入一端。
步骤 4:重复此操作两次,这样你就有两根导线,两端都插入了展开的回形针。较大的回形针可能难以插入。你的导师可能已经帮你插入了,或者你可以请你的导师用钳子帮忙插入。
步骤 5:现在将跳线的另一端分别连接到 Raspberry PI 的 GPIO 引脚的 引脚 3(I2C1 SDA) 和 引脚 25(GND) 上。
将电源线插回,等待树莓派开机,然后登录(pi
/ raspberry
;如果你的桌面没有自动启动,别忘了 startx
)。
从桌面启动 IDLE(双击),然后通过转到“文件”菜单、“最近打开的文件”并选择 jellybaby.py
来加载你的旧程序。
更改程序,使其读取
import time
import RPi.GPIO as GPIO
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(3,GPIO.IN)
print "Hello World"
while True:
if GPIO.input(3) == False:
print "Ouch!"
time.sleep(1)
所有大写字母都非常重要。你需要确保所有大写字母都确实是大写字母,所有小写字母都确实是小写字母。这被称为区分大小写。
while
和 if
行下的空格也很重要。你需要按下 空格键 来确保它们对齐。这些缩进被称为代码块。代码块可以重复,程序也可以决定运行或跳过代码块。我们使用四个空格来缩进每个代码块;一些程序员更喜欢使用两个空格或其他数字。
import
行允许我们在我们的程序中使用其他人的小程序。这些小程序被称为库。time 库允许我们告诉计算机等待(sleep
)。GPIO
库允许我们使用 GPIO 引脚。os
库允许我们调用其他程序,例如音乐播放器,但我们目前没有使用它。
while
告诉我们重复一个代码块。True
告诉计算机始终执行某些操作。
if
提问。要问的问题是两根导线是否接触;引脚 3(I2C1 SDA) 是否连接到电气接地?将输入引脚连接到接地会导致值 False
。
注意使用两个等号 ==
。一个等号用于设置值,例如 a=3
,这意味着每次计算机看到 a
时,它都知道它的值为 3
。两个等号用于比较两个事物。
time.sleep(1)
表示等待 1 秒。
保存程序,然后从桌面启动 LXTerminal(双击),然后输入
cd python/jellybaby
sudo python jellybaby
程序将打印 Hello World!然后它将等待。
将回形针导线连接在一起。你应该会看到它显示
Ouch!
松开导线,等待几秒钟,然后再次将导线连接在一起。每次都应该会显示 Ouch!
。
如果它不起作用,请检查你的程序是否正确输入,检查你是否保存了它,并检查你的导线是否被任何东西覆盖,可能阻止了电流流动。
当你玩够了的时候,按住 CTRL 键,然后按 C 来停止程序。这被称为“中断”或“键盘中断” – 你是在要求计算机暂停,并使用键盘中断程序。有时你会看到 Ctrl 和 C 写成 CTRL-C 甚至 ^C。你不需要使用 Shift 键 – C 实际上是小写 c。
让我们更改程序,使其发出声音,而不是仅仅在屏幕上打印“Ouch!”。更改
print "Ouch!"
…为
os.system('omxplayer scream-c.wav')
|
|
无法播放此文件?请查看 媒体帮助。 |
确保扬声器已连接,已打开,并且音量至少开到一半(一些扬声器没有开/关按钮或音量控制)。
转到 LXTerminal 窗口,再次运行程序。
将导线连接在一起,你应该会听到尖叫声!
取一个果冻宝贝,将导线插入其中。
你需要让它们在果冻宝贝内部交叉,但不要完全接触。
现在,当你用力按下果冻宝贝时,它就会尖叫!
你可能需要用力按下 – 足够用力地穿过果冻宝贝的粘稠中间部分。
用力按下意味着果冻宝贝可能在三到四次按下后就变得毫无用处。如果你不是糖尿病患者,也不对果冻宝贝过敏,你可以在果冻宝贝被压扁后吃掉它们!
|
|
无法播放此文件?请查看 媒体帮助。 |
|
|
无法播放此文件?请查看 媒体帮助。 |
|
|
无法播放此文件?请查看 媒体帮助。 |
你的程序为音符 C 播放尖叫声。还有音符 D 和 E 的尖叫声文件。尝试更改你的程序以使用不同的音符。看看你和你的同学是否能演奏一首曲子,例如“小羊羔” (EDCDEEE,DDD,EEE,EDCDEEE,EDDEDC)。
找到 GPIO 引脚列表 (http://raspi.tv/download/RPi.GPIO-Cheat-Sheet.pdf)。你能连接更多电线,让一台树莓派同时连接到两三个果冻宝贝,演奏不同的音符吗?
- ×1 树莓派,任何型号,带显示器、鼠标和键盘
- ×1 SD 或 Micro SD 卡,装有最新版本的 Raspbian 操作系统
- ×1 扬声器或一对扬声器,有源(可充电移动 MP3 扬声器可以,PC 扬声器也可以)
- ×2 母对母 跳线 – 建议最小长度 20 厘米(约 8 英寸)
- ×2 小金属回形针(不含塑料涂层)(如果你使用大回形针,你可能需要使用钳子将它们插入跳线)
多个果冻宝贝 – 每个工作站至少允许 6 个,但最好一次只发一个或两个!
了解你的学生中哪些是糖尿病患者或对果冻宝贝过敏。
下载并解压缩文件夹结构、尖叫声样本和示例程序。为此,从连接互联网的 Raspberry Pi 上登录(pi
/ raspberry
)并执行
cd
wget http://www.cotswoldjam.org/downloads/2014-11/jellybaby.zip
unzip jellybaby.zip
这将创建
~/python/
~/python/jellybaby/
~/python/jellybaby/scream-c.wav
~/python/jellybaby/scream-d.wav
~/python/jellybaby/scream-e.wav
~/python/jellybaby/example/
~/python/jellybaby/example/jellybaby.py
请注意,有一个关于 GPIO 引脚的优秀图表,可在此处获得:http://raspi.tv/download/RPi.GPIO-Cheat-Sheet.pdf
作者:Cotswold Raspberry Jam 的 Andrew Oakley,www.cotswoldjam.org,CC-BY-SA
最新版本始终位于:http://www.cotswoldjam.org/tutorials/
基于“让果冻宝宝尖叫!”,由树莓派基金会提供,CC-BY-SA http://www.raspberrypi.org/learning/screaming-jellybaby/ https://creativecommons.org/licenses/by-sa/4.0/
本教程的原始 PDF 可在维基共享资源上获得:Jellybaby-tutorial.pdf
import time
import RPi.GPIO as GPIO
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(3,GPIO.IN)
print "Hello World"
while True:
if GPIO.input(3) == False:
os.system('omxplayer scream-c.wav')
time.sleep(1)
|
|
无法播放此文件?请查看 媒体帮助。 |
|
|
无法播放此文件?请查看 媒体帮助。 |
|
|
无法播放此文件?请查看 媒体帮助。 |