1.材料
表1:購入品一覧 | ||||
部品名 | 必要数 | 購入先 | 単価 | 費用 |
ATtiny85 | 1個 | 秋月電子 | 160円/個 | 160円 |
FTDI Basic Breakout5V | 1個 | マルツ | 2015円/個 | 2015円 |
USBケーブル(Aオス-ミニBオス) | 1本 | 秋月電子 | 110円/本 | 110円 |
合計 | 2285円 |
2.2 ATtinyライブラリの入手と組込
〇kosakalabさんのサイトArduino IDEでATtiny他の開発(Arduino-ISP編)
〇Jonkiさんのサイト【Arduino】ATtinyをArduinoで開発する
〇tadfmacさんのサイトArduino 1.6でATTiny85やATTiny44を開発できるようにしてみる
が大変参考になりました。助かりましたありがとうございました。
〇kosakalabさんのサイトArduino IDEでATtiny他の開発(Arduino-ISP編)
〇Jonkiさんのサイト【Arduino】ATtinyをArduinoで開発する
〇tadfmacさんのサイトArduino 1.6でATTiny85やATTiny44を開発できるようにしてみる
が大変参考になりました。助かりましたありがとうございました。
2.2.1 ライブラリ入手
ATmega/ATtiny記述ファイルアーカイブ hardware.zip(2015.03.19版)から一式ライブラリをダウンロードします。
ATmega/ATtiny記述ファイルアーカイブ hardware.zip(2015.03.19版)から一式ライブラリをダウンロードします。
〇kosakalabさんのサイトに詳しい記述が有ります。(2017年5月2日追記)
2.2.2 組込
インストールしたArduinoIDEのアイコンを右クリックして“ファイルの場所を開く”を選択すると、その中に有る”hardware”というフォルダ(なければ作ります)に各マイコン用のファイルを解凍して入れます。
これでArduino IDEで“ツール”→“ボード”の中でATtinyが出現し選択可能になりますが、そのままだとATtiny85書き込み時にエラーが山程出ますので、以下のエラー回避処置をしておきます。
インストールしたArduinoIDEのアイコンを右クリックして“ファイルの場所を開く”を選択すると、その中に有る”hardware”というフォルダ(なければ作ります)に各マイコン用のファイルを解凍して入れます。
これでArduino IDEで“ツール”→“ボード”の中でATtinyが出現し選択可能になりますが、そのままだとATtiny85書き込み時にエラーが山程出ますので、以下のエラー回避処置をしておきます。
2.2.3 ブートローダーエラー回避方法
3.2でATtiny85にブートローダーを書込みますが、そのままだとエラーが出ますので、エラーが出ないように以下の操作を行います。
〇\Arduino\hardware\attiny\avrフォルダ中にある「boards.txt」を開き、そのtxt中のATtiny85-8にATtiny85-16中の「bootload.tool」と「upload.tool」をコピーして「16」→「8」に書き換えて保存する。
〇\Arduino\hardware\attiny\avr\bootloaders\dummyフォルダ中にある「dummy.hex」ファイルを一つ上の「bootloaders」フォルダへ移動する。
3.2でATtiny85にブートローダーを書込みますが、そのままだとエラーが出ますので、エラーが出ないように以下の操作を行います。
〇\Arduino\hardware\attiny\avrフォルダ中にある「boards.txt」を開き、そのtxt中のATtiny85-8にATtiny85-16中の「bootload.tool」と「upload.tool」をコピーして「16」→「8」に書き換えて保存する。
〇\Arduino\hardware\attiny\avr\bootloaders\dummyフォルダ中にある「dummy.hex」ファイルを一つ上の「bootloaders」フォルダへ移動する。
2.2.4 スケッチ書き込みエラー回避方法
〇\Arduino\hardware\arduino\avrフォルダ中にある「platfrom.txt」をコピーし、\Arduino\hardware\attiny\avrフォルダに張り付ける。
以上の操作でエラー回避処置は終りです。
〇\Arduino\hardware\arduino\avrフォルダ中にある「platfrom.txt」をコピーし、\Arduino\hardware\attiny\avrフォルダに張り付ける。
以上の操作でエラー回避処置は終りです。
2.2.5 SoftwareSerialを使えるようにする
ATtiny85はピン数8本と少ないのでRxやTxと言ったシリアル通信用のピンが搭載されていません、がデジタルピンはSoftwareSerialライブラリでシリアル通信可能ですのでシリアル通信できると思ってました。しかしArduino IDE1.6.5にはなぜかSoftwareSerialライブラリが標準搭載されて無く、なんとかATtiny85でSerial通信をしたいので旧IDEからライブラリだけコピーすることに、方法は下記の通りです。
〇Arduino IDE1.0.5をDLし、librariesフォルダからSoftwareSerialのライブラリをコピーして1.6.5のlibrariesフォルダに張り付ける。
ATtiny85はピン数8本と少ないのでRxやTxと言ったシリアル通信用のピンが搭載されていません、がデジタルピンはSoftwareSerialライブラリでシリアル通信可能ですのでシリアル通信できると思ってました。しかしArduino IDE1.6.5にはなぜかSoftwareSerialライブラリが標準搭載されて無く、なんとかATtiny85でSerial通信をしたいので旧IDEからライブラリだけコピーすることに、方法は下記の通りです。
〇Arduino IDE1.0.5をDLし、librariesフォルダからSoftwareSerialのライブラリをコピーして1.6.5のlibrariesフォルダに張り付ける。
2.3 Arduinoを書込み装置にする
2.3.1 接続
図2の様にPC→USBケーブル→FTDI→Arduino pro mini→ライターの順に接続します。この時点でまだATtiny85は接続しません。
2.3.2 ArduinoIDEの設定
”ツール”→”ボード”→”Arduino pro mini”に、”ツール”→”プロセッサ”→”ATmega328 5V 16MHz”に、”ツール”→”ポート”→Arduinoと接続しているCOM番号に設定しスケッチを書き込める状態にします。
2.3.1 接続
図2の様にPC→USBケーブル→FTDI→Arduino pro mini→ライターの順に接続します。この時点でまだATtiny85は接続しません。
図2:接続状態 |
2.3.2 ArduinoIDEの設定
”ツール”→”ボード”→”Arduino pro mini”に、”ツール”→”プロセッサ”→”ATmega328 5V 16MHz”に、”ツール”→”ポート”→Arduinoと接続しているCOM番号に設定しスケッチを書き込める状態にします。
2.3.3 ArduinoISPの書き込み
“ファイル”→“スケッチの例”→“ArduinoISP”を選択し開く→“マイコンボードに書き込む”を押しArduinoISPを書き込みます。
以上で”Arduino pro mini”は書込み装置”Arduino as ISP”として機能します。
“ファイル”→“スケッチの例”→“ArduinoISP”を選択し開く→“マイコンボードに書き込む”を押しArduinoISPを書き込みます。
以上で”Arduino pro mini”は書込み装置”Arduino as ISP”として機能します。
3.とりあえずLチカしてみる
3.1 書込装置の変更ArduinoIDEでは“AVR ISP mkⅡ”と言う書込装置を使用して、通常の各Arduinoにスケッチの書き込みをしています。これを2.3で作った”Arduino as ISP”に変更します。やり方は“ツール”→“書込装置”→“Arduino as ISP”と変更するだけです。
※Arduino pro miniを書込装置から元に戻すには、上記逆手順で”Arduino as ISP”から“AVR ISP mkⅡ”に変更するだけで、従来通り普通にArduino pro miniとしてスケッチが書き込めます。
3.2 ATtiny85へブートローダーの書込み
そのままでもスケッチは書き込めますが、内部クロックが1MHzと遅く、delay(1000)はdelay(125)と同じ1/8の速度で動き、なんかスケッチが書き難いので8MHzにした方が後々楽です。
と言う事で、Arduino IDEのメニュー→“ツール”→“ボード”→“ATtiny85(8MHz)”と設定した後、“ツール”→“ブートローダを書込む”と選択してブートローダーを書込んでおきます。これで8MHzで動く様になりました。
そのままでもスケッチは書き込めますが、内部クロックが1MHzと遅く、delay(1000)はdelay(125)と同じ1/8の速度で動き、なんかスケッチが書き難いので8MHzにした方が後々楽です。
と言う事で、Arduino IDEのメニュー→“ツール”→“ボード”→“ATtiny85(8MHz)”と設定した後、“ツール”→“ブートローダを書込む”と選択してブートローダーを書込んでおきます。これで8MHzで動く様になりました。
※2016.05.05追記:ATtiny85(16MHz)やATmega328P(16MHz)にしてブートローダを書き込むと動かなくなるので注意が必要です!(ATmega328Pが2個動かなくなりました)
3.3 ATtiny85へスケッチの書込み
とりあえずLチカする為、以下のスケッチをArduinoIDEにコピペし“マイコンボードへ書き込む”を押します。書き込み1回目エラーが出てドキッとしましたが、何事も無かったと装い再トライしたら正常に書き込めました。(セーフ!)
とりあえずLチカする為、以下のスケッチをArduinoIDEにコピペし“マイコンボードへ書き込む”を押します。書き込み1回目エラーが出てドキッとしましたが、何事も無かったと装い再トライしたら正常に書き込めました。(セーフ!)
void setup( ) { pinMode(3, OUTPUT); } void loop( ) { digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); delay(1000); }
上手く上のスケッチが書込めればATtiny85のD3ピンがHIGH・LOWになり、作製したライター基盤上にあるLEDが1秒周期で点滅します。今回試しに使用した、ATtiny85を接続した8ピンICソケット以外の20ピンや28ピンICソケットについても、マイコンD3ピンの位置に動作確認用のLEDが接続されていますので、他のマイコンについても上記スケッチをそのまま使用して動作確認できます。
図2:LED点灯 |
図3:LED消灯 |
参考に秋月電子で購入可能なマイコンのスペック一覧です。
表2:マイコン性能一覧 | ||||
マイコン名 | FLASH | EEPROM | SRAM | 価格 |
ATmega328P(28ピン) | 32KB | 1KB | 2KB | 250円 |
ATmega168P(28ピン) | 16KB | 512B | 1KB | 200円 |
ATmega88(28ピン) | 8KB | 512B | 1KB | 170円 |
ATmega8(28ピン) | 8KB | 512B | 1KB | 180円 |
ATtiny2313(20ピン) | 2KB | 128B | 128B | 230円 |
ATtiny85(8ピン) | 8KB | 512B | 512B | 160円 |
ATtiny13A(8ピン) | 1KB | 64B | 64B | 50円 |
4.まとめ
性能低下が少なく、小さくて安いと言う事は電子工作にとって良いことです!さらにユニバーサル基盤に使えると言う事は、Arduinoの幅がグッと広がりました。小型化が必要な物には積極的に使っていきたいと思います!上手くいってよかった。励みになりますのでよければクリック下さい(^o^)/