极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 110365|回复: 50

【转载】如何缩小我们的Arduino项目_压缩包地址更新

  [复制链接]
发表于 2012-5-17 06:10:43 | 显示全部楼层 |阅读模式
本帖最后由 公孙林 于 2014-6-8 21:42 编辑

转自:http://bbs.iqrobot.com/forum.php?mod=viewthread&tid=793

本文译自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功能,全都工作正常。测试别的功能时,有成功也有失败,大家还是亲自去尝试一下最好。测试中我甚至只用了不到一小时时间就做出了一个闪亮的电子玩具。现在可以考虑用这个方法重做我的单反定时触发器了,这次可以把体积从纸盒缩小到薄荷糖铁盒那么大了!
这篇视频教程的链接在这里:http://cdn.makezine.com/make/2011/10/HowTosMatt-shrinkify.m4v
以下是教程的文字说明:
本教程将指引你使用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开发环境软件的安装指南有Windows及Mac OS X版的。
ATtiny45及ATtiny85
引脚图:

安装ATtiny45 / ATtiny85的支持插件
  • 下载插件:http://www.hobbytronics.co.uk/datasheets/attiny45_85.zip
  • 找到你电脑中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)。

引脚接法:
  • 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()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-5-17 10:13:43 | 显示全部楼层
看到这个ATtiny85真是太好了,一直在想用这么复杂的arduino来实现一些简单的功能太浪费了,现在好了,终于有解决方案了。
回复 支持 反对

使用道具 举报

发表于 2012-5-19 00:08:00 | 显示全部楼层
直接烧些那个 ArduinoISP 可以不?简单的就能制作一个对NANO或者MINI刷BOOTLOADER的工具?
回复 支持 反对

使用道具 举报

发表于 2012-5-19 11:25:14 | 显示全部楼层
速度收起 ,果断收藏,真是太好了!!!
回复 支持 反对

使用道具 举报

发表于 2012-5-19 11:40:44 | 显示全部楼层
但是你说的‘‘找到你电脑中Arduino小程序的存储文件夹’’ 是啥意思???没看懂。求真相。。。
回复 支持 反对

使用道具 举报

发表于 2012-5-19 20:35:44 | 显示全部楼层
u看不到图片
回复 支持 反对

使用道具 举报

发表于 2012-5-24 21:47:59 | 显示全部楼层
xlsss 发表于 2012-5-19 11:40
但是你说的‘‘找到你电脑中Arduino小程序的存储文件夹’’ 是啥意思???没看懂。求真相。。。

File -> Preferences 中 Sketchbook location 即是
回复 支持 反对

使用道具 举报

发表于 2012-5-24 21:49:43 | 显示全部楼层
在arduino 0。22 上成功,但1。0版本编译 attiny45 报错
Blink.cpp:8:21: error: Arduino.h: No such file or directory
接电容是防止uno 自己被烧了!!
回复 支持 反对

使用道具 举报

发表于 2012-5-24 22:39:09 | 显示全部楼层
蛋疼的很。。。花10+买个下载器,这篇教学就可以不看了。。。。
回复 支持 反对

使用道具 举报

发表于 2012-5-30 21:07:12 | 显示全部楼层
试了一下,但是报错了,用的是0023的
Binary sketch size: 5180 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x1c
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
什么原因啊??
回复 支持 反对

使用道具 举报

发表于 2012-7-23 00:08:14 | 显示全部楼层
{:soso_e141:}我还真试过成功了。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-27 00:21:06 | 显示全部楼层
同样试成功了……相比328P,做个RGB呼吸灯体积一下就缩小了很多……
回复 支持 反对

使用道具 举报

发表于 2012-7-27 17:04:16 | 显示全部楼层
听有成功的,那一定要亲自试一试!
回复 支持 反对

使用道具 举报

发表于 2012-8-30 09:09:31 | 显示全部楼层

这是什么情况呢??我已经按照教程步骤做了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-8-30 10:25:47 | 显示全部楼层
High-Low Tech的原始文章Programming an ATtiny w/ Arduino 1.0.1 http://hlt.media.mit.edu/?p=1695,可以用编程器来烧写程序,比用Arduino方便点。

不过还是不够方便,最方便的还是直接用usbisp,只用一个芯片,完成所有的事情。http://www.geek-workshop.com/thread-1689-1-1.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 21:08 , Processed in 0.045809 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表