跳过主要内容

如何用Arduino IDE编程树莓皮

程序树莓皮Pico Arduino IDE
(图片来源:Tom’s Hardware)

您的接线代码覆盆子π皮科可以分为两类。对于新用户来说,简单的方法是使用一个版本的Python,比如MicroPython或CircuitPython。一种更高级的方法是用C / c++编写代码,这是为更自信的用户准备的。

现在有第三种方法可以为Raspberry Pi Pico编写代码,那就是通过Arduino IDE,它使用“Arduino语言”,这是c++的一个衍生物。因为Arduino已经存在了这么多年,所以已经有了大量的“草图”(Arduino的术语)和教程。如果您以前使用过Arduino板,那么您可能对这个强大的IDE和语言非常熟悉。

覆盆子π皮科

覆盆子π皮科

(图片来源:PiShopUs)

视图PiShop.us

我们已经经历了许多不同的安装过程,并发现两个社区创建的项目简化了安装过程,只需几个步骤。第一个是pico-setup-windows这是一个Windows港口官方的Pico安装脚本。第二个是Arduino-Pico它为Arduino IDE增加了对树莓派Pico的支持。在本教程中,我们将向您展示如何设置您的Windows或Ubuntu机器,以便在您的Raspberry Pi Pico上编写Arduino代码

如何在Arduino IDE为Windows编程树莓皮Pico

1.下载pico-setup-windows安装程序.这是一个相当大的下载。

2.发射安装程序。

(图片来源:Tom’s Hardware)

3.确保选择了所有的组件这将在您的机器上安装大约360MB的文件和应用程序。包括构建C/ c++文件、Visual Studio Code和Git版本控制所需的文件。

(图片来源:Tom’s Hardware)

4.点击安装安装所有的应用程序。这可能需要一些时间,有时可能会卡住,但要有耐心。

程序树莓皮Pico Arduino IDE

(图片来源:Tom’s Hardware)

5.下载Arduino IDE并将其安装到您的机器上。我们选择了1.8.13版本,但是2.0版本的测试版也可以使用。

6.打开Arduino应用程序并导航到文件> >首选项

7.在额外的董事会经理中,添加这一行并单击OK

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

程序树莓皮Pico Arduino IDE

(图片来源:Tom’s Hardware)

8.进入Tools >> Board >> Boards Manager

(图片来源:Tom’s Hardware)

9.在搜索框中输入“pico”然后安装Raspberry Pi Pico / RP2040董事会。这将触发另一个大的下载,大约300MB大小。

(图片来源:Tom’s Hardware)

10.进入Tools >> Board >> Raspberry Pi RP2040 Boards选择树莓派皮科

(图片来源:Tom’s Hardware)

11.连接你的Raspberry Pi Pico以及使用设备管理器定位COM端口与之相关的。

(图片来源:Tom’s Hardware)

12.在“工具>>端口”下,设置COM端口为树莓派皮科。

(图片来源:Tom’s Hardware)

13.打开文件>> Examples >> Basics >> Blink来测试我们是否可以为Arduino编写代码。

(图片来源:Tom’s Hardware)

14.点击上传写代码到树莓派皮科。默认的Blink草图会在Raspberry Pi Pico上的micro USB端口旁边闪烁绿色LED。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

输出窗口将告诉我们何时上传完成。看看你的树莓派Pico,你会看到绿色LED每秒闪一次。

如何在Arduino IDE为Linux编程树莓皮Pico

我们在本教程中使用了Ubuntu,但是同样的指导也适用于其他基于Debian的发行版,比如Raspberry Pi OS。

1.打开终端使用wget下载官方的Pico安装脚本

wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh美元

2.在同一终端修改下载的文件,使其可执行

$ chmod +x pico_setup.sh

3.运行pico_setup.sh开始安装过程。如果提示,请输入您的sudo密码。

美元。/ pico_setup.sh

4.下载Arduino IDE并将其安装到您的机器上。我们选择了1.8.13版本,但是2.0版本的测试版也可以使用。

5.打开终端将您的用户添加到“dialout”组。这个组可以与Arduino等设备进行通信。使用“$USER”将自动使用您的用户名。

$ sudo usermod -a -G dialout " $USER "

6.注销或重新启动您的计算机让这些改变生效。

7.打开Arduino应用程序进入文件>>首选项

8.在额外的董事会经理添加这一行并单击OK

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

(图片来源:Tom’s Hardware)

9.进入Tools >> Board >> Boards Manager

10.在搜索框中输入“pico”然后安装Raspberry Pi Pico / RP2040板.这将触发另一个大的下载,大约300MB大小。

(图片来源:Tom’s Hardware)

11.进入Tools >> Board >> Raspberry Pi RP2040 Boards选择树莓派皮科

(图片来源:Tom’s Hardware)

12.连接你的Raspberry Pi Pico

13.通过命令定位USB设备被鉴定为树莓派皮科。在我们的例子中,它是ttyACM0。

美元dmesg

(图片来源:Tom’s Hardware)

14.打开文件>> Examples >> Basics >> Blink来测试我们是否可以为Arduino编写代码。

(图片来源:Tom’s Hardware)

15.点击上传写代码到树莓派皮科。默认的Blink草图会在Raspberry Pi Pico上的micro USB端口旁边闪烁绿色LED。

(图片来源:Tom’s Hardware)

输出窗口将告诉我们何时上传完成。看看你的树莓派Pico,你会看到绿色LED每秒闪一次。

(图片来源:Tom’s Hardware)

Raspberry Pi Pico教程:

  • softeky
    只是一个提醒。按照Linux的安装说明,我遇到了几个障碍。
    (1)我正在编译树莓(Linux rpi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux)。不是最新的,但是…"./pico_setup.sh"不会使用操作系统自带的cmake。"apt-get"不会超过3.7版,因为3.7版会导致脚本失败。

    我在这里找到了安装cmake v3.13.4的说明。虽然花了些时间,但还是成功了。

    (2)返回"./pico_setup.sh",我必须"rm -rf pico"重新开始(不能从失败的地方继续)。尽管该脚本试图再次安排cmake v3.7的安装,但它足够成熟,可以跳过这一步(我认为),因为它不会在需要时再次失败使用cmake。

    (3)不幸的是c++编译在这里失败了:
    构建CXX对象CMakeFiles/picoprobe.dir/home/pi/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj
    /home/pi/pico/pico-sdk/src/ rp2_pico_standard_link /new_delete.cpp:20:55: error: expected initializer before 'noexcept'
    Void操作符delete(Void *p, __unused std::size_t n) noexcept {std::free(p);}

    /home/pi/pico/pico-sdk/src/ rp2_pico_standard_link /new_delete.cpp:24:33: error: expected initializer before 'noexcept'
    Void操作符delete(Void *p) noexcept {std::free(p);}

    CMakeFiles / picoprobe.dir /构建。make:585: recipe for target 'CMakeFiles/picoprobe.dir/home/pi/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp. txt . txt . txt . txt . txt . txt . txt。obj的失败
    make: ***错误
    ***等待未完成的工作....
    CMakeFiles/Makefile2:74: recipe for target 'CMakeFiles/picoprobe. / CMakeFiles/picoprobe. /dir /所有的失败
    make: ***错误2
    Makefile:83: recipe for target 'all' failed
    make: ***错误2我认为我应该在试图修复代码错误和陷入另一个兔子洞之前发布。

    它正在实现——感谢所有的努力,因为我有一种潜心的感觉,Arduino IDE的人不会过于热情地推出他们自己的Raspberry Pico IDE,作为他们自己的Pico硬件的竞争对手:)
    回复
  • softeky
    softeky说:
    只是一个提醒。按照Linux的安装说明,我遇到了几个障碍。

    回复我自己的帖子(抱歉)。继续这个传奇,尝试让Debian在树莓派上加载Linux包,让Arduino IDE支持树莓Pico的开发。

    ……继续……

    源问题是编译器关键字“noexcept”,它是由gcc在version11引入c++的。我已经在我的Raspberry Pi上编译并安装了gcc++ v10.1,但它无法运行,因为gcc++ v10.1需要GLIBC_2.28在“/lib/arm-linux-gnueabihf/lib .so”中。6”,在Debian中只到GLIBC_2.27。修复这个问题可能会冒着启动Debian和(后来发现的)gcc++ v10.1不支持“noexcept”的风险,所以这是一条死胡同。

    相反,我检查了“不例外”是什么意思。它是一个编译时断言,不应该为运行时结果提供任何特性。问题是通过删除“noexcept”来“修复”代码会被覆盖,因为每次运行“pico_setup.sh”脚本时都要获取源代码。"pico_setup,sh"是不可重入的,它在"mkdir build"行提示目录存在。那个目录是珍贵运行的产物。即使将“mkdir build”更改为“mkdir -p build”也会失败,因为其他目录存在且不是空的。我必须“rm -rf pico”之间的每一次尝试,所以我的“修复”不生存(:-()。

    为了克服这个问题,我复制了导致编译出错的源代码:
    皮科/ pico-sdk / src / rp2_common / pico_standard_link / new_delete。Cppto与“pico_setup.sh”相同的目录,通过注释掉两个“noexcept”引用来“修复”源代码:
    Void操作符delete(Void *p, __unused std::size_t n) noexcept {std::free(p);}

    Void操作符delete(Void *p) {std::free(p);}

    Void操作符delete(Void *p) noexcept {std::free(p);}
    成为

    Void操作符delete(Void *p, __unused std::size_t n) /* noexcept */ {std::free(p);}

    Void操作符delete(Void *p) {std::free(p);}

    Void操作符delete(Void *p) /* noexcept */ {std::free(p);}
    并在“pico_setup.sh”中相关的“make”之前添加了一个重新复制回退步骤。
    cd构建
    cmake . . /
    让- j $ JNUMbecame:
    cd构建
    cmake . . /
    cp ${回家}/ new_delete.cpp ${回家}/ pico / pico-sdk / src / rp2_common / pico_standard_link / new_delete.cpp
    让- j JNUM美元
    有点像杂糅的东西,但现在可以在Debian的gcc++ v6.3上编译。

    传奇仍在继续……下一个问题是:
    处理gnome菜单的触发器(3.13.3-9)…
    阅读包列表…完成
    构建依赖关系树
    阅读状态信息…完成
    无法找到软件包libegl-mesa0
    这似乎与视频驱动程序的依赖有关。

    向前!
    回复
  • softeky
    softeky说:
    再次回复我自己的帖子(抱歉)。仍然在继续这个传奇,试图让Raspberry Pi v3上的Debian加载Linux包,让Arduino IDE支持Raspberry Pico开发。

    ……继续……

    处理gnome菜单的触发器(3.13.3-9)…
    阅读包列表…完成
    构建依赖关系树
    阅读状态信息…完成
    无法找到软件包libegl-mesa0
    这似乎与视频驱动程序的依赖有关。

    向前!

    它的工作原理!

    最后"fix"到"pico_setup.sh"脚本的Raspberry Pico支持Arduino IDE托管在树莓Pi v3 (Linux rpi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux)。
    来自:
    EXTRA_VSCODE_DEPS="libx11-xcb1 libxcb-dri3-0 libdrm2 libgbm1 libegl-mesa0"

    :
    # was EXTRA_VSCODE_DEPS="libx11-xcb1 libxcb-dri3-0 libdrm2 libgbm1 libegl-mesa0"
    EXTRA_VSCODE_DEPS="libx11-xcb1 libxcb-dri3-0 libdrm2 libgbm1"
    我有一个草图从Arduino Mega移植到Raspberry Pico。唷。

    TY勤劳的Arduino IDE单板移植人。

    -阿伦
    回复