使用 PRIMUS X2 板构建直线跟随机器人
扫描二维码
随时随地手机看文章
项目背景介绍
“PRIMUS X2”的飞行控制器是一款多功能控制板,可用于开展各种项目。其中之一就是直线跟随机器人。此次的目标是打造一款基于 PID 控制的快速直线跟随机器人。该程序是在“Pluto IDE”平台上编写的。这款直线跟随机器人是使用PRIMUS X2、Cytron IR红外阵列传感器、两个轮子的车体、n20 电机和万向球组装而成的。
项目背后的动机:
过去有许多基于航空机器人技术的项目和实验都是使用PRIMUS板来实现的。本项目旨在将PRIMUS系列项目拓展到陆地领域。从像直线跟随机器人这样的简单事物开始,这一步骤为未来更高级的项目铺平了道路。
项目运作情况:
让我们先逐一了解每个组成部分及其运作方式:
1. 理解传感器输出:
根据传感器阵列在线路中的位置,电压值会根据所给定的输入电压而变化。输出信号会在传感器阵列模块的模拟输出引脚上获取到。
2. 了解 PrimusX2 板:
这是一款专为“Pluto”无人机设计的紧凑且功能强大的飞行控制器,适用于 STEM 教育和编程。它具备内置 Wi-Fi 功能、集成传感器以及内置电机驱动器,使学生和开发者能够轻松学习、编程并进行实际无人机应用的实验。
3. 工作原理:PID
P.I.D 算法(扩展为比例积分微分算法)指的是这样一种算法:其基本作用是“将系统推至期望状态,通过优化提供校正信号,调整这些校正信号,减少超调和振荡,从而使系统稳定在期望设定值上。”
这就是 PID 算法所遵循的原理。它会逐个对算法中的各项进行扩展。每一项的作用是:
1. 比例项:它会根据我们所出现的误差产生一个成比例的修正信号。
P = Kp * error
2. 积分项:它对于将系统稳定在设定值上至关重要,如果没有它,系统可以实现稳定,但会处于不同的设定值上,因此它用于消除稳态误差。
I = (I + 误差值) * Ki
3. 衍生项:其作用是在系统接近设定值时减少校正信号。若没有此项,系统可能会出现超调现象,无法稳定下来,而是持续振荡。
D = Kd * (当前误差 - 上次误差
校正信号 =
Kp*误差 + (I + 误差)*Ki + Kd*(当前误差 - 上次误差
4. 关联:
PrimusX2 的 ADC1 接口 --> Cytron 光电阵列 A0
PrimusX2 VCC --> 赛特龙红外阵列 VCC
PrimusX2 的 GND 端子 --> Cytron 光纤阵列的 GND 端子
简单来说,将普里姆斯X2 的 ADC1 端口连接到赛特隆红外阵列上。
PrimusX2 M1 --> 左电机
PrimusX2 M2 --> 右电机
5. 综合起来看:
将各组件安装在任何标准的两轮驱动底盘上。电机的选择可能会因底盘的不同而有所变化,但连接方式保持不变。调整线性传感器,使阵列的对称线与机器人底盘处于同一直线上。
在完成硬件连接和设置之后,我们开始进行软件操作:
1. 在 VS Code 中安装 Pluto IDE 扩展程序
2. 在其中创建一个“直线跟随器”项目的相关内容。
3. 使用给定的代码更新 PlutoPilot.cpp 文件。
如何上船上传:
1. 将您的笔记本电脑的无线网络连接到普里米克斯2的无线网络上。
2. 在底部命令行中点击“Wi-Fi 重启”选项(适用于 PlutoIDE)
3. 为了检查闪动过程是否正常进行,那颗小小的蓝色指示灯会持续不断地闪烁。
4. 在成功将板子通过闪烁其 LED 灯的方式进行初始化之后
在将代码上传至 PrimusX2 板上之后:
1. 重新启动板子(关机-->开机)
2. 将其与您的手机连接起来
3. 使用“Pluto控制器”应用程序开启开发者模式
以下是一些技巧和建议:
1. 根据您的机器人规格调整你的 PID 值
2. 在运行代码之前,先检查电机的旋转方向是否正确。
3. 尝试运行“Pluto_hybrid”代码,以确保电机能够正常工作。
结论:本项目旨在让爱好者们了解到使用 PRIMUSX2 板可以制作的各类项目。我们鼓励对其进行后续的添加、修改以及应用的拓展!
本文编译自hackster.io





