树莓派pwm驱动好盈电调及伺服电机
本文讲述如何通过树莓派的硬件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驱动好盈电调及伺服电机的更多相关文章
- stm32 pwm 电调 电机
先上代码 python 树莓派版本,通俗表现原理.stm32 C语言版本在后面 import RPi.GPIO as GPIO import time mode=2 IN1=11 def setup( ...
- arduino 驱动电调
#include <TimerOne.h> #define PPMPIN 7 ; //0-9 ; void setup() { // put your setup code here, t ...
- 无刷电调基础知识以及BLHeli固件烧录和参数调整
标题: 无刷电调基础知识以及BLHeli固件烧录和参数调整 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#基础知识,#电调,#BLHeli,#固件,#烧录,#调参] 目录: [电 ...
- 无刷电调修理方法 | 银燕(EMAX)12A无刷电调维修
一. 银燕(XP-12A)电调修理 笔者的电调在使用4S电池时烧毁,其中一个PMOS管明显烧焦. 将其拆除,买来新元件重新焊接,通电依然冒烟了. 引脚定义 丝印662F: XC6206P332MR 低 ...
- stm32通过电调带动电机(可按键调速)
这几天在做32通过电调带动电机的实验,上网一查,发现这方面的资料很少,经过自己的亲自实践,总结出以下经验,供大家参考. 论坛上也有很多人说自己在做,但是都遇到了同样的瓶颈.我想他们大多是pwm的频率和 ...
- 【NXP开发板应用—智能插排】4. PWM驱动
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
- pwm驱动原理和代码实现
学这个pwm真是非常曲则,首先是看s3c2440的datasheet,全英文的,并且还有硬件的时序图(非常多是硬件的工作原理,和软件控制不相关). 看了非常久加上网上看了资料才把这个pwm弄通. 当然 ...
- 新西达电调初始化代码,使用nodejs ffi技术调用wiringpi,代码使用typescript编写
这是我设计的F450四轴飞行器飞控代码的一部分 运行在orangepi-zero上,操作系统是armbian,思路是使用node-ffi调用wiringpi的so库与GPIO通信,然后控制端逻辑代码使 ...
- MTO1804无刷电机引发的悲惨经历之二:电调固件刷新与优化
前言 原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正. 书接上回,我们总算是基本确认了黑衣神秘电调的身份,本文就尝试对电调固件进行一番设置,来个免费优化. 1.刷新固件 关于电调的固件 ...
随机推荐
- Unity 5.x动态加载光照信息(所有坑已踩)
能搜到这的应该是被新的烘焙系统坑了少时间,4.x到5.x美术必须重新烘焙,关于美术的没什么说的,只有---重新烘焙! 新的烘焙系统,为了兼容5.x的多场景编辑功能,将烘焙信息从mesh全部挪到了一个中 ...
- CAShapLayer的使用1
1.添加橙色圆环 - (CAShapeLayer *)shapeLayer { if (!_shapeLayer) { _shapeLayer = [CAShapeLayer layer]; CGRe ...
- vs2017更新出错:The entire Box execution exiting with result code: 0x0
在将vs2017 15.7.4更新至15.9.5出现“The entire Box execution exiting with result code: 0x0”错误,也就是文件解压下载开始安装后, ...
- lxml库
lxml库 lxml是一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML数据. 基本使用: 1.我们可以利用他来解析HTML代码,并且在解析HTML代码的时候,如果HTML代码 ...
- symfony简单的博客练习,熟悉具体开发流程
这里搭建一个简单的博客系统作为练习,之后再完成学校任务搭建一个表白墙, 使用htmlpurifier和parsedown来搭建前端,所以需要先安装这两个第三方包,必须要弄一个composer的国内镜像 ...
- Java对象引用和对象赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用,那实在没法很好 ...
- 微信小程序视频学习笔记
[清华大学]学做小程序 https://www.bilibili.com/video/av21987398 2.2创建项目和文件结构 小程序包含一个描述整体程序的app和多个描述各自页面的page 配 ...
- 编程菜鸟的日记-Linux无处不在
原文来自:http://www.linuxfederation.com/linux-everywhere Linux无处不在 “Linux无处不在.从空间站到微波炉到有Linux.”你可能听说很多以及 ...
- win10 音频设备图形隔离 占用CPU
这几天工作很烦!每次上班开机我的电脑就超级卡,自我感觉i7处理器加上8g内存应该杠杠的,打开任务管理器发现就不对了, 有“windows 音频设备图形隔离 ”这个进程吃了我20%的cpu,电脑的风扇也 ...
- Cordova打包vue项目生成Apk (解决cordova build android抛出的zip问题)
最近对vue前端框架情有独钟.但研究了一下怎么把vue项目打包成android apk来玩玩. 首先讲一下创建vue2.x项目.其实在之前的文章中都有写过,有兴趣的同学可以去看看.http://www ...