Arduino课程设计
文献综述
前言
Arduino是目前较为流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。
一、Arduino的起源
Arduino是2005年1月由米兰交互设计学院的两位教师David Cuartielles和Massimo Banzi联合创建的。Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。
二、Arduino简介
Arduino是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。该平台由两部分组成:硬件(包括微处理器、电路板等)和软件(编程接口和语言)。平台的两部分都是开源的,如果需要,可以下载Arduino的图表、购买需要的所有独立部件、切割电路板并制作一个电路板。Arduino具有类似java、C语言的开发环境。可以快速使用Arduino语言与Flash或Processing等软件完成互动作品。Arduino能够使用开发完成的电子元件,如Switch、Sensors或其它控制器、LED、步进电机或其它输入/输出装置,同时,Arduino也可以成为独立与软件沟通的平台,如flash、Processing、Max/MSP或其它互动软件。
图1 Arduino管脚说明
1. Digital I/O数字式输入/输出端共1~13。(13个数字输入输出口DIO,其中6个PWM输出,可做模拟输出口使用AO
2. Analog I/O模拟式输入/输出端共0~5。(5个模拟输入口AI) 3. 支持USB接头传输数据及供电(不需额外电源)。 4. 支持ICSP在线刻录功能。支援TX/RX端子。 5. 支持外部ADC电压基准AREF端子输入。
6. 支持6组PWM端子(Pin11,Pin10,Pin9,Pin6,Pin5,Pin3)。 7. 输入电压:USB接口供电,无须外部供电。5V~12V DC 8. 输出电压:5V DC输出。
9. 采用Atmega168-20PI/PU,最新的Arduino 2009支持Atmega328-20PI/PU。 10. Arduino大小尺寸:宽70mmX高54mm。
三、Arduino的功能
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,收录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。 Arduino也可以独立运行,并与软件进行交互,例如: Macromedia Flash, Processing, Max/MSP, Pure Data, VVVV或其他互动软件。 Arduino的IDE界面基于开放源代码,可以免费下载使用,开发出更多令人惊艳的互动作品。
四、Arduino的特色
1、基于知识共享开放原始码的电路图设计和知识共享开放原始码的程式开发环境。开放源代码的电路图设计,程序开发接口免费下载,也可依个人需求自己修改。你可以自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载。硬件参考设计 (CAD 文件)也是遵循availableopen-source协议,你可以非常自由地 根据你自己的要求去修改他们。
2、使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。 3、Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。有了bootloader之后,可以通过串口或者USB to Rs232线更新固件。
4、可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;
5、可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达等)。
6、支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。 7、应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。
五、Arduino的开发的优势
1、跨平台。Arduino IDE可以在Windows、Macintosh OSX、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。 2、简单清晰的开发。Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。
3、开放性。Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。
4、社区与第三方支持。Arduino有着众多的开发者和用户,你可以找到他们提供的众多开源的示例代码、硬件设计。例如,可以在Github.com、Arduino.cc、Openjumper.com等网站找到Arduino第三方硬件、外设、类库等支持,更快更简单的扩展你的Arduino项目。 5、硬件开发的趋势。Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
六、Arduino的发展现状
Arduino自2005年出现以来就受到了国外开发者的广泛关注,因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。
由于其开源特性,开发者可以在Arduino社区下载和发布自己的设计成果,一方面有利于开发者自己的项目的开发,另一方面也为他人提供了大量的参考资料。由于受到众多开发者的支持,Arduino在短短的几年内发展十分迅速,现在除了Arduino的爱好者,很多厂商也加入到了Arduino的开发当中,给Arduino的发展带来了十分丰富的资源,也诞生了很多使用Arduino开发的产品。特别是在物联网领域,很多厂商基于Arduino开发出了很多智能家居产品。由于物联网行业还未形成统一的国际标准,很多公司都希望形成各自封闭的生态系统,以形成自己的标准,这就导致不同公司生产的产品相互之间并不兼容。这就意味着消费者如果想要实现家中所有的电子设备的互联,就要购买同一家公司生产产品,但是这并不符合物联网对开放性的需求。但是arduino 兼容和扩展性正好克服这一问题。由于arduino是开放的,而且使用的芯片价格十分低廉,大大降低了产品生产的成本,吸引了大量厂商的加入,系统之间的兼容性问题可以很好地解决,同时也为一些资本并不雄厚的小企业提供了与传统企业竞争的机会。由于Arduino的种种优势,目前,Arduino已经在物联网领域的形成了一股重要的力量。
Arduino在国外的流行也引起了国内开发者的关注,目前国内也有一些厂商在使用Arduino开发自己的产品,Arduino的硬件产品在国内也有一些销售商在淘宝网等电子商务平台上销售。尽管Arduino在国内发展迅速,但Arduino目前在国内的发展水平与国外还存在很大的差距。但Arduino传入国内对国内的影响无疑是巨大的。举个例子,当初国内制造手机的企业只有一两家而已,而当手机板开源后,除了传统的手机厂商,刚刚成立的一些没有技术积累的小企业也能在开源平台上迅速开发出自己廉价的手机产品与传统厂商进行竞争,一时间山寨手机铺天盖地,手机行业的竞争压力非常大,迅速拉低了国内手机的价格。目前,开源的arduino在国内的发展也有着这样的一股趋势。而arduino开源又不同的是,它是一个原始板,半成品,到成品还有一个阶段,不是任何人都能模仿的。冲击最大的是那些原本的制造小家电的企业,原来它们是有一些技术优势的,但是arduino一来,新加入企业即使没有多少年的经验也能开发出像样的东西,对传统的企业是比较不利的。当然长久来说,对小企业的优势是巨大的。但是因为是开源,硬件的成本会更低,技术壁垒会更低,成功的关键是两个因素: 1 是从硬件产品本身跳出来,加强服务端,web端的优势; 2 产品的开发速度是最关键的,当你没有core assets,速度就是成功的关键。这就推动了国内企业从产品到服务的加速转型,加强了国内企业在国际市场中的适应能力和竞争能力,同时可以为消费者带来更加低价的产品和更加优质的服务。
七、总结
由于Arduino具有开放性、开源性、低成本、拓展性强等众多优点,已经收到了国内外
的众多开发者和企业的广泛关注和使用,这也为Arduino提供了很多可供参考的开发资源。Arduino将像开源的Linux操作系统一样,将被用于更多的领域,开发成更多的产品,随着物联网的普及走进千家万户,而使用Arduino设计的产品也必将更加地贴近企业和市场的需求。Arduino庞大的开发资源也为我们做课程设计提供了大量可靠的参考资料,Arduino的低成本优势也很适合大学生做科研项目,所有使用Arduino做课程设计具有很大的可行性。
八、参考文献
[1][澳]John BOXALL著 翁恺 译 .动手玩转Arduino .北京 :人民邮电出版社 ,2014年1月 :204-210 .
[2] 陈吕洲 .Arduino程序设计基础 :北京航天航空出版社 ,2014 :5-6
[3] ^ Arduino Software Release Notes. Arduino Project. [December 4, 2011].