curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン

 

お疲れ様です。高橋です。

先日実験したArduinoで赤外線リモコンの問題点、それはArduino UNOを使ってしまう事。

IMG_5613

リモコンのためにArduino UNOを1個消費してしまっては、2,940円(Arduino)+50円(赤外線受光部)+10円(赤外線LED)の合計3,000円と高コストになってしまいます。これは大問題です。

ATTiny13Aとは

既に赤外線の発光パターンはわかっているので、ボタンを押したらそのパターン通りに赤外線LEDを発光するためだけのマイコンがあれば良いのです。

こいつは「ATTiny13A」といいます。Arduino UNOの心臓部であるATMEGA328P-PUを販売しているATMEL社が出している、小さいマイコンです。秋月価格で50円。安い代わり、プログラムを書き込める容量は1,024バイトしかありません。でも1,024byteあれば、決まったパターンでLEDを明滅させる事くらい出来ると思う。

ArduinoIDE1.6.4でATTiny13Aを使えるようにする

Arduino IDEでATTiny13Aを使えるようにするため、kosakalabさんの「Arduino IDEでATtiny他の開発(Arduino-ISP編)」を参考にさせてもらいました。

上記サイトを参考にした手順は下記の通り。

  1. hardware.zipをダウンロードする
  2. 解凍するとhardwareが出来る。
  3. hardwareの中の「attiny」の中に「avr」というディレクトリを作成
  4. 「attiny」に元々入っていたファイルやディレクトリをavrの中に移動
  5. ArduinoIDEのドキュメントの保存場所(e.g. C:\Users\hoge\Documents\Arduino)にhardwareディレクトリを移動
  6. 「C:\Program Files (x86)\Arduino\hardware\arduino\avr」の中に入っている「platform.txt」を、「C:\Users\hoge\Documents\Arduino\hardware\attiny\avr」にコピー
  7. 「C:\Users\hoge\Documents\Arduino\hardware\attiny\avr」の「boards.txt」にあるATTiny13系だけ、コメントを外す。
  8. 下記をboards.txtに付け加える(これをやらないとエラー)
  • attiny13-1.upload.tool=arduino:avrdude
  • attiny13-8.upload.tool=arduino:avrdude

そして、Arduino UNOにArduinoISPスケッチを書き込んだら、ボード「ATTiny13(1.2でも9.6でも)」に、書込装置「Arduino as ISP」モードでATTiny13A用のスケッチを書き込みます。

まずはLEDをチカチカさせる確認

回路は下記の通り。

051002  スケッチは下記の通り。

void setup( ) {
   pinMode(3, OUTPUT);
}
 
void loop( ) {
   digitalWrite(3, HIGH);
   delay(150);
   digitalWrite(3, LOW);
   delay(150);
}

ATTiny13Aは2番のピンがデジタル3番です。051003

150ミリ秒毎にLEDを点滅させてますが、これで体感的に1秒毎に点滅しています。

最初は参考サイト通りに1000ミリ指定してたのですが、7~8秒掛かってる感じがしたので、調整しました。内部クロック周波数が原因?とりあえず放っておきます

赤外線LEDを使ってみる

LED点滅はうまくいったので、とりあえずリモコン化。タクトスイッチを押すと5Vなり3.3Vなりが通電するようにしてます。

スケッチ

unsigned int data[] = {908, 445, 61, 49, 63, 163, 60, 50, 63, 49, 63, 50, 60, 50, 63, 50, 62, 161, 63, 163, 60, 50, 62, 164, 60, 163, 63, 50, 60, 163, 62, 161, 63, 50, 63, 50, 60, 163, 62, 50, 60, 163, 63, 162, 62, 50, 62, 50, 60, 51, 62, 164, 60, 50, 63, 164, 60, 50, 63, 50, 62, 161, 62, 164, 60, 163, 62, 4098, 907, 218, 62, 9611, 908, 218, 63};
void setup( ) {
  pinMode(3, OUTPUT);
  int dataSize = sizeof(data) / sizeof(data[0]);
  for (int cnt = 0; cnt < dataSize; cnt++) {
     unsigned long len = data[cnt] * 10;
     unsigned long us = micros();
     do {
       digitalWrite(3, 1 - (cnt & 1));
       delayMicroseconds(8);
       digitalWrite(3, 0);
       delayMicroseconds(7);
     } while (long(us + len - micros()) > 0);
  }
}
void loop( ) {
}

回路図

051004

とりあえず赤外線LEDではなく、普通のLEDを使ってみたのですが、やはり明滅が遅すぎる。これだとリモコンとして機能しません。原因究明は、またいずれ。

 

 

以上、よろしくお願い致します。

 - 電子工作

  関連記事

音階LED実装 #4

お疲れ様です。高橋です。 今日は音階LEDのIC-IC間、GNDの敷設、そして1 …

音階LEDの再設計

お疲れ様です。高橋です。 本日帰宅途中に電車をぼーっと待っている時、ふと、音階L …

マウスの位置座標を使った電子楽器を作ってみた。

お疲れ様です。高橋です。 先日分解したマウスを使って、位置座標の取り出しと、取り …

耳コピを簡単にするミキサー構想

お疲れ様です。高橋です。 私が普段耳コピをする時は、iPhoneで音楽を鳴らしな …

FM音源 FB-01の動作試験

お疲れ様です。高橋です。 先日、会社の大大大先輩からFB-01を貰ったので、本日 …

上司離着席検知システムの作り方

お疲れ様です。高橋です。 上司離着席検知システムの作り方は下記の通りです。 必要 …

Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験

お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …

YMZ294のMIDI音源化と、YMZのピン数圧縮

お疲れ様です。高橋です。 YMZで使うピン数を11本から6本に減らす事によって、 …

Raspberry Pi2 model B

お疲れ様です。高橋です。 今年見た初夢、「猫×おもちゃ×動画×アプリ」の実現のた …

満員電車内でのオナラと検知 #5

お疲れ様です。高橋です。 マイコンと5V給電 先日実験に成功した硫化水素センサー …