2011-08-13
2011-05-15
■[今日のお買い物]トランジスタティーセット4巻。
トランジスタティーセット ?電気街路図? (4) (まんがタイムKRコミックス フォワードシリーズ)
- 作者: 里好
- 出版社/メーカー: 芳文社
- 発売日: 2011/05/12
- メディア: コミック
- 購入: 3人 クリック: 80回
- この商品を含むブログ (18件) を見る
2011-02-13
■[ぼやき]modxを導入しました
自分のホームページ(http://www.neontetra.net/)には今まで自作のCMSのようなものを使ってましたが、「サークルのホームページのCMSには萌えキャラがいるしmodxなんかいいんじゃないかな!ハハッ!」などと言ってしまいました。
ここは自ら使ってみねばならない、ということで試してみたらメチャクチャ使いやすかったので、導入してしまった次第。
Evolutionのほうです。たぶんこっちのほうが資料多い?
でも、CMSだといって、XOOPSやWordpressのようなものを想像すると死んじゃいます。だってただインストールしただけだと殺風景なページが出るだけなんですものw
しかし、自分のようにHTMLのテンプレートエンジン的な物を求めている人にとっては最高だと思います。自作CMSもどきのテンプレートと内容(どっちもHTMLにちょっとPHPのコードあるだけ)をコピペしただけで移行完了したですよ。そういうことでサイト自体はHTMLレベルで一緒ですw
2011-01-16
■[ぼやき]久しぶりに電子工作ネタ
新年一発目のネタ。珍しく実用品です。
主要部品は全部秋月で買えますねこれ。ATtiny13Aは小さいけどけっこう良い!
だらだらやって2週間くらいかかっているので、初めからオフタイマーくらい付いてるラジオを買った方が早いかもしれないw
ラジオと一切連動しないICF-M55の時計機能とは一体何だったのか。
■[電子工作]SONY ICF-M55にオフタイマーを付けた[後編]
回路図です。
とくに面白みはありませんw
マイコンはAVR ATtiny13Aを使います。秋月で一つ120円です。
ただし、プッシュスイッチは外部割り込みINT0のPB1に接続しないと、パワーダウンスリープからの復帰が出来ません。
ということで、プログラムはこんな感じです。
通常はパワーダウンスリープです。スイッチが押されたらタイマーを起動して約3.8秒ごとに割り込みがかかるので、時間になったらラジオの電源をオフにして再びパワーダウンスリープします。
クロックは、消費電力の削減とラジオの雑音防止のために、9.6MHzの内蔵クロックを128分周して75kHzに設定します。
/* * SONY ICF-M55にオフタイマーを付ける for ATtiny13A * by 99yen 2011/01/15 * WinAVR 20100110でコンパイル出来た */ #define F_CPU 75000 #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> #define INT_SW (1<<PB1) #define POWER_STATE (1<<PB3) #define POWERSW_FET (1<<PB4) #define OVF_CNT 484 // 約30分(実測) /* 電源ボタンをFETで押す */ static inline void push_sw(void){ PORTB |= POWERSW_FET; _delay_ms(300); PORTB &= ~POWERSW_FET; } /* 電源状態を取得する */ static inline uint8_t get_state(void){ uint8_t res; // AD変換開始 ADCSRA = (1<<ADEN | 1<<ADSC); // ADCオン 変換開始 loop_until_bit_is_clear(ADCSRA,ADSC); // 初回の結果は捨てる ADCSRA |= (1<<ADSC); // もう一回変換 loop_until_bit_is_clear(ADCSRA,ADSC); res = ADCH; // 結果取得 ADCSRA = 0; // ADCオフ // 0.75V以上でオンと見なす return (res > 64) ? 1 : 0; } /* 外部割り込み ボタン */ ISR(INT0_vect){ // 外部割り込みをオフ GIMSK = 0; // タイマ起動 TCCR0B = (1<<CS02 | 1<<CS00); // タイマを動かすためにスリープモードをアイドルに set_sleep_mode(SLEEP_MODE_IDLE); } /* タイマ溢れ割り込み */ ISR(TIM0_OVF_vect){ static uint16_t cnt = 0; if(cnt++ > OVF_CNT){ // 設定時間が経過した // 電源をオフにする push_sw(); _delay_ms(1000); } if(!get_state()){ // 電源がオフになった cnt = 0; // タイマ終了 TCCR0B = 0; // 外部割り込み許可 GIMSK = (1<<INT0); // スリープモード パワーダウン set_sleep_mode(SLEEP_MODE_PWR_DOWN); } } int main(void){ // クロック設定 CLKPR = (1<<CLKPCE); CLKPR = (1<<CLKPS2 | 1<<CLKPS1 | 1<<CLKPS0); // 128分周 9.6MHz/128=75kHz // ポート設定 DDRB = 0b010101; // 不要なポートは出力に PORTB = INT_SW; // プルアップ // 外部割り込み設定 MCUCR = 0; // Lowレベル割り込み GIMSK = (1<<INT0); // 外部割り込み許可 // ADコンバータ設定 ADMUX = (1<<ADLAR | 1<<MUX1 | 1<<MUX0); // 結果を左揃え ADC3 ADCSRA = 0; ADCSRB = 0; DIDR0 = (1<<ADC3D); // ADCに接続 // タイマ準備 TCNT0 = 0; TCCR0A = 0; TCCR0B = 0; // /1024のときは (1<<CS02 | 1<<CS00) TIMSK0 = (1<<TOIE0); // タイマ溢れ割り込み許可 // スリープモード パワーダウン set_sleep_mode(SLEEP_MODE_PWR_DOWN); _delay_ms(500); // 割り込み許可 sei(); while(1){ sleep_mode(); } return 0; }
OVF_CNTはオフタイマーの時間ですので、適時調整してください。
で、こんなんになりました。
とくに放送にノイズは乗ってない感じです。
マイコンが乗ってるので、他に何か良いアイデアがあれば教えてください。
くれぐれも改造は自己責任で。
■[電子工作]SONY ICF-M55にオフタイマーを付けた[前編]
一昨年の3月に買ったラジオにオフタイマーがないのが死ぬほど不便だったので、思い切ってオフタイマーを付けてみました。だって寝ちゃうと朝までつきっぱなしで電池なくなるんだもの…
あと、電池交換に手間取ると、時計と放送局のメモリが消えるので、バックアップ用のコンデンサを追加しました。
お約束ですが、改造は自己責任で。
まずは簡単そうな所から時計・メモリバックアップ用のコンデンサについて。
操作パネルの下部に1000μFと470μFのコンデンサがなぜかパラについているので、これに0.22Fの電気二重層コンデンサを追加しました。
で、オフタイマーの追加です。タクトスイッチを一つ追加して、それを押すと30分で電源が切れるようにします。
調べた結果、電源スイッチと電源のオンオフ状態が出ているピンがわかったので
、これらをマイコンで制御することにしました。
電源状態は以下の画像の所から引き出しました。
ここで注意なのですが、時計基板の電圧は電源の3Vと違い1.5Vなので、ピンの状態はADコンバータで読まなければなりません。
電源のオンオフは、電源ボタンをNch-MOSFETで電気的に制御します。
小信号用の2N7000(Fairchild)を使いました。当然秋月でも売っていますw
このラジオは内部がかなりスカスカなのでTO-92でも余裕でした。
3Vでスイッチングできる品種ならなんでもいいはずです。でも入手性はこれが一番いいかも。
バイポーラトランジスタについては試していません。
最終的に時計基板はこんな感じになりました。








