什么是Arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台。它包含硬件部分(即各种型号的Arduino板)、软件部分(即Arduino IDE),以及其Arduino社区平台

Arduino由一个欧洲开发团队于2005年冬季开发,成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas。其设计初衷是为了让电子设计初学者和爱好者能够轻松上手嵌入式开发。

【注意】Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。


硬件部分

Arduino的硬件部分是一块电路板(开发板),可以与各类传感器进行连接,包括重量、心率、雨滴、火焰、烟雾、亮度、声音、温湿度等传感器,从而实现想要的功能或项目。

Arduino开发板根据不同的功能和特性,可分为多个种类,主要有以下几种:

1. Arduino Uno

特点:Arduino Uno是目前使用最广泛的Arduino控制器。它基于ATmega328P芯片,具有14个数字输入/输出引脚(其中6个可用作PWM输出)和6个模拟输入引脚。Arduino Uno适合初学者使用,因其简单易懂、功能齐全且易于上手。

应用场景:适用于电子爱好者、DIY项目、学校教育等。


2. Arduino Mega 2560

特点:相对于Arduino Uno,Arduino Mega 2560提供了更多的输入/输出接口,包括54个数字输入/输出引脚(其中15个可用作PWM输出)和16个模拟输入引脚。此外,它还拥有更大的内存和存储空间,适合处理更复杂的项目和更大的数据量。

应用场景:一般用于较大型的项目,如工业自动化、机器人控制等。


3. Arduino Leonardo

特点:Arduino Leonardo是2012年推出的新型Arduino控制器,它使用集成USB功能的AVR单片机作为主控芯片。除了具备其他Arduino控制器的功能外,Leonardo还可以模拟出USB设备,这在某些特定应用场景下非常有用。

应用场景:适用于需要USB通信或模拟USB设备的项目。


4. Arduino Due

特点:Arduino Due是2012年Arduino官方推出的最新Arduino控制器之一,它使用32位ARM Cortex-M3主控芯片,集成了多种外设,是目前性能最强的Arduino控制器之一。

应用场景:适用于需要高性能和复杂外设支持的项目。


5. Arduino Nano

特点:Arduino Nano是Arduino Uno的微型版本,尺寸小巧,可以直接插在面包板上使用。它的控制器同样采用ATmega328P,但去掉了直流电源接口及稳压电路,采用Mini-B标准的USB插座。

应用场景:适用于需要小型化设计的项目,如可穿戴设备、小型机器人等。


6. 其他类型

除了上述几种常见的Arduino种类外,还有如Arduino Micro、Arduino Liypad、Arduino Zero等小型化或特定功能的Arduino控制器。此外,由于Arduino的开源性和灵活性,社区还开发了许多基于不同微控制器架构的Arduino兼容板,如基于STM32、ESP32等芯片的Arduino开发板。


软件部分

1、IDE

IDE(Integrated Development Environment),译为集成开发环境,相当于编辑器、编译器+连接器+其他。而Arduino IDE就是Arduino团队提供的一款专门为Arduino设计的编程软件,使用它,我们便能将程序从代码上传至Arduino主板。

且Arduino IDE可以在Windows、Macintosh OS(Mac OS)、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。


2、Arduino语言

Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。

通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的芯片支持库进行二次封装所形成的。

在传统开发方式中,你需要明白每一个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。但是在Arduino中,使用了清楚明了的API替代繁杂的寄存器配置过程。

因此,开发者无需关心底层硬件的具体实现,只需使用这些高级别的函数即可实现功能。


3、不同芯片的兼容

Arduino IDE支持多种微控制器(芯片),包括但不限于以下几种:

  • 官方支持的微控制器

Arduino系列:如Arduino Uno、Arduino Mega、Arduino Leonardo、Arduino Due等。这些是Arduino官方推出的经典和开发板,它们使用不同的微控制器芯片,但都可以直接在Arduino IDE中进行编程和上传代码。

  • 兼容的第三方微控制器

1、ESP系列:如ESP8266和ESP32。这些是由Espressif Systems推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器。虽然它们不是由Arduino官方直接推出,但Arduino IDE通过安装额外的开发板管理器包(Boards Manager packages)来支持这些微控制器。这使得开发者可以使用Arduino IDE来编写和上传代码到ESP8266和ESP32开发板。

2、STM32系列:STM32是由STMicroelectronics推出的一系列基于ARM Cortex-M内核的32位微控制器。虽然STM32不是专门为Arduino设计的,但Arduino社区提供了STM32的Arduino核心(STM32duino core),使得开发者可以在Arduino IDE中编程STM32微控制器。

3、其他兼容微控制器:Arduino IDE的灵活性和开源性意味着它可以通过安装额外的库和核心文件来支持更多的微控制器。这些可能包括来自不同制造商的各种型号和规格的微控制器,具体取决于社区的支持和开发者的需求。


4、板级支持包

对于不同开发板,其芯片可能不同。而不同的芯片其内部寄存器配置也不尽相同。为什么Arduino IDE可以对不同的芯片用同样的函数进行操作?

Arduino IDE通过灵活的板级支持包(BSP)来支持不同的开发板和芯片。每个BSP都包含针对特定开发板和芯片的特定配置和代码库。当开发者在IDE中选择不同的开发板时,IDE会自动加载相应的BSP,并配置编译器和链接器以使用正确的库和设置。这样,开发者就可以使用相同的函数和库(即API)来编程不同的开发板,而无需担心底层硬件的差异。


5、官网下载

打开电脑浏览器,在地址里输入Arduino官方网站:www.arduino.cc,其网页打开速度可能非常慢,因为其服务器在国外。

打开后页面如上图所示,然后点击"SOFTWARE",找到Downloads,并在右边找自己电脑对应的操作系统,如下图所示。

【注意】对于Windows,其Installer指安装包,而ZIP为压缩包。

点击对应的操作系统后,会进入一个募捐的页面(如下),如果想捐钱的话,点击"CONTRIBUTE & DOWNLOAD"即可,只想安装软件直接点击"JUST DOWNLOAD"即可。


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐