开源硬件之 Arduino:简介与开发入门

关键词:开源硬件;Arduino;点亮LED

一、Arduino 简介

Arduino UNO

Arduino 是一款简单易用、便于上手的开源电子原型平台,包含硬件部分(各种符合 Arduino 规范的开发板)和软件部分(Arduino IDE和相关的开发包)。
硬件部分(或称开发板)由微控制器(MCU)、闪存(Flash)以及一组通用输入/输出接口(GPIO)等构成,你可以将它理解为是一块微型电脑主板。
软件部分则主要由PC端的 Arduino IDE 以及相关的板级支持包(BSP)和丰富的第三方函数库组成。使用者可以借由 Arduino IDE 轻松地下载你所持有的开发板相关的BSP和需要的函数库,用于编写你的程序。
Arduino 是一个开源平台,至今已经有了多种型号及众多衍生控制器,包括 Arduino Uno、Arduino Nano、ArduinoYún 等等。另外,Arduino IDE 如今也不仅仅支持 Arduino 系列开发板,还以引入BSP的方式增加了对 Intel Galileo、NodeMCU 等流行开发板的支持。

  • 实验室(C102)主要提供 Arduino Uno 及 NodeMCU 两款实验平台

二、配置开发环境

1. 通过下载安装包安装Arduino IDE

登陆 Arduino 官方网站软件下载页 https://www.arduino.cc/en/Main/Software?setlang=cn

下载Arduino软件

如果你的系统是 win7/8/10,推荐在浏览器内点击并下载“Windows免安装ZIP包”,下载到你所指定的任意文件目录后解压

解压安装包
打开Arduino IDE

然后进入解压后的文件夹,点击“arduino.exe”,正常运行出现如图所示的程序窗口则环境安装成功

2. 通过Microsoft Store安装Arduino IDE

如果你的系统是 win10,也可以通过 Microsoft Store (在开始菜单中可以找到)安装 Arduino IDE,进入 Microsoft Store 后,在搜索栏搜索“Arduino”,如下

应用商店搜索Arduino

点选“Arduino IDE”,跳转到如下页面,点击“安装”即可,随后 Arduino IDE 的图表会出现在你的开始菜单当中

安装Arduino IDE

3. 其他平台

如果你使用 Linux 或 Mac OS X 等系统,请参考 Arduino 官网的安装示例配置你的环境

三、实现你的第一个应用

学习一门编程语言是从打印出第一行“hello world”开始,而学习嵌入式则是从点亮第一个 led 开始的,下面就以一个控制 led 的例子来让大家了解一个 Arduino 项目是如何工作的。

实验器材:Arduino UNO 开发板×1、USB转接线(Micro USB Type-B)×1、面包板×1、LED二极管×1、220Ω电阻×1、杜邦线×2
实验环境:Arduino IDE 1.8.4

实验器材图示
  • 杜邦线:用于无焊接电路实验,代替导线的作用;
  • 面包板:用于无焊接实验的电路串并联接线,板上每一排5个插口(abcde)间相互导通,排与排之间相互独立;
  • 色环电阻:可以根据色环读取阻值;
  • led二极管:两个不同长度的引脚,较短的引脚接地。

1. 硬件接线

按照如图所示的方式连线:

硬件接线图示

1)USB转接线一段连PC机的USB口,一端连到Arduino UNO的转接口上,用于从PC机上下载代码到开发板及供电;

2)两条杜邦线分别一端接开发板的数字输入/输出5号(会在之后的代码中定义数字“5”)和接地两个接口,另一端接入面包板不同的两排(在本图中,若按照面包板上“字母/数字”的方式定位,绿色接入a10,红色接入a20,实际操作时可以接入任意独立的两排,不影响实验现象);

3)将二极管的长引脚插入面包板上红色杜邦线插入的排,短引脚插入相邻的排,然后将220Ω电阻的一端接短引脚,另一端接绿线(即接地),完成连线。

2. 编写代码

1)新建项目

初次打开 Arduino IDE 会有一个默认的新建项目,你也可以依次点击工具栏中“文件→新建”或使用 Ctrl+N 快捷键来创建一个新的项目,项目的命名和保存与大多数 IDE 和编辑器相同,这里就不做过多介绍。

新建项目

2)代码结构

Arduino IDE 项目使用简化版的 C/C++ 语言编写代码,只要你有一点点 C 语言学习的基础就很容易入门,新建项目默认有两个函数体 void setup()void loop(),这两个函数体是一个 Arduino 项目所必须的。

同 C/C++ 代码一样,在代码的头部定义函数库的引用及全局变量等;
void setup() 是设备上电,即初始化会调用的函数,只执行一次,函数体内部一般包含引脚的定义信息;

void loop() 相当于 C语言中的主函数,函数体内部的代码会在设备供电期间循环执行,你希望 Arduino 能完成的主要工作都写在这个函数体当中;

  • 除上述两个必要函数外,你也可以定义其他函数再在 void loop() 中调用,或将函数写在外部的 .cpp 文件中,再以像 C/C++ 项目的方式来调用

3)编写代码

例程代码
int ledPin = 5;

void setup() {
    pinMode(ledPin, OUTPUT);
}

void loop() {
    digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000);
}

本例代码如上图,除去注释,控制一个灯的代码仅有短短数行

3. 上传程序到开发板

编写好代码后,就要把代码通过数据线上传到开发板了,首先要确保编译条件匹配你的开发板并保持端口畅通,点击菜单栏“工具”,确保你的开发板选择为“Arduino/Genuino Uno”

选择开发板

端口号则因不同PC分配的端口号不同而有差异,笔者电脑上为“COM9”,这个信息可以在 windows 设备管理器中查看(可以通过 windows开始菜单 搜索“设备管理器”,或在控制面板中打开)。

设备管理器
查看端口

保证上述两个条件无误后,可以先点击菜单栏下 圆形√按钮 进行预编译/验证,如有问题,下方的信息栏会报错。

然后你可以直接点击菜单栏下的 圆形→按钮 或者点击 “项目→上传”或使用快捷键 Ctrl+U 进行上传,等待片刻,IDE 会提示“上传成功”,然后就能观察到你刚刚连接的 led灯不断闪烁的实验现象。

  • 上传前会重新编译,如果有问题也会报错,错误信息输出在下方的信息栏中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容