查看: 398|回复: 2

Arduino IDE 支持Raspberry Pi Pico开发

[复制链接]

签到天数: 82 天

[LV.6]常住居民II

发表于 2021-4-19 00:33 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2021-4-19 19:59 编辑

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来制作一个本地气象站。Raspberry Pi Pico管脚如下图:
pico pin.jpg

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

(2)程序
#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);
}

这个实验证明你可以象使用UNO、NANO一样操作pico,其i2c,Arduino的库兼容性没有任何问题,两者可以完美融合。




该用户从未签到

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


感谢分享,这句很重要,我第一次安装时,就是在这个问题上失败,造成上传延时。谢谢

签到天数: 82 天

[LV.6]常住居民II

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

谢谢沧海笑1122老师的支持,一起学习一起进步。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

关于红外的求助
关于红外的求助
为什么红外发射出的跟我设定的不一样,如图,我两个板子一个发射,一个接收,我想要发
【Arduino】168种传感器模块系列实验(104)---MAX30102手腕心率
【Arduino】168种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
[Arduino物联网开发实战5]云端历史数据存储与查看
[Arduino物联网开发实战5]
blinker提供了历史数据存储与图表查看数据的功能。 设备端开发 在blinker的设计下,设
程序卡着不动,最后打印Freeheap 25427
程序卡着不动,最后打印Fr
各位有见过这个错误吗,程序跑到这里卡着不动
通过定时器读取串口数据出错
通过定时器读取串口数据出
各位大佬好,本人通过树莓派和Arduino通信,一边接收Arduino传感器数据,一边给Arduin
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表