{{indexmenu_n>2}}====== Arduino从入门到进阶 ====== Arduino是当前最流行的开源硬件。写一个简单的程序,让它在Arduino开发板上运行起来,便开始Arduino开发之旅。 ===== 准备工作 ===== {{:40.oshw:arduino:getting-started-with-arduino.gif|}} * Arduino开发板,酷玛Labs以Arduino Uno为例; * 一台电脑(Mac,PC,Chromebook,Linux,包括Raspberry Pi),下载并安装相应操作系统的Arduino集成开发环境(Arduino IDE); * 一根USB type-B数据线(常用在打印机的接口上)。 {{:40.oshw:arduino:blogpost-ide-update-1.8.10.jpg|}}\\ https://www.arduino.cc/en/main/software ===== 快速上手步骤 ===== {{:40.oshw:arduino:introduction-to-arduino-ide-9.jpg|}} * 电脑下载并安装相应操作系统的Arduino集成开发环境(Arduino IDE),并自动同步安装驱动程序(如低版本Windows需要手动安装Arduino\drivers\arduino.inf驱动程序文件); * 用USB type-B数据线将Arduino Uno连接到计算机; * 启动Arduino IDE,以及需要在工具菜单里进行设置,如:开发板管理器选择Arduino/Genuino Uno;编程器选择Arduino ISP;端口为系统设备管理器或者Arduino IDE工具>端口中新增的串行端口号,如COM3(Arduino/Genuino Uno); * 新建工程,.ino文件是Arduino工程的主文件; * 编写代码; * 点击“上传”按钮部署程序; * 查看运行结果。 ===== Arduino IDE ===== Arduino IDE是Arduino所有主板通用的集成开发环境。 {{:40.oshw:arduino:webeditor.png?200|}}{{:40.oshw:arduino:arduinoapp.png?200|}} Arduino IDE包括适应各种操作系统的[[https://www.arduino.cc/en/Main/Software|Arduino桌面IDE]],以及[[https://create.arduino.cc/editor|ARDUINO WEB编辑器]]。ARDUINO WEB编辑器云服务始终拥有最新版本的IDE,包括所有贡献的库和对新Arduino板的支持。通过Arduino Web Editor插件,将浏览器中的程序上传到板上。 ==== Arduino Pro IDE ==== {{:40.oshw:arduino:pro-ide.png|}} blog.arduino.cc:2019年10月19日,Arduino发布了针对Arduino的全新开发环境(Arduino Pro IDE)的Alpha版。 alpha版本的主要功能: * Modern, fully featured development environment * Dual Mode, Classic Mode (identical to the Classic Arduino IDE) and Pro Mode (File System view) * New Board Manager * New Library Manager * Board List * Basic Auto Completion (Arm targets only) * Git Integration * Serial Monitor * Dark Mode 这些功能将很快出现: * Sketch synchronisation with Arduino Create Editor * Debugger * Fully open to third party plug-ins * Support for additional languages other than C++ 新的Arduino Pro IDE基于最新技术: * The Arduino CLI running in daemon mode provides all the main Arduino features. * The application frontend is based on the Eclipse Theia Open Source IDE. * Electron, the framework behind Eclipse Theia, allows the use of web technologies on desktop environments. ===== 图形编程软件 ===== 兼容图形编程软件众多,如[[http://blog.ardublock.com/zh/|Ardublock]]、[[http://s4a.cat/|S4A]]、慧编程[[https://www.mblock.cc/zh-cn/download/|mBlock5]]、DF创客社区[[http://mindplus.cc/|Mind+]]等。 ===== Arduino编程 ===== Arduino使用C/C++编写程序。 Arduino编程所用编程语言是以Processing多媒体编程环境为基础的物理计算平台Wiring。C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言,目前最新的Arduino核心库采用C与C++混合编写而成。 ==== 语法结构 ==== Arduino程序的基本结构: void setup() { // 在这里加入你的setup代码,它只会运行一次: } void loop() { // 在这里加入你的loop代码,它会不断重复运行: } ==== 范例程序 ==== 以下是一段经典的“点亮LED”程序,运行结果是Arduino Uno 板载标有"L"的LED灯会点亮一秒钟,再熄灭一秒钟,如此循环。 /* Blink 等待一秒钟,点亮LED,再等待一秒钟,熄灭LED,如此循环 */ //在大多数Arduino控制板上13号引脚都连接了一个标有"L"的LED灯 int led = 13; //给13号引脚连接的设备起一个别名"led" void setup() { pinMode(led, OUTPUT); //将"led"引脚设置为输出状态 } void loop() { digitalWrite(led, HIGH); //引脚输出高电平1,点亮LED delay(1000); //等待1s digitalWrite(led, LOW); //引脚输出低电平0,熄灭LED delay(1000); //等待1s } ===== 内建范例 ===== Arduino IDE内建范例程序,这些简单的程序演示了所有基本的Arduino命令,包括基础、数字输入输出、模拟输入输出、通讯、条件控制、传感器、显示、字符串、USB等。要打开它们,请单击工具栏菜单:File> Examples。[[https://www.arduino.cc/en/Tutorial/BuiltInExamples|这里]]详细解说了这些内建范例。 {{:40.oshw:arduino:built_in_examples.png|}} ===== 硬件开发流程 ===== {{:40.oshw:arduino:1545062221_19.jpg|}} * 硬件连接:通常需要扩展板出场; * 代码实现:编程语言(基于Wiring,类似c和java),编译成二进制文件; * 远程控制界面(如手机端APP通过蓝牙或Wi-fi控制硬件)。 ===== 参考资料 ===== * Arduino UNO入门:https://www.arduino.cc/en/Guide/ArduinoUno * Troubleshooting:https://www.arduino.cc/en/Guide/Troubleshooting