本期作者:石头人
在上节课中,我们通过电流和水流的类比,简要分析了电路是如何进行工作的,了解了电路中电流、电压、电阻的性质和关系,并介绍了一款适合创客使用的电路模拟软件Tinkercad。
电路知识对于构建系统的重要性不言而喻,也是从“菜鸟”迈向“专家”的必由之路,但想要系统的学习电路知识远不是读一两篇文章就能做到的,也不是本系列文章的出发点。来一次说走就走的创客之旅,寻找和发现自己的兴趣所在才是此行的目的,Let‘s Go!
简单的说,控制器就是用来控制电路中其他器件的器件,其在电路中的作用就像人的大脑一样,扮演着指挥官的角色。例如,在打蚊子的过程中,虽然用眼睛跟踪目标,用手来操控蝇拍,但视觉、听觉信息的汇总,位置信息的处理分析,控制肌肉运动等却都离不开我们的大脑。相应的,如果电路中控制器失灵了,那整个系统也就无法正常运转了。
是否使用控制器往往视问题的复杂程度而定,点亮一个灯泡并不一定需要控制器,但如果你想上演一场灯光秀,需要按照环境的变化和图案规则来控制成百上千个灯泡的亮灭,那选用控制器恐怕就必不可少了。
要说明的是,在学习的过程中我们常会遇到诸如控制器、开发板、单片机、嵌入式、PLC、主控板等名词,它们是什么意思?又有什么区别和联系呢?额,对于我们初学者来说,大多数时候就当成是一个意思就行了。很多名词的产生是因为定义问题的角度不同,或者是由于技术的发展历史所造成的,在使用的过程中,还是要根据实际需求,具体问题具体分析才行。
那应该如何选择一款合适的控制器呢?一些比较通俗的参考指标包括:性能、扩展性、稳定性、价格、体积、功耗等等,而对于我们新手来说,简单易用当然是重中之重。
在创客领域中,目前使用最为广泛的控制器包括:micro:bit、Arduino、树莓派等开源硬件,以及它们的衍生品。这里做一个简单的对比分析,下图中的控制器从上到下分别为:micro:bit,Arduino UNO R3,Raspberry Pi 4B,注意由于Arduino和树莓派两个品牌中包含了多款型号,所以在比较中采用的是比较常用的型号,难免以偏概全,还请谨慎参考。
评价指标 | micro:bit | Arduino | Raspberry |
---|---|---|---|
入门(容易的评分高) | ⭐⭐⭐ | ⭐⭐ | ⭐ |
实用性(性能和扩展性) | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
价格(低的评分高) | ⭐⭐ | ⭐⭐⭐ | ⭐ |
社区(资料丰富程度) | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
从上面的对比我们看到,micro:bit、Arduino、树莓派三者的定位不同。综合来讲,micro:bit更适合于零基础入门学习;Arduino比较均衡,在创客项目中应用最为广泛;树莓派的性能更强,可以完成像图像识别这样比较复杂的运算工作。
在本系列文章中将主要介绍Arduino平台的使用,而当我们掌握了一种控制器的用法,融会贯通,再去学习其它的也就不在话下了。
Arduino 是一款便捷灵活、方便上手的开源电子原型平台,其生态包含硬件(各种型号的Arduino板)、软件(Arduino IDE)以及活跃的开源社区。
Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。
Arduino硬件平台中包括数十种不同型号的开发板、电子模块、扩展版,其中以Arduino UNO R3最为常见,也是入门首选。具体对比分析请参考:Arduino各开发板的比较。
Arduino的软件开发环境主要有两类:
一、Arduino IDE,可以在Windows、Mac OS、Linux三大主流操作系统上运行,其所使用的Arduino语言基于wiring语言开发,是对 avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。如下图所示,代码功能是控制Arduino的板载LED灯闪烁。
二、图形化开发环境,如ArduBlock,以及基于Scratch的KittenBlock、Mind+等。采用积木搭建的方式编程,提高了编程的直观性和交互性,即使没有编程经验的人,特别是程序入门的小朋友也可以尝试给Arduino控制器编写程序。实际应用中,采用图形化编程还是有一定局限性的,所以在熟悉了基本操作之后,还是希望各位同学尝试使用代码的方式进行编程。
Arduino是起步比较早的开源硬件项目,目前已经得到广泛的认可和大范围的应用,Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的。在Creative Commons(CC)许可下,任何人都被允许生产和销售Arduino开发板的复制品,而不需要向Arduino官方支付版税,甚至不用取得Arduino官方的许可,只需要说明Arduino团队的贡献以及保留Arduino这个名字。开源不但可以使用户更好地理解Arduino的电路原理,更可以根据自己的需要进行修改,比如由于空间的限制,需要设计异形的电路板,或是将自己的扩展电路与主控制电路设计到一起等,从而进一步推动了Arduino项目的发展。
我们常见的Arduino板有两种,一种是Arduino官方出品的官方板,另一种则是其它厂商使用Arduino设计所制作和销售的兼容板。需要注意的是,无论是官方板还是兼容板都是合法的产品,所以不存在所谓的“山寨板”这一概念。
如果是第一次使用Arduino硬件应该怎么做呢?这里总结了主要步骤,具体操作可以参考:Arduino教程01 -- 驱动安装及下载Blink程序。如果安装使用的过程中遇到问题,最直接的方法就是将错误情况拿到百度搜一下,当然也可以问问其他同学,或者留言发给我哦。
初次使用Arduino的步骤:
在初次使用完成编程环境的搭建之后,再进行开发就不需要用到前两个步骤了。
如果手头暂时没有Arduino硬件,该如何开始学习呢?这就要用到我们之前说过的Tinkercad来进行模拟搭建了,当我们登录完成后,选择“Circuits”模块,点击“创建新电路”按钮。
下图中,左侧的空白区域是用来搭建模拟电路的工作区,右侧的列表则是可以选用的电路组件。我们在列表中找到Arduino UNO R3,LED和电阻器,拖拽到工作区。在引脚上点击鼠标左键进行连线,按照下图的方式连接这三个组件,注意LED弯曲的引脚为正极,通过电阻连接到Arduino的13号引脚,LED直的引脚为负极,连接到Arduino的GND引脚上。在组件上单击鼠标右键,就可以更改组件的属性,试试看吧!
在完成了电路的搭建之后,我们单击“代码”按钮,这里可以使用图形化或者文本的方式对Arduino控制器进行编程,使用你喜欢的方式编写如下程序。程序中将LED正极所接引脚设置为高,可以点亮LED灯,设置为低则熄灭LED灯,所以这个程序的执行效果是让LED灯闪烁,亮灭间隔为1秒钟。
接下来大家可以点击“开始模拟”按钮,看看效果究竟如何。其中所涉及的具体原理,我们会在之后的课程中逐步为大家介绍。
请大家使用Tinkercad模拟所述情况,结合上节课所学的电路基础知识,回答以下问题:
练习中的题目都有一定难度的,如果做不出来,建议你上网搜索提问,毕竟活跃的社区和丰富的资料才是Arduino最宝贵的财富!