ATtiny13をArduino IDEで使う(暫定版)
明日2014/3/29はArduino誕生10周年だそうです。
だからと言う訳でもないですが、ここの所取りかかっていたATtiny13AをArduino IDEで使うためのオプションファイル集を暫定公開したいと思います。
本当はtinyDuinoって名前にしたかったんですが、既にしっかりしたプロジェクトになっているので、混同されても困ると思い別の名前にしました。小林茂先生が開発されたArduino FIOも元々ガンダムのファンネルから来ているらしいので、まぁビットも悪く無いでしょうw
さて使い方ですが、上記のファイルをダウンロード→解凍し、Arduinoのスケッチを保存するフォルダに hardware というフォルダを作成してその中に入れて下さい。
その後Arduino IDEを立ち上げるとマイコンボードに bitDuino13 (internal 9.6 MHz clock) が追加されます。
書き込みの方法は、kosaka kimioさんの記事「Arduino IDEでATtiny他の開発(Arduino-ISP編)」をご参照ください。とりあえず暫定公開なので(^^;
上記記事でもATtiny13AをArduino IDEで使う事が出来、私自身もそれを参考に使ってみました。その時は一応目的のプログラムを動かす事が出来たのですが、残りのプログラムエリアがとても少なかったので、さらに応用するために今回の専用オプションファイル集を作成するに至った訳です。
今回はATtiny13Aでなるべくフリーエリアを多く使いたいために、元はさまざまなAVRマイコンに対応していたソースコードをばっさり切ってATtiny13Aに特化させています。そのため若干の制約や注意点があります。
- 経過時間関係の関数が使用不可
millis() とmicros()がおそらく使えません。これで使うタイマーを設定していないので、正しい値が取れないと思います。これらの関数はライブラリにして必要な場合使える様にしたいと思っています。 - delay()関数があまり正確ではない
本来のArduinoではタイマーで管理されたmillis()関数を利用して実現されているのですが、これをCPUサイクルから求めたdelayMicroseconds()関数を利用する様に変更しています。また引数はlong型ではなくint型で受け取るので、使用出来る数値範囲kが狭まっています。 - ピン番号を指定する関数で使用可能範囲をチェックしていない
digitalRead(),digitalWrite(),analogRead(),analogWrite()などの関数でピン番号の指定出来る範囲のチェックをしていません。間違わない様に気をつけて下さい。 - Tone()関数は詰め切ってないので音痴かもw
- その他
shiftOut(),shiftIn(),pulseIn()等の関数は未チェック
他に、専用のソフトウェアシリアルライブラリも作成してあります。
こちらは解凍してArduinoのスケッチを保存するフォルダにlibrariesフォルダを作成して、その中に置いて下さい。
古い(Arduino IDE 1.0以前の)ソフトウェアシリアルライブラリを元に作成していますので半二重です。受信は1バイト受け取るまで待機します。また送信中に受信出来ません。printメソッドを使うと直ぐにFlashが足りなくなりますw
と言う訳で、暫定公開版ですが、お試しください。
最近のコメント