使用Swift控制Raspberry Pi GPIO引脚并打开LED

在这里,我们安装了带有Raspbian和Swift 3.0的Raspberry Pi。 现在,我们实际上可以对其进行处理。 就像闪烁不发光的LED一样。 但是,嘿,我们必须从某个地方开始…

步骤1:了解GPIO引脚号

核心概念是板上并非所有可用的引脚都是GPIO(通用输入/输出)。 有些是电源,有些是接地,有些是其他东西

圆圈内的数字是图钉号 。 这些引脚中的一些与GPIO引脚匹配。 例如, 引脚7GPIO4引脚匹配。

我们只能控制GPIO引脚,而不能控制其他引脚。 其他的用来给电路加电或做其他事情

步骤2:连接电路

我们想创建一个简单的电路,其中通过GPIO4(引脚7)打开LED。 因此,我们创建了一个简单的电路,如下所示:

步骤3:确保我们可以在GPIO引脚上实际设置一个值

我们正在安装一个软件包,该软件包允许我们从命令行在引脚上设置值。 只是为了确保我们实际上能够将GPIO值调高和调低。

 须藤apt-get installconnectionpi 

现在,将引脚7设置为输出,然后将其关闭,然后再打开然后再次关闭:

  gpio模式7出 
gpio写7 0
gpio写7 1
gpio写7 0

它应该工作。 如果没有,那么很可能是您的电路中出现了一些接线错误。

步骤4:使用SwiftyGPIO库控制GPIO引脚

Uraimo在GPIO引脚周围创建了一个非常漂亮的Swift包装器,因此我们可以在Swift应用中对其进行控制。 几乎没有什么可以做得更好的(例如,不同的GPIO类型的更多面向协议的表示,GPIO状态的更好表示以及GPIO表示的更多不变性),但这仍然是一个很好的起点。

由于Swift软件包管理器迄今为止在Raspbian上仍无法正常工作(2016年7月8日),因此我们将克隆git repo并直接在代码中使用该文件。

重要的一点是将所有源文件放在一个文件夹中,以便能够用一个简单的命令将它们全部编译。

  mkdir〜/ ledtest 
mkdir〜/ ledtest /来源
cd〜/ ledtest
git clone https://github.com/uraimo/SwiftyGPIO.git
cp SwiftyGPIO / Sources / *源/

让我们创建主要的:

  nano Sources / main.swift 

使用此代码:

 导入Glibc 
  //获取将要连接LED的引脚 
让gpios = SwiftyGPIO.GPIOs(用于:.RaspberryPi2)
保护让ledGPIO = gpios [.P4] else {
fatalError(“无法初始化LED GPIO引脚”)
}
  //设置GPIO输出 
ledGPIO.direction = .OUT
  //打开和关闭LED几次 
ledGPIO.value = 1
睡眠(1)
ledGPIO.value = 0
睡眠(1)
ledGPIO.value = 1
睡眠(1)
ledGPIO.value = 0

现在以超级用户身份编译并运行(它需要更高级的权限才能访问GPIO引脚):

  swiftc来源/*.swift 
须藤./main

LED应该闪烁两次,然后停止。 成功!!

第5步:用一些更干净的代码清洗我们的灵魂

我在编写骇人的脚本时感到肮脏。 当我了解我写的东西甚至都无法令人满意时,我开始后悔所有人生决定。 因此,以下代码是该应用程序的v2。

但是首先我真的建议您配置Atom或SublimeText编辑器(在您的主计算机上)以在RPi上远程编辑代码,因此您不必使用nanovim 。 (Atom和SublimeText的信息)。

应该的。 编译并运行。 LED将一直闪烁,直到您停止执行。

这是您开始使用出色的编程语言及其附带的所有功能在电子产品中完成出色工作时所需要了解的基本知识。

要获取我最新的Swift不幸事件,请 订阅此出版物 干杯。