极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 88840|回复: 43

自制Digispark: 最小USB Arduino

[复制链接]
发表于 2013-5-22 16:05:15 | 显示全部楼层 |阅读模式
本帖最后由 smching 于 2013-6-2 11:58 编辑


相信很多人已经知道什么是Digispark。Digispark是一个基于ATTINY85微控制器的USB开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。代码与Arduino大同小異,更可贵的是使用Arduino IDE来开发。所以说呀,懂得Arduino的朋友,却不认识Digispark,将是一损失。

这里教你怎样制造属于自己的Digispark,当然你也可以去Digispark的官方网站买现成的产品,一个Digispark要价美金8.95。

Digispark是Digistump LLC (digistump.com)版权所有,请使用者仔细阅读Digispark使用协议和版权声明

Digispark与Arduino一样,使用前必须把Bootloader烧录至ATTIN85微控制器。此 Bootloader将占用2KB快闪记忆体(Flash memory),使仅有8KB快闪记忆体的 ATTIN85,最后只剩下6KB可以使用。

Digispark规格说明:
  • 支持Arduino的IDE 1.0 +(现在是1.04)
  • 内置USB
  • 6个I / O引脚
  • 8K快闪记忆体(Bootloader占用了2KB。剩下约6KB)
  • I2C和SPI
  • 3个PWM
  • 4个ADC
天呀,连Reset引脚也动用了,使之变成IO。

下载与烧录Bootloader
下载micronucleus tiny85 bootloader,把micronucleus-t85-master irmwareeleasesmicronucleus-1.06.hex烧录至ATTINY85微控制器
必须使用以下fuses设定,我是使用AVRISP MKII配置AVR Studio
  • Extended: 0xFE
  • High: 0xDD
  • Low: 0xE1



安装Digispark USB驱动
  • 下载用于Digispark的Arduino 1.0.4,文件里带有Digispark USB驱动
  • 运行DigisparkArduino-Win32DigisparkWindowsDriverInstallDriver.exe


Digispark电路图
下面电路图来方Digispark官方网站,另一张电路图则是用于测试,5V电源由电脑的USB通信口供给,少了一些组件。
建议使用外部USB Hub连接Digispark,以免电路出现问题而损坏电脑的USB通信口。





连接与测试Digispark
  • 把Digispark插入电脑的USB通信口
  • 第一次使用时,将会侦察到新的USB设备,同时显示安装Digispark Bootloader,单击Next直至完成USB设备安装  
  • 运行DigisparkArduino-Win32Digispark-Arduino-1.0.4arduino.exe以便打开Arduino IDE
  • 单击Tools>Board>Digispark (Tiny Core)
  • 单击Tools>rogrammer>Digispark
  • 测试一个代码。单击File>Examples>Digispark_Example>Start
  • 把此代码上载至ATTINY85微控制器

上载代码有一点点麻烦,那就是每次上载前,Digispark必须与电脑断开,直至电脑显示插入Digispark时,才将之插回电脑。

大功告成

将ATTINY85引脚5(Digital 0)和引脚6(Digital 1)各连接一个330欧姆电阻器及LED 。开电测试,你会看到二粒LED间隔一秒的闪着。


Digispark能做些什么呢?
打开Examples,一目了然。麻雀虽小,五脏俱全。


更多图片
http://ediy.com.my/index.php/201 ... /item/71-digispark-最小usb-arduino

更新 23/05/13 11.34AM
使用Frizting画了一张面包板电路图

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-5-22 16:27:30 | 显示全部楼层
哈哈哈长得好可爱啊
回复 支持 反对

使用道具 举报

发表于 2013-5-22 20:17:39 | 显示全部楼层
Digispark 记下来了... 这个不错哦..
回复 支持 反对

使用道具 举报

发表于 2013-5-22 21:34:18 | 显示全部楼层
灰常mini,就是不知道下了bootloader还有多少空间了 呵呵
回复 支持 反对

使用道具 举报

发表于 2013-5-22 21:46:26 | 显示全部楼层
smfox10 发表于 2013-5-22 21:34
灰常mini,就是不知道下了bootloader还有多少空间了 呵呵

看帖子不认真,打pp
回复 支持 反对

使用道具 举报

发表于 2013-5-22 22:01:35 | 显示全部楼层
zcbzjx 发表于 2013-5-22 21:46
看帖子不认真,打pp

看到了6K的空间真的很考验编程能力了呵呵,我觉得板子不是最小就最好,板子不占空间但是电源也会占空间吧。所以综合起来,我觉得制作最好用张老师的Micro板子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-23 09:09:19 | 显示全部楼层
本帖最后由 smching 于 2013-5-23 09:28 编辑
smfox10 发表于 2013-5-22 22:01
看到了6K的空间真的很考验编程能力了呵呵,我觉得板子不是最小就最好,板子不占空间但是电源也会占空间 ...

张老师的microduino很不错,我也很喜欢。不过需要使用USB至串行模块与电脑沟通。

Digispark则自带了USB接口,直接插入电脑沟通。上载以下代码(sketch)至Digispark,使Digispark形成HID(就是一个虚拟USB键盘),用于设计数据记录仪(Data Logger),非常方便。
  1. #include "DigiKeyboard.h"

  2. void setup() {
  3.   // don't need to set anything up to use DigiKeyboard
  4. }


  5. void loop() {
  6.   // this is generally not necessary but with some older systems it seems to
  7.   // prevent missing the first character after a delay:
  8.   DigiKeyboard.sendKeyStroke(0);
  9.   
  10.   // Type out this string letter by letter on the computer (assumes US-style
  11.   // keyboard)
  12.   DigiKeyboard.println("Hello Digispark!");
  13.   
  14.   // It's better to use DigiKeyboard.delay() over the regular Arduino delay()
  15.   // if doing keyboard stuff because it keeps talking to the computer to make
  16.   // sure the computer knows the keyboard is alive and connected
  17.   DigiKeyboard.delay(5000);
  18. }
复制代码

以上代码占用了3207Byte
回复 支持 反对

使用道具 举报

发表于 2013-5-23 17:06:05 | 显示全部楼层
你太厉害啦,刚出来你就做出来了?有没有板子出售啊?PCB空板有没有?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-24 19:20:09 | 显示全部楼层
philhoo 发表于 2013-5-23 17:06
你太厉害啦,刚出来你就做出来了?有没有板子出售啊?PCB空板有没有?

我没有出售板子,PCB空板也没有,纯是让大家分享一下Digispark。已经很简单了,自己动手做吧
回复 支持 反对

使用道具 举报

发表于 2013-5-25 09:16:38 | 显示全部楼层
好东西!顶一下!
回复 支持 反对

使用道具 举报

发表于 2013-5-26 12:59:25 | 显示全部楼层
悲剧呀,先写入熔丝位,竟然芯片不能读写了,怎么回事呀,伤不起呀
回复 支持 反对

使用道具 举报

发表于 2013-5-26 12:59:53 | 显示全部楼层
研究一下熔丝位配置先
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-27 12:55:41 | 显示全部楼层
pgf017979 发表于 2013-5-26 12:59
悲剧呀,先写入熔丝位,竟然芯片不能读写了,怎么回事呀,伤不起呀

你是使用什么烧录器?怎样写入熔丝位?遇到什么问题?
回复 支持 反对

使用道具 举报

发表于 2013-5-27 14:51:06 | 显示全部楼层
终于搞懂啦,虽然牺牲了两个芯片
回复 支持 反对

使用道具 举报

发表于 2013-5-27 14:55:56 | 显示全部楼层
我是按照官方给的熔丝位烧写的,原来烧写了之后复位脚变成pin5脚,一定要先下载bootloder后烧写熔丝位。楼主给的熔丝位,复位脚不能做pin5的。好处是可以随时改变熔丝位,坏处是,本来只有6个pin口,少了一个更不好,不够管脚。玩了一下这个,好佩服呀,真强大。很多库都是现成的。建议坛友玩一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-4 16:18 , Processed in 0.064655 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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