数字制造讲义02-Arduino入门
在这个学期,我们会学习数字制造中主要的环节和技术,包括 Build 和 Code 两部分。
image上半学期我们主要学习 Code 部分,它赋予物品「灵魂」,让一件物品能完成我们期望的功能和互动。
怎样让物品拥有一定的「智力」呢?
给它加上芯片嘛。
可是芯片、电路、元件、硬件啊,都涉及到很专业的知识,对一般人来说门槛太高了。所以今天我们来介绍通往硬件世界的捷径——Arduino。
<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=m0823vlpahu" allowFullScreen="true"></iframe>
Arduino 的初衷,是为了让没有电子相关专业背景的人,能够在很短的时间内上手。这个小小的板子,撬开了很多人的想象力,让动手做东西的门槛降低,让无数好玩的想法得以试验和实现。
为什么要用 Arduino?
它可以帮助我们用很小的成本,快速地搭建智能物件的原型。也就是
Prototype & Digitize for the Real World
很多时候,我们有一个想法,比如:有一个自动给花浇水的装置。「自动」意味着我们会设定一些规则,在某些条件下自动触发浇花这个动作。要实现自动,就会需要一个类似电脑一样的带有一定「理解能力」的执行者。如果每一个想法,都需要一台电脑来实现,那我们早就破产了。
这时候只需要一个电脑的极度简化版本——我们一般叫做单片机(Microcontrollers)。它是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上,构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
单片机的大小确实可以只有薄薄的一片,方便我们放置到各种各样的物体内部,赋予它计算的能力。
Arduino 就是一种单片机。
image类似的工具还有树莓派(不算单片机了,是基于 Linux 的低配电脑)等等,它比 Arduino 要强大,因为芯片不止 8 位,可以运行操作系统。
image模拟信号和数字信号
当我们想要对实体环境施加影响,经常需要将模拟信号转化为数字信号——因为我们能操纵数字信号(编程就是一种强大的操纵),但是不能任意改变模拟信号。
那么什么是模拟信号和数字信号呢?
简单来说,模拟信号在时间上和取值上都是连续不间断的(可无限微分)。自然界常见的信号都是模拟信号,比如温度、声音等等。而数字信号在时间上和取值上,不完全连续,存在很多「档位」,档位越多,意味着信号的分辨率越高。
更详细的讲解,我们可以看看下面这个视频:
<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=z06602duiv9" allowFullScreen="true"></iframe>
什么是模拟信号?数字信号?区别是什么?它们又是如何完成转换的?
Arduino 的主要作用之一,就是帮助我们实现模数转换,完成对物理世界数据的采集,以及处理信号后反馈到物理世界中。
Arduino 开发板
Arduino 有许多不同型号、功能各异的开发板。
image其中一些体积更小,或是芯片的能力更强,又或者搭载了 wifi 或蓝牙模块。这样我们可以根据自己项目的需要,使用不同的板子。每一块板子的具体信息,可以在官网上查看。
Arduino 的开发板,本质上都是单片机应用开发板,使用的芯片大都是 AVR 芯片。开发板封装和简化了最常用的软硬件模块。硬件主要是提供基本的芯片、数字信号端口、模拟信号端口、电源和其他一些接口。软件主要提供了简单的函数和应用库,不用直接去操作寄存器,使得没有太多单片机基础的人也可以使用。
image用 Arduino 搭建简易电路
电路是什么玩意儿?
作为一种路,它其实跟公路、地铁线路有点类似,只不过它运送的不是车辆和人,而是电荷。人和车会选择最短路径或者换乘最少的路线,电荷也会沿着阻碍最小的路径移动。
在最简单的电路中,有三个必不可少的部分:电源、中间环节、负载。
负载是指将电能转化为其他形式能量的部分,例如灯泡、电机等。电路的使命,是为了让负载能够正常工作。
image(雾)
下面就是一个最简单的电路,电流从电源正极流经 LED,返回到电源负极。
image上图右侧是一块面包板,它的作用是提供电路连接,帮助我们快速搭建电路。
在面包板中,Terminal Strips 都是连通的,而两侧的 Power Rails 也是连通的。
image关于电路板的使用,可以看看这个讲解得很仔细的视频:https://www.youtube.com/watch?v=6WReFkfrUIk (备好梯子)
Arduino 提供了电源和接地的端口,这样我们可以快速连成一个完整的电路:
imageArduino 编程环境
Arduino 开发板是硬件部分。接下来我们了解软件部分。从 Arduino 官网下载 Arduino 软件并安装,打开后就看到 Arduino 的编程环境。
现在不但可以在软件中编程,还可以访问在线编程工具:https://create.arduino.cc/
具体的界面功能就不详细介绍了。
同学们最开始上传程序到板子时容易遇到一个错误,大都是因为没有选择传输端口导致的。需要注意在 Tools
菜单中选择对应的端口再上传。如果使用 USB 连接板子和电脑,就选择包含 USB
的端口。
下节课我们介绍一些电路基本知识。C U