まどかの | 自 | 己 | 満 | 足 | 日記 |
0688 |
2003/08/31(日)■ | |
P/ECEでA/D変換できました(T^T) | ||
はい、今日は朝から昨日途中で止めたA/D変換の実験用基板の続きを作り、A/D変換を利用するためのチュートリアルみたいなテキストファイルを書いてまとめて、それを基にA/Dコンバータサンプルを作りました。 一部P/ECE HandBook Vol.2のエコーマイクの記事を参考に作りましたが、nsawaさんのサンプルソースを使わずに、1から作ったので、nsawaさんがまとめたヘッダーファイルの中身が良く理解できると思います。 ちなみに、実験に使った回路はこんなのです。(クリックすると拡大します) しつこいようですが、この回路図等を参考にしての作業は全て自己責任でお願い致します。 そして、きょうまとめた「P/ECEのA/Dコンバータの使い方」は以下のところからDLできます。 (なぜかリンクが張れないようになっているので、以下のURLをコピペして飛んでください) http://www2.plala.or.jp/madoka/nikki/piece_ad.txt タブは4にしてご覧下さい。 上記のファイルは以下のところからDLできるソース一式の中にも含まれているので、コンパイルしてみようという方は、以下のファイルをDLしてくださいね。 adtest_20030831.zip(18.5KB) いやぁ、P/ECEの拡張端子ネタのためにいろいろ実験基板とか回路図とかを作っていましたが、久しぶりにP/ECEのプログラムを組んだので、なんか新鮮でした(^^; できるってわかってはいましたが、実際にA/Dを使ってみるとすごいもんですね(^^ やればできるじゃなーい。P/ECEくん。 ちなみに、作った実験基盤と実験の様子はこんな感じです。 基板の真ん中に見えるオレンジのつまみがボリューム抵抗の1KΩです。なかなかかっこいいでしょ(^^; 下のスイッチは念のためつけたもので、別になくても構いません。 それと、ちょっとみにくいですが、画面では2.73Vを計測しています。 これはボリューム抵抗を回すと3.3〜0Vの間で計測できます。 裏はこんな感じです。フラッシュでボリューム抵抗の底が白飛びしちゃってます。すみません。 あと、ピンがそのままでは上手くつけれなかったので、ちょっと基板を削って加工してます。 今度は、またP/ECE HandBookのエコーマイクの記事を参考に、とりあえずエコーマイクと、ずーっとあたためていたこのネタ、「P/ECEでヴォイスチェンジャー」に挑戦してみたいと思います! まだ、ヴォイスチェンジャーの変換アルゴリズムや、本当にP/ECEでできるかどうかも全然わかりませんが、出来ると信じてやっていこうとおもいます。最悪、エコーマイクを作ってバンザーイで終わるかな(--; 明日からは日直の週で、諸事情により毎日6時半起きになるので、気合入れてがんばっていこうと思います。 それでは、おやすみなさーい。 |
0687 |
2003/08/30(土)■ | |
発泡酒が箱で当たりました(^^; | ||
えー、今日は午前中嫁さんとホームセンターに行って、防災の日(9/1)が近いのでなんとなくカンパンを買って、あとセロハンテープの台座が無かったのでそれを買って、お腹が空いてきたので薬局によって帰りました。 で、お昼を食べた後は、私一人で大須に行って、今度作ろうと思っている基板に必要な部品を色々買ってきました(^^ これで準備は万端です。あとは時間とやる気と、A/Dのテストですね。 と、私が出かけている間に、家ではなんか嫁さんが雑誌の懸賞になんとなくはがき出して送ったら、発泡酒が箱(24本入り)で当たってしまいました。しかも抽選で10名様のやつに(^^; 誰も出していないのかよ! で、当たったはいいのですが、私も嫁さんも発泡酒は嫌いなので(私はお酒全般がダメ)、その発泡酒は嫁さんの実家行き決定です(^^; そして、夜に途中までA/Dコンバータの実験回路を作って今日はおしまい。(ほんとは今日中に作ってしまいたかったけど、嫁さんに寝かしつけられました(--;) というわけで、今日はおしまい。 明日は、実験回路の続きを作って、P/ECEのA/Dコンバータを試してみる予定です。 それでは、おやすみなさーい。 |
0686 |
2003/08/29(金)■ | |
みんなで焼肉を食べに行きました(^^ | ||
はい、今日は新しい仕様第2案を考える傍ら、後輩が勉強しに来たので、それを見てたりしました。 それにしても、後輩は長いこと教えてるのですが、毎日ではなく飛び飛びで教えているせいか、どうもまだちゃんと理解できていないような感じでちょっと心配です(--; あんまりプログラム楽しくないのかぁ。 なんか、色々学校のイベントスタッフに参加したり、課題も多いし、プログラマになりたいという目標は持っているのみたいですが、どうもいまいちでねぇ。 なんていうか、そんなにオーラが感じられないって言うか、もっとやれると思うけど、これが限界なのかなぁ。 まぁ、家も遠いし、まだ学生だし…… でも、自分もそういう生活を送っていたことを考えると、もっと出来ると思うんだけどなぁ。 もっとがんばらないとみんなには追いつけないぞ、後輩くん。 と、後輩の話はこれでちょっと置いておいて、今日はインターン生ががんばってひとつの仕事を終えたので、ご褒美としてみんなで近くの焼肉屋に食べに行きました(^^ でも、電子工作にあまり興味を示していない方のインターン生は、「明日徹満なんで……」って言って、帰っていきました。おーい。それはあんまりなんでないかい? というわけで、やる気になってきたインターン生を囲んで、ついでにうちの嫁さんも呼んで(急に焼肉が決まって、私だけ焼肉も可哀想なので呼びました(^^;)、楽しく食べました。 で、焼肉を食べてからは、食べに行く直前で、社長から電話があって、今某所に出向に行っている後輩社員が作ったアプリケーションの修正を急遽任されたので(月曜には欲しいとのことで)、それが出来るまで嫁さんを適当に社内で遊ばせておいて、がんばって直してました(^^; 出向に行ってる後輩社員に電話して直し方を聞いたら、外部ファイルを直すだけでいいって言ってたけど、結局はそれではだめで、ソースの方を修正して直しました(--; 直す時もソースにあんまりコメントが書いてなく、ちょうど直す個所にはまったくコメントが無かったので、色々調べるのに時間が掛かってしまいました。むぅ。これはちゃんと言っておかないといけないなぁ。 まぁ、この時は結構切羽詰まってて、コメントを書く余裕もなかったのかもしれませんが。でもなぁ。これはだめだよねぇ。うん。 というわけで、直して社内サーバにアップして、社長にメールを書いて今日は帰る事にしました。 明日は、嫁さんとお買い物に行く予定です。 それでは、おやすみなさーい。 |
0684 |
2003/08/27(水)■ | |
H8のGCCにちょっと苦戦してました(^^; | ||
えー、今日は午前中昨日社長に頼まれた調べ物をして資料をまとめて、午後からは新しい仕事で、以前誰かが作ったキーボード用のファームを新しいキーボードに対応されるべく修正するのですが、その元ソースがH8用のGCCを使ってコンパイルするようになっていたので、それをコンパイルできる環境作りをしていました。 が、当時のGCCより今のGCCはバージョンがだいぶ上がっているらしく、今のバージョンでコンパイルしたらいっぱいエラーや警告が出てコンパイルできなかったので、今日はとりあえず正常にコンパイルできるようにソースを修正していました(^^; GCCはP/ECEでも使っていますが、警告やエラーが厳しくてなんか良いですね(^^ MakeFileも久しぶりに書きましたが、面白いです。 と、そのような仕事をする傍ら、昼休みには本屋に行って、欲しかったこの本を買ってきました。 今までこの本はなんか堅そうなイメージだったのでちょっと買うのをためらっていましたが、よーく目次を見てみると、なんか見出しの書き方が実は全然堅くなく、中身も図や波形の写真(オシロスコープの画像)がいっぱいあってかなり判りやすい本でした。 今まで色々トランジスタ関連の本を買いましたが、これが一番わかりやすいかなと思いました。 あと、ついでにA/Dコンバータの実験回路で使おうと思っている1KΩのボリューム抵抗とつまみも買ってきました。ボリューム抵抗ってつまみで回すタイプはみんな大きい形のばかりで、手軽に使える小さいのを探すのにはちょっと苦労しました(^^; あっと、そうだ。話はGCCの方に戻りますが、H8GCCのことを調べていたら、こんなページを見つけて、ちょっとH8でのUSB開発とメモリ制御がやってみたいと思いました。特にメモリが扱ってみたいなぁ。 と、妄想したところで、今日はおしまい。 明日は、新しい仕事の仕様を考える予定です。 それでは、おやすみなさーい。 |
0683 |
2003/08/26(火)■ | |
トランジスタをだいぶ理解してきました(^^ | ||
えー、今日は昨日立てた予定通り、先の仕事の続きをし、また別の仕事の調査と、計測系の仕事でまたバグって言うか、計算精度の変更があったので、それを修正したりしてました。 で、今日はほんとは本屋さんに行きたかったのですが、朝から雨が降ったりやんだりの変な天気だったので、今日は止めておきました。 その代わりと言うことではないですが、昨日考えてもなんか納得できなかったトランジスタで電流を増幅した場合の電圧の変化の話で、社長に私が理解しているところまでの説明を聞いてもらって、なんでそうなるのかがいまいち判らないと尋ねたら、順を追って説明してもらううちに完璧に理解できました(^^ ようは私の勘違いだったのですが、以下のような回路の場合、 [IN]から何も電流が流れてこない時(無信号時)はR2,R3で設定したバイアス電流(この場合約0.015mA)がベース電流となります。 また、R2,R3によりベース・エミッタ間の電圧は常に0.6V以上となっているのでトランジスタはONの状態になります。 で、トランジスタがONになってるので、コレクタにはベース電流をhFE倍した電流が流れ、無信号の場合はコレクタに0.015mA × 100 = 1.5mA流れることになります。 となると、OUTの点の電圧は電源電圧の3VからR1に1.5mAが流れることによって降下する1.5Vを引いた、1.5VがOUTの出力電圧になります。 ちなみに、このR1は無信号の時に出力電圧が電源電圧の半分になるように設定した値で、この電圧を中心として音声による交流の振幅(+と−がある)が直流の範囲で再現されます。 ここで私がよくわかっていなかったのが、「OUTの電圧は電源電圧からR1に電流が流れることによって降下する電圧を引いたもの」というところで、抵抗に電気が流れると電圧が減らされるというイメージがあんまり無かったんです。 よくよく考えてみると、なんでイメージできていなかったのかが不思議なのですが、この回路で[IN]から電流が流れてきた場合は、ベース電流が増えるので必然的にコレクタ電流も増えて、R1のところでの電圧降下が多くなり、出力電圧は低くなっていきます。 逆に、[IN]の方へ電気が流れていってベース電流が減って行く場合は、R1での電圧降下も少なくなり、出力電圧は高くなっていき、ベースに全く流れなくなった場合は、R1にも電気は流れないので電圧降下もなくなり、出力電圧は電源電圧と同じになります(厳密には電源電圧よりちょっと低くなります)。でもなんか、電気は流れなくても電圧は測定できるっていうのが不思議な感じがしますね(^^; と、これでベース電流の変化を1.5Vを中心とした電圧の変化に変換することができることが判りました。 今度は、この出力電圧をP/ECEのA/Dコンバータ入力に入れて、マイクからの音声信号をそのままP/ECEのスピーカにスルーするというのをやっていきたいと行きたいと思います。 でも、まずはP/ECEのA/Dの練習からですけどね(^^; そうそう、ちなみにマイクアンプ回路のように、[IN]にコンデンサマイクを繋いだ場合は、コンデンサマイクの容量が音の強弱と周波数により変化するので、音の振動でコンデンサ内部の金属板が近づいて容量が増えた場合は、コンデンサ内の電圧が低くなり充電しようとするのでトランジスタのベース電流がコンデンサの方にに引っ張られる形になるそうです。 こういう働きで、ベース電流が減っていって、交流の下側の振幅も再現できるんですね。うーん、すごい(^^; 最後に、各抵抗値の値の決め方ですが、まずは流したい電流量やかけたい電圧を想定して決めてからオームの法則により計算していきます。 R1の場合はコレクタに流す最大電流を3mAと想定して、無信号の時は振幅の中間点とするために、3mAの半分の1.5mAが流れて、電源電圧の半分の1.5Vが出力になるのですから、R1で降下させる電圧は1.5Vとなり、オームの法則からR=V/I = 1.5[V] / 0.0015[A] = 1000[Ω] = 1K[Ω]となります。 R2,R3は始めにR3の方から考えて、ベース・エミッタ間の電圧を0.6Vより大きい0.7Vと想定して(電源が電池の場合は電気の消費による電圧の降下も考えて1Vくらいにするといいそうです)、また、無信号時に流すベース電流は無信号時のコレクタ電流のhFE分の1にするので、ベース電流は1.5mA / 100 = 0.015mAとなり、これらの条件からオームの法則により、R=0.7[V] / 0.000015[A] = 46666.67[Ω] = 47K[Ω]となります。 最後にR2は電源電圧の3VからR3の0.7Vを引いた2.3Vを0.015mAの電流で降下させるので、R=2.3[V] / 0.000015[A] = 153333.33[Ω] = 150K[Ω]とします。(ぴったりの値の抵抗は無いので、近い値のものにします。) はい、これでちゃんと説明できるまでに理解できたので、次はA/D変換実験用の回路を作って、今度はアプリケーション(ファームウェア)の開発にようやく進めます(^^ 明日はなんか新しい仕事が始まるみたいなので、それを一所懸命やる予定です(^^ それでは、おやすみなさーい。 |
0682 |
2003/08/25(月)■ | |
マイクアンプは好評でした(^^ | ||
えー、今日はちょっと時間が空いたので、まだGOはかかってないけど、そのうちやる予定の仕事をちょっと早めに進めてみました。 で、それがひと段落ついたところで、先輩からこの前作ったVBのテスト用アプリで機能追加の要望があったので、それを追加。がんばった甲斐あってか、お褒めの言葉を頂きました(^^ やったね。 また、計測系の仕事でちょっと細かいところのバグが見つかったので、その修正もこなし、社長の確認待ちの間に、昨日作ったマイクアンプ回路をインターン生にデモりました。 インターン生の反応はというと、予想通り最近電子工作に興味を持ち始めた方のインターン生は興味深く基板を眺めて、何度も「あーあー」って音が聞こえるのを楽しんでいました(^^ いいねぇ。この子は期待できそうです。 でも、もうひとりは案の定、ちょっと反応は示すものの、たいしたことでもないように(まぁ、たいしたことでもないですが(--;)さらりと流すあたりが、ちょっと悲しかったです。 ちなみに、「このくらいの回路なら1日でできますね」と笑いながら言い放ちましたが、絶対こいつはやりもしないなと思いました。こういう口だけみたいな人は私は嫌いです。 まぁ、ほんとに作らせたら多分1日あれば余裕で作れると思いますが、作って鳴るのを確認して、はいおしまいって感じでしょうね。なんていうか、なんの感動も無く。悲しいことに。 ここらへんは私の偏見もかなり入っているので、一概には言えませんが、こういう簡単な基本回路の中にこそ、感動できるところがいっぱい詰まっていると思います。 これだけの回路でなぜイヤホンから音が聞こえるのかということを究明しだすと、部品や電気の性質が絶妙に組み合わさって音が鳴るという現象に辿り着くという、電子工作の楽しみを存分に味わえると思います。 あと、作品をつくることによる達成感も作品の大小に関わらず味わうことが出来ると思うので、簡単な回路だから別に作らなくてもいいとか思わないで、ぜひ作ってみてください。小一時間は遊べますよ(^^;<私だけ? ああ、この興味を持ってくれているインターン生にはぜひこの期間中に何か作品を創ってもらいたいですねぇ。なんでもいいから。 作ってくれるんだったら、部品を全部買ってあげてもいいくらい協力したい気持ちでいっぱいです(^^ あと一歩なんですけどね。もう少しであの子は変われると思うんですよ。うん。 がんばれ! A立くん!! ちなみに、今日会社に見学&試験に来た就職希望の大学生も、作品を持参してきてくれたので、他の人に比べるとかなり良い部類には入るのですが、その作品の内容が、ネットで調べてこうやるといいらしいという答えのものばかりで、ひとつも完璧に説明できることが無かったので、いまひとつという感じでした。おしいんですけどねぇ。 作品を作っているという時点で他の人よりは全然良いんですが、それだけにもうちょっと踏み込んで調べて欲しかったですね。いやぁ、おしい。 マイクアンプをさらりと流したインターン生にも言えることですが、知識だけあっても実際にやってみた、実験して調べてみたという経験が無い限りは、その知識には何の説得力も無いので、そういう知ったかぶりをするのは止めた方がいいです。 原理はちゃんと全部説明できなくても、理解しようとがんばったけど、この部分がまだちゃんと判っていないから説明できませんと言ってくれた方が全然良いです。判らない部分は私達が教えてあげることで補完することが出来ると思うので問題無しです。 うろ覚えの知識より、自分で経験して覚えた知識の方が絶対信頼性があるし、応用も効きます。また失敗の中からも学ぶこともたくさんあるので、興味を持ったらまず自分でもやってみること。これ大事です。 またまたちなみに、昨日マイクアンプの出力の電圧をテスタで測ったら全然変化が無かったと、ハードウェア担当の上司に聞いてみたら、音声信号の振幅の周波数では速過ぎてテスタが反応できないからだそうです。交流モードで計ってみても上手く計れなかったので、やっぱり変化が速過ぎるんですね。残念。 うう、オシロ欲しいよ〜。でも高くて買えないので、今度休みの日に会社のオシロ使って調べてみる予定です(上司の許可は貰いました(^^) それから、この回路で自分が納得して理解していない部分がまだあるので、ここを納得するまで実験・調査してから、A/Dコンバータへの入力へとステップアップしていきたいです。 特に、今日トランジスタについて調べていたら、「トランジスタは電流増幅器」だという記述があり、なんとなく以前からそうだとわかっていたのですが、今よく考えてみると、私は音声信号の電流の変化を電圧の変化に変換してA/Dに入力したいわけであって、なんかマイクアンプがトランジスタを使ってできると判ったからこのマイクアンプ回路を作ってみたはいいけど、トランジスタはコンデンサマイクからの微量な電流の変化を増幅してイヤホンに伝えているわけで、電圧は私が思うように変化しているのだろうか。 と、それを確認するためにはテスタじゃなくてオシロスコープを使わないと確認できないので、今は確かめようがない(電子回路シミュレータを使えばできるのかな?)ですが、なんていうか上手く説明できませんが、ようはまだまだ私は理解不足だということです(--; ここらへんは電子回路というより、電気回路の分野になると思うので、以前にここを理解しようと電気回路の本も買ったのですが、まだ理解できてないようです。しゅん(j−j ああ、早くすらすらと自信持って説明できるようになりたいなぁ。うう。 電圧を増減させるにはオペアンプをつかわないとだめなのかな? うーん。私的にはトランジスタでいけるという予想だが、はたしてどうなのか。 とかなんとか書いている間にこのページを読んでいたら、なんとなく判り始めてきた気がします。 というところで、今日もまた長々と書いてしまいました(^^; 書きながら色々考えていくと、どんどん言葉が溢れてきて、まとめられなくなってしまいます。毎度のことですが、読みづらくてすみませんm(-_-)m ほんとは、途中でやる気の無いインターン生の言動を思い出してだんだん腹が立ってきて、「ここに入るつもりで来ました!」と最初の挨拶で言ったくせに、プログラム考えてる振りして寝るわ、プログラムは性に合わないなどとぬかしやがるわ、よくわかってもいないくせに知ったかぶりして話すわで、私的にはもう教えたくもないという感じで愚痴るのは止めておこうと思いましたが、やっぱり書いてしまいました(^^; ネットは結構やっているみたいなので、もしこの日記を読んでたら、明日からでも遅くないので心を入れ替えてがんばるように! わからなかったら悩んで寝てないで、遠慮なく聞きに来て下さい。そして、言うだけではなく行動で示してください。時間はまだまだたっぷりあるはずです。少なくとも私よりは。以上。 というわけで、今日はおしまい。 明日は先の仕事の続きでもする予定です。本屋にも行きたいなぁ。行けるかなぁ。これとかこれがちょっと見てみたい気分です。 それでは、おやすみなさーい。 |