摘要:
新建example26_max_speed_measurement 添加依赖 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = espressif32 ; 指定了使用的平台为Espressif 32 board = feather 阅读全文
摘要:
这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。 一、新建工程并导入开源库新建example25_encoder 添加依赖 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platfo 阅读全文
摘要:
上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。 要解决这个问题我们就要把开环控制改成闭环控制, 阅读全文
摘要:
本节我们结合上一节电机控制以及前面章节的MicroROS话题订阅部分知识点,来实现一个可以用键盘遥控的小车。 新建工程example24_ros2_car 修改配置 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = espress 阅读全文
摘要:
前面了解了电机控制的原理并通过实验测试了对电机正反转以及转速的控制。本节我们采用开源库调用ESP32的外设MCPWM进行精细化的电机PWM控制。一、MCPWM简介MCPWM中文名是电机控制脉宽调制器 (Motor Control Pulse Width Modulator ),是一款多功能 PWM 阅读全文
摘要:
前面说到通过控制对应的IO上的PWM占空比即可完成对电机速度的控制。关于PWM的介绍在ROS2硬件控制篇的舵机控制中已经介绍过了,所以我们知道通过改变PWM的占空比可以实现对输出电压的大小调节。占空比越大,输出电压越高;占空比越小,输出电压越低。接着我们通过一个实验来验证下一、新建工程新建examp 阅读全文
摘要:
前面说到通过控制对应的IO电平变换即可完成对电机正反转的控制,本节我们尝试编写代码,进行实验。 一、新建工程新建example21_motor_direction_control 二、编写代码根据第前面硬件控制章节学到的内容可知,控制IO电平只需要使用pinMode和digitalWrite相关函数 阅读全文
摘要:
一、电机驱动原理介绍正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。1.1 H桥电路让电机动起来只需要通电就行,比如我们用的额定电压为12V 130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给8V的电压,此时电机依 阅读全文
摘要:
本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。 对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。 一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距离传感器——雷达、超声波 轮子 阅读全文