Arduino IDE 支持Raspberry Pi Pico开发-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10173|回复: 12

Arduino IDE 支持Raspberry Pi Pico开发

[复制链接]
发表于 2021-4-19 00:33 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2021-11-1 00:30 编辑

Arduino已经发布了他们的Arduino Nano RP2040 Connect开发板,这是最近发布的Raspberry Pi Pico的一个端口。该端口也可用于其他基于RP2040的微控制器板,这是Raspberry Pi Foundation为Raspberry Pi Pico制造的专有芯片。与此同时,他们已经移植Arduino核心,将Arduino IDE,库等引入Raspberry Pi Pico!
一·、Arduino IDE安装
打开Arduino IDE-->工具-->开发板管理器-->arduino mbed os rp2040 boards,点击安装。
27.jpg

中间会提示安装驱动,勾选信任,点击安装。

28.jpg

安装好以后就能在开发板管理器arduino mbed os rp2040 boards以下选择aspberry Pi Pico了。
29.jpg

需要注意的重要一件事是您第一次上传Arduino IDE时需要遵循以下步骤:
在将Pico插入计算机时,您需要按住BOOTSEL按钮。然后,您可以点击Arduino IDE中的上载按钮,将blink传输到Pi Pico。之后,电脑会加载串口驱动,您将不得不选择一次在Arduino IDE--->工具-->端口-->串行端口菜单中显示的适当的串行端口。这使自动重置工具可以识别要重置的正确设备。

二、气象站实验
笔者以AM2301、OLED1306和Raspberry Pi Pico来制作一个本地气象站。
管脚特殊定义见 C:\Users\用户名\AppData\Local\Arduino15\packages\arduino\hardware\mbed_rp2040\2.5.2\variants\RASPBERRY_PI_PICO\pins_arduino.h   
Raspberry Pi Pico管脚如下图:
pico pin.jpg

(1)三者接线情况如下:
AM2301     OLED1306      Raspberry Pi Pico
   vcc                 vcc                 3.3(out)  
   gnd                gnd                gnd
   data                                      GP6
                         sda                 GP4
                         scl                   GP5

(2)程序
[pre]#include <Arduino.h>
#include <U8g2lib.h>
#include "DHT.h"

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

#define DHTPIN 6
#define DHTTYPE DHT21

DHT dht(DHTPIN, DHTTYPE);
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 5, /* data=*/ 4, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  Serial.begin(9600);
  u8g2.begin();
  dht.begin();
}

void loop(void) {
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  u8g2.clearBuffer();                                        // clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);        // choose a suitable font
  u8g2.drawStr( 0, 20, "Temperature");        // write something to the internal memory
  u8g2.setCursor(72,20);
  u8g2.print(t);
  u8g2.print(" ");
  u8g2.print("c");

  u8g2.drawStr( 0, 42, "Humidity");
  u8g2.setCursor(70, 42);
  u8g2.print(h);
  u8g2.print(" ");
  u8g2.print("%");


  u8g2.sendBuffer();                                        // transfer internal memory to the display
  delay(1000);
}[/pre]
这个实验证明你可以象使用UNO、NANO一样操作pico,其i2c,Arduino的库兼容性没有任何问题,两者可以完美融合。






发表于 2021-4-19 22:14 | 显示全部楼层
在将Pico插入计算机时,您需要按住BOOTSEL按钮。然后,您可以点击Arduino IDE中的上载按钮,将blink传输到Pi Pico。之后,电脑会加载串口驱动,您将不得不选择一次在Arduino IDE--->工具-->端口-->串行端口菜单中显示的适当的串行端口。


感谢分享,这句很重要,我第一次安装时,就是在这个问题上失败,造成上传延时。谢谢
 楼主| 发表于 2021-4-19 23:32 | 显示全部楼层
沧海笑1122 发表于 2021-4-19 22:14
感谢分享,这句很重要,我第一次安装时,就是在这个问题上失败,造成上传延时。谢谢 ...

谢谢沧海笑1122老师的支持,一起学习一起进步。
发表于 2021-11-17 09:08 | 显示全部楼层
太好了,不知什么时候支持3B 4B等板子,那速度就快了
发表于 2022-1-3 20:58 | 显示全部楼层
树莓派每次下载arduino是不是都得拔下数据线然后安装按钮插上,才可以正常下载,不然就下载不了???
 楼主| 发表于 2022-1-3 23:08 | 显示全部楼层
dmdll 发表于 2022-1-3 20:58
树莓派每次下载arduino是不是都得拔下数据线然后安装按钮插上,才可以正常下载,不然就下载不了??? ...

只需要第一次这样。
发表于 2022-1-4 22:50 | 显示全部楼层
topdog 发表于 2022-1-3 23:08
只需要第一次这样。

第一次的时候我是按着按钮插数据线,arduino按下载就下载成功了。
之后我按下载还是需要按着安装重新插拔树莓派PICO才可以成功下载,不然就识别不到。
是不是因为我这板子以前是thonny开发的,需要重新复制下UF2?
 楼主| 发表于 2022-1-4 23:28 | 显示全部楼层
本帖最后由 topdog 于 2022-1-4 23:30 编辑
dmdll 发表于 2022-1-4 22:50
第一次的时候我是按着按钮插数据线,arduino按下载就下载成功了。
之后我按下载还是需要按着安装重新插拔 ...

两次的com编号是不一样的。第一次编译选好开发板,点击编译下载,等出现....按住boot按钮将usb插入电脑,显示上传成功。第二次,开发板和com都选择好,他会自动下载,不必再插拔了!我试验过了。
 楼主| 发表于 2022-1-4 23:52 | 显示全部楼层
dmdll 发表于 2022-1-4 22:50
第一次的时候我是按着按钮插数据线,arduino按下载就下载成功了。
之后我按下载还是需要按着安装重新插拔 ...

https://www.arduino.cn/thread-106257-1-1.html

如果遇到奇怪的状态不能使用,小伙伴可以下载附件中的flash_nuke.uf2安装到Pico中,它会对你的闪存进行“深度清理”。你会失去所有的文件夹,但至少你可以恢复它内核后,重新安装MicroPython。
发表于 2022-1-5 16:50 | 显示全部楼层
topdog 发表于 2022-1-4 23:52
https://www.arduino.cn/thread-106257-1-1.html

如果遇到奇怪的状态不能使用,小伙伴可以下载附件中的f ...

好的,稍后我试下。
就很奇怪不知道为啥我每次烧录都需要按着按钮插拔数据线
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:44 , Processed in 0.197065 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表