プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

【令和最小】Arduino互換機 Digispark Kickstarter Attiny85を使う

小さいArduino互換機が欲しい

小さいArduino互換機が必要な案件があり、こちらを動かしてみました。


25×19mmと令和最小サイズのArduino互換機だと思います。

しかし、Arduino互換機であるもののArduino IDEではそのまま書き込むことが出来ず少し苦労しました。
Amazonのレビューを見ていると、そのまま使えているケースもあるようで書き込まれているブートローダーなどが違うケースがあるのかもしれません。

私のケースではMicro USBでWindowsに接続すると、Digispark Kickstarter Attiny85は起動して書き込まれているLチカが動作するが、Windows側ではUSB機器として認識されていない状態でした。

Arduino IDEで書き込む方法

qiita.com
こちらの記事通りに行うことでArduino UNOを書き込み機として使い、Arduino IDEで書き込むことが出来ました。

Arduino UNOがArduino IDEで使えるようになっている前提です。ここではArduino IDEはV1系を使っています。
手順は以下のようになります。
① Arudino UNOとDigispark Kickstarter Attiny85をジャンパワイヤで接続する
② Arudino UNOにArudino IDEでArduinoISPを書き込む
③ Arudino UNO経由でDigispark Kickstarter Attiny85にソースを書き込む

①まず、Arudino UNOと以下のようにジャンパワイヤで接続します。

Digispark Kickstarter Attiny85の電源はArduino UNOの5Vピンから供給することで起動します。

これは、Digispark Kickstarter Attiny85とArduino UNOをSPIで接続して書き込みをしていることになるのだと思います。
www.musashinodenpa.com

②次に、Arduino UNOにArduinoISPを書き込みます。
まず、Arduino IDEにATtinyを設定します。
「設定」→「追加のボードマネージャのURL」に以下のURLを追加します。

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

「ツール」→「ボード」→「ボードマネージャー...」からATtinyを追加します。

また、Arduino IDEの書き込み先設定はArduino UNOにします。

この状態でArudino UNOにArduinoISPを書き込みます。

③次に、目的のソースコードを作成し書き込み先ボード設定をATtinyに設定します。

これで、いつものようにスケッチを書き込みます。
書き込みが失敗するときは、Digispark Kickstarter Attiny85が起動しているか、ジャンパワイヤの接続が合っているか、を確認してみて下さい。

まとめ

これで令和最小のArduino互換機を動かすことが出来ました。
ただし、参考サイトのようなアップデートに必要な情報が出力されないため、ブートローダーのアップデートは出来ていません。

このとき、IDEの出力エリアに、スケッチのロードに使用された、コマンドライン引数とパスを含む完全なAVRDUDEコマンドが表示されたはずだ(上のLogだと3行目)。

このため、直接Arduino IDEを接続してのSerail通信などは使うことが出来ません。
(ソフトウェアシリアルはコードを書き込んでみると動いていそうな気がするのですが、文字化けしか出てきません。Delay()も明らかに短く、クロックが合っていないのではないかと推測。)
また、USBもせいぜい電源供給のみです。
このため、私の場合はUNOで作りこみをしてからDigispark Kickstarter Attiny85に移植する、というような方法を取りました。
ただし、使えるPIN番号が違ったりする場合があるかもしれませんので注意が必要です。

また、Micro USBではなく5Vピンに電池で電源を供給することでも起動することが出来ました。
7V以上が使える場合はVinに供給すべきですが、ニッケル水素電池3本の3.6Vでも5Vに供給することで起動できます。