ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

今日の買い物

2010年02月20日 23時50分59秒 | 電子工作
今日は朝から石川町の相模電子でeZ430-F2013をゲットし、
そのまま秋葉原へ行き秋月電子でSTM8Sを買い、
すぐさま新宿へ行ってパズルこんわかいに参加しました。
今回は初めての記録係なので、写真撮りまくりでした。

で、今日の買い物がこれです。

知恵の輪の自作

2010年02月14日 22時40分09秒 | パズル
知恵の輪を自作してみましょう。
ロシアのフォレストパズルと言う知恵の輪を作ります。
オリジナルはY字型の木の枝で出来ていますが、形の良い木の枝を手に入れるのは難しいので、百円ショップで材料を調達します。

では、まず適当なY字型の品物を見つけます。
ここではマッサージ器を使います。


それと、適当な長さのひも。ポリエステル製だと、溶かしてくっつける事が出来ます。


リングはカーテンレールでも良いのですが、東急ハンズでアクリルリングというのを見つけました。


材料はこの3つだけ。
まず、Y字の中央に穴を開けます。


リングとひもを組み合わせます。


リングをY字に通してひもを穴に通します。


最後に、ひもの両端をハンダゴテなどの熱で溶かしてくっつけます。


これで、完成です。では、リングを外してみて下さい。

ikkeiplexing

2010年02月13日 23時58分42秒 | Arduino
ikkeiplexing ( Charlieplexing by ikkei )をオシロで見て実測してみました。
すると、各セグメントの電流は最小8.7mA、最大10.7mAしか流れていませんでした。しかもその差がたった2mAですから、輝度差が無かったはずです。しかし、「8」の時はアノード側に60mAくらい流れているはずで、よく流せる物だと思います。
ACアダプタを使うと、最小11.7mA、最大12.3mAですから、確かにその差は0.6mAと小さくはなっているので、効果が有ることが分かります。

と言うことで、もっと電流を流せば、もっと効果が分かるだろうと、抵抗値を180Ωから100Ωに替えて、配線を整理しました。


回路はオリジナルから少し変更しています。8個まではDPのラインをコモンのドライブに使用しません。
こうすることによってDPを使用しない場合に、単純にDPの配線を外して、8本に出来ます。



ところが、やはりトランジスタの効果はあまり顕著に見えません。おそらくAVRのドライブ能力が高いのだと思われます。恐るべしAVR。

とりあえず、表示ドライバの様なものを作ってみました。
配列に入れた内容をタイマ割り込みで各桁を表示するようにしてみました。
動画のアップロードがうまくいかないので、ちょっと長いですがスケッチだけでも上げておきます。

/* 
 Charlieplexing by ikkei
 7segment display  2010.02.14
*/

#include <MsTimer2.h>

#define line1 12
#define line2 11
#define line3 10
#define line4 9
#define line5 8
#define line6 7
#define line7 6
#define line8 5
#define line9 4


const byte LINE[ 8 ][ 9 ] = { 
{ line1, line2, line3, line4, line5, line6, line7, line8, line9 },
{ line2, line1, line3, line4, line5, line6, line7, line8, line9 },
{ line3, line1, line2, line4, line5, line6, line7, line8, line9 },
{ line4, line1, line2, line3, line5, line6, line7, line8, line9 },
{ line5, line1, line2, line3, line4, line6, line7, line8, line9 },
{ line6, line1, line2, line3, line4, line5, line7, line8, line9 },
{ line7, line1, line2, line3, line4, line5, line6, line8, line9 },
{ line8, line1, line2, line3, line4, line5, line6, line7, line9 } };
//                      ABCDEFG.
const byte SEG[17] = { B11111100,  //    -A-
                      B01100000,  //   F   B
                      B11011010,  //   |-G-|
                      B11110010,  //   E   C
                      B01100110,  //    -D-
                      B10110110,
                      B10111110,
                      B11100000,
                      B11111110,
                      B11110110,
                      B11101110,
                      B00111110,
                      B10011100,
                      B01111010,
                      B10011110,
                      B10001110,
                      B00000000 };

byte DIGIT[8] = { 0, 0, 0, 0, 0, 0, 0, 0};
int count;
char data;
int i;
byte segment;
long m = 0;


void digit_out( int digit, byte data ){
 digitalWrite( LINE[ digit ][ 0 ], HIGH);
 pinMode( LINE[ digit ][ 0 ], OUTPUT);  
 if ( data > 15 ){
   data = 16;
 }  
 segment = SEG[ data ];
 for ( i=0; i <8; i++){ 7 ){
   count = 0;
 }
}

void setup(){
 alloff();
 count = 0;
 MsTimer2::set( 1, LED_digit); // 1msごとにLEDの桁を表示
 MsTimer2::start();
}

void loop(){
 store (m);
 m++;
}




Windows Update

2010年02月12日 12時11分42秒 | PC
今朝Excelファイルを開いたら、書いたはずのグラフが消えています。
そう言えば、昨日の朝PCが勝手に再起動していました。
どうやら、Windows Updateの仕業です。
脆弱性か何か知らないけど、人が寝てる間に保存もしないで勝手に再起動してしまうなんて、それはないでしょう。
こういう場合、FireFoxは落ちる前の状態に復帰しましょうかと言ってくれたけど、Excelは何も言わない。自分のやった後始末も出来ないなんて...orz

どうすれば、このWindows Updateをやめさせるか、調べたあげく自動更新を無効にしました。
でも以前、Updateしろと言うしつこい警告表示を出さないようにしたはずなのに、おかしいなぁ。