电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>使用Swift语言控制伺服

使用Swift语言控制伺服

2022-11-04 | zip | 0.12 MB | 次下载 | 免费

资料介绍

描述

在这个任务中,您将使用另一种电机伺服电机其臂的角度可以随电位器的变化而变化

第 1 步:您需要什么

poYBAGNkXT-ATDYCAACiOnvFEWc360.png
 

您需要的零件都包含在Maker 套件中。

  • SwiftIO 板
  • 伺服
  • 电位器模块
  • 4 针电缆

第2步:伺服电机

pYYBAGNkXUKAayPsAAEg18jGpbM749.png
 

伺服电机可以根据信号调整其手臂的位置。您可以设置 PWM 输出来控制它。该伺服系统每 20 毫秒需要一个脉冲。每个脉冲的持续时间决定了手臂的位置:

  • 如果高压持续0.5ms,则手臂将处于0度。
  • 如果高压持续2.5ms,则手臂将处于180度。
  • 如果高压持续 1.5ms,则手臂将处于 90 度。

注意:本舵机需要脉冲在 0.5 到 2.5ms 范围内。您可能还会遇到其他需要 1 到 2ms 脉冲的舵机。

第 3 步:电路

poYBAGNkXUWAVgJsAAD9M7Ayyqc765.png
 

将屏蔽罩放在 SwiftIO 板的顶部。

使用 4 针电缆将电位计模块连接到针脚 A0。

将伺服连接到引脚 PWM4A。舵机有三根线:地线是棕色的,电源线是红色的,信号线是橙色的。

第 4 步:代码

/* Import the SwiftIO library to use everything in it. */
import SwiftIO

/* Import the board library to use the Id of the specific board. */
import SwiftIOBoard

/* Initialize the analog pin. */
let a0 = AnalogIn(Id.A0) 

let servo = PWMOut(Id.PWM4A)

while true {
    /* Read the analog value and return a value between 0.0 and 1.0. */
    let value = a0.readPercent() 

    /* Calculate the value to get the pulse duration. 
    Each cycle of the signal lasts for 20 milliseconds.
    The pulse should last between 0.5 and 2.5 ms to activate the servo. 
    With a 0.5ms pulse, the servo will turn to 0 degrees and with a 2.5ms pulse, it will at 180 degrees. 
    In between, it is at an angle between 0–180. */
    let pulse = Int(500 + 2000 * value) 

    /* Set the servo position according to the scaled value. */
    servo.set(period: 20000, pulse: pulse) 
    sleep(ms: 20)
}

第 5 步:代码分析

import SwiftIO
import SwiftIOBoard

导入两个库:​SwiftIO​SwiftIOBoard。

let a0 = AnalogIn(Id.A0)
let servo = PWMOut(Id.PWM4A)

初始化电位器的模拟引脚 A0 和电机的 PWM 引脚 PWM4A。

let value = a0.readPercent() 
let pulse = Int(500 + 2000 * value)
servo.set(period: 20000, pulse: pulse)
sleep(ms: 20)

在死循环中,以百分比形式读取输入值,因此您会得到一个介于 0 和 1 之间的值。

您将使用此方法set(period:pulse:)设置 PWM。周期以微秒为单位,因此为 20000us。脉冲应该是 0.5ms 到 2.5ms 之间的数字。所以通过做一些计算,这个值会被匹配到这个范围内。

第 6 步:运行项目

当您转动电位器时,伺服臂将移动到不同的角度。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费