SG90舵机.swift

一个用于 SG90 舵机的 Swift 库,可以适配其他舵机(9g ES08A, SM-S4303R, S3003, ...)。

Linux-only Swift 4 compatible License: MIT

SG90 Servo Motor

概要

这个简单的库可以使用 PWM 控制 SG90 舵机,PWM 具有 20ms 的周期,并且占空比代表以下位置

您的舵机可能具有略微不同的设置(1-2% 的差异),请在 Position 枚举(以百分比表示)中调整这些值,以找到适合您舵机的正确占空比。

支持的开发板

所有 SwiftyGPIO 支持的且具有 PWM 功能的开发板,目前只有 Raspberry Pi。您还需要 Swift 3.x,请查看 SwiftyGPIO 的 readme 文件以获取更多信息,了解在哪里可以找到它。

下面的示例使用 Raspberry Pi 2 开发板,但您可以轻松修改示例以使用其他支持的开发板之一。在 Examples 目录中提供了一个适用于 Raspberry Pi 2 的完整工作演示项目。

用法

我们需要做的第一件事是从 SwiftyGPIO 获取 PWMOutput 的实例,并使用它来初始化 SG90Servo 对象

import SwiftyGPIO
import SG90Servo

let pwms = SwiftyGPIO.hardwarePWMs(for:.RaspberryPi2)!
let pwm = (pwms[0]?[.P18])!

let s1 = SG90Servo(pwm)
s1.enable()
s1.move(to: .left)
sleep(1)
s1.move(to: .middle)
sleep(1)
s1.move(to: .right)
sleep(1)

s1.disable()

安装

请参阅 SwiftyGPIO 的 readme 文件,以获取 Swift 安装说明。

一旦您的开发板运行 Swift,如果您的版本支持 Swift Package Manager,您可以简单地将此库添加为项目的依赖项,并使用 swift build 进行编译

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    name: "TestServo",
    dependencies: [
        .package(url: "https://github.com/uraimo/SwiftyGPIO.git", from: "1.0.0"),
        .package(url: "https://github.com/uraimo/SG90Servo.swift.git",from: "3.0.0")
    ],
    targets: [
        .target(name: "TestServo", dependencies: ["SwiftyGPIO","SG90Servo"]),
    ]
) 

目录 Examples 包含使用 SPM 的示例项目,编译它并使用 sudo ./.build/debug/TestServo 运行示例。

由于所有与 GPIO 交互的操作都需要权限,如果您还不是 root 用户或特定 gpio 组的成员,您将需要使用 sudo ./main 运行该二进制文件。