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

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

3天内不再提示

使用Raspberry Pi进行PWM控制

星星科技指导员 来源:嵌入式计算设计 作者:Cliff Ortmeyer 2022-08-12 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

脉冲宽度调制 (PWM) 是一种广泛用于控制功率的调制技术。它通常用于电机控制应用中以控制电机的速度。Raspberry Pi 等单板计算机 (SBC) 可用于生成用于电机速度控制的 PWM 信号,但有一个限制:Raspberry Pi 上只有一个 PWM 硬件引脚可用。然而,使用Arduino 的支持 PWM 的 I/O 引脚,可以找到一种可行的解决方案,不仅适用于一个,而且适用于多个 PWM 输出。

PWM 概述

PWM 信号是一个方波,用于电子控制系统中,用于控制诸如舵机位置、电机速度和 LED 亮度之类的东西。它基于两个重要参数:频率和占空比。频率是波形在一秒钟内产生的重复周期数。占空比表示信号高与低的时间百分比。得到的波形平均值决定了传递给负载的功率量。

Raspberry Pi 和 Arduino Raspberry Pi 是一款信用卡大小的微型计算机

,部分由于其计算能力、尺寸和价格 而引起了相当多的关注。Raspberry Pi 基于 Broadcom BCM2835 嵌入式多媒体应用处理器。它配备了多个连接端口,可以通过插入电视或显示器和 USB 键盘轻松操作。它还与许多操作系统兼容;然而,为 Raspberry Pi 量身定制的 Linux 版本 Raspbian 是最常用的操作系统之一。

Arduino 是一个基于单板微控制器的平台,可为没有经验和有经验的用户提供嵌入式电子设计的简单快速入门。它是一种开源硬件设计,提供模数信号转换功能以及输入和输出控制以及 PWM 信号生成。Arduinos 还通过其板载 I/O 连接和可用的扩展板提供丰富的连接选项。

poYBAGL1toKAY0XuAAD2m8o32l8352.png

Raspberry Pi 上的 PWM:控制能力有限

考虑一个涉及构建机器人汽车的任务,在该任务中,您需要通过 Raspberry Pi 控制两个电机,Raspberry Pi 具有 26 个通用输入/输出 (GPIO) 引脚。在这些引脚中,只有一个易于访问的 PWM 输出引脚,它不足以驱动任何需要更多控制的东西,而不仅仅是开/关功能。伺服电机和 RGB LED 不能单独通过该引脚驱动。

poYBAGL1toiATJQ9AAQo5ygkNzo118.png

增强 Raspberry Pi 的 PWM 功能的策略

已经提出了许多解决方案来克服Raspberry Pi的这一限制。很多人为此目的使用支持 I2C(内部集成电路)或 SPI(串行外设接口)的附件。这些设备由 Raspberry Pi 控制,它们生成 PWM 信号用于控制目的。PWM 发生器附件也可用于将支持 PWM 的输出引脚添加到 Raspberry Pi。

正在使用的另一种方法是在其他支持 GPIO 的引脚上执行软件 PWM。WiringPi 库是一个允许这种类型控制的示例库。它使用实时调度程序通过运行单个线程来优先生成 PWM 信号,但由于 Raspberry Pi 上使用的操作系统执行多任务处理,因此该解决方案不适合,因为它提供了低时序分辨率和高抖动。

Arduino:合适的解决

方案 轻松开发 PWM 信号的一种解决方案是使用 Arduino 开发套件。Arduino 板有多种配置。例如,Arduino Due 有 54 个数字引脚(其中 12 个可用于 PWM 输出)和 14 个模拟引脚。有了这么多可配置的 I/O 引脚,Arduino Due 和一般的 Arduino 板是与 Raspberry Pi 接口的外部传感和控制板的理想选择。

pYYBAGL1to6AKMNtAAIF9s1jcjM571.png

通过 USB 连接 Arduino 和 Raspberry Pi

可以通过 匹配 Raspberry Pi 和 Arduino 平台的形式找到具有强大的 PWM 功能和高度可配置的用户界面的解决方案。基于 Arduino 的开发板可以与 Raspberry Pi 连接,以添加 PC 的功能、网络的通信和多媒体工具、通过使用微控制器与环境交互的能力以及移动设备的便携性设备。如前所述,Arduinos 是一个基于微控制器的平台,非常适合为涉及传感和控制的应用程序运行代码。连接 Raspberry Pi 和 Arduino 板的一种非常方便、低成本且可靠的方法是通过USB 电缆。 这是一个方便的解决方案,因为它需要最少数量的硬件。此外,它通常提供具有精确实时响应的电机和电源控制,例如提供高精度和低抖动,这对于许多控制应用很重要。

通过使用每块板上的 USB 接口以及现成的 pySerial 库,可以从 Raspberry Pi 发送命令来控制 Arduino 的多个 I/O。而且,以相反的方式,当 Arduino 读取多种数据类型(如温度、速度或其他需要监控的外部数据)时,串行数据可以从 Arduino 发送回 Pi。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    8249

    浏览量

    162364
  • usb
    usb
    +关注

    关注

    60

    文章

    8372

    浏览量

    281680
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195961
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Banana Pi BPI-CM6 – 一款与 Raspberry Pi CM4/CM5 载板兼容的 SpacemiT K1 RISC-V 系统模块

    Banana Pi BPI-CM6 系统模块 (SoM) 采用 SpacemiT K1 八核 RISC-V 处理器,并且与大多数 Raspberry Pi CM4 或 CM5 模块的载板兼容。 它
    发表于 11-28 16:59

    Banana Pi BPI-CM6 – 一款与 Raspberry Pi CM4/CM5 载板兼容的 SpacemiT K1 RISC-V 系统模块

    Banana Pi BPI-CM6 系统模块 (SoM) 采用 SpacemiT K1 8 核 RISC-V 处理器,并且与大多数为 Raspberry Pi CM4 或 CM5 设计的载板兼容
    的头像 发表于 11-28 16:57 1886次阅读
    Banana <b class='flag-5'>Pi</b> BPI-CM6 – 一款与 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> CM4/CM5 载板兼容的 SpacemiT K1 RISC-V 系统模块

    Banana Pi BPI-R4 Lite:新型单板计算机比 Raspberry Pi 5 更具优势

    Raspberry Pi 5(亚马逊售价 66 美元起)的替代品。 然而,它的侧重点略有不同,尤其适合网络应用。例如,它可以作为 OpenWrt 路由器的基础。Banana Pi 最新的 SBC
    的头像 发表于 08-26 16:46 1019次阅读
    Banana <b class='flag-5'>Pi</b> BPI-R4 Lite:新型单板计算机比 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 更具优势

    贸泽开售Raspberry Pi用于嵌入式和IIoT应用的RP2350微控制

    RP2350 微控制器。RP2350建立在Raspberry PI RP2040的成功基础上,旨在以实惠的价格提供更高的性能和安全性,非常适合嵌入式计算和工业物联网应用。   Raspberr
    发表于 05-27 14:50 1371次阅读

    如何在Raspberry Pi OS上安装SDK?

    Raspberry Pi OS 上安装 SDK
    发表于 04-30 06:45

    贸泽开售适用于AI和嵌入式应用的 全新Raspberry Pi Compute Module 5

    2025 年 3 月 20 日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 即日起供应Raspberry Pi的全新Compute
    发表于 03-24 15:09 426次阅读

    Raspberry Pi上使用IR v11及OpenVINO™ 2021.3后不兼容怎么办?

    PYTHONPATH=\"$PWD\" && python export.py --weights--img 512 --include openvino 转换后的 IR v11 模型与 Raspberry Pi 上的 OpenVINO™ 2021.3
    发表于 03-06 07:14

    Raspberry Pi上从源代码构建OpenVINO™ ARM插件失败了,怎么解决?

    Raspberry Pi* 上从源代码构建OpenVINO™ ARM 插件。 cmake -DCMAKE_BUILD_TYPE=Release -DOPENVINO_EXTRA_MODULES
    发表于 03-06 06:19

    OpenVINO™是否与TensorFlow集成支持Raspberry Pi

    无法确定OpenVINO™是否与 TensorFlow* 集成支持 Raspberry Pi
    发表于 03-05 08:26

    无法在Raspberry Pi 4中通过PyPI OpenVINO™安装2022年运行时软件包,为什么?

    无法在 Raspberry* Pi 4 中通过 PyPI* 安装OpenVINO™ 2022 运行时软件包。
    发表于 03-05 07:31

    安装OpenVINO™适用于Raspberry Pi64位操作系统的工具套件2022.3.1,配置英特尔®NCS2时出错怎么解决?

    安装OpenVINO™适用于 Raspberry Pi* 64 位操作系统的工具套件 2022.3.1。 配置英特尔® NCS2时出错: CMake Error at CMakeLists.txt
    发表于 03-05 07:27

    基于Raspberry Pi 5的情感机器人设计

    Raspberry Pi 5相较于上一代搭载了更强的处理器和硬件性能,为情感机器人的开发提供了前所未有的可能性。其支持多任务处理和实时计算,为语音交互和情感判断提供了坚实的基础。此外配合高性能的摄像头模块和传感器,机器人能够捕捉环境信息,真正做到 “知人知面” 。
    的头像 发表于 02-26 14:28 1567次阅读
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5的情感机器人设计

    使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制控制您的 XRP 机器人

    作者:Travis Foss 一个反复提出的有趣问题是控制 XRP 的不同方法是什么。我碰巧发现了适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器,Kitr
    的头像 发表于 01-26 17:37 861次阅读
    使用适用于 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 的 Kitronik 迷你<b class='flag-5'>控制</b>器<b class='flag-5'>控制</b>您的 XRP 机器人

    贸泽电子开售Raspberry Pi Hailo 8L AI套件

    近日,全球电子元器件和工业自动化产品的领先授权代理商贸泽电子(Mouser Electronics)正式宣布开售Raspberry Pi的Hailo 8L AI套件。这一创新产品的推出,标志着贸泽
    的头像 发表于 01-15 14:25 801次阅读

    Raspberry Pi树莓派新手指南

    电子发烧友网站提供《Raspberry Pi树莓派新手指南.pdf》资料免费下载
    发表于 12-23 17:05 4次下载