(标题图片源自官网)
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就没这个沙雕要求,所以以后所有写在上的文章都要加一句这个来表达不满。写个文章而已,何必呢