電子工作94 「椅子から立ち上がり歩け」音声警報器の製作

Electronics Project 94 – Stand-up & Walk Informing Voice Alarm

 

 

概要   Introduction

   最近、椅子に長時間座っていると体に悪影響を及ぼすことが分かってきた。体の代謝機能や血液の流れに悪影響を与えて深刻な病になる確率が大きくなるのだという。実際、私自身が椅子に何時間も座わる生活をしているので心配になって来たのである。何でも30分に1回は立上がって歩き回ることが良いという。そこで音声で30分毎(1時間)に知らせてくれる装置」を製作してみた。

This device helps inform you to stand up (and walk) from the chair on which you are sitting at a certain interval (here 30 minutes or 1 hour) in order to prevent probable serious diseases caused by the bad effects of long-time sitting on your metabolic function and blood flow. In the circuit below, 12F629 sends a signal to turn on the LED of Photo Mos Relay which then leads to the closure of SW-speak for triggering Sound Recorder Module-M10, producing a voice message you prerecorded, such as 'It's time, Stand-up and Walk Around'. As shown, two AA batteries (3.V) power up 12F629 and the Sound Recorder Module uses two button cells (LR1130). To record your message, speak to the small microphone while pressing SW-record (max 10 seconds). The measured power consumption of the 12F629 system is 4-5mA when it is annoncing a message, 0.5-0.6mA when there is no anouncement, and 0.06mA when the system enters the sleep mode after the end of program. Therefore, the two AA batteries are considered enough for a reasonably long-time drive of the system.

 

回路図   Circuit Diagram

  下図のように、電源として単3アルカリ電池2本を使う。Time Select SW(スイッチ)で音声発生時間を30分か1時間毎を選ぶことが出来る。Photo MOS Relayは12F629のポートで直接ドライブ出来、尚且つONの時の抵抗値が充分小さいのでほぼ機械式SWのように使える(実測でON; 3.4 ohm、OFF;大きすぎてテスタで測定不能)。つまり、GP0をHighにすると、ピン3と6の間が導通するのでこれを音声発生モジュールのSW-speakの代わりに使う。録音はSW-recordを押しながら10秒間可能である。この音声発生モジュール(7年ほど前に¥290で購入)はLR1130というアルカリポタン電池(1.5V)2個で駆動されている。

 

実験中   Testing using experimental board

 写真の真中に12F629が見える。左手の黄色ボタンがReset SW、 その下にあるのがTime Select SW、右側の小さい四角いものはPhoto MOS Relay、そして下の部分に音声発生モジュールが見える。このボードにはDC3Vが供給されている。モジュールの電源は別にボタン電池から供給される。

 

音声発生モジュール: 上部にボタンSWが2個見える。下の黒い導線の付いたSWは録音用で、押しながら右下のマイク(右側の円形のもの)に向かって10秒間話し録音する。その間小さいLEDが点灯する。再生は赤い導線の付いたSWを一瞬押して行う。この再生SWの2つの端子にPhoto MOS Relayの3と6の端子を接続すれば12F629を使う音声発生システムは完成する。左下の丸いものはスピーカである。ボード上にはボタン電池2個が見える。 

Sound Recorder Module-M10. Similar modules are available in market. Some are very cheap, starting from a couple of dollars.

 

結果&コメント

1)     正常に動作することが確認された。

2)     類似の音声録音再生モジュールが300―1000円くらいで出回っている。今回使ったものは音量がちょっと小さい。

3)     12F629の回路の実測電流消費は、音声再生時最大で4−5mA、時間待ち時が0.5−0.6mA、sleepに入ると0.06mAWDTE=Enable)に低下する。このsleep状態は最大で18時間位まで設定出来る。したがって、電源電池の消費はかなり抑えられるはず。

4)     下に記述のプログラム中のコマンドSleep periodのperiodは秒で指定し、0から最大で65535秒(18時間)まで可能で、12F629は低消費電流モードになり、Watch Dog Timer(WDTE)がリセットされると低消費電流モードは解除される。便利なものである。

5)     実用機を製作して使ってみたい。どんな効果が出るか楽しみ。

6)     費用は大体1000円ほど。

 

プログラム   Program

電源ONで、12F629のピン2(GPIO.5)のTime Select SWの状態を読み、T30minTimerかT1hrTimerに飛び、それぞれのルーチン内で30分、または1時間毎に立ち上がって歩け」趣旨(自分で好きなように作成する)の指令を音声で教えてくれる。これをnで指定された数だけ繰返す。終了したら finishルーチンに進み、立ち上がって歩け」の指令を3回出し、コマンドSleep periodで12F629をsleep状態にして電流消費を低下させて終わる。Sleepコマンドを使う時は、Watch Dog Timer(WDTE)がEnableでないといけない

At first, the program reads Time Select SW (30min or 1hr). If it is 30min, jump to T30minTimer (30min timer), otherwise to T1hrTimer (1-hr timer). In each routine, time counting starts up to 30 minutes or 1 hour, and then a voice message is announced. This unit routine is repeated 'n' times and then jumps to the 'finish' routine where the voice message is repeatedly announced three time. After that, the program enters the sleep mode using PBP's command 'Sleep' with which the 12F629 system enters the low-power consuming sleep mode under the Enable state of its Watch Dog Timer. This sleep mode can last up to 18 hours.

'********************************************

'ChairStndUpAlarm.bas  2016.12.12

'Using 12F629 and PicBasic Pro V2.50A

'***********************************************

'Pin 1: Vdd(3V)

'Pin 8: Vss(GND)

'Pin 7: GPIO.0 - Drive Relay for Sound Recorder Module

'Pin 6: GPIO.1 - NC

'Pin 5: GPIO.2 - NC

'Pin 4: GPIO.3 - Reset

'Pin 3: GPIO.4 - NC

'Pin 2: GPIO.5 - Time Selector 30 min or 1 hr

'*************** Program *************************

CMCON=7  'Comparator off

SoundON var GPIO.0

TimeSelect var GPIO.5

TRISIO=%101000

m var word

n var byte

 

High SoundON   'この3行で0.5秒間SW-speakを押す

Pause 500  '0.5 sec for pressing SW-speak

Low SoundON

 

If TimeSelect=1 Then Goto T30minTimer   'Time Select SWが30分か1時間かを調べ、YesならT30minTimerへ、そうでないならT1hrTimerへ飛ぶ

Goto T1hrTimer

 

T30minTimer   '30-min timer

For n=1 to 24  '30min x 24 times=12 hours  'この行と下のNext nで時間タイマの外枠を構成

For m=1 to 18300  'measured value? for 30 min  '以下の3行が時間タイマ

Pause 100  '0.1 sec

Next m

High SoundON   '以下の3行でSW-speakを押す

Pause 500

Low SoundON

Next n

Goto finish

 

T1hrTimer:   '1-hr timer

For n=1 to 12  '1hr x 12 times=12 hours

For m=1 to 36600  'for 1 hr

Pause 100  '0.1 sec

next m

High SoundON

Pause 500

Low SoundON

Next n

Goto finish

 

finish:   'Finishing routine  終了時のルーチン

For m=1 to 3   'この行と下のNext m間でSW-speakを押す」を3回繰返す

High SoundON

Pause 500  '0.5 sec

Low SoundON

Pause 5000

Next m

Sleep 43200  '12 hrs =13600x12 in second under Watch dog timer ON   'ここでSleep periodを入れると電流消費がperiod期間(秒)低下して終了

End

'***** End of Program ******

'Note:

'melabs U2 Programmer's configurations for 12F629:

'Oscillator - INTOSC, WDTE - Enable, PWRTE - Disable, MCLR - Reset, BODEN - Disable, CD - Disable, CDP – Disable

 

 

実用機の製作(2016.12.22 追加)

Making 'Practical Model' (Newly added on 2016.12.22)

  音声発生モジュールの音量が小さいので(後日、大きいものに換える予定)、ブザーを組み入れて音声の発生前にブザーが鳴るように改良した。具体的には電子ブザーを鳴らすために、電源を電池2本の3Vから3本の4.5Vに代えた。更に、プログラムも変えた。これで待機時の電流消費が0.5−0.6mAから0.86mAほどに上昇した

 

回路図: トランジスタ駆動のブザーを追加して時間が来たことを明確に知らせるようにした。電源は4.5Vに上げた。

Circuit Diagram: Power source was increased to 4.5V from 3.0V in order to drive a newly added electronic buzzer.

 

実用機: プラスチック容器に入れてある。音声モジュールの音量が低いので、最新式のものに換える予定。

Practical Model: The sound level of this sound module is not high enough, so it will be replaced with a more powerful one.

 

プログラム   Program

  電源を入れるかReset SWを押すと、ブザーがピー、ピー、と5回なり、次いで録音した音声メッセージが1回発生する。そして、30分か1時間のタイマールーチンに入る。終了するとブザーが5回鳴って音声メッセージが1回発生し、次のタイマールーチンをこなす。この繰り返しを12時間続ける(30分モードで24回、1時間モードで12回)。終了したら、finishルーチンに入って音声メッセージを3回繰り返して「12時間が終了しましたよ」と知らせてくれ、そして、12時間低電力消費のSleepモードに入る。

The previous program was modified so as to use a buzzer that supposes to inform the start and various turning points of program routines.

'********************************************

'ChairStndUpAlarmA.bas  2016.12.21

'Using 12F629 and PicBasic Pro V2.50A

'30 minutes and 1 hour timers

'***********************************************

'Pin 1: Vdd(3V)

'Pin 8: Vss(GND)

'Pin 7: GPIO.0 - Drive Relay for Sound Recorder Module

'Pin 6: GPIO.1 - Drive Buzzer

'Pin 5: GPIO.2 - NC

'Pin 4: GPIO.3 - Reset

'Pin 3: GPIO.4 - NC

'Pin 2: GPIO.5 - Time Selector 30 min or 1 hr

'***********************************************

CMCON=7  'Comparator off

SoundON var GPIO.0

TimeSelect var GPIO.5

Buzzer var GPIO.1

TRISIO=%101000

m var word

n var byte

 

For n=1 to 5  'Beeps Buzzer 5 times immediately after Reset-SW ON or Power-SW ON

High Buzzer

Pause 200

Low Buzzer

Pause 200

Next n

Pause 200

 

High SoundON  'Turns on Sound Module for testing purpose

Pause 200  '0.2 sec for pressing SW-speak

Low SoundON

Low Buzzer

 

If TimeSelect=1 Then Goto T30minTimer

Goto T1hrTimer

 

T30minTimer:

For n=1 to 24  '30min x 24 times=12 hours

For m=1 to 18300  '18300 for 30 min

Pause 100  '0.1 sec

Next m

Gosub BuzzerRou  'Jump to Subroutine BuzzerRou

Pause 2000

High SoundON

Pause 500

Low SoundON

Next n

Goto finish

 

T1hrTimer:

For n=1 to 12  '1 hr x 12 times=12 hours

For m=1 to 36600 '36600 for 1 hr

Pause 100  '0.1 sec

Next m

Gosub BuzzerRou

Pause 2000

High SoundON

Pause 500

Low SoundON

Next n

Goto finish

 

BuzzerRou:   'Subroutine to beep Buzzer 5 times

For n=1 to 5

High Buzzer

Pause 200

Low Buzzer

Pause 200

Next n

Return

 

finish:

For m=1 to 3

High SoundON

Pause 500  '0.5 sec

Low SoundON

Pause 5000

Next m

Pause 2000

Sleep 43200 '=3600x12 in second under Watch dog timer ON

End

'*****End of Program******

'Note:

'melabs U2 Programmer's configurations for 12F629:

'Oscillator - INTOSC, WDTE - Enable!!, PWRTE - Disable, MCLR - Reset, BODEN - Disble, CD - Disable, CDP - Disable

 

 

音声録音&再生モジュール (2016.12.29 追加)

Slightly Better Sound Recorder Module (K-L12M-BSK, 10-seconds recording) added (2016.12.29)

  秋葉原のaitendoで以下に示すような音声の録音再生キット(K−L12M−BSK、最大10秒録音可)を¥450で購入し、組立て、古いものと交換した。3−4.5Vで動作する。

 

左の写真は袋入のキット、右の写真は入っている各パーツを示す。2.5mmピンヘッダとボタン電池は含まれていない。心臓部のICは右上部の黒い円形の部分に入っている。お店のホームページには概略図や写真は載っているが配線図はまだない。

 

組立てたキットの表と裏の写真を下に示す。ICの入った小さいボードは裏面が表に出ている(左写真)。左写真でLEDのすぐ左側の上下直列6ピンの最も上のピンの内側に穴が空いているが、この穴と大きいボードの穴の間に導線を通して半田でつないでやる必要がある。

 

完成した音声の録音再生モジュールを古いものと入れ替えた状態。スッキリし、音量も多少大きくなった

Looks tidier and slightly higher sound level.

 

 

ボタン電池を単三電池2本(3V)に交換(2017.1.10 追加)

Coin battery replaced by two AA batteries to prevent the sound distortion of speaker (newly added on 2017.1.10)

  ボタン電池(CR2025、リチウム、3V)を新しく入れても音割れが発生し、音量も1−2日で急激に低下、実用に耐えられなかった。そこで、代わりに単三電池2本(ケース入り)を導入した。その結果音量はそんなに大きくないが、音声はよりはっきりと聞き取れるようになった。この音声録音再生モジュールの電流消費は音声発生時の瞬間最大値が30mA、待機時はほぼゼロ(テスターで測定不能)であった。

   Power consumption of this Sound Recorder Module (K-L12M-BSK) was found to be max. 30mA when speaking and almost zero when waiting.

 

 

音声録音再生モジュールの電源を12F629の電源(単三3本で4.5V)と一緒にする(2017.1.11 追加)

Use of the power source (4.5V) for 12F629 also as that for Sound Recorder Module (K-L12M-BSK) (newly added on 2017.1.11)

  音声録音再生モジュール(K-L12M-BSK)で使われているICはISD810で、このモジュールの電源は3−4.5Vとなっており、12F629の電源(4.5V)と一緒に出来ることが分かった。また、6V電源でアンプLM386を追加した回路図もaitendoのHPに載っていた。音量を大きくすることが出来るようだ。時間が来ると、「ピーピーピーピーピー」とブザーが5回鳴って、録音した音声「時間です、立って動きましょう」が2回繰返す。

It was found later that the power source (4.5V) for 12F629 could also be used for driving Sound Recorder Module (K-L12M-BSK) because the module was designed to work with the power of 3-4.5V. Now the sound is clearer and slightly louder.

 

 

 

Menu Pageへ戻る  (Return to Menu Page)

Topへ戻る    (Return to Top of Page)