アットウィキロゴ
javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。

バーサライタ3

回転型を小型化しました。
バーサライタ2からの具体的な改良点は

表面実装LEDの利用
LED用の抵抗値を下げた
プログラム改良
DCモータの利用(前回はファンの上に引っ付けた)

です。
前回から引き続き課題となっているのが

振動がある(重心が中心にこない)
電源が2ついる(制御+LED部、モータ部の2つ)

振動については、かなり慎重に重心をあわせたつもりでしたが、
解決できませんでした。
慎重にとはいえ手あわせなので、次回はしっかり計算して重心をあわせます。

動画を用意してみた

ご存じの通り本当は、バーサライタなんですが、家のPCでは、”ばー皿板”と
変換されたのでそのまま使ってみた。

ハードウェア(部品)

MCU:PIC16F648a
表面実装LED(青)7個
赤外線LED、フォトトランジスタ N101A S601A
トグルスイッチ
ボタン電池 CR2032
電池ボックス(CR2032用)

プログラム

いままでのは、ひどかったのでちょっとちゃんと書いてみた。
turu.c

void number2(int num,int i){
	output_bit(LED_1,font[num]&i);
	output_bit(LED_2,font[num+1]&i);
	output_bit(LED_3,font[num+2]&i);
	output_bit(LED_4,font[num+3]&i);
	output_bit(LED_5,font[num+4]&i);
	output_bit(LED_6,font[num+5]&i);
	output_bit(LED_7,font[num+6]&i);
	output_bit(LED_8,font[num+7]&i);
}

1回分の表示関数。
こいつを繰り返し何度も呼ぶことで文字などを表示する.

void draw_font(char moji){
	int i;
	int mask=0b10000000;
	for(i=0;i<8;i++){
		number2((moji-'a')*8,mask>>i);//delay_us(10);
		//number(0);
		delay_us(1);
	}
}

1文字表示の関数。mojiには、アスキーコードを入れる。

void draw_string(char *moji){
	int num;int i;
	num=strlen(moji);
	for(i=0;i<num;i++){
		draw_font(moji[i]);
		delay_us(100);
	}
}

文字列表示の関数。文字列を渡すと文字列を表示してくれる。

void main(){
	int i;
	long time=0;
	char aa[]="welcome";
	while(1){
		while(input(FOT_T)==1) ;//赤外が合わさるまで待つ
		time++;for(i=0;i<110;i++) delay_us(time);//表示位置の移動
		draw_string(aa);//表示
	}
}

赤外が合わさると文字列を表示する。これを繰り返すことで、文字が浮き上がって見える.

回路

相変わらず、フォトトランジスタで開始位置を検出しています。
世の中には、磁力(たぶん地磁気)で開始位置を検出しているバーサライタもあるようです。
これは使いたいなぁ。次回要検討。

戻る

最終更新:2010年01月31日 15:39