马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
最近,树莓派基金会发布了Raspberry Pi Pico。在树莓派Pico发布之前,Raspberry Pi和Arduino生态系统之间存在明显的区别。树莓派是支持Linux的完整计算机,而Arduino是一次仅运行一个程序的微控制器。随着本身就是微控制器的RaspberryPi Pico和新型RP2040 SoC的到来,两者的区别变得模糊了。树莓派基金会现在开始制造自己的自主处理器RP2040,并且使包括Arduino在内的合作伙伴能够在其板上使用RP2040。此外树莓派基金会正在开发并带有Wi-Fi和蓝牙基于RP2040的电路板。
Arduino和Raspberry Pi Pico都非常适合物理计算项目,这些项目可以说是可靠的信号灯控制、电机和传感器等,,这些都不需要运行一个完整的操作系统。甚至可以将其中一种与常规的RaspberryPi结合使用,并且将一种用于更高级别的任务(如AI),另一种用于与电子组件接口。
第一个Arduino板于2005年推出,从那以后,已经售出了数百万个,并且建立了庞大的生态系统。RaspberryPi Pico最近才发布,但我们已经看到了对其的大量支持应用。那么哪个更好,在下一个项目中应该使用哪个呢?为了帮助您做出决定,我们将根据功能、价值、功耗等对这两个平台进行比较。
RaspberryPi Pico与Arduino的功能和GPIO
Raspberry Pi Pico为Raspberry Pi生态系统引入了一种新的外形设计,即40针 "DIP "式PCB。所有的40个引脚都被分解成标准的焊盘,并且在周边,有一些可以用来将Pico焊接到载板上的焊盘,类似于表面贴装电子器件。
DIP封装并不是什么新鲜事物,Micro等Arduino板已经使用了多年。可以将DIP封装焊接到载板,放置在面包板上或堆叠在兼容附件的顶部。与需要较大布局的RaspberryPi和Arduino Uno样式布局相比,它是一种更方便的封装,因为后者偏重于较大的布局。RaspberryPi Pico采用DIP布局,为我们提供了一个易于使用的外形尺寸,易于嵌入项目中。
Raspberry Pi Pico GPIO提供大量的数字IO,三个模拟输入以及多个I2C、SPI和UART连接。但是Pico还提供了一系列可编程IO(PIO)引脚,可以将其配置为模拟其他接口/协议,例如WS2812“ NeoPixels”,它们还可以用于将复杂任务卸载到后台进程。所有这些都是通过4美元的板子实现的,这意味着RaspberryPi Pico是低成本的GPIO引脚“瑞士军刀”。 优胜者:RaspberryPi Pico
Raspberry Pi Pico与Arduino的SoC
但后来的板子现在都采用Arm CPU。例如Arduino的Portenta H7就采用了双核Arm Cortex M7+M4 CPU。虽然ATMega328永远无法与Arm处理器竞争,但对于项目来说,它是一款可靠的芯片,这已经被无数的Arduino项目所证明。
Arm芯片在微控制器中越来越常见,Adafruit、Seeed和SparkFun都开发了采用Arm芯片的电路板。微控制器不一定需要多核和快速的速度,因为它们通常用于一个过程的单一部分。
Raspberry Pi Pico中使用的RP2040比一般的微控制器要高一个层次。首先,RP2040采用了双核Arm Cortex M0+,运行速度高达133 MHz,比UNO的16 MHz 328P快很多。RP2040的SRAM为264KB,同样比Uno的2KB多得多。Uno只有32KB的闪存,再次低于Pico上的2MB。
但Pico与Arduino的旗舰板Portenta H7相比如何呢?Portenta H7采用了双核Arm Cortex M7+M4,最高运行频率可达480 MHz,并有高达2MB的闪存和1MB的RAM。Portenta H7还配备了WiFi、蓝牙、摄像头接口和GPU。Portenta H7在各方面都比Raspberry Pi Pico强的多。不过看一下价格,Portenta H7的零售价为89.9欧元,约合109美元, 109美元可以买27Raspberry Pi Pico。 优胜者:RaspberryPi Pico
Raspberry Pi Pico与Arduino 程序代码编写
Arduino IDE是Arduino项目的首选编辑器,但也有其他的选择,如PlatformIO和Arduino Create,Arduino的云IDE。但Arduino IDE仍然是很多人使用的,看到"Arduino "就会想到它。
Arduino IDE经过多年的改进,现在我们看到了内置的功能,比如多板管理,以及搜索和安装附加组件和配件的包库的方法。ArduinoCreate是Arduino IDE的云版本。它是为物联网项目设计的,但它仍然可以用来修整最基本的Arduino代码。PlatformIO有三个版本,一个命令行工具,一个专用的IDE,或者它可以与你现有的IDE集成,例如微软的VisualStudio Code。
正如我们在Raspberry Pi Pico评测中提到的,新平台有两种官方支持的语言,C和MicroPython。目前Raspberry Pi Pico上的C/C++是留给高级用户的工作流程。事实上,RaspberryPi官方建议新用户使用MicroPython与Pico搭配使用。
如果你想在你的Raspberry Pi Pico上编写C代码,那么你有两个主要选择。在编辑器(Vi /Vim.nano等)中编写代码,然后使用终端工具构建代码,或者设置微软的VisualStudio Code,并使用一些扩展来创建一个工作流程,以构建和闪存代码到Pico。这两种方法都是可行的,但它们并不是最用户友好的。然而,通过对Arduino IDE的更新,将很快可以支持RP2040。
如果Python是你的首选语言,那么你很幸运,因为RaspberryPi Pico支持MicroPython,这是Python 3的一个微控制器版本。在启动时,MicroPython可以通过两种方式编写,直接写入PythonShell,也就是所谓的REPL(读取、评估、打印、循环),或者我们可以使用一个IDE,比如Thonny,它从3.3.0版本开始就已经内置了支持。通过MicroPython是阻力最小的途径:我们可以从神奇的Thorny编辑器中快速编写和部署我们的代码,而且我们使用的是一种非常流行的标准语言,并在各种平台上使用。
优胜者:RaspberryPi Pico
Raspberry Pi Pico与Arduino的易用性比较
Raspberry Pi Pico与以前的Raspberry Pi不同,不需要操作系统。
无论我们选择哪种语言,我们都需要使用该语言的映像文件下载到Pico。然后,这使我们能够直接将代码编写并保存到板上。映像文件的选择格式为UF2,这是Microsoft的USB闪存格式,因其CircuitPython系列板而受到Adafruit的拥护。我们只需在插入Micro USB电缆时按下BOOTSEL按钮,将UF2文件拖放到RPI-R2驱动器上,然后在几秒钟内就可以开始编写代码。这种易用性在MicroPython工作流程中显而易见。在Pico上保存MicroPython UF2文件后,我们可以简单地使用Thonny连接并开始编写代码。
C/C++的工作流程比较高级一些,也是会让那些新手望而却步的,因为它需要大量的 "hoopjumping "来创建最终产品。在终端上,我们需要在文本编辑器中编写项目代码,然后在下载额外的应用程序和依赖关系后,我们可以将项目 "构建 "成一个UF2文件,然后手动复制到Pico上。
ArduinoIDE的工作流程受到了多年改进和反馈的影响,整个过程都发生在应用程序中,用户的交互非常有限,更高级的用户可以改变项目中使用的电路板、端口和库,这些功能在最近的Arduino IDE版本中得到了很大的改进。
Arduino IDE还有其他的选择,包括ArduinoCreate,这是一个云版本的IDE,它是免费的,可以供有限的使用,但如果要更全面的应用,需要注册一个付费版本。Arduino CreateIoT Cloud是基于Arduino生态系统创建应用的一种手段,它运作得非常好,但是您将需要花费一些时间来学习该过程。
Pico和Arduino板在物理上的使用方便程度如何?第一个大区别是RaspberryPi Pico未被焊接。这不是什么大问题,因为只要有烙铁,就可以轻松焊接自己的引脚。通常,Arduino板是预焊接的,基于DIP的板除外,例如Arduino Nano Every和Nano 33 IoT。
优胜者:RaspberryPi Pico
Raspberry Pi Pico与Arduino的功耗比较
RaspberryPi Pico是嵌入式项目的高效开发板。与典型的RaspberryPi相比,Pico消耗的电流要少得多,因为它是一种微控制器,没有计算机带来的开销。
我们使用5V电源以全亮度为运行12个Neopixel LED的Raspberry Pi Pico供电。我们记录的140mA电流消耗为0.7W!但与运行相同测试的Arduino Uno相比,,Arduino Uno消耗的功率更少。由于Arduino Uno处理器速度相对慢很多,因此这是可以预期的。如果我们要用另一块板(例如Portenta H7)重复测试,则功耗会更高,因为Portenta上使用的Arm CPU甚至比RP2040还强大。
优胜者:Arduino
|