Arduino用ブートローダ/スケッチライタの製作(9)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ
2014年06月29日 公開。
2015年10月07日 外部クロックモードで書き込みを行わないよう、警告を追加した。
2015年10月15日 スケッチを書き込むのに使う、サンプルスケッチを掲載した。
2015年12月08日 「ATtiny85を使った作例」の項を追加した。

6-9-5.ATtiny44/84/45/85にスケッチを書き込む方法

前のページでは、Arduino IDEにATtinyサポートファイルをインストールし、ATtiny44/84/45/85のスケッチの開発環境を準備しました。このページでは、その開発環境を使って、実際にサンプルスケッチを書き込んでみます。

以下の様な、LEDを点滅させるスケッチを用意したので、Arduino IDEで入力し、LCHIKA.inoというファイル名で保存してください。

const int LedPin=0;

void setup()
{
  pinMode(LedPin,OUTPUT);
} // setup

void loop()
{
  digitalWrite(LedPin,HIGH);
  delay(1000);
  digitalWrite(LedPin,LOW);
  delay(1000);
} // loop

このスケッチは、D0端子に接続したLEDを、2秒周期(点灯1秒、消灯1秒)で点滅させるものです。Arduino IDEにサンプルとして付いてくるBlinkというスケッチでは、D13端子についているLEDを点滅させていますが、ATtiny44/84/45/85には、D13端子はないので、D0端子を使っています。使用する端子が違う以外は、Blinkスケッチと同じ内容のスケッチです。

次にこのスケッチを、実際にマイコンに書き込んでみます。以下の手順でスケッチを書き込んでください。

【手順1】 CN1にUSBシリアル変換器が接続されていない事と、CN2にジャンパピンが付いていない事を確認する
写真34(再掲)、CN1とCN2に何もつながっていない事を確認
↑ 画像をクリックすると拡大
写真34(再掲)、CN1とCN2に何もつながっていない事を確認

USBシリアル変換器から電源が供給されている状態でジャンパピンの設定を変えると、電源がショートする事があり、故障の原因になります。過電流保護用のポリスイッチを付けているので、簡単には故障しない設計にはなっていますが、保護回路を過信する事は禁物です。

【手順2】 必要ならCN4にジャンパピンを付ける
写真35(再掲)、CN4へのジャンパピンの取り付け
↑ 画像をクリックすると拡大
写真35(再掲)、CN4へのジャンパピンの取り付け

CN4(ENABLE BUZZER)にジャンパピンを付けると、スケッチの書き込み時に、書き込みの様子を音でモニターできます。音が出るとうるさい場合は、CN4にはジャンパピンを付けないでください。

【手順3】 CN6(ATtiny44/84の場合)またはCN7(ATtiny45/85の場合)にジャンパピンを6個接続し、CN5にはジャンパピンが付いていないことを確認する
写真51、ATtiny44/84の場合
↑ 画像をクリックすると拡大
写真51、ATtiny44/84の場合
写真52、ATtiny45/85の場合
↑ 画像をクリックすると拡大
写真52、ATtiny45/85の場合
【手順4】 USBシリアル変換器をCN1に接続し、さらにUSBケーブルでパソコンに接続する。
写真53、USBシリアル変換器とUSBケーブルの接続
↑ 画像をクリックすると拡大
写真53、USBシリアル変換器とUSBケーブルの接続

使用するUSBシリアル変換器は、5V出力の物でも3.3V出力の物でも構いません。上の写真に写っているのは、5V出力と3.3V出力を切り替えられる物です。

電源の入ったパソコンにUSBケーブルを接続すると、LED1(POWER)が点灯します。また、LED6(HEARTBEAT)が周期的に明るくなっ たり暗くなったりします。このようにLED6が周期的に明暗を繰り返すのはArduinoISPのファームウェアが正常に動作している印です。

【手順5】 SW1をArduinoISP側に切り替える
写真54、SW1をArduinoISP側に切り替える
↑ 画像をクリックすると拡大
写真54、SW1をArduinoISP側に切り替える

注:SW1(およびSW2、CN4)は電源が入っているときでも操作して構いません。ただし、ヒューズビットやスケッチの書き込みの最中には操作しないでください。

【手順6】 Arduino IDEを起動し、マイコンに書き込みたいスケッチを開く

注:下の図では例として先ほど紹介したLEDを点滅させるスケッチ(LCHIKA.ino)を開いています。

図46、書き込みたいスケッチを開く
図46、書き込みたいスケッチを開く
【手順7】 ツール→シリアルポートメニューでUSBシリアル変換器のポート番号(COM番号)を指定する

注:下の図ではCOM8を選んでいますが、皆さんの環境に合わせて、COM番号を選んでください

図47、シリアルポートを選択する
図47、シリアルポートを選択する
【手順8】 ツール→マイコンボードメニューでマイコンの種類とクロック周波数を選ぶ

注:下の図ではATtiny85の1MHzクロックを選択していますが、皆さんの使いたいマイコンの種類とクロック周波数を選んでください

図48、マイコンの種類とクロックを選択する
図48、マイコンの種類とクロックを選択する

この時に、外部クロック(external)のモードを選ばないでください。外部クロックを選択した状態でヒューズビットの書き込み(後述)を行うと、それ以降そのマイコンに対しては、Arduino用ブートローダ/スケッチライタでは書込みが行えなくなります。必ず内部クロック(internal)のモードを選択してください。

【手順9】 ツール→書込装置メニューでArduino as ISPを選ぶ
図49、Arduino as ISPを選択
図49、Arduino as ISPを選択
【手順10】 CN3のZIFソケットにスケッチを書きこみたいマイコン挿入し、レバーで固定する
写真55、ATtiny44/84の場合
↑ 画像をクリックすると拡大
写真55、ATtiny44/84の場合
写真56、ATtiny45/85の場合
↑ 画像をクリックすると拡大
写真56、ATtiny45/85の場合

上の写真を参考にして、ZIFソケット左上のレバーを立てた状態で、マイコンを挿入してください。この際、マイコンの向きを反対にしないように注意してください。

マイコンがZIFソケットに挿入できたら、ZIFソケットのレバーを倒して、マイコンを固定してください。

写真57、ATtiny44/84の場合
↑ 画像をクリックすると拡大
写真57、ATtiny44/84の場合
写真58、ATtiny45/85の場合
↑ 画像をクリックすると拡大
写真58、ATtiny45/85の場合
【手順11】 ツール→ブートローダを書き込むメニューを選んでヒューズビットを書き込む
図50、ブートローダを書き込むメニューを選択
図50、ブートローダを書き込むメニューを選択

注:ATtiny44/84/45/85では、ブートローダを使いません。この操作で書き込まれるのは、ヒューズビット(クロック周波数などの各種設定)です。一度ヒューズビットを書き込んだマイコンの場合、クロック周波数を変更しない限り、手順11は省略できます

写真59、ヒューズビット書き込み時のLEDの状態
↑ 画像をクリックすると拡大
写真59、ヒューズビット書き込み時のLEDの状態

ヒューズビットの書き込み後に次のようなメッセージが出ますが、無視してかまいません。

図51、無視していいメッセージ
図51、無視していいメッセージ
【手順12】 ファイル→書込装置を使って書き込むメニューを選んで、スケッチを書き込む
図52、書込装置を使って書き込むメニューを選択
図52、書込装置を使って書き込むメニューを選択

書込装置を使って書き込むメニューを選択すると、コンパイル後にスケッチの書き込みが始まります。

写真60、スケッチ書き込み中のLEDの状態
↑ 画像をクリックすると拡大
写真60、スケッチ書き込み中のLEDの状態

スケッチの書き込み後に次の様なメッセージが出ますが、無視してかまいません。

図53、無視していいメッセージ
図53、無視していいメッセージ
【手順13】 ZIFソケットのレバーを起こして、マイコンを抜き取る

以上で、スケッチの書き込みが終わりました。続けて同じ型番のマイコンに、同じスケッチを書き込む場合は、手順10以降を繰り返してください。

広告

6-9-6.スケッチを書き込んだATtiny44/84/45/85を動かしてみる

ATtiny44/84/45/85にスケッチを書き込んだら、ブレッドボードに回路を組んで、動作確認をしてみましょう。具体的にどういう回路を組むかは、どんなスケッチを書き込んだかによりますが、ここではD0に接続したLEDを点滅させるスケッチを書き込んだ場合の動作テストの方法について説明します。

LED点滅スケッチを動作させる場合の配線図を次に示します。

図54、LED点滅スケッチを動かす場合の配線図
図54、LED点滅スケッチを動かす場合の配線図

ATtiny44/84/45/85は、内蔵CR発振器をクロックに使う設定になっていますので、外部に水晶発振子やセラロックなどは不要です。

また、RESET端子には内蔵プルアップ抵抗が入っているので、外部プルアップ抵抗がなくても、一応は動作します。ただ、内蔵プルアップ抵抗の抵抗値が高いため、ノイズで誤作動するのが嫌な場合は、図54の様に10kΩのプルアップ抵抗を付けておく方が無難です。

0.1μFのコンデンサは、電源のパスコンですので、セラミックコンデンサを使い、電源端子の近くで配線してください。

図54の回路をブレッドボードに組んだ時の写真を次に示します。

写真61、ATtiny84でLEDを点滅させた場合
↑ 画像をクリックすると拡大
写真61、ATtiny84でLEDを点滅させた場合
写真62、ATtiny85でLEDを点滅させた場合
↑ 画像をクリックすると拡大
写真62、ATtiny85でLEDを点滅させた場合

写真にArduino Unoが写っていますが、単に5Vの電源として使っています。また、電源を3.3Vに差し替えても、LEDが少し暗くなるだけで、正常に使えます。

写真ではLEDの点滅の様子が分かりませんが、1秒点灯→1秒消灯→1秒点灯→1秒消灯…と点滅しています。

6-9-7.ATtiny85を使った作例

ピカピカ光るクリスマスツリーおばけの製作(1)の記事に、ATtiny85を使って、クリスマスツリーのイルミネーションの制御を行った作例を紹介しています。ATtiny44/84/45/85を使った小型マイコン基板の製作法の参考になると思いますので、是非読んでください。

写真63、ATtiny85で制御したクリスマスイルミネーション
写真63、ATtiny85で制御したクリスマスイルミネーション
写真64、ATtiny85を用いたLED制御基板
↑ 画像をクリックすると拡大
写真64、ATtiny85を用いたLED制御基板
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタ(完成品) 商品名 Arduino用ブートローダ/スケッチライタ(完成品)
税抜き小売価格 3600円
販売店 スイッチサイエンス マルツ
サポートページ
Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。