智能车是学术科研(如全国大学生智能车竞赛)、工业应用(如智慧物流机器人)、科创教育及国际赛事的核心载体,既是技术创新的试验场,也是物流运输、教育实践的工具。
本项目旨在使用Beetle RP2350 开发板完成智能车基本功能的搭建与编程。

材料清单
- Beetle RP2350 开发板 X1 链接
- Robot:bit 扩展板 X1
- geekservo减速电机 X2
- 杜邦线 X若干
- 乐高件 X若干
硬件简介
1、Beetle RP2350
Beetle RP2350 是一款基于RP2350芯片设计的高性能迷你体积的开发板,该开发板仅硬币大小(25*20.5mm),专为对空间有要求的嵌入式应用设计。


2、Robot:bit
Robotbit是增强Micro:bit实用性能、丰富其使用场景的优秀解决方案,作为Micro:bit的扩展板,Robotbit自身带有电机舵机驱动芯片。


3、geekservo减速电机

硬件接线图
Beetle RP2350 ← I2C → Robot:bit
↓ ↓
左电机 ← M1A接口 M2A 接口 → 右电机
程序编写
1. Arduino IDE安装Beetle RP2350 开发板
步骤 1:添加开发板管理器网址
打开 Arduino IDE 后,点击菜单栏中的 文件 -> 首选项。
在弹出的 首选项 窗口中,找到 附加开发板管理器网址 输入框。
输入 Beetle RP2350 开发板的支持包链接。通常可以在开发板的官方文档或者社区中找到对应的链接。对于 RP2350 开发板,一般使用的链接是 https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json。
点击 确定 保存设置。

步骤 2:安装 Beetle RP2350 开发板支持
点击菜单栏中的 工具 -> 开发板 -> 开发板管理器,在开发板管理器窗口中,等待索引更新完成。
在搜索框中输入 RP2350。
在搜索结果中找到 Raspberry Pi Pico/RP2040/RP2350 并点击 安装 按钮。

等待安装过程完成,这可能需要一些时间,具体取决于你的网络速度。
步骤 3:选择 Generic RP2350 开发板
安装完成后,点击菜单栏中的 工具 -> 开发板,在开发板列表中选择 Generic RP2350。

步骤 4:选择端口
将 Beetle RP2350 开发板通过 USB 线连接到计算机。点击菜单栏中的 工具 -> 端口,选择与开发板对应的端口。
完成以上步骤后,你就可以在 Arduino IDE 中使用 Beetle RP2350 开发板进行编程和开发了。你可以编写代码并上传到开发板上运行。
2. 安装Adafruit PWM Servo Driver库文件
在 Arduino IDE 的菜单栏中,选择 工具 -> 管理库,这将打开库管理器窗口。
在库管理器的搜索框中输入 Adafruit PWM Servo Driver,然后在搜索结果中找到对应的库。点击 安装 按钮,等待安装完成。这个库是一个由 Adafruit 开发的 Arduino 库,专门用于控制基于 PCA9685 芯片的 PWM(脉冲宽度调制)扩展板。这个库提供了简单易用的 API,让开发者可以通过 I2C 接口轻松控制多达 16 路 PWM 输出,每路输出的分辨率高达 12 位(4096 级)。

主要代码及说明
#include <Adafruit_PWMServoDriver.h>
// 创建对象
Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);
// 主程序开始
void setup() {
pwm1.begin();
pwm1.setPWMFreq(50);
}
void loop() {
pwm1.setPWM(1, 0, 2048);
pwm1.setPWM(0, 0, 0);
pwm1.setPWM(5, 0, 2048);
pwm1.setPWM(4, 0, 0);
delay(3000);
pwm1.setPWM(1, 0, 0);
pwm1.setPWM(0, 0, 0);
pwm1.setPWM(5, 0, 0);
pwm1.setPWM(4, 0, 0);
delay(2000);
pwm1.setPWM(1, 0, -2048);
pwm1.setPWM(0, 0, 0);
pwm1.setPWM(5, 0, -2048);
pwm1.setPWM(4, 0, 0);
delay(3000);
pwm1.setPWM(1, 0, 0);
pwm1.setPWM(0, 0, 0);
pwm1.setPWM(5, 0, 0);
pwm1.setPWM(4, 0, 0);
delay(2000);
}
评论