Digisparkを使ってみる

 Amazonマケプレで購入したものの、2回も税関に送り返されてようやく届いたDigisparkを動作確認を兼ねて使ってみました。
 なお、購入したのは以下の製品で、届いた基板にはrev3表記がありました。

 

Arduino IDEインストール

 既に導入済なら不要です。今回は普段電子工作系の用途で利用しているPCとは別のPCで試してみることにしたため、導入しました。
 で、WindowsIDEを入れようと思ったら、今はWindowsストアアプリ版が存在するのですね。知りませんでした。

 Windowsストアアプリって使ったことないので、今回はこちらを導入してみることにしました。
www.microsoft.com
 

初期設定

 Arduino IDEを起動後、digisparkを利用するための初期設定を行います。
 (蛇足ですがWindowsストアアプリはメトロUIなのかと思っていたのですが、普通のArduino IDEと同じ見た目をしています)。

 基本的には開発元の以下のチュートリアルに沿って作業すればよいだけだと思っていたのですが、後述の通り少し異なる部分もありました。
digispark:tutorials:connecting [Digistump Wiki]
 

環境設定

 digisparkはArduino純正のボードではないため、チュートリアルに記載の以下の追加のボードマネージャのURLを指定します。

http://digistump.com/package_digistump_index.json

f:id:kachine:20170306190456p:plain
 

ボードマネージャ

 先に環境設定で指定したURLからdigisparkを含むボードのデータをダウンロードします。
 [Digistump AVR Boards by Digistump]を選択して[インストール]を押下します。
f:id:kachine:20170306190514p:plain

 チュートリアルには記載がありませんが、インストール完了後IDEのコンソール上には以下の警告出力が表示されています。
f:id:kachine:20170306190704p:plain

警告:信頼されていないコントリビューションです。スクリプトの実行をスキップしています(C:\Users\%USERNAME%\Documents\ArduinoData\packages\digistump\tools\micronucleus\2.0a4\post_install.bat)

 スキップされたバッチファイルの中身を確認すると、install.exeを実行するだけの記述となっており、どうやら同じディレクトリにあるドライバをインストールするためのスクリプトのようです。
 ということで、post_install.batを手動で実行します。すると、チュートリアルに記載のあるドライバインストールウィザードが開始されます。

 [Digistump LLCからのソフトウェアを常に信頼する]のチェックを入れずに進めたところ、以下のように合計3つのドライバをインストールすることになるようです。
f:id:kachine:20170306191400p:plain
f:id:kachine:20170306191412p:plain
f:id:kachine:20170306191422p:plain
 この後に表示されるインストールウィザードの完了ダイアログではDigistum LLC (usbser) Portsが「インストールできませんでした」の表示となっています。
f:id:kachine:20170306191522p:plain

 この状態で、digisparkをUSBポートに差し込んでみると、Windowsが発するデバイス取り付け音と取り外し音が一定間隔で繰り返し鳴るような状態となりました。
 再度バッチファイルを実行してドライバ再インストールを試みたのですが、状況は変わらず。
 何かおかしそうではありますが他にできそうな対策も思いつかないので、とりあえず手順を先に進めてみました(結果的に問題ありませんでした)。
 

ボード選択

 怪しさを感じつつもインストールは完了しているようで、Digisparkが選択肢に追加されています。
 チュートリアルの記述通り、"Digispark (Default - 16.5mhz)"を選択します。
f:id:kachine:20170306190728p:plain
 

書込装置選択

 LeonardやMEGAなど私が使ったことのある普通のArduinoならUSBシリアル経由で書き込みを行いますが、Arduino IDE上でシリアルポート選択が非活性化しており書き込み方法が判りません。
 Amazonのレビュー欄を参照すると書込装置は"Micronucleus"を選択するらしいことが判りましたのでとりあえずそうします。
f:id:kachine:20170306190746p:plain

 なお、チュートリアルをよく読むと、

(The Tools→Programmer selection does not matter)

 と、記載されており実は何でもいいようです(ProgrammerがIDEの日本語UIでは書込装置に相当します)。digisparkを使う場合は書き込み装置の指定は無視されるのかもしれません。
 

サンプルプログラム書き込み

 チュートリアルにYour first uploadとして掲載されているサンプルプログラムを書き込んでみます。
 これがまた普通のArduinoとは異なり、事前にdigisparkをUSBポートに接続していると失敗します。IDEのUI上で書き込み操作(Ctrl+U)を実行後、コンソール出力にdigisparkを挿入するよう指示されてからUSBに差し込む必要があります。
 これについて、チュートリアルには以下の記述があります(uploadはIDEの日本語UIでは書き込みに相当します。)。

You do not need to plug in your Digispark before invoking upload
Hit the upload button. The bottom status box will now ask you to plug in your Digispark - at this point you need to plug it in - or unplug and replug it.

 具体的には、コンソールに以下の出力が表示されてから、digisparkを差し込みます。
f:id:kachine:20170306190948p:plain

Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)

 書き込みが完了すると以下のように表示されます(進捗100%時はwritingではなく、running表記)。
f:id:kachine:20170306191011p:plain

writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!

 
 問題が無ければサンプルプログラムのコード記述の通り1秒間隔でオンボードのLEDが点滅するのが確認できます。

 なおコードを修正して再書き込みする場合も同様に、一旦USBから取り外して書き込み操作を行う必要があります。
 

(参考)digisparkを差し込んだまま書き込み操作を行った場合のエラー出力

f:id:kachine:20170306191125p:plain
 このエラーになった場合は、USBポートからdigisparkを取り外して再度書き込み操作を行い、前述の通りコンソールに差し込み指示が出てから差し込めばエラーは解消します。
 



以上。