关于arduino的另类视角-《无线电》2014.03
2014-03-31 15:55:03arduino现已风靡全球,探究其成功原因,业内大多认为缘于其开放性。我大约是从2006年开始接触avr单片机,将我引入avr世界的是当时国内一款较有名气的avr单片机最小系统——双龙系列产品。从最小系统的角度观察,双龙与arduino差不多,双龙的电路也是公开的。其实,对于一种单片机的最小系统而言是无密可保的,天生就是开放的,任何一个熟悉了该芯片的业者都可以设计出自己的开发板,我也设计出了自己的avr单片机最小系统。大概是在2010年前后,我从一位旅日华人朋友那里第一次看到关于arduino的杂志和书籍。时至今日,arduino在国内的热度确实令人惊叹。
我个人认为arduino虽说是一款不错的设计,但并非完美无缺。它的“定制”模块和函数库可能适用于一些急于完成特定用途的场合,但在其他方面却成了束缚你的框框。现在很多文章、论坛里爱用“基于arduino”、“与arduino兼容”等用语,都是些概念模糊的提法,特别是对一些初学者而言,容易使他们误以为arduino是单片机的一种,单片机就必须这样使用。对arduino准确的描述是:arduino是一款avr单片机的最小系统,搭载了avr的atmega168或atmega328单片机芯片,其开发环境移植自processing,而编译软件则是avrdude,唯一原创的就是“arduino”这个品牌。
图1 miniboard
我认为arduino最大的问题是抹去了单片机领域最重要的概念之一——i/o端口,代之以离散的“引脚”。另外,其bootloader的引导方式,通过串口完成下载任务也并非现代单片机的最佳搭配。
好在arduino选用了avrdude作为编译工具,虽然在其官方发表的帮助文档中没有描述,但对avr单片机的寄存器名称实际上是支持的,使我们有机会对其设计导致的缺陷加以弥补。
本文选择了一些学习单片机最基本的入门实验,这些实验都是“基于”avr单片机的,充分调动了avr单片机的原有资源,使用很简单明了的程序语言在arduino的开发环境里编写,然后下载至我自己的avr最小系统中。读者如果能实践这些实验,将会对arduino有更全面的认识。
miniboard实验用的硬件平台是笔者新推出的一款命名为“miniboard”的新板(见图1),搭载了atmega48芯片,8mhz内部时钟。这块板子的特点是除了系统资源全部开放外,在端口的标识部分增加
了arduino习惯的引脚标识,以方便习惯arduino的朋友辨识。端口除了设计了排针外,又增加了母排,便于玩面包板的朋友使用。m i n i board 的尺寸为58mm×40mm,4个固定孔的相互距离都是英制mil的整倍数,方便diy的朋友将其固定在多孔板上。接下来我们对照图1看一下各部分的功能。
a : 2 8 脚芯片插座, 可配插atmega48/88/168/328,以及atmega8等芯片。
未完。。。
全文详见《无线电》2014.03