virt_flyのブログ -60ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑自分でこしらえた回路で、自分の脈波が画面の上を流れ、

脈拍数が表示されるのを見るのもおつなものです。

脈波が見れて脈拍数がわかる

無線でセンサーから得たデータの送信をめざす以上、何らかのセンサーでデータを得られるようにもしておかなければなりません。前に述べたように生体センサーに興味があることから、願望は心拍計の作製です。

前回、反省めいた口をきいていたようなのに、その舌の根も乾かぬうちに早大物狙いとは!

 

今回も、狙いをつけていたのは国野亘氏の「ボクにもわかる電子工作ホームページbokunimo.net」から「IchigoJamと照度センサ・LEDを使った心拍計の製作と実験」です。

 

 
↑照度センサーNJL7502Lと高輝度LEDを使用しオペアンプLM358で信号電圧を増幅した回路  

まんま真似して寸分違わず作ったつもりなのですが、波形が取れず、照度センサーを抜き差ししてもモニターに変化なしの有様。何度回路をチェックし直し、試してみたことか。

 

結局、パーツを他で使い回しするために抜き差ししていたところ、ある日突然機能するようになったものです。唖然とするしかありませんでしたが、動けば文句なし。

 

嬉しいですね。モニター上を波形が流れ、下部には定期的に心拍数らしきものが表示されます。

 

基板より垂直に突き出たLED様の照度センサーとLEDを指で同時に触れることで、LEDからの光の反射を照度センサーが測り、血流量の変化をセンシングするため、指が微妙に動くだけでも数値が大きく変動してしまいます。このため実用的ではありませんが、心拍計(正確には脈波計)の原理がよくわかる点ですばらしいと思います。国野さんに感謝です。

 

同じくBASICプログラムの方も、脈波が波形として見える化され、脈拍数が表示されるようになっていて感嘆します。飽きないですね。

↑照度センサーを覆うように紙をかざすと赤色LED(下段の基板上)が点灯。ブザーをつければ音も出せます。LCD上には照度の変化を反映した電圧が連続的に表示されています。

NJL7502 Lフォトトランジスタで実験

問題はブレッドボード?

 

センサーや無線モジュールで遊ぼうと、ブレッドボード上に回路を組み試してみるのですが、なかなかうまく動かない、ときにはコンデンサーを焼損したりすることもあります。

 

ブレッドボードに不慣れなせいもあるのでしょうが、接触不良だったり、パーツの足が長すぎて他と接触してショートしてたのではと疑われることがブレッドボードにはないのでしょうか。何度チェックしても問題はないのにまったく機能しなかった回路が、いじくっていたらある日突然機能しだすなんてことを経験すると、問題があるのはブレッドボードなのではとの思いがいよいよ強まります。

 

照度センサーの働きをチェック

 

とはいえ、電気や電子工作の素養がないくせに、うまく動かない責任を他に負わせるのいかがなものかということで、壊れていないか疑われる照度センサーを簡単な回路を組んで確かめることにしました。これが、思いがけず己の身の程知らずを痛感させられることになるとは…。

 

回路は、福野泰介さんのブログに書かれていたものを参考にしました。照度センサーに違い(ここではNJL7502Lを使用)はありますが、写真のような回路をつくりました。照明の明るさにもよるようですが、抵抗は小さいほど照度の幅が小さくなるようで、最終的に10kΩとしました。赤のジャンパー線はIchigoJamのVCCに、茶はGND、緑はBTNに接続します。

 

 

実行したプログラムは、次のとおりです。

 

10 ?ANA():cont

 

いたってシンプルな回路とプログラムですが、実行するとLCD画面に数字が縦に流れていきます。センサーが陰になるよう手や紙をかざすと、数字が大きくなり真っ暗にすると1000を超えてきます。

 

せっかくなので、少し遊んでみます。暗くなってきたら照明が自動的に点灯するイメージで、次のプログラムを実行してみました。

 

10 ?ANA()
20 IF ANA()>700 THEN LED 1:BEEP 1:WAIT 10 ELSE LED 0
30 GOTO 10
 

 

かざすように紙を近づけると、IchigoJam上のLEDが点灯し、また音が鳴るようにしてみました。

 

これまでBASICプログラムといえば、もっぱらパソコン内部で完結するものばかりで、センサーのような外部とのやりとりを考えたことがなかったので、新鮮な経験です。

 

 

赤面の思い

 

今回のANA()や前回のブログに出てきたPWMが何なのか、実は知らなかったので、少し勉強が必要だと思い書籍をググッたところ、IchigoJam.netの説明書・書籍のページが出てきて、よくよく見たら、「IchigoJamやさしいプリント集」のなかの「でんしこうさく」コースにある「りょうのにゅりょくANA(アナ)」に、先の自動点灯プログラムに似たプログラムがあるではありませんか。

 

小学生向けのプリントに書かれていることも知らずに、大それた口をたたいていたことに赤面の思いです。

↑IchigoJamと互換機の2台で赤外線通信。キーボードでたたいた文字が相手の画面(大画面)に順次表示される。

GP1UXC41QSでIchigoJamからIchigoJamへ

無線通信について少しはかじっておこうということで、前回はワイヤレスによるLチカを試してみました。

 

LEDは点灯させることができたものの、かなりあやしげな上、思えばパソコンからのコマンド送信でIchigoJamを動かしたもので、IchigoJam側からセンサーで得たデータを送り出そうという思いからすれば、いわば逆でした。注文していたパーツも届いたことだし、今回は簡単そうな赤外線通信を試みることにします。

 

今回も、国野亘氏の「ボクにもわかる電子工作ホームページbokunimo.net」から「ボクにもわかるIchigoJam用サンプルプログラム超簡単ワイヤレス通信実験」をまるっぽまねさせてもらいました。

 

送信と受信にIchigoJam2台を使います。

それぞれディスプレイには、1台はTVモニター、1台はUSBビデオキャプチャーデバイスを用いてノートパソコンの画面を代わりに使います。

送信側に高輝度赤外線LED、受信側に赤外線リモコン受信モジュールGP1UXC41QSをセットします。

 

結論からいえば、送信側の赤外線を受ける受信側の赤外線受光部の向きが少しずれるとうまく通信ができなくなりますが、それ以外はまったく問題はなく、キーボードを叩いて入力した文字が相手側のディスプレイに順次表示されていきます。

 

その様子を見ているとなんとも不思議な気分になります。赤外線リモコンが登場したのだって何十年も昔のことなのに、なんで面白いと思うのでしょうね。

 

さて、忘れた時のためにメモを残します。
 
なにせ、「ご注意:実験後は必ず電源を切ってください」と参考にしたサイトに書かれていたくらいですから。電流制限のために本来なら必要となる抵抗が入っていないそうで、マイコンが壊れたり、発熱、火災の可能性もゼロではないそうですから、ビビリます。
 
○ハードのセット
 
受信側では、赤外線リモコン受信モジュールをブレッドボードにさし、対応する端子をジャンパー線でIchigoJamの端子とつなぎます。
モジュールのピンは、受光部を正面に左からout、GND、VCC。それぞれIchigoJamのRXD、GND、VCCに接続します。
 

送信側では、高輝度赤外線LEDの足をIchigoJamのout5とTXD端子に差し込みます。この時、間違いなくアノード側(足の長い方)をout5に。

 


↑左の白いLEDのが赤外線LED。点いているのか消えているのかさっぱりわかりませんね。

高さを合わせるためにプラボックスに乗せた右のブレッドボード上の黒いのが赤外線リモコン受信モジュール。

 

○まずはLチカー受信準備と動作確認

 

受信側では、ハードのセットが済めば電源を入れて、いつでも受信できるように次のコマンドを実行します。

 

BPS 300

 

送信側では、動作確認のため、次のコマンドを入力します。受信側のIchigoJamのLEDのが点灯すれば成功。

 

PWM 5,1,3
BPS 300
?"LED1"

 

○送信側プログラム例

 

次のプログラムは国野亘氏が書かれたもので、送信側IchigoJamのキーボードから入力した文字が受信側に送信されます。詳しくは氏のサイトをご覧ください。

 

1 'WIRELESS IR TX
10 L=0
20 BPS 300
30 PWM 5,1,3
40 UART 1
100 'KEY
110 K=INKEY():IF K=0 GOTO 100
120 IF K=ASC("!") GOTO 200
130 ? CHR$(K);
140 GOTO 100
200 'LED
210 L=L+1:IF L=2 THEN L=0
220 ? CHR$(27,16);"LED ";L
230 GOTO 100