本文讲述如何通过树莓派的硬件PWM控制好盈电调来驱动RC车子的前进后退,以及如何驱动伺服电机来控制车子转向。

1. 好盈电调简介

车子上的电调型号为:WP-10BLS-A-RTR,在好盈官网并没有搜到对应手册,但找到一份通用RC竞速车的电调使用说明,不过说明书中并没有提及信号调制方式,继续寻找,看到一份电调的通用驱动说明

总结来说,对于PWM格式要求如下:

1. 电调接收50Hz的PWM信号,即一个周期为20ms.

2. 油门对PWM高电平的响应范围为1ms~2ms,即高电平的占空比为1/20~2/20

3. 默认RC竞速车只有前进控制,则1ms为最低速度,2ms为最高速度;若配置RC竞速车为前进/后退模式,则1.5ms为油门中点,2ms为正向最高油门,1ms为反向最高油门。

对于第三点,则需要配置电调的相关模式以识别PWM的意图。

油门校准配置

备注:

1. 由于此处并无遥控器,因此图中文档的步骤1 就只需要拔插电池电源即可

2. 高、中、低档的PWM输出则需要自己对树莓派编程进行控制

运行模式配置

备注:

1. 不是所有的电调都有这三种运行模式,恰好本文所驱动的WP-10BLS-A-RTR电调只能选择“正转带刹车”或“正反转带刹车”,此处选择红灯闪两次,配置为“正反转带刹车”。

2. 油门驱动设计

调试过程中,树莓派安装在车上,PC通过SSH局域网访问树莓派。因此使用PC键盘的W/S/SPACE键来模拟遥控器的前进/后退/刹车;同时,考虑到键盘只能提供0/1状态输入,故选用R/F键来模拟“档位”--限制当前档位下的W/S的最高油门,以达到换挡加减速的效果。语言表述繁琐,用流程图来表达,大概就是如下效果:

备注:计算速度输出时,可配置相关参数使得油门直接升到最高或经过若干次循环加速后达到当前档位的最大速度。

3. 方向控制设计

伺服电机的工作原理可参考此文,描述十分详尽,此处不再赘述。

此处使用A/D键来控制转向,由于无法获知电机当前的转向角度,因此很难通过逐步增大/减小PWM占空比的方式来控制电机的转向。为简化控制,每次按下按键时触发电机偏转一定的角度,角度值受KEEP_TICK_LIMIT控制,若按住按键不松开,便左或右转向打到底。

逻辑较为简单,直接看代码:

工程源码请参考github 仓 rc_car.

树莓派pwm驱动好盈电调及伺服电机的更多相关文章

  1. stm32 pwm 电调 电机

    先上代码 python 树莓派版本,通俗表现原理.stm32 C语言版本在后面 import RPi.GPIO as GPIO import time mode=2 IN1=11 def setup( ...

  2. arduino 驱动电调

    #include <TimerOne.h> #define PPMPIN 7 ; //0-9 ; void setup() { // put your setup code here, t ...

  3. 无刷电调基础知识以及BLHeli固件烧录和参数调整

    标题: 无刷电调基础知识以及BLHeli固件烧录和参数调整 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#基础知识,#电调,#BLHeli,#固件,#烧录,#调参] 目录: [电 ...

  4. 无刷电调修理方法 | 银燕(EMAX)12A无刷电调维修

    一. 银燕(XP-12A)电调修理 笔者的电调在使用4S电池时烧毁,其中一个PMOS管明显烧焦. 将其拆除,买来新元件重新焊接,通电依然冒烟了. 引脚定义 丝印662F: XC6206P332MR 低 ...

  5. stm32通过电调带动电机(可按键调速)

    这几天在做32通过电调带动电机的实验,上网一查,发现这方面的资料很少,经过自己的亲自实践,总结出以下经验,供大家参考. 论坛上也有很多人说自己在做,但是都遇到了同样的瓶颈.我想他们大多是pwm的频率和 ...

  6. 【NXP开发板应用—智能插排】4. PWM驱动

    [前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...

  7. pwm驱动原理和代码实现

    学这个pwm真是非常曲则,首先是看s3c2440的datasheet,全英文的,并且还有硬件的时序图(非常多是硬件的工作原理,和软件控制不相关). 看了非常久加上网上看了资料才把这个pwm弄通. 当然 ...

  8. 新西达电调初始化代码,使用nodejs ffi技术调用wiringpi,代码使用typescript编写

    这是我设计的F450四轴飞行器飞控代码的一部分 运行在orangepi-zero上,操作系统是armbian,思路是使用node-ffi调用wiringpi的so库与GPIO通信,然后控制端逻辑代码使 ...

  9. MTO1804无刷电机引发的悲惨经历之二:电调固件刷新与优化

    前言 原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正. 书接上回,我们总算是基本确认了黑衣神秘电调的身份,本文就尝试对电调固件进行一番设置,来个免费优化. 1.刷新固件 关于电调的固件 ...

随机推荐

  1. Core在类中注入

    private readonly IHttpClientFactory _iHttpClientFactory; public static NetHelper Get = new NetHelper ...

  2. Docker 学习3 Docker镜像管理基础

    一.docker 常用操作及原理 1.docker 常用操作 2.docker 机制 1.docker client端是通过http或者https与server端通信的.个 2.docker 镜像可以 ...

  3. 咸鱼入门到放弃10--javaweb的两种开发模式

    (本篇是之前方法的综合使用,新东西不多,其中也涉及三层架构的问题.此处直接引用了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3908610.html) SUN公 ...

  4. UOJ#348. 【WC2018】州区划分

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ348.html 前言 第一次知道子集卷积可以自己卷自己. 题解 这是一道子集卷积模板题. 设 $sum[S]$ 表示点集 ...

  5. ubuntu中vi下删除键和上下左右键的异常解决

    解决办法: 卸载旧的vim apt-get remove vim-common     安装新的vim apt-get install vim   tips:可是我发现,无论卸载还是安装都是版本为(2 ...

  6. Jmeter函数助手

    1.__Random:产生0-10之间的随机数[__RadomString:随机生成字符函数同__Random]

  7. Newtonsoft.Json输出Json时动态忽略属性

    一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...

  8. python文件的路径问题补充上一篇内容

    上次的路径问题还没解决就被勒索病毒的木马器给搞了两周多, 拖拖拖到现在又开始纠结路径问题...还是学习能力不足啊... 补充一下路径问题的知识, 毕竟jupyter notebook跟IDE测试的时候 ...

  9. XAML控件不可访问,它具有一定的保护级别

    其它namespace的代码访问控件时会出现这个问题 需要把控件状态由protected改为public <TextBlock x:FieldModifier="public" ...

  10. linux 存在多个版本的情况下,切换python版本

    linux 存在多个版本的情况下 python 命令默认寻找 /usr/bin下的命令 所以先find / -name python* 找一下所有的Python版本 然后 sudo ln /usr/b ...