树莓派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.刷新固件 关于电调的固件 ...
随机推荐
- 字符串正则匹配(递归/DP)
Wildcard-Matching & Regular Expression Matching Wildcard-Matching中?匹配任意一个字符,*匹配任意长度字符串包括空字符串 方法 ...
- Java实现基于token认证
随着互联网的不断发展,技术的迭代也非常之快.我们的用户认证也从刚开始的用户名密码转变到基于cookie的session认证,然而到了今天,这种认证已经不能满足与我们的业务需求了(分布式,微服务).我们 ...
- Web API之基于H5客户端分段上传大文件
http://www.cnblogs.com/OneDirection/articles/7285739.html 查询很多资料没有遇到合适的,对于MultipartFormDataStreamPro ...
- setOnTouchListener在小米手机中不走ACTION_UP而是走ACTION_CANCEL
单点触控: MotionEvent.ACTION_DOWN:手指 初次接触到屏幕 时触发. MotionEvent.ACTION_MOVE:手指 在屏幕上滑动 时触发,会多次触发. MotionEve ...
- c++ 积累
class MyClass { public: MyClass()=default; MyClass(const MyClass& )=delete; ...... 有些时候我们希望限制默认函 ...
- 《团队作业》五小福团队--UNO的博客链接汇总
<团队作业>五小福团队--UNO的博客链接汇总 <团队作业第一周>五小福团队作业--UNO <团队作业第二周>五小福团队作业--UNO <团队作业第三.第四周 ...
- [sublime] 利用sublime搭建C/C++编译器
gcc/g++配置 先去下载TDM-GCC安装包,这里附下载地址(可能会有弹出界面,不用管他). 现在c盘中建立文件夹 g++,然后以管理员运行,点击Create傻瓜式安装, 这里要改一下安装路径,保 ...
- cgi、fast-cgi、php-pfm关系
CGI是一种规定了服务器和处理进程的数据传输格式的协议 如:nginx 和 php处理进程之间的数据传输是使用cgi格式来相互传输数据 CGI 是 接到请求,fork一条进程来处理,处理完后就退出. ...
- Linux系统下如何运行.sh文件
在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh) ...
- Java spring boot 2.0连接mysql异常:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
解决办法:application.yml提示信息表明数据库驱动com.mysql.jdbc.Driver'已经被弃用了.应当使用新的驱动com.mysql.cj.jdbc.Driver' com.my ...