読者です 読者をやめる 読者になる 読者になる

光を受けたら自分も光るデバイス


光を受けたら自分も光るデバイス - YouTube


↓これ見て作りたくなった。

http://www.creativeapplications.net/arduino-2/constellaction-intricate-emergent-behaviour-using-autonomous-building-blocks/



光を受けると自分も光り、その光が周りに連鎖していくデバイス。

シンプルだけどすごくキレイ。


自分で作ってみたものは以下。



上記サイトの下の方に中身の写真がある。これと記事から推測。

3方向にCDSセルとLEDチップ。

真ん中にブザーが1つ。光る時に音を鳴らしてる。

ボタン型電池は1つ3Vで2個。

ATtiny24Aというマイコン

その他トランジスタとか。

CDSセルはarduinoの入門セットにもついてるくらいだから簡単だし、

LED光らせるのも簡単だからなんとかなるかなと。


というわけで作りました。



f:id:primevision:20140311202522j:plain

作ったやつの中身。
本物は3方向にCDSセルとLEDがあるけど、面倒なので2方向に。
半田づけも面倒なので最小限に。
ブレッドボードの小さいのがちょうどいい大きさだったのでそれをベースにした。

<パーツ>
PIC12F683
角型チップLED x2
CDSセル x2
ボタン型電池CR2032 x2
ボタンケース x2
ミニブレッドボード
16ホールユニバーサル基板
トランジスタ2SC1815Y
あと抵抗とか。



f:id:primevision:20140311202554j:plain

入れ物を3Dプリンタで作成。


f:id:primevision:20140311202601j:plain

電池つけて中に入れる。


f:id:primevision:20140311202606j:plain

パカッとフタを閉める。

5個作って力尽きたけど、たくさん作ればキレイになるはず。



マイコン
arduino使うと大きくなっちゃうしお金もかかるのでPICを使う。

初めてだったので全く分からなかったけど適当に試行錯誤してたら動いた。

最初PIC16F88を使ったけどそんなにピン要らないし、ちょっと場所取るし、お金もかかってきちゃうので途中から小さいPIC12F683に変更した。

ちなみに安かったからPIC12F629も買ったんだけど、これは使いたい関数が使えなかった。。

PICへ書き込むプログラムはmikroCC言語で。
以下ソース。

void main() {

     unsigned short int i;
     unsigned int val;
     unsigned int in1,in2;
     int flag = 0;

     OSCCON.IRCF2=1;
     OSCCON.IRCF1=1;
     OSCCON.IRCF0=1;


     ANSEL.ADCS2=1;
     ANSEL.ADCS1=0;
     ANSEL.ADCS0=1;
     
     ANSEL.ANS1 = 1;
     ANSEL.ANS3 = 1;
     
     GPIO = 0b00000000;
     TRISIO = 0b00010010;

     val = 0;

    do {
       in1 = ADC_Read(ANS3);
       in2 = ADC_Read(ANS1);
       if (in1 >= 500 && in2 >= 500) {
          GPIO.F2 = 0;
          Delay_ms(100);
          flag = 0;

       } else {
         if (flag == 0) {
            flag = 1;
            Delay_ms(50);
            GPIO.F2 = 1;
            Delay_ms(100);
            GPIO.F2 = 0;
            Delay_ms(1000);
          }
       }

    } while(1);
}

これ以外にプロジェクト設定でMCLRをDisabledにしたかな。
「ADC_Read」というのがPIC12F629では使えなかった。
「in1」は照度センサーからの入力で大きいほうが暗い。
500という数字は何パターンか試してこの値がうまくいったというだけ。

PICへの書き込みはPIC Programmer V4で。


8ピンPICマイコンの使い方がよくわかる本 (基礎入門)

8ピンPICマイコンの使い方がよくわかる本 (基礎入門)