树莓派使用PCA9685扩展(二)之驱动无刷电机(调)入坑指南

摘要

        在上一篇《树莓派使用PCA9685扩展PWM驱动舵机入坑指南》中简单介绍了树莓派使用PCA9685驱动sg90的180°舵机的应用。本身因为想做无人机,所以就研究了下如何驱动无刷电机(调)。原想本质上都是pwm方波输出给电机(调)即可,但无奈对pwm及电路知识欠缺,踩了很大的坑。但自己始终没有放弃,对于菜鸟也只有疯狂的刺探测试了。最终,实现了在树莓派3上的电调(机)油门模拟测试程序,而无需用遥控器或单片机来解锁测试油门。

测试环境全家福:

1.树莓派3
2.IO扩展板
3.PCA9685 16路pwm模块
4.XXD 30A 电调
5.A2212/1000KV无刷电机
6.2200mA/25C/3s电源

坑0

上次在 《树莓派使用PCA9685扩展PWM驱动舵机入坑指南》中说过,PCA9685必须要启用V+供电。连接好电调电机和PCA965和树莓派后,根据网上的资料要对电调进行解锁初始化,担心初始化失败或电调成砖怎么办?还好我多虑了。将电调和电池连接后,电机豁然发出单个哔~音,间隔有2到3秒左右。于是修改了之前测试舵机的程序,依然是50HZ频率。运行程序,重新对电调进行上电,还是哔~音间隔发出,每任何反应。上好盈官网查询资料,间隔哔~音是因为没有检测到PWM信号。可程序在运行,是哪里出了问题?断开电调,拿出万用表测量下PCA9685的电源输出,3.3v貌似是对的,测pwm信号也是有波动的。只能再搜索资料了,网上逛了半天没啥收获,回头看看PCA9685的模块,鬼使神差的翻到背面看了下丝印,V+最大5至6V,在看下正面16路PWM的电源输出管脚,旁边的丝印写着V+。于是把PCA9685的V+输入换到5V上。重新用原来舵机测试程序测试,重新接上电调,几次间隔哔~音后,传来连续的三生哔~音。。。还没反应过来,电机已经从我的桌面飞了出去。前辈们说得对,一定不要接螺旋桨。抑制住激动的心,下单了一副护目镜。

坑1

        想找现成的电机油门测试程序,大都是51或stm32的,都下了,但没任何参考价值。算了自己摸索吧,做个keyboard throttle simulator吧。当然比较矬是命令行形式的。

        好了,带你飞,感受下:
 

PC电调A2212/1000KV油门测试

油门模拟程序

        类似之前的文章 《树莓派使用PCA9685扩展PWM驱动舵机入坑指南》中的程序。加入了键盘输入读取。

/**
 * @brief
 * This program is a command line tool for Brushless Motor(A2212/13T 1000KV) test.
 * And you can use the keyboard to simulate the throttle:
 *
 *        ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 *        ┃ KEY  ┃        Function                           ┃
 *        ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
 *        ┃  1   ┃    pulse + 50                             ┃
 *        ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
 *        ┃  2   ┃    pulse - 50                             ┃
 *        ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
 *        ┃  3   ┃    pulse lowest 850                       ┃
 *        ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
 *        ┃  4   ┃    pulse full 2450                        ┃
 *        ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
 *        NOTE: You need to press the key 1 when this program started and befor the ESC power on.This operation will let pwm working ready for ECS detect.
 * @copyright 251575105@qq.com 
 */

1.1python软件的安装 先安装python软件优先,因为其他步骤如果用到sudo apt-get update 会导致python程序不是py2而是py3,就用不了我们的程序了 树莓派鼓励用户使用python和C++作为其开发语言,所以原则上可以不用安装python的编译器,但是树莓派自带的python(IDLE)和Thonny python IDE都过于简陋,不太适合python使用者进行复杂的OpenCV开发。在这里推荐Spyder作为树莓派的python IDE。这种编译器相对上述两种编译器略显笨重,但是对内核和运算值的控制更加灵活。   树莓派安装Spyder非常的方便,在命令行输: sudo apt-get install spyder 下载时间可能比较长,因为在安装spyder3的同时很多python开发开发必要的依赖也一并被安装到树莓派里了,这也说明牺牲一定的空间下载spyder3是值得的。此时,我们已经可以在树莓派的开始菜单-programming中看到编译器了。注意: 1、 在下载spyder之前请不要输 “sudo apt-get update/upgrade”, 否则会下载适用于python3.6的spyder,无法正常使用,比如图1-0中的spyder的python版本就是3.6,说明下载出现错误。 2、 如果看不到编译器说明安装过程出错,尝试重新执行:sudo apt-get update和 sudo apt-get install spyder3两条命令。   图 1-0下载完成后,在“start”中已经能看到Spyder编译器了     图 1-00 Spyder3的Python3.6版本 我们可以在preference/syntax coloring scheme中更换自己喜欢的主题,怎么样?是不是已经觉得树莓派和普通PC一样方便了呢?现在我们已经可以用在树莓派上舒适的开发python了。
ESP32是一款广泛用于物联网应用的单片机,它可以作为微控制器与电机控制器如好盈电配合使用,通过数字信号来驱动电机转动。电(ESC,Electronic Speed Controller)通常负责将来自ESP32或者其他微控制器的PWM(Pulse Width Modulation)信号转换为电机所需的电压和电流。 以下是一个简单的ESP32控制电机转动的代码示例,这里假设你已经连接了电并通过串口通信,并且使用了`esp32_mqtt`库方便地处理MQTT消息: ```cpp #include <WiFi.h> #include <PubSubClient.h> #include <FastLED.h> // ESP32-CAM上使用模拟I/O #include "driver/PCA9685.h" // 引PCA9685库 #define LED_PIN 2 // LED作为电机状态指示 #define PwmID 0 // 电通道编号 PCA9685 pwm; // 创建PCA9685实例 void setup() { FastLED.addLeds<WS2812B, LED_PIN>(leds, NUM_LEDS); // 初始化LED Serial.begin(115200); // 初始化电 pwm.begin(PwmID, 50); // 50Hz PWM频率,根据实际情况整 } void loop() { static int motorSpeed = 0; // 当前电机速度 if (Serial.available()) { // 检查是否有新的命令从串口接收 String command = Serial.readStringUntil('\n'); // 解析命令并设置电机速度 if (command == "forward") { motorSpeed = 100; } else if (command == "backward") { motorSpeed = -100; } else if (command == "stop") { motorSpeed = 0; } // 发送PWM信号给电 pwm.setSpeed(PwmID, motorSpeed); // 0~4095的范围对应0%~100%的速度 } // 更新LED状态,例如绿色表示正在前进 leds.show(); // 等待一段时间再检查下一轮输 delay(100); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值