如何缩小我们的Arduino项目[翻译]

本文译自Make上的文章How-To: Shrinkify Your Arduino Projects(原文链接),及文中提及的教程说明(原文链接)。

从开始用Arduino做电子制作的那一刻起,我就一直希望能够将它们缩小到单一的小电路板上。我最早做的项目是一个可以自定义的单反相机定时触发器,使用了Arduino Deumilanove,面包板和很多跳线,一起装在一个电话簿大小的纸盒里。一天大早上五点,我带着这个盒子到中央公园,打算拍日出的缩时摄影,可到了地方,却花了20分钟时间把已经乱作一团的零件重新连起来。从那以后,我尝试了几种方法试图将制作项目的体积缩小,坚固性提高。拿定时触发器来说,我设计了一块带引脚插座的电路板,将它牢牢地插在一块Arduino Nano上。这样确实好多了,但我知道一定还有更好的方法。
我试着自学AVR编程,但是遇到不少阻碍。光是让一个小LED闪亮就花了好几个小时,和初次学习Arduino的经历相比真是天壤之别。我还试过PICAXE芯片,跟AVR比是容易上手多了,但这样就意味着要放弃我多年来在C语言编程上的积累,转而去学习一种新的BASIC语言。虽然小时候用过,但是变化已经太大,简直就是完全不同的东西。

因此当我看到麻省理工媒体实验室的High-Low Tech Group的一篇教程时简直高兴坏了,文章教你怎样用Arduino的集成开发环境和编程语言来给一种8引脚的ATtiny45或ATtiny85芯片编程。不仅如此,还指导你如何用一块Arduino板子做ISP下载器将程序写入这些芯片中。用这些方法,就可以满足我想要的一切了,我赶紧订了一批这样的小芯片开始测试。

按教程使用Arduino的语言和开发环境进行开发十分简单,我测试了所有的数/模IO功能,全都工作正常。测试别的功能时,有成功也有失败,大家还是亲自去尝试一下最好。测试中我甚至只用了不到一小时时间就做出了一个闪亮的电子玩具。现在可以考虑用这个方法重做我的单反定时触发器了,这次可以把体积从纸盒缩小到薄荷糖铁盒那么大了!

这篇视频教程的链接在这里:iTunes,直接下载M4V文件YoutubeVimeo

以下是教程的文字说明:
本教程将指引你使用Arduino的硬件及软件来为ATtiny45或ATtiny85微处理器编程,这两种微处理器体积小(8个引脚),价格低(2-3美元),可以很方便地用来跑一些简单的程序。两种芯片几乎完全一样,只是ATtiny85的内存是ATtiny45的两倍,因此可以运行更复杂一些的程序。我们喜欢用这两种芯片和一些简单的电路去完成有趣的制作项目。在这些芯片中编程需要使用由Alessandro Saporetti 创建,HLT修改的一部分Arduino核心类库。

材料和工具:

  •  Arduino Uno或Duemilanove(旧版使用ATmega168的那种不行,要使用ATmega328的新版的)
  • ATtiny45或ATtiny85 (8引脚DIP封装)
  • 一个10uF的电容
  • 一块面包板
  • 一些跳线

软件

需要Arduino的集成开发环境(版本0022,Arduino官网),支持ATtiny45/85芯片的插件(下载地址),Arduinok开发环境软件的安装指南有WindowsMac OS X版的。

ATtiny45及ATtiny85引脚图:

ATtiny45/85引脚图

安装ATtiny45 / ATtiny85的支持插件

  • 下载插件
  • 找到你电脑中Arduino小程序的存储文件夹
  • 在该文件夹中新建一个名为hardware文件夹
  • 从下载的zip文件中将attiny45_85文件夹解压缩到hardware文件夹中
  • 重启Arduino开发环境

将Arduino板作为开发工具

我们将使用Arduino为这两种微处理器编程,首先,我们要把Arduino板变成ISP下载器:

  • 运行Arduino开发环境
  • 在examples菜单项下打开ArduinoISP小程序
  • 选择对应于你正在使用的Arduino型号及串口
  • 上载ArduinoISP小程序

将Arduino板与ATtiny微处理器连接

请按下图所示连接Arduino和ATtiny,注意ATtiny表面的定位点,按正确位置插好。如果你用的是Arduino Uno的话,还要在Arduino的reset和ground引脚间连入一个10uF的电容(电容负极一端接ground)。
Arduino与ATtiny45/48连线图

引脚接法: - ATtiny Pin 2接Arduino Pin 13(其它下载器的话接SCK口) - ATtiny Pin 1接Arduino Pin 12(其它下载器的话接MISO口) - ATtiny Pin 0接Arduino Pin 11(其它下载器的话接MOSI口) - ATtiny Reset Pin接Arduino Pin 10(其它下载器的话接RESET口)

为ATtiny45或ATtiny85编程
下面我们将可以使用Arduino做下载器将程序载入到ATtiny45/85中:

  • 在examples菜单项下打开Blink小程序
  • 将pin number从13改为0
  • 在Tools > Board菜单项下选择ATtiny45 (w/ Arduino as ISP)或者ATtiny85 (w/ Arduino as ISP)
  • 上载小程序

你可能会看到下面的信息,不过不用担心,不会影响上载的。
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
上载完成后,可以接上一个LED看看效果了。

参考

下面的Arduino命令经测试可用:
* pinMode()
* digitalWrite()
* digitalRead()
* analogRead()
* analogWrite()
* shiftOut()
* pulseIn()
* millis()
* micros()
* delay()
* delayMicroseconds()

[后记]这个真的很好,刚刚上淘宝搜了一下,ATtiny45才7,8元钱一个,可以量产了:)

ATtiny45/85 and Arduino