视频介绍Arduino的历史和创始人马西莫·班兹的故事,看过这篇您再学Arduino! 为 初学者 和 创客教师 介绍Arduino的诞生,解析那些阻挡我们入门的专业用语!

前几天有几个朋友让我讲Arduino入门,还不让我出现英文,这篇文字是写给你们的,也是送给所有创客老师和Arduino爱好者的,这篇文字介绍了Arduino的历史,为啥使用AVR单片机、为啥使用C语言、到底啥是Processing、啥事Wiring、啥叫IDE、啥叫编译器、等等,我用一边演示一边解说的方式为各位初学者进行介绍,看了这段视频再去入门Arduino编程应该会更加的轻松。
这甚至不是一篇入门文字,是把初学者从门外领到门口的一篇文字。 

作者已经将全部内容录制成视频,视频中会有对Arduino发展的介绍,同时会为广大初学者介绍那些令人不解的专业词汇比如:BASIC语言、C语言、单片机、Wiring、Processing、IDE、AVR、编译器、GCC等等,作者会以一边演示一边解说的方式为各位初学者介绍,看了这段视频再去入门Arduino编程应该会更加的轻松。

【视频导览】如下↓↓↓:

  • 【00分00秒】视频简介;

  • 【01分00秒】Arduino参考书中遗漏的但是对于初学者很重要的知识点;

  • 【02分38秒】Arduino创始人简介;

  • 【04分55秒】创始人在教学过程中遇到的问题,视频演示Basic编程语言,解释单片机的概念,对比C语言与Basic语言;

  • 【12分28秒】创始人尝试解决遇到的问题,视频演示Processing编程语言;

  • 【17分58秒】创始人找到方向,视频演示Wiring编程环境,编译器的概念;

  • 【23分39秒】介绍AVR单片机,单片机的封装形式;

  • 【24分58秒】解释IDE(集成开发环境)的概念,使用Python演示非集成开发的形式;

  • 【28分19秒】Arduino名字的由来;

  • 【28分52秒】电路板中被保留的错误,演示布线工具,解释电路板中的错误;

  • 【31分32秒】关于开源的问题;

  • 【32分25秒】我们并不需要更多的硬件,我们需要做的是:更好的使用这些硬件;

 【完整视频】如下↓↓↓:

Arduino的历史和创始人马西莫·班兹的故事

应一些朋友的要求,从今天开始聊一聊Arduino编程,之前我在学习群里征求了一些朋友的想法。有些朋友说:需要从头开始讲起,按零基础讲,而且还不能出现难懂英文单词和专业词汇。

接下来我将尽力按照这些朋友的要求制作一次视频,结合我的个人经验为大家介绍Arduino。视频中如果出现了一些英文单词我将进一步为大家解释。

不过这里还是要说一下:电子计算机涉及到方方面面的技术,很少有人能够完全掌握每项技术的细节,所以由于个人水平所限出现错误之处还请各位朋友指正。

在学习Arduino之初,我也翻阅过一些介绍Arduino的书籍,这些书籍有一个共同的特点,大部分书籍都会从Arduino的能力参数讲起,比如:Arduino电路板的种类,它们的运行速度、存储空间以及各种硬件接口等等,往往在书的第一章就会出现很多专业词汇比如:ROM、RAM、UART、AVR等等等,对于一个零基础或者编程小白来说这些单词或专业名词足以将他们挡在Arduino编程的大门之外。此外,书籍中很少涉及到Arduino的起源以及它背后的一些故事,比如,很多书籍中提及了prossing这个编程语言,但是作为读者我们很难从书中感受到prossing到底一个什么样的工具,以及他与今天的Arduino具有怎样的联系,在这段视频中我会使用processing编写两段程序让大家直观感受processing与Arduino的关系。

既然有朋友打算零基础入门Arduino那么我想以上这些问题都需要有人为初学者进一步解答。

关于Arduino的历史当然是需要我们学习的,介绍这段历史时必然要涉及到一些技术词汇和专业用语,考虑到初学者的感受,我将引入一些图片、同时结合软件操作让初学者对这些抽象的词汇不会感觉过于陌生。

那么,谈到Arduino的出现,有个人必须要说一下,照片中的人叫Massimo Banzi(马西莫·班兹),他是Arduino的联合创始人,人送外号:板子大叔。(叫他板子大叔可能有两个原因,1、取名字中Banzi的谐音2、另外说明这个人在设计Arduino的过程中一定尝试了不少电路板,所以叫他板子大叔)。

有人曾经问这位大叔为什么要做一个创客,据这位大叔自己说,是由于他小的时候喜欢拆各种东西,也许是在这种好奇心驱使下才让自己成为了一名创客。板子大叔在大学阶段接触过电子电气相关的专业,但是据他自己所说他当时对于这些枯燥的理论并不感兴趣,因为学习了这些理论内容仍然做不出一件有实用价值的东西。

大叔所说的这种状态实际上与我们现在很多朋友遇到的情况是一样的,不论现在看这段视频的您是学生还是老师,很多人很早就接触了Arduino对计算机编程也很感兴趣,但是要真正想做出一个完整的个人作品来可能仍然会遇到各种障碍。所以说要做一个创客,动手能力肯定是必须的,但是专业的知识也是必不可少的,从板子大叔身上我们也能看到这一点。

回来我们接着说板子大叔,在后来的工作过程中,板子大叔又做过软硬件开发,以及软件构架师,大叔说这些工作都不是他想做的,后来经过一个朋友的介绍,他进了一家学校,这个学校是意大利伊夫雷亚设计学校,这个学校有个学院,叫交互设计学院,学校缺少能够带领学生完成电子设计的老师,那么正是在设计学校的这段时间,这个时间是2000年左右,板子大叔和其他一些小伙伴开始了对Arduino的研究。

在校教学期间一直有一个问题困扰着老师和学生们,当时(大概在2001左右)在开展教学的时候学生们使用了一种基于BASIC编程语言的PIC(Microchip's PIC)单片机(这种方案在意大利非常流行),但是使用这个方案给板子大叔和学生们带来了不少麻烦:

讲到这里我们先暂停一下,因为这里面出现了两个英文和一个专业词汇(Basic、PIC和单片机)。我们先简单介绍一下Basic,提到Basic语言,看视频的有些朋友可能知道这个语言有些人可能还学习过,咱们国家有段时间开展高中信息技术课的时候使用的就是Basic语言,当然现在很多都在用Python语言了,我们简单看下Basic语言的形式。我现在打开一个Basic语言的编程环境(请看视频部分)。

BASIC编程界面

然后我们再说这个PIC它是美国微芯公司设计的一款单片机,这里一不小心又引出了单片机这个词,那么什么是单片机我们在后面视频中在详细介绍,这里我们先把单片机简单的理解为具有数据计算、数据存储功能的控制器,或者说是一个用于控制设备工作的小电脑。PIC是这个系列小电脑的名称,也就是说这个时候板子大叔以及他的学生们正在使用一种Basic语言+PIC单片机的方案进行电子制作。回来我们接着说板子大叔遇到的其他困惑。

1、Basic+PIC方案中所采用的硬件模块价格昂贵,据说是差不多100美元,在经费不是很充足的情况下这是一个高昂的数字;

2、这个方案使用上也有一定的障碍,因为学生所学的编程语言并不是BASIC语言而是C语言(接触出Arduino编程的朋友可能对C语言不会完全陌生,它是这样一种形式,从语法上来说它与Basic的区别还是很大的),就好像说我们花了很大的力气学习了C语言但是到了实践时候我们要换成Basic语言,对于一个编程老手来说这并不什么问题,但是这对于一个编程小白来说是非常混乱的,(实际上我们今天国内的创客教育同样面临这种问题,各种硬件平台、各种编程语言摆在老师们面前,有时候并不是一件好事,最直接的问题就是过多的选择(C、python、javaScrip语言)会让编程初学者的大脑一片混乱,这个时候必须有人出来为大家捋一捋这些技术背后的关系,这也是我拍这段视频的重要原因)。

3、另外basic+pic方案中使用的一些工具只能在windows上运行,但当时大多数学生使用的都是苹果系统,也就是说这个方案并不支持多平台;

总而言之,学生们需要一个又便宜又好用的方案。

面对这些问题板子大叔决定找到一种解决办法。大叔做了很多工作:

1、基于pic芯片实现了一个硬件平台,并在这个平台上做了大量的实验(Arduino的前身);

2、其次使用processing教授学生进行编程;

3、最后打算在单片机上进行尝试运行这些程序;

好,刚刚我们又提到一个新词,processing,它是一套给设计师和艺术家使用的图形开发工具。

为了让大家感受一下这个编程语言给大大家编写运行一段processing程序。(请看视频部分

Processing编程界面

此时距离我们现在看到的Arduino还有一定的距离,但是板子大叔在不断的摸索中已经积累了大量的经验。

就在这个时候一个斯坦福大学的教授给板子大叔推荐了avr单片机,很重要的几点,首先、avr单片机在价格上相对便宜,更加重要的是这款单片机有一个免费且开源的C语言编译器叫AVR-GCC,其次C语言的语法与processing的语法很相似,这样就可以大大减少学生们学习新语言的障碍,这样的一些因素加在一起这就导致了我们现在看到的Arduino采用了avr的单片机。与此同时板子大叔还借鉴wiring开发环境。讲到这里我们又提到了很多新的名词,我们一一进行解释,分别是wiring工具、编译器、avr

我们先来看下wiring这个工具(Wiring is an open-source programmingframework for microcontrollers.)它是一个开源的微处理器编程框架。当然他也支持Arduino,我们使用wiring来为Arduino写一小段程序看一下(请看视频部分)我们发现wiring的界面与我们今天使用Arduino的编程界面是十分相似了。

Wiring编程环境

所以说我们今天使用的Arduino编程工具正是来源于wiring和processing这两个开源工具。甚至Arduino的最初的名字就叫wiring-lite,wiring的简化版。

同时正是由于processing具有广泛的用户,所以Arduino很快就被Processing的社区所接受,这也为它的广泛传播提供了很好的基础。

我们在看编译器这个概念,编译器的作用是将我们人类可以读懂的文本程序转换成计算机可以识别的二进制程序,刚刚我们所说的AVR-GCC就是为arv单片机设计的C语言编译器。

我们再说一下avr单片机,或者说叫他avr小电脑,avr是由美国ATMEL(艾特梅尔公司)设计开发的,我们在Arduino UNO上边看到avr单片机是这个系列中的一种型号是atmega328p,大叔希望人们仅仅使用很便宜的直插芯片,就能制作一些项目,所以我们看到的Arduino UNO的电路板上的主芯片是这样的(左边两个图),而在NANO板上看到的芯片是这样的(右边两个图)。

关于这款单片机的详细信息我们放在后续视频中,我们把话题重新回到Arduino上

我们今天所看到的Arduino编程工具(IDE)编程界面并不是一下被发明出来的,是借鉴了wiring和processing这两个开源工具,才有的今天这个模样,所以说开源对于板子大叔以及Arduino的影响非常大,后面我们还会再次提到开源的话题。再具体说一下什么叫IDE,翻译过来叫集成开发环境,给大家举例说明。

Python演示非集成开发环境

我们再看下Arduino这个名字的由来,因为Arduino是1000多年前意大利的第一个国王的名字,当时板子大叔他们也是很随意的使用了这个名字,我想是具有新的开始的含义在里面。只是一个偶然的想法,并没有太多的含义在里面,从此Arduino这个名字就被保留了下来。

Arduino电路板中还有一处错误,大家看Arduino这排插针,之间的间距是一个很奇怪的数字,当初我也不知道设计者为什么要这么设计,其他管脚之间的间距是标准的2.54mm,而这两个管脚之间的距离小于2.54mm,其实这个是当时调整电路板布局时板子大叔的一个失误造成的,但是由于板子已经安排生产出来了同时很多的使用者已经基于这个板子在制作自己的扩展板和项目,所以说作者就没有修正这个错误,但是这个错误并不是完全没有意义,正是由于这个错误的引入让电路板具有了防反差功能,也就是那些可以正常插接在Arduino上的扩展板,如果反过来插是不行的,这个错误正好起到了一个放反插的功能。

我们再看下,开源问题,前面我们提过,Arduino很大程度上受到软件开源的影响,而且板子大叔也是一位软件开源运动的拥护者,所以在开发Arduino的早期大叔就决定将Arduino的所有设计资料开源,所以我们在Arduino的官网上很容易可以获取到Arduino的硬件设计文件,原理图和PCB图纸,我们也可以自己修改这些设计文件然后制作自己的电路板,唯一需要注意的是我们所设计的电路板是不能使用Arduino这个名字的,因为这个名字已经被注册了。

关于未来我只想借用板子的大叔的一句话,这句话非常值得我们思考:

The world doesn’t need a lot morehardware. It needs better ways to use the hardware you have.

这句话的意思是,我们并不需要更多的硬件,我们需要做的是:更好的使用这些硬件。

几乎每天都会有一些初学者,和创客老师,让我给他们推荐编程方案,我会毫不犹豫的给这些人尤其是创客老师推荐使用Arduino,不光这个平台非常优秀,更重要的是,过多的选择会造成初学者花费大量时间进行选择而不是深入的制作作品。

今天和大家一起梳理了Arduino诞生过程,接下来我们的任务一步一步去学习这个平台,并且使用这个平台做出更加出色的个人作品,也欢迎各位老师和同学和我一起学习Arduino编程,让我们在学习Arduino的道路上一起成长。

我们并不需要更多的硬件,我们需要做的是:更好的使用这些硬件

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Arduino是一种开源电子开发平台,包括硬件和软件。它基于易于使用的硬件和软件接口,使得电子原型设计和创意项目变得更加简单。Arduino的设计初衷是为艺术家、设计师、爱好者和创客提供一个灵活、易于使用的平台,用于构建各种交互式项目和装置。 Arduino的硬件包括一个微控制器板(通常是基于ATmega系列芯片)、数字和模拟输入/输出引脚、电源接口和一组扩展连接器。Arduino的软件开发环境(IDE)提供了一个编写、上传和调试代码的平台,使用简单的C/C++语言编写程序。 Arduino具有以下功能和特点: 1. 简单易用:Arduino的设计理念是让电子原型设计变得简单易用,即使对于初学者也能轻松上手。它提供了简洁的编程语法和丰富的库函数,使得编写代码变得容易。 2. 开放源代码:Arduino的硬件设计文件和软件开发环境都是开放源代码的,任何人都可以查看、修改和共享。这促进了开发者之间的合作和分享,加速了项目的开发和创新。 3. 多功能:Arduino可以与各种传感器、执行器和其他外围设备进行连接,如温度传感器、光线传感器、电机、舵机等。这使得它在各种应用领域中都有广泛的应用。 4. 低成本:Arduino的硬件成本相对较低,价格适中,对于学生和爱好者来说是一个经济实惠的选择。 Arduino的应用领域非常广泛,包括但不限于以下几个方面: 1. 电子艺术:艺术家可以利用Arduino创建交互式装置、艺术品和装置艺术作品,实现声音、光线、运动等效果。 2. 自动化控制:Arduino可以用于构建自动化控制系统,如温度控制、灯光控制、智能家居等。 3. 机器人:Arduino可用于构建各种类型的机器人,包括无人机、小型车辆和机械臂等。 4. 教育:Arduino作为一种教育工具,广泛用于教学和培训领域,帮助学生理解基本的电子原理和编程概念。 5. 物联网(IoT):Arduino可以与互联网连接,并与其他设备进行通信,从而实现物联网应用,如传感器网络和远程监控。 以下是一些基本的Arduino项目和创意示例: 1. LED闪烁:通过控制Arduino上的LED灯,使其以不同的模式和频率闪烁。 2. 温度监测器:使用温度传感器读取环境温度,并将其显示在LCD屏幕上。 3. 音乐播放器:利用Arduino控制蜂鸣器或扬声器,播放简单的音乐或声音效果。 4. 智能小车:构建一个可以通过遥控器或预设路径移动的小型车辆。 5. 智能家居系统:使用Arduino控制灯光、窗帘、温度调节器等家居设备,实现智能化控制。 6. 植物监测器:通过土壤湿度传感器和光线传感器监测植物的生长环境,提供相应的光照和浇水。 这些项目只是Arduino的一小部分应用示例。由于Arduino的灵活性和可扩展性,开发者可以根据自己的需求和创意设计出更多有趣和创新的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值