「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



昨日、スケッチをアップするの忘れてた。

#include <MsTimer2.h>

#define lower1 (256L * 512)
#define limit1  (((255L*255L * 5 + lower1)) / 255L)
#define lower2 (256L * 128)
#define limit2  (((255L*255L * 5 + lower2)) / 255L)


int ledPin1 = 9;
int ledPin2 = 10;
volatile unsigned int cnt;


unsigned char wave_form[] = {
    0x80,0x83,0x86,0x89,0x8C,0x90,0x93,0x96,
    0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,
    0xB1,0xB3,0xB6,0xB9,0xBC,0xBF,0xC1,0xC4,
    0xC7,0xC9,0xCC,0xCE,0xD1,0xD3,0xD5,0xD8,
    0xDA,0xDC,0xDE,0xE0,0xE2,0xE4,0xE6,0xE8,
    0xEA,0xEB,0xED,0xEF,0xF0,0xF1,0xF3,0xF4,
    0xF5,0xF6,0xF8,0xF9,0xFA,0xFA,0xFB,0xFC,
    0xFD,0xFD,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,
    0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFD,
    0xFD,0xFC,0xFB,0xFA,0xFA,0xF9,0xF8,0xF6,
    0xF5,0xF4,0xF3,0xF1,0xF0,0xEF,0xED,0xEB,
    0xEA,0xE8,0xE6,0xE4,0xE2,0xE0,0xDE,0xDC,
    0xDA,0xD8,0xD5,0xD3,0xD1,0xCE,0xCC,0xC9,
    0xC7,0xC4,0xC1,0xBF,0xBC,0xB9,0xB6,0xB3,
    0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,
    0x99,0x96,0x93,0x90,0x8C,0x89,0x86,0x83,
    0x80,0x7D,0x7A,0x77,0x74,0x70,0x6D,0x6A,
    0x67,0x64,0x61,0x5E,0x5B,0x58,0x55,0x52,
    0x4F,0x4D,0x4A,0x47,0x44,0x41,0x3F,0x3C,
    0x39,0x37,0x34,0x32,0x2F,0x2D,0x2B,0x28,
    0x26,0x24,0x22,0x20,0x1E,0x1C,0x1A,0x18,
    0x16,0x15,0x13,0x11,0x10,0x0F,0x0D,0x0C,
    0x0B,0x0A,0x08,0x07,0x06,0x06,0x05,0x04,
    0x03,0x03,0x02,0x02,0x02,0x01,0x01,0x01,
    0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x03,
    0x03,0x04,0x05,0x06,0x06,0x07,0x08,0x0A,
    0x0B,0x0C,0x0D,0x0F,0x10,0x11,0x13,0x15,
    0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x24,
    0x26,0x28,0x2B,0x2D,0x2F,0x32,0x34,0x37,
    0x39,0x3C,0x3F,0x41,0x44,0x47,0x4A,0x4D,
    0x4F,0x52,0x55,0x58,0x5B,0x5E,0x61,0x64,
    0x67,0x6A,0x6D,0x70,0x74,0x77,0x7A,0x7D};//sine wave


void count_up() {
  cnt++;
}


void setup()  {
  cnt = 0;
  MsTimer2::set(1, count_up); // 1ms period
  MsTimer2::start();
} 


void loop()  {
  long led1,l11,l12,l13,l14,l15,l16;
  long led2,l21,l22,l23,l24,l25,l26;
  unsigned int c;
  
  while ((c = cnt) != cnt){
  }
  l11 = (long)wave_form[c % 256] * (long)wave_form[(c * 3 / 256) % 256];
  l12 = (long)wave_form[(c / 2) % 256] * (long)wave_form[(c * 5 / 32) % 256];
  l13 = (long)wave_form[(c / 8) % 256] * (long)wave_form[(c * 7 / 128) % 256];
  l14 = (long)wave_form[(c / 8) % 256] * (long)wave_form[(c /16) % 256];
  l15 = (long)wave_form[(c / 16) % 256] * (long)wave_form[(c * 9 / 128) % 256];
  l16 = lower1;
  
  l21 = (long)wave_form[(c * 13) / 16 % 256] * (long)wave_form[(c / 256) % 256];
  l22 = (long)wave_form[(c / 2) % 256] * (long)wave_form[(c * 9 / 32) % 256];
  l23 = (long)wave_form[(c / 4) % 256] * (long)wave_form[(c * 5 / 16) % 256];
  l24 = (long)wave_form[(c / 8) % 256] * (long)wave_form[(c * 3 / 64) % 256];
  l25 = (long)wave_form[(c / 16) % 256] * (long)wave_form[(c * 7 / 64) % 256];
  l26 = lower2;

  led1 = ((l11 + l12 + l13 + l14 + l15 + l16) / limit1);
  led2 = ((l21 + l22 + l23 + l24 + l25 + l26) / limit2);

  analogWrite(ledPin1, led1);  // flicking softly (bottom of fire)
  analogWrite(ledPin2, led2);  // flicking strongly (top of fire)
}


こんな感じで、D9とD10の2つのアナログ出力ピンに
それぞれ6個ずつ(うち直流成分が1個)の波形を
合成して、ろうそくの炎っぽいちらつきを表現して
みた。

片方ずつでもそれなりにちらちらした感じがろうそく
っぽい感じで点燈できる。

重畳させている各波形の周波数は、あえてマチマチに
なるようにしてあって、あたかも、乱数で明るさを
ちらちらさせているかのような瞬きが表現できてる
と思うんだけどな。


まだ、これに追加したい機能があるんだよな。
衝撃が加わると、炎が一瞬消えそうなくらいに小さく
なって、その一瞬後に「ポッ」と大きくなるような
表現とか、電池が切れ掛かってきたら、炎が不安定に
なりながら、光が小さくなっていく感じとか、そういう
のまで再現したいんだよな。

もう少し進んだら、ページにまとめておきたいところ。



そういえば、Hack A Dayに、
http://hackaday.com/2014/03/02/reverse-engineering-candle-flicker-leds-again/
ちょうど似たような感じのがあったんだけど、これは
正弦波を重ねるイメージじゃなくて、以前ノイズ発生
でも使った線形帰還シフトレジスタの乱数発生の
ロジックを使って、不安定に瞬かせる感じみたい。

同じ瞬きでも、ちょっと印象がちがうんだよな。




aitendoに、色々電源関係が。

http://www.aitendo.com/product/5902
MC34063は、ちょっと単価が高いかな。秋月でNJM2360
を買っちゃった方が安いな。

http://www.aitendo.com/product/9663
この手の、100V交流からのコンバータはかなりいい
んだけど、問題は、トランス周りも一緒に売って
くれないと、ナカナカ手が出ないかなぁ…

http://www.aitendo.com/product/1789
5V1Aで250円って言うのはいいなぁ。USBコネクタの
形だし。



http://www.nicovideo.jp/watch/sm22879933
eVY1であの楽器って… あれって、楽器だったのか?



http://www.huffingtonpost.jp/2014/03/03/mayor-of-minami-soma_n_4888187.html?utm_hp_ref=japan
もうじき3年経つんだな。
それにしても、この話を読むと、マスコミの取り組み
って言うのが、目を瞑りたくなるようなナニだな。
その目を瞑りたくなるような情報を欲しがっている
のが、自分たちなのかな?



コメント ( 0 )