(標(biāo)題圖片源自官網(wǎng))
0x01:前言
Digispark USB Development Board是一塊基于ATTiny85微控制器的開發(fā)板隧期。2012年底主創(chuàng)團(tuán)隊(duì)在kickstar上發(fā)起了眾籌,并且成功籌集到了30萬美元左右的資金赘娄。眾籌時(shí)這塊板子要12刀仆潮,按現(xiàn)在的匯率折合下來差不多是70r,并且還不包郵遣臼;在9102年的今天性置,這塊板子只要不到10r就能從某寶上買到,總的來說是非常劃算了暑诸。
這塊開發(fā)板最大的特點(diǎn)就是它的USB功能蚌讼。類似于Arduino lendardo,這塊芯片原生支持USB接口个榕,因而可以模擬出各式USB設(shè)備:鍵盤、鼠標(biāo)……各類文章中介紹最多的也是利用它實(shí)現(xiàn)bad usb功能芥喇。當(dāng)然西采,它也支持i2c接口,pwm輸出继控,adc輸入等常規(guī)功能械馆。除此之外胖眷,芯片上還內(nèi)嵌了一個(gè)溫度傳感器(未校準(zhǔn)),更是增添了幾分可玩性霹崎。
因?yàn)槟甏眠h(yuǎn)珊搀,官方WiKi(digispark [Digistump Wiki])上的一些資料都已經(jīng)過時(shí)或不可用。不過不用擔(dān)心尾菇,這個(gè)系列的文章將帶你避開官方文檔中的那些坑點(diǎn)境析,讓你愉快的把玩這塊小開發(fā)板。
0x02:開發(fā)環(huán)境配置
首先派诬,你應(yīng)當(dāng)安裝有最新版的Arduino開發(fā)環(huán)境劳淆。
運(yùn)行Arduino,在上方的菜單中找到文件->首選項(xiàng)->附加開發(fā)板管理器網(wǎng)址默赂,并填入以下地址:
http://digistump.com/package_digistump_index.json
單擊‘好’沛鸵。
在上方的菜單中找到工具->開發(fā)板->開發(fā)板管理器,在“類型”下選擇“貢獻(xiàn)”一欄缆八,下載并安裝下圖中所示的包曲掰。注意:下載時(shí)請(qǐng)科學(xué)上網(wǎng),否則速度可能會(huì)很慢奈辰。
下載完畢后蜈缤,選擇下圖所示的開發(fā)板即可。
安裝好開發(fā)板后冯挎,還需要安裝驅(qū)動(dòng)程序底哥,從以下鏈接下載驅(qū)動(dòng):(如果失效請(qǐng)?jiān)谠u(píng)論區(qū)留言,我會(huì)更新鏈接房官。)
驅(qū)動(dòng)程序?github.com
下載后趾徽,解壓并運(yùn)行DPinst.exe即可(64位系統(tǒng)請(qǐng)運(yùn)行下圖中的程序)
一路確定安裝好驅(qū)動(dòng)程序,一般來說已經(jīng)可以使用開發(fā)板了翰守。
先打開設(shè)備管理器孵奶,再插上開發(fā)板。你應(yīng)該會(huì)發(fā)現(xiàn)如下圖所示的設(shè)備蜡峰。并且此設(shè)備應(yīng)該會(huì)在5秒后消失了袁,變成未知設(shè)備或其它選項(xiàng)(原因后面再說)。如果這樣湿颅,就算是正常工作了载绿。
如果不論如何,都找不到此項(xiàng)油航,則請(qǐng)按圖片所示操作
往下看
繼續(xù)往下滑應(yīng)該能看到類似下圖的“設(shè)備描述符請(qǐng)求失敗”
右鍵選中它崭庸,并更新驅(qū)動(dòng)程序,選擇“瀏覽我的計(jì)算機(jī)以查找驅(qū)動(dòng)文件”,找到剛剛下載驅(qū)動(dòng)的目錄并選中怕享,然后點(diǎn)下一步执赡,直到安裝完成。
安裝完成后函筋,重插開發(fā)板沙合,應(yīng)該就能正常工作了。
(本文章同步首發(fā)于知乎跌帐、CSDN首懈、簡書,并未授權(quán)其它平臺(tái)(比如程序員大本營這種抄襲網(wǎng)站)轉(zhuǎn)載含末,謹(jǐn)防抄襲)
在這里我們嘗試燒寫一個(gè)示例程序猜拾。注意:因?yàn)榇碎_發(fā)板有兩種類型,并且這兩種的LED接的引腳不一樣佣盒,所以下面的代碼中挎袜,你會(huì)發(fā)現(xiàn)我們同時(shí)在操作兩個(gè)引腳。
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}
下載程序到開發(fā)板肥惭。注意:這款開發(fā)板比較特殊盯仪,你應(yīng)該先點(diǎn)擊下載按鈕,當(dāng)出現(xiàn)如下提示時(shí)再插入開發(fā)板(而不是插好等下載):
插入后蜜葱,程序應(yīng)當(dāng)會(huì)自動(dòng)下載全景,板載LED會(huì)閃爍。如果重新插拔牵囤,5秒后led會(huì)正常閃爍爸黄,否則請(qǐng)看文末。
自此揭鳞,開發(fā)環(huán)境的配置告一段落炕贵。有問題請(qǐng)?jiān)谠u(píng)論區(qū)留言。
0x03 一些提示
為什么上文中提到“………設(shè)備會(huì)在5秒后消失野崇?”称开,以及為什么led5秒后才能正常閃爍?
這段時(shí)間是用來燒寫程序的乓梨,因?yàn)闊龑憰r(shí)引導(dǎo)程序需要通過usb接口與計(jì)算機(jī)溝通鳖轰,所以這時(shí)候計(jì)算機(jī)才能識(shí)別到開發(fā)板。5秒后扶镀,內(nèi)部的bootloader會(huì)退出燒寫模式蕴侣,并加載用戶程序,所以計(jì)算機(jī)就識(shí)別不到它了狈惫,并且此時(shí)led才能正常閃爍睛蛛。
當(dāng)然鹦马,這個(gè)“5秒后加載用戶程序”的設(shè)定并不友好胧谈,有時(shí)候我們希望不需要等待忆肾,直接加載用戶程序,如果需要下載菱肖,再手動(dòng)切換到下載模式客冈。(比如制作一個(gè)badusb)。
下一篇文章中我們會(huì)介紹如何實(shí)現(xiàn)這一點(diǎn)稳强,同時(shí)為大家介紹一下常用的片上外設(shè)及功能场仲,以及一些小技巧。
有些用戶可能會(huì)遇到以下情況:燒寫的程序工作正常退疫,但是重新拔插開發(fā)板后程序就無法工作了渠缕。這其實(shí)是板載固件有問題。因?yàn)檫@部分內(nèi)容和下一篇文章的內(nèi)容密切相關(guān)褒繁,我們就放到下一篇文章中討論亦鳞。可以進(jìn)入用戶詳情頁面查看我寫的文章棒坏。
如果對(duì)你有幫助燕差,不妨關(guān)注一下我,點(diǎn)個(gè)贊再走~
當(dāng)然沙雕簡書要求我綁定微信號(hào)坝冕,知乎和csdn就沒這個(gè)沙雕要求徒探,所以以后所有寫在簡書上的文章都要加一句這個(gè)來表達(dá)不滿。寫個(gè)文章而已喂窟,何必呢