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

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

3天内不再提示

深度解析基于FPGA控制的舵机程序

2oON_changxuemc 来源:互联网 作者:佚名 2018-01-25 08:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

舵机

一个常见的舵机有三个连接线。

黑色:电源

红色:电源(5伏直流)

白色:控制引脚(PWM)

PWM控制舵机位置。伺服系统每20毫秒要有一个脉冲,以便获得正确的角度信息。脉冲宽度决定了舵机的角度运动范围。也就是说,我们可以通过发送1毫秒脉冲设置舵机到一端位置,发送2毫秒脉冲将其设置到另一个位置。

深度解析基于FPGA控制的舵机程序

控制波形

我们设计一个四个输入,一个输出的模块,如下图所示

控制模块

Clk:时钟信号

reset:复位信号

button_l:用于PWM占空比的增加

button_r:用于PWM占空比的减小

Pwm:输出信号驱动舵机。

首先,应该生成具有20毫秒周期的PWM信号,由于使用50MHz的时钟产生PWM,为了产生20ms信号,我们将定义一个名为counter的变量和一个名为upper的常数,它表示计数上边界。

Upper boundary : 20ms/20ns = 1000 000

constant upper :integer:=1000000;

………………………..

process(clk,reset)

begin

if reset = '1' then

pwm_reg

counter

duty_cycle

elsif clk='1' and clk'event then

pwm_reg

counter

duty_cycle

end if;

end process;

counter_next

控制信号占空比的值应是1毫秒至2毫秒之间。我们将定义两个常数命名dcycle_max和dcycle_min说明上下边界。

dcycle_max:显示脉冲宽度的最大值。

(2ms/clock period=2 ms/ 20 ns=100000)

dcycle_min:显示脉冲宽度的最小值。

(1ms/clock period=1 ms/ 20 ns=50000)

脉宽(占空比)在每个PWM周期中改变,因此我们定义了一个称为tick的变量。当tick为“1”时,占空比将发生变化。

signal tick : std_logic;

tick

定义了一个称为duty_in的常数,用于改变占空比。

VHDL代码

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity servo_pwm is

Port ( clk : in STD_LOGIC;

reset : in STD_LOGIC;

button_l : in STD_LOGIC;

button_r : in STD_LOGIC;

pwm : out STD_LOGIC);

end servo_pwm;

architecture Behavioral of servo_pwm is

constant period:integer:=1000000;

constant dcycle_max:integer:=100000;

constant dcycle_min:integer:=50000;

constant duty_in:integer:=200;

signal pwm_reg,pwm_next:std_logic;

signal duty_cycle,duty_cycle_next:integer:=0;

signal counter,counter_next:integer:=0;

signal tick:std_logic;

begin

process(clk,reset)

begin

if reset = '1' then

pwm_reg

counter

duty_cycle

elsif clk='1' and clk'event then

pwm_reg

counter

duty_cycle

end if;

end process;

counter_next

tick

process(button_l,button_r,tick,duty_cycle)

begin

duty_cycle_next

if tick='1' then

if button_l ='1' and duty_cycle >dcycle_min then

duty_cycle_next

elsif button_r ='1' and duty_cycle

duty_cycle_next

end if;

end if;

end process;

pwm

pwm_next

end Behavioral;

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

    关注

    1665

    文章

    22587

    浏览量

    641144
  • 控制模块
    +关注

    关注

    2

    文章

    149

    浏览量

    19907
  • 舵机
    +关注

    关注

    17

    文章

    380

    浏览量

    43456

原文标题:FPGA控制舵机程序

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2026深度解析:领先业界的FPGA硬件定制伙伴推荐

    随着2026年的到来,国产FPGA板卡定制服务领域已从早期的“填补空白”迈入“引领创新”的新阶段。在自主可控、异构计算与垂直行业深度智能化的多重驱动下,市场对FPGA定制服务的需求不再仅限于硬件板卡
    发表于 05-18 15:05

    工业4.0下,舵机技术迭代加速!高德诚舵机应用的3大主流应用赛道!

    世界的“神经枢纽”,舵机的性能迭代直接决定了设备的智能化上限。本文将以高德诚智能舵机为例,解析技术趋势,揭秘扫地机、具身机器人/AI桌面机器人、灵巧手这三大爆发场景,为企业决策者提供战略级参考。 一、行业背景:
    的头像 发表于 04-03 14:00 306次阅读

    在昉·星光开发板上通舵机控制板实现机器人舵机控制

    根据实际需要,可为6~12V。 五、代码编写 在Python程序中,我们可以通过第三方库 PCA9685-driver ,来与PCA9685舵机控制板通信,实现对舵机
    发表于 03-09 06:23

    舵机伺服编码器

    舵机伺服编码器是用于实时检测舵机输出轴位置、速度或角度的核心反馈元件,它能将机械运动转化为电信号,让控制系统实现对舵机的精准闭环控制。 这个
    的头像 发表于 10-30 10:05 606次阅读

    PWM信号是如何控制舵机的?

     PWM(脉冲宽度调制)信号控制舵机的核心原理是通过固定周期内高电平的持续时间(脉宽)对应舵机的旋转角度,舵机内部电路根据检测到的脉宽驱动电机转动到目标位置并保持。以下是具体实现过程:
    的头像 发表于 09-29 10:48 1967次阅读

    电动舵机和直线舵机的区别?

    电动舵机是一个广义概念,直线舵机属于电动舵机的特殊类型,二者的核心区别体现在运动形式、结构设计、应用场景等多个维度,具体对比如下: 核心功能与运动形式 电动舵机(旋转式) :核心功能是
    的头像 发表于 09-28 18:25 1293次阅读

    工业大舵机和普通舵机的区别?

    工业大舵机和普通舵机在设计定位、性能参数、应用场景等多方面存在显著差异,以下是具体对比: 核心性能参数 精度控制 工业大舵机 :配备高精度位置传感器(如磁阻式绝对值编码器),精度可达
    的头像 发表于 09-25 10:41 1242次阅读

    无刷舵机与普通舵机舵机有哪些区别

    无刷舵机与普通舵机主要有以下区别: 结构原理 无刷舵机 :由电动机主体和驱动器组成,无刷电机的定子为线圈绕组,转子为永磁钢体,通过霍尔传感器检测转子位置,利用集成驱动电路实现电子换向,使电流依序流经
    的头像 发表于 09-13 10:33 3007次阅读

    什么是舵机舵机的种类有哪些?

    什么是舵机舵机的种类有哪些? 舵机(Servo Motor)是一种 集成电机、减速器、位置传感器与闭环控制系统的高精度执行元件 ,核心功能是根据输入信号(多为 PWM 信号)精准
    的头像 发表于 08-26 11:08 8919次阅读

    舵机PWM信号介绍!

    舵机 PWM 信号介绍 PWM(Pulse Width Modulation,脉冲宽度调制)信号是舵机的核心控制方式,其通过脉冲的宽度变化来精确指令舵机输出轴的旋转角度。以下从信号特性
    的头像 发表于 08-22 10:59 2836次阅读

    舵机原理简述!

    舵机原理简述 舵机是一种高精度的位置伺服执行机构,广泛应用于机器人关节、无人机舵面控制、航模操控等场景,其核心功能是通过接收控制信号,精确驱动输出轴旋转到指定角度并保持稳定。以下从结构
    的头像 发表于 08-22 10:57 2453次阅读

    舵机怎么控制正反,舵机怎么使用?

    一、舵机怎么控制正反? 舵机的 “正反” 本质是 旋转方向的控制 ,但其方向逻辑与直流电机不同(并非通过电源正负极切换),而是通过 目标角度与当前角度的偏差 由内部电路自动
    的头像 发表于 08-19 10:52 3382次阅读

    舵机的原理

    一、舵机控制的核心原理 舵机内部集成了 直流电机、减速齿轮组、电位器(角度传感器)和控制电路 ,形成闭环控制系统:   信号接收 :外部输入
    的头像 发表于 08-15 10:25 2423次阅读

    舵机如何控制

    及注意事项展开说明: 一、舵机控制的核心原理 舵机内部集成了 直流电机、减速齿轮组、电位器(角度传感器)和控制电路 ,形成闭环控制系统: 信
    的头像 发表于 08-15 10:23 2797次阅读

    PWM 型号舵机控制方法!

    一、PWM 舵机控制原理 PWM 舵机的核心是 脉冲宽度与旋转角度的对应关系 : 舵机接收周期性的 PWM 信号(通常周期为 20ms,即频率 50Hz),信号由高电平(有效电平)和低
    的头像 发表于 08-12 18:37 2986次阅读