Digispark USB开发板把玩笔记(一):认识这块小巧、便宜、多功能的Arduino兼容板

(标题图片源自官网)

0x01:前言

Digispark USB Development Board是一块基于ATTiny85微控制器的开发板。2012年底主创团队在kickstar上发起了众筹,并且成功筹集到了30万美元左右的资金。众筹时这块板子要12刀,按现在的汇率折合下来差不多是70r,并且还不包邮;在9102年的今天,这块板子只要不到10r就能从某宝上买到,总的来说是非常划算了。

这块开发板最大的特点就是它的USB功能。类似于Arduino lendardo,这块芯片原生支持USB接口,因而可以模拟出各式USB设备:键盘、鼠标……各类文章中介绍最多的也是利用它实现bad usb功能。当然,它也支持i2c接口,pwm输出,adc输入等常规功能。除此之外,芯片上还内嵌了一个温度传感器(未校准),更是增添了几分可玩性。

因为年代久远,官方WiKi(digispark [Digistump Wiki])上的一些资料都已经过时或不可用。不过不用担心,这个系列的文章将带你避开官方文档中的那些坑点,让你愉快的把玩这块小开发板。

0x02:开发环境配置

首先,你应当安装有最新版的Arduino开发环境。

运行Arduino,在上方的菜单中找到文件->首选项->附加开发板管理器网址,并填入以下地址:

http://digistump.com/package_digistump_index.json

单击‘好’。

在上方的菜单中找到工具->开发板->开发板管理器,在“类型”下选择“贡献”一栏,下载并安装下图中所示的包。注意:下载时请科学上网,否则速度可能会很慢。

下载完毕后,选择下图所示的开发板即可。

安装好开发板后,还需要安装驱动程序,从以下链接下载驱动:(如果失效请在评论区留言,我会更新链接。)

驱动程序​github.com

下载后,解压并运行DPinst.exe即可(64位系统请运行下图中的程序)

一路确定安装好驱动程序,一般来说已经可以使用开发板了。

先打开设备管理器,再插上开发板。你应该会发现如下图所示的设备。并且此设备应该会在5秒后消失,变成未知设备或其它选项(原因后面再说)。如果这样,就算是正常工作了。

如果不论如何,都找不到此项,则请按图片所示操作

往下看

继续往下滑应该能看到类似下图的“设备描述符请求失败”

右键选中它,并更新驱动程序,选择“浏览我的计算机以查找驱动文件”,找到刚刚下载驱动的目录并选中,然后点下一步,直到安装完成。

安装完成后,重插开发板,应该就能正常工作了。

(本文章同步首发于知乎、CSDN、,并未授权其它平台(比如程序员大本营这种抄袭网站)转载,谨防抄袭)

在这里我们尝试烧写一个示例程序。注意:因为此开发板有两种类型,并且这两种的LED接的引脚不一样,所以下面的代码中,你会发现我们同时在操作两个引脚。

void setup() {               

  pinMode(0, OUTPUT); //LED on Model B  pinMode(1, OUTPUT); //LED on Model A  }void loop() {  digitalWrite(0, HIGH);  // turn the LED on (HIGH is the voltage level)  digitalWrite(1, HIGH);  delay(300);              // wait for a second  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW  digitalWrite(1, LOW);

  delay(300);              // wait for a second}

下载程序到开发板。注意:这款开发板比较特殊,你应该先点击下载按钮,当出现如下提示时再插入开发板(而不是插好等下载):

插入后,程序应当会自动下载,板载LED会闪烁。如果重新插拔,5秒后led会正常闪烁,否则请看文末。

自此,开发环境的配置告一段落。有问题请在评论区留言。

0x03 一些提示

为什么上文中提到“………设备会在5秒后消失?”,以及为什么led5秒后才能正常闪烁?

这段时间是用来烧写程序的,因为烧写时引导程序需要通过usb接口与计算机沟通,所以这时候计算机才能识别到开发板。5秒后,内部的bootloader会退出烧写模式,并加载用户程序,所以计算机就识别不到它了,并且此时led才能正常闪烁。

当然,这个“5秒后加载用户程序”的设定并不友好,有时候我们希望不需要等待,直接加载用户程序,如果需要下载,再手动切换到下载模式。(比如制作一个badusb)。

下一篇文章中我们会介绍如何实现这一点,同时为大家介绍一下常用的片上外设及功能,以及一些小技巧。

有些用户可能会遇到以下情况:烧写的程序工作正常,但是重新拔插开发板后程序就无法工作了。这其实是板载固件有问题。因为这部分内容和下一篇文章的内容密切相关,我们就放到下一篇文章中讨论。可以进入用户详情页面查看我写的文章。

如果对你有帮助,不妨关注一下我,点个赞再走~

当然沙雕要求我绑定微信号,知乎和csdn就没这个沙雕要求,所以以后所有写在上的文章都要加一句这个来表达不满。写个文章而已,何必呢

你可能感兴趣的:(Digispark USB开发板把玩笔记(一):认识这块小巧、便宜、多功能的Arduino兼容板)