电子创客讲义02——控制器入门

本期作者:石头人

电子创客讲义01——电路基础

开始

在上节课中,我们通过电流和水流的类比,简要分析了电路是如何进行工作的,了解了电路中电流、电压、电阻的性质和关系,并介绍了一款适合创客使用的电路模拟软件Tinkercad

电路知识对于构建系统的重要性不言而喻,也是从“菜鸟”迈向“专家”的必由之路,但想要系统的学习电路知识远不是读一两篇文章就能做到的,也不是本系列文章的出发点。来一次说走就走的创客之旅,寻找和发现自己的兴趣所在才是此行的目的,Let‘s Go!

img

什么是控制器?

简单的说,控制器就是用来控制电路中其他器件的器件,其在电路中的作用就像人的大脑一样,扮演着指挥官的角色。例如,在打蚊子的过程中,虽然用眼睛跟踪目标,用手来操控蝇拍,但视觉、听觉信息的汇总,位置信息的处理分析,控制肌肉运动等却都离不开我们的大脑。相应的,如果电路中控制器失灵了,那整个系统也就无法正常运转了。

img

是否使用控制器往往视问题的复杂程度而定,点亮一个灯泡并不一定需要控制器,但如果你想上演一场灯光秀,需要按照环境的变化和图案规则来控制成百上千个灯泡的亮灭,那选用控制器恐怕就必不可少了。

img

要说明的是,在学习的过程中我们常会遇到诸如控制器、开发板、单片机、嵌入式、PLC、主控板等名词,它们是什么意思?又有什么区别和联系呢?额,对于我们初学者来说,大多数时候就当成是一个意思就行了。很多名词的产生是因为定义问题的角度不同,或者是由于技术的发展历史所造成的,在使用的过程中,还是要根据实际需求,具体问题具体分析才行。

如何选择控制器?

那应该如何选择一款合适的控制器呢?一些比较通俗的参考指标包括:性能、扩展性、稳定性、价格、体积、功耗等等,而对于我们新手来说,简单易用当然是重中之重。

在创客领域中,目前使用最为广泛的控制器包括:micro:bit、Arduino、树莓派等开源硬件,以及它们的衍生品。这里做一个简单的对比分析,下图中的控制器从上到下分别为:micro:bit,Arduino UNO R3,Raspberry Pi 4B,注意由于Arduino和树莓派两个品牌中包含了多款型号,所以在比较中采用的是比较常用的型号,难免以偏概全,还请谨慎参考。

img

img

img

评价指标micro:bitArduinoRaspberry
入门(容易的评分高)⭐⭐⭐⭐⭐
实用性(性能和扩展性)⭐⭐⭐⭐⭐⭐⭐⭐
价格(低的评分高)⭐⭐⭐⭐⭐
社区(资料丰富程度)⭐⭐⭐⭐⭐⭐⭐⭐

从上面的对比我们看到,micro:bit、Arduino、树莓派三者的定位不同。综合来讲,micro:bit更适合于零基础入门学习;Arduino比较均衡,在创客项目中应用最为广泛;树莓派的性能更强,可以完成像图像识别这样比较复杂的运算工作。

在本系列文章中将主要介绍Arduino平台的使用,而当我们掌握了一种控制器的用法,融会贯通,再去学习其它的也就不在话下了。

Arduino简介

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

Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。

硬件开发板

Arduino硬件平台中包括数十种不同型号的开发板、电子模块、扩展版,其中以Arduino UNO R3最为常见,也是入门首选。具体对比分析请参考:Arduino各开发板的比较

img

软件开发环境

Arduino的软件开发环境主要有两类:

一、Arduino IDE,可以在Windows、Mac OS、Linux三大主流操作系统上运行,其所使用的Arduino语言基于wiring语言开发,是对 avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。如下图所示,代码功能是控制Arduino的板载LED灯闪烁。

image-20200112220926912

二、图形化开发环境,如ArduBlock,以及基于Scratch的KittenBlock、Mind+等。采用积木搭建的方式编程,提高了编程的直观性和交互性,即使没有编程经验的人,特别是程序入门的小朋友也可以尝试给Arduino控制器编写程序。实际应用中,采用图形化编程还是有一定局限性的,所以在熟悉了基本操作之后,还是希望各位同学尝试使用代码的方式进行编程。

开源理念

Arduino是起步比较早的开源硬件项目,目前已经得到广泛的认可和大范围的应用,Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的。在Creative Commons(CC)许可下,任何人都被允许生产和销售Arduino开发板的复制品,而不需要向Arduino官方支付版税,甚至不用取得Arduino官方的许可,只需要说明Arduino团队的贡献以及保留Arduino这个名字。开源不但可以使用户更好地理解Arduino的电路原理,更可以根据自己的需要进行修改,比如由于空间的限制,需要设计异形的电路板,或是将自己的扩展电路与主控制电路设计到一起等,从而进一步推动了Arduino项目的发展。

我们常见的Arduino板有两种,一种是Arduino官方出品的官方板,另一种则是其它厂商使用Arduino设计所制作和销售的兼容板。需要注意的是,无论是官方板还是兼容板都是合法的产品,所以不存在所谓的“山寨板”这一概念。

使用Arduino

初次使用Arduino硬件

如果是第一次使用Arduino硬件应该怎么做呢?这里总结了主要步骤,具体操作可以参考:Arduino教程01 -- 驱动安装及下载Blink程序。如果安装使用的过程中遇到问题,最直接的方法就是将错误情况拿到百度搜一下,当然也可以问问其他同学,或者留言发给我哦。

初次使用Arduino的步骤:

  1. 下载安装Arduino IDE(下载地址),或使用其他的开发环境。
  2. 将Arduino板连接到电脑的USB接口上,根据提示安装驱动程序。
  3. 在Arduino IDE中选择正确的Arduino开发板型号和串口号(每次连接硬件,串口号都可能发生变化)。
  4. 编写代码(在初次使用时,建议打开示例中的Blink程序),编译程序,下载到Arduino板。
  5. 下载成功后,在Arduino开发板就能看到相应的现象。

在初次使用完成编程环境的搭建之后,再进行开发就不需要用到前两个步骤了。

使用Tinkercad模拟Arduino

如果手头暂时没有Arduino硬件,该如何开始学习呢?这就要用到我们之前说过的Tinkercad来进行模拟搭建了,当我们登录完成后,选择“Circuits”模块,点击“创建新电路”按钮。

image-20200113111717166

下图中,左侧的空白区域是用来搭建模拟电路的工作区,右侧的列表则是可以选用的电路组件。我们在列表中找到Arduino UNO R3,LED和电阻器,拖拽到工作区。在引脚上点击鼠标左键进行连线,按照下图的方式连接这三个组件,注意LED弯曲的引脚为正极,通过电阻连接到Arduino的13号引脚,LED直的引脚为负极,连接到Arduino的GND引脚上。在组件上单击鼠标右键,就可以更改组件的属性,试试看吧!

Blink1

在完成了电路的搭建之后,我们单击“代码”按钮,这里可以使用图形化或者文本的方式对Arduino控制器进行编程,使用你喜欢的方式编写如下程序。程序中将LED正极所接引脚设置为高,可以点亮LED灯,设置为低则熄灭LED灯,所以这个程序的执行效果是让LED灯闪烁,亮灭间隔为1秒钟。

Blink2

接下来大家可以点击“开始模拟”按钮,看看效果究竟如何。其中所涉及的具体原理,我们会在之后的课程中逐步为大家介绍。

练习

请大家使用Tinkercad模拟所述情况,结合上节课所学的电路基础知识,回答以下问题:

  1. 在搭建电路时,我们在LED正极上接了一个电阻,如果不接会怎么样?如果接应该选择多大的阻值?
  2. 为什么要将LED连接到Arduino的13号引脚和GND引脚,连其它的引脚行不行,为什么?
  3. 尝试使用这节课学到的知识,设计制作交通信号灯。

练习中的题目都有一定难度的,如果做不出来,建议你上网搜索提问,毕竟活跃的社区和丰富的资料才是Arduino最宝贵的财富!

参考文献

  1. 掌控板,树莓派,arduino, microbit这几款开源硬件各有什么优缺点,推荐购买哪个?
  2. 数字制造讲义02-Arduino入门
  3. Arduino各开发板的比较
  4. 太极创客——Arduino选购建议
  5. Arduino教程01 -- 驱动安装及下载Blink程序