Mini-RP2040主控板在Arduino IDE下使用

Mini-RP2040主控板在Arduino IDE下使用

Arduino-Pico 是 RP2040(Raspberry Pi Pico 处理器)到 Arduino 生态系统的社区端口,旨在让基于 Raspberry Pi Pico / RP2040 的开发板的使用和编程变得更轻松、更有趣。
Arduino-Pico项目地址: https://github.com/earlephilhower/arduino-pico。
Arduino-Pico文档地址: https://arduino-pico.readthedocs.io/en/latest/。

Mini-RP2040主控板

Mini-RP2040主控板在Arduino IDE下使用_第1张图片
Mini-RP2040主板,基于树莓派RP2040芯片设计制作;主板引出6路防反接(ZH1.5-4P)端口,BOOT、RESET两个轻触按键,一路可编程RGB彩灯(GPIO25),设计简单,功能轻便,适用于简单的创客设计。
两种供电方式,满足选择:一路type-c供电端口,一路PH2.0-4P供电端口;一个电源指示灯,轻松明了开关状态。
Mini-RP2040主板具有兼容乐高积木的安装孔,可轻松完成乐高积木的拼接,实现创意设计。

Arduino IDE 配置编译环境

  1. 打开 Arduino IDE,然后转到文件>首选项。
  2. 在弹出的对话框中,在“其他看板管理器 URL”字段中输入以下 URL:https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
    Mini-RP2040主控板在Arduino IDE下使用_第2张图片
  3. 转到 IDE中的工具->开发板->开发板管理器,在搜索框职工输入“pico”,找到“Raspberry Pi Pico/RP2040”,选择版本点击安装(此处已安装完成,显示更新):
    Mini-RP2040主控板在Arduino IDE下使用_第3张图片
  4. 安装完成后,工具 > 开发板 > Raspberry Pi RP2040 Boards 栏下可以找到相关板型,这里咱们根据实际选择即可,我选择:Raspberry Pi Pico:
    Mini-RP2040主控板在Arduino IDE下使用_第4张图片
  5. 再回到工具 栏下可以看到开发板已经选择,并多处许多参数选择,这里咱们只需要使用默认参数即可,无需更改:
    Mini-RP2040主控板在Arduino IDE下使用_第5张图片

主板第一次上传程序

第一次将程序上传到主板上时,您需要使用内置的 ROM 引导加载程序来处理上传,而不是串行端口。

  1. 按住 BOOT 按钮,连接主板USB。
    Mini-RP2040主控板在Arduino IDE下使用_第6张图片
  2. 点击上传按钮。
  3. 待上传完成后,电脑中会多一个新的串行端口;从菜单中选择新的串行端口。工具->端口,再次点击上传即可。
    Mini-RP2040主控板在Arduino IDE下使用_第7张图片

主板上传Blink程序

下面的测试程序需要先安装库文件:NeoPixelConnect。
项目> 加载库 > 管理库:
Mini-RP2040主控板在Arduino IDE下使用_第8张图片
库管理器中搜索“pico neo”,找到NeoPixelConnect库文件,并安装:
Mini-RP2040主控板在Arduino IDE下使用_第9张图片
主板测试例程:

/*
  MINI-RP2040 测试程序
  RGBled 红绿蓝
*/
#include <NeoPixelConnect.h>
#define MAXIMUM_NUM_NEOPIXELS 1
#define NEOPIXELS_PIN 25 // 板载rgb灯
NeoPixelConnect p(NEOPIXELS_PIN, MAXIMUM_NUM_NEOPIXELS, pio0, 0);

#define OffLED 0      // 0-0 全灭灯
#define RedLED 1      // 0-1 点亮红灯
#define YellowLED 2   // 1-0 点亮黄灯
#define GreenLED 3    // 1-1 点亮绿灯

const int Pin1_1 = 1;
const int Pin1_2 = 0;

const int Pin2_1 = 3;
const int Pin2_2 = 2;

const int Pin3_1 = 5;
const int Pin3_2 = 4;

const int Pin4_1 = 7;
const int Pin4_2 = 6;

const int Pin5_1 = 27;
const int Pin5_2 = 26;

const int Pin6_1 = 29;
const int Pin6_2 = 28;


void setup() {
  Serial.begin(115200);
  pinMode(Pin1_1, OUTPUT);
  pinMode(Pin1_2, OUTPUT);
  pinMode(Pin2_1, OUTPUT);
  pinMode(Pin2_2, OUTPUT);
  pinMode(Pin3_1, OUTPUT);
  pinMode(Pin3_2, OUTPUT);
  pinMode(Pin4_1, OUTPUT);
  pinMode(Pin4_2, OUTPUT);
  pinMode(Pin5_1, OUTPUT);
  pinMode(Pin5_2, OUTPUT);
  pinMode(Pin6_1, OUTPUT);
  pinMode(Pin6_2, OUTPUT);
  light(Pin1_1, Pin1_2, OffLED);
  light(Pin2_1, Pin2_2, OffLED);
  light(Pin3_1, Pin3_2, OffLED);
  light(Pin4_1, Pin4_2, OffLED);
  light(Pin5_1, Pin5_2, OffLED);
  light(Pin6_1, Pin6_2, OffLED);
  delay(2000);
  Serial.println("In setup");
}


void loop() {

  // set all LEDs to red, then green, and then blue
  p.neoPixelFill(100, 0, 0, true);
  light(Pin1_1, Pin1_2, RedLED);
  light(Pin2_1, Pin2_2, RedLED);
  light(Pin3_1, Pin3_2, RedLED);
  light(Pin4_1, Pin4_2, RedLED);
  light(Pin5_1, Pin5_2, RedLED);
  light(Pin6_1, Pin6_2, RedLED);
  delay(300);

  p.neoPixelFill(0, 100, 0, true);
  light(Pin1_1, Pin1_2, YellowLED);
  light(Pin2_1, Pin2_2, YellowLED);
  light(Pin3_1, Pin3_2, YellowLED);
  light(Pin4_1, Pin4_2, YellowLED);
  light(Pin5_1, Pin5_2, YellowLED);
  light(Pin6_1, Pin6_2, YellowLED);
  delay(300);

  p.neoPixelFill(0, 0, 100, true);
  light(Pin1_1, Pin1_2, GreenLED);
  light(Pin2_1, Pin2_2, GreenLED);
  light(Pin3_1, Pin3_2, GreenLED);
  light(Pin4_1, Pin4_2, GreenLED);
  light(Pin5_1, Pin5_2, GreenLED); 
  light(Pin6_1, Pin6_2, GreenLED);
  delay(300);
}


// 发送数据
void light(int p1, int p2, int cLED) {
  switch (cLED) {
    case OffLED:
      digitalWrite(p1 , 0);
      digitalWrite(p2 , 0);
      break;
    case RedLED:
      digitalWrite(p1 , 0);
      digitalWrite(p2 , 1);
      break;
    case YellowLED:
      digitalWrite(p1 , 1);
      digitalWrite(p2 , 0);
      break;
    case GreenLED:
      digitalWrite(p1 , 1);
      digitalWrite(p2 , 1);
      break;
  }
}

测试效果:RGB LED 点亮 红绿蓝交替闪烁。ZH1.5任一外接端口连接YFROBOT交通灯模块,模块红黄绿灯交替闪烁。

更多使用方法请参见:https://arduino-pico.readthedocs.io/en/latest/

你可能感兴趣的:(Arduino,树莓派,RP2040,Arduino,IDE,树莓派,ide,嵌入式硬件,单片机,硬件工程,青少年编程)