回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

Beetle 树莓派RP2350:造车计划(一) 简单

头像 豆爸 2025.05.20 31 0

智能车是学术科研(如全国大学生智能车竞赛)、工业应用(如智慧物流机器人)、科创教育及国际赛事的核心载体,既是技术创新的试验场,也是物流运输、教育实践的工具。

本项目旨在使用Beetle RP2350 开发板完成智能车基本功能的搭建与编程。

702371ef2f392911ecfa3b54f41af59.jpg

材料清单

  • 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自身带有电机舵机驱动芯片。

 

22.png
robotbit-1.png

3、geekservo减速电机

微信图片_20250521065530.png

硬件接线图

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。

点击 确定 保存设置。

image-20250516074502812.png

步骤 2:安装 Beetle RP2350 开发板支持

点击菜单栏中的 工具 -> 开发板 -> 开发板管理器,在开发板管理器窗口中,等待索引更新完成。

在搜索框中输入 RP2350。

在搜索结果中找到 Raspberry Pi Pico/RP2040/RP2350 并点击 安装 按钮。

image-20250516073904537.png

等待安装过程完成,这可能需要一些时间,具体取决于你的网络速度。

步骤 3:选择 Generic RP2350 开发板

安装完成后,点击菜单栏中的 工具 -> 开发板,在开发板列表中选择 Generic RP2350。

4E885EEB-63FA-4447-A72E-A208DD093520.png

步骤 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 级)。

1747755762597.png

主要代码及说明

代码
#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);
}

评论

user-avatar