過去の恥ずかしい記録をまとめました。

デジタル降魔録TOPページ




-過去ログは古い順に並んでいます-

2009年5月1日(金)

まだまだ休めないけど、少し楽になった・・・

進む

 組み込み屋さんの方(こっちが本業ね)が、なんとか連休に入れそう。
あとはホームページ屋さん(こっちがサブ職ね)の方だけに専念して、納品に向かってまっしぐらに突き進むだけ。
残りの作業は、バグ(不具合)が出ないかボタンを押しまくってチェックするだけなので、もうできたも同然、やっと一息つけそう。

 ホームページを作る方ならおわかりのように、最近はかなり凝ったことをしないとだめみたいで、特に商業ページは単純なホームページでは絶対にOKが出ない。

 そこで要求に応じるためにフラッシュをActionSciptで動かしたり、JavaScriptを使用したりしてインターネットブラウザをコントロールして、動きのあるページを作らなければいけなくなる。こうすると、必ず出てくるのが複雑なボタン操作で起きる予期しない不具合と、ブラウザどうしの非共通性による不具合。

 複雑なボタン操作で起きる不具合は、自分のプログラムが間違っているからで、これは納得できる。しかしどうしても納得できないのが、同じ記序をしているのに、ブラウザによって異なる動きをする不具合。

 PICのプログラムとかの不具合と違ってホームページ上の不具合は自分のコーディング(プログラム記序)が正しくても、ブラウザの不具合で正しく映らない、あるいは動かないということが多々ある。簡単に説明すると、CPUに不具合があるために、ある命令を使うと暴走するというようなもの。こんなこと組込み制御の世界では絶対あり得ないし、そんなCPUを作ったメーカーは即ボコボコに叩かれ引っくり返って〝ピクピク〟ってな具合になって生き残って行けない。

 ところが、インターネットの世界ではあるんすよ、それも大メーカーの作ったブラウザでもあります。同じ命令なのに、こっちのブラウザとあっちのブラウザとで動きが異なる、ということが・・・。
こんな製作者を馬鹿にしたようなことが平然と未だに続いている。メーカーどうしはお互い仕様の見解の相違だとか言って、睨み合ったままどちらも引き下がらない。
 立場の弱い製作者はしょうがないので、あの手この手と使い、どのブラウザでもクライアントさんの仕様通りに映るように対策を練る。なので、たくさんの対策方法を知っている人が偉いという変な世界。

 組込み制御屋では、クライアントさんの要求する動きを、アルゴリズム(問題解決の手順)として自分の頭の中で練り上げて、それをプログラムとしてコーディングするという世界。ところが、Webデザイナーはそれだけではダメで、いろんなブラウザの欠陥部分を熟知していて、それを上手くすり抜けてクライアントさんの要求するモノを作り上げるという世界・・・。

ふぅ~。何とかならんのかね~。このブラウザどうしの見解の相違というかメーカーどうしの睨み合い合戦。
インターネットブラウザって、無料配布のモノだけに、だれも本気でやろうとしないのかなぁ~。

 それに振り回されるWebデザイナーの皆さん。ご苦労様です。お疲れの出ませんように頑張ってください。って、自分のこと棚に上げて・・・。

いい~の。今回は何とか収まりそうなので・・・

納品直前で強烈な不具合が発見されたりして・・・。 o( _ _ )o~†パタッ







2009年5月2日(土)

パソコン向かうにゃ、いい季節です(何でやねん)・・・

進む 戻る 先頭へ

 気が付くと、左の欄に置いてあるカレンダーが緑色の5月に切り替わっていた。作ってから半年も経つと、作っていた頃のことが自分の頭から消え去っていて、それが正常に動いていることが他人事のようにちょっと驚いたりして・・・。あほです。

何かのプログラム関係の書籍に書いてあったことですが、作り上げたプログラムは半年も経つと、どうやって作ったか忘れてしまうもの。ひどい時は自分が作ったことさえも忘れることがある。だからプログラムの説明になるコメントや説明ファイルは充実させなさい…というクダリ。

ははぁ~。m(_ _)m  頭が下がる思いでございます。


 ところで、このカレンダーは恐らくどのブラウザでも、あるいはどのパソコンでもちゃんと動いていると思う。それはフラッシュで作っているから…。
 昨日の話に戻ってしまうが、Windowsパソコンでインターネットを見ている人の画面と、Macパソコンで見ている人の画面が同じかというと、残念ながらイエスとは100%言えない結果になる。このデジタル降魔録も去年まではひどい有様でした。こんなにも違うのかと、頭を抱え込んでしまった経験がある。今頃気付くのもなんですが…。ここまでひどいとは思っても見なかった。

 その中で、フラッシュで作られた部分だけはWindowsパソコンもMacパソコンもちゃんと同じように映っていた。これは何故か…。フラッシュはクロスプラットホームの問題を解決してくれているからです。

フラッシュ開発チームの皆さん。お世話になっております。いかがお過ごしでしょうか?って、相手は全然面識も無い外人さんですから・・・。でも、それぐらい感謝してます。


 ぢゃぁ。ホームページを全部フラッシュで作ればいいじゃんか。となりますが、そうは問屋が卸してくれないのです。インターネットを画面に映し出してくれているブラウザから見れば、フラッシュで作られた画像なんて邪魔モノでしかないんです。
それに何故かフラッシュを嫌っている人もたくさんいます。勝手に音楽を流される、ボタンの上を通るたびにうるさいとか、サイト製作者の自慢を見せつけられているだけにしか思えないとか・・・。
確かにつまらない動画を長々と流された日にゃ、嫌気がさして別のページに飛んでしまうでしょうね。あっ、自分のことか・・・(恥かしぃ)

 でも上手くフラッシュを使うと、とても綺麗なページが短い時間で作ることができる。リンクボタンだって2枚の画像をパチパチ切り替えるだけのhtmlのボタンではなく、滑らかな動きができるボタンが超簡単にできたりするんですぅ。だからつい自慢たらたら見せたくなったりするんす。

 最近は100歩下がって控えめにしておりやす。なるべくフラッシュを前面に出さず、目立たないように素のhtmlだけのページに見えるように・・・。でも、依頼内容はフラッシュを使わざるを得ないようなモノが多くなってきているのは、2011年からテレビが地デジとなって大きく変化するように、そろそろ考え方を変えようよ、という時代に入ってきているのかな?

 今回のホームページはクライアントさんの意向もあり、フラッシュがメインになっている。しかしその中で気になる要求があった。メインページから別のページを新しく開いて、そのページに置いてある〝閉じる〟というボタンを押すと開いていたページが閉じて、元のメインページが見えるようにしてくれとのこと。一見簡単なことのように思われるでしょ。デジタル降魔録でも語句の説明時にはウィキペディア(Wikipedia)とか、自分の別のページにリンクしていて、そちらの内容が別ウインドウで開いている。これと同じことのように思えるが、すこし違うところがあるでしょ・・・。

 こんな簡単なことなのに、何故かブラウザの挙動はおかしなことに・・・。
 長くなるので、続きはまたこんど・・・。

いつから続きモンになったんや?   (^~^;)ゞ 今日からっす







2009年5月3日(日)

たかが「×閉じる」ボタンなのに・・・1

進む 戻る 先頭へ

 昨日の続き・・・。

 ホームページの最初のページにボタンがあり、それを押すと新しいウィンドウが開く・・・。これはどこのサイトでもよくやっていること。ただしあまり次から次へと別ウインドウを開くのはマナー違反だと嫌われる。
だからほとんどのサイトでは開いていたウィンドウに次のウインドウが開くようにして、1個のウインドウを使い分けている。ま、必要であれば2つ目のウインドウを開くこともあるけどね・・・。


 インターネットで見られるサイトページを拵えるためにはhtmlと呼ばれるマークアップ言語で記序すれば誰でも簡単にホームページを作ることができる。

高そうな本にはだいたいこう書かれているが、うのみにすると大やけどを負いますぜ、だんな・・・。

 まぁ、htmlのルールさえわかれば中身はいたって簡単。ややこしいのはこのマークアップ言語で記序されたモノを解析して表示してくれる、インターネットエクスプローラー(iE)や、Safari、FireFox、Operaとかのウェブブラウザ の挙動。

昨日も書いたが、この辺の動きの違いが組込み制御の世界とまったく異なるところであり、ウェブの新参者としては戸惑ってしまう。
例えば、htmlで新しいウィンドウを開くには、

<a href="new.html" target="_blank" >新ウィンドウ</a> 

と書けばOK。

〝新ウィンドウ〟と言う文字に〝new.html〟という別のページがリンクされており
( a href="……"の部分)、その文字をクリックすると別のウィンドウを開いて
(target="_blank"の部分)、そこに〝new.html〟の内容が表示される。

これをフラッシュでやるには、まず〝新ウィンドウ〟というボタンを作り、そこへ、アクションスクリプト(ActionScript1・2の場合)で、

on (press) { _root.getURL("new.html","_blank") }

と、やれば同じように別のウィンドウが開いてそこに〝new.html〟の内容が表示される。

 フラッシュだとノロノロするとか言われているが、そんなことは無いっす。それは む・か・し の話。確かに5~6年前のフラッシュプレーヤー6の頃はそうでした。アニメーションとBGMがズレまくって苦労させられてました。でも今は生れ変わってます。もっとも、これはパソコンが速くなったおかげかも知れない・・・。

さて、ここまでは問題は無い。

次。開いた別ウィンドウを閉じる時どうするか?

個人的に作ったサイトは、見ている人がウィンドウの右上の〝×〟マークをクリックして閉じるという暗黙の了解があるので、ほとんどのところではそのままにしてるよね。もちろんデジタル降魔録もそうっす。

でも今回は、そのページに置いてある〝×閉じる〟という〝ボタン〟を押して、そのウィンドウを閉じるようにしなければいけない、という仕様になっている。

こうなったら、htmlの記序だけではもう対処できない。使いたくは無いがジャバスクリプト(javaScript)というスクリプト言語を使用するしかない。

補足:他の方法を知らないだけかも・・・


さっき、フラッシュのボタンのところに出てきた〝アクションスクリプト〟も同じ種類に入る簡易的なプログラム言語で、すこ~し、組込み制御の世界に近くなる。だからこちらに関しては安心。

しかしフラッシュ同様ジャバスクリプトも嫌われモノのひとつ。何故かインターネットの世界では嫌われモノが多い。ぢゃぁ使わなきゃイイじゃんか!と叫びたくなるが、使わないと要求のモノが出来ない。でも使うと嫌われる。

なんじゃ?
組込み制御屋さんは腕組みをしてクビをひねってしまうっす。

どうも、この理由はセキュリティ上の問題から来るようで、
パソコンウイルスはネットから感染する → パソコンウイルスは悪いプログラムである → プログラムといえば、スクリプトもプログラムぢゃった・・・だから
ジャバスクリプトもアクションスクリプトもパソコンウイルスを撒き散らす諸悪の根源ぢゃ! と、なっているようですね。

そんな、あほな! 
魔女狩りじゃあるまいし・・・プンプン。

たしかに理由は間違ってませんが、あたしゃ、ジャバスクリプトでパソコンを破壊するような方法は知りませんぜ。少なくとも、あたしの腕では作れません・・・。
それとも、危険な(何がやねん!)スクリプト言語を使用しないと動かないようなサイトを作る方が悪いというのか? それもおかしい、そんなことをしたら味気の無い無味無臭のサイトだらけになる。純粋に新しい技術を利用して表現をしたい、という道を閉ざされるのは非常に残念に思いますね。

ちょっと熱くなっちまったぜ、おッちゃんは・・・。

で、〝×閉じる〟ボタンで閉じるには、ジャバスクリプトで、

<a href="javascript:window.close()"> <img src="clsBtn.gif" border="0"> </a> 

こう書く。
これでOK、かというと・・・。ノンノン。(って、「トレビア~ン」のピエールさんかっ!)
細かいことを書くと嫌われるので、他の専門のサイトで調べてみてください・・・。
と、いうのもちょっと無責任なので、一応書いときますが・・・。
href="" 〟の中にスクリプトを書いた時、最後に
return false〟を入れないとエラーが出るブラウザがある。

ホ~ラ、出てきましたよ。ちゃんと動くブラウザと動かないブラウザの問題が・・・。

ぢゃ・・・。

<a href="javascript:window.close();return false">

これでいい?

ブッブ~。だめぇ~。

警告エラーが出て叱られます。タグの外に記序した処理の中でやれ!っと怒られる。

めんどくせぇ~なぁ。なんてほざきながら・・・。

 function wincls() {
  window.colse();
  return false;
  }


と別欄に書いてその処理を呼べば、なんとかエラーメッセージが黙る。


とりあえずこれで仕様通りですわな。これでOK?
ブッブ~。だめぇ~。

このままで〝×閉じる〟ボタンをおしてウィンドウを閉じようとすると・・・。


わけのわからん警告メッセージ


こういう、ワケのわからんメッセージが出る。
個人的なサイトならこれでもOKかもしれませんが、こんな脅しのようなメッセージが出てもいいよ、というクライアントさんはいないっしょ。

この場合。これも意味がわからないが、ジャバスクリプトを使用して開いたウインドウに対してジャバスクリプトを使って閉じた場合のみ、このメッセージは出ない。

何んやねん、この曖昧なところ・・・。
ふぅ~。おッちゃんは、もう疲れたよ。

今回の依頼はフラッシュがメインなので、フラッシュからジャバスクリプトを呼び出して別ウィンドウを開き、開いたフラッシュのサイトからフラッシュの〝閉じるボタン〟に記序されたアクションスクリプトで外部のジャバスクリプトを呼び出してページを閉じるという、なんともまわりくどい遠回りな方法でのり切った・・・。

でっ、やれやれ、これで終われるかと思ったら・・・。

大間違いぢゃ!  ヽ(ー_ー )ノ マイッタッす



つづくのぢゃ・・・。







2009年5月4日(月)

たかが「×閉じる」ボタンなのに・・・2

進む 戻る 先頭へ

 昨日までの話しでは・・・。
 危険なスクリプトを使用して(・・・何度も書きますが、スクリプトのどこが危険やねん!)、〝×閉じる〟ボタンを押して、そのウィンドウを閉じさせるという仕様を、
iE7やiE6、MacのSafariなどで問題なく満たすことができた・・・。
あぁ~、めでたしめでたし・・・。と、なるところでした。

と・こ・ろ・が~。
そう簡単に収まらないのがウェブ製作のおかしなところ。

ウインドウが閉じられて、元のページが画面に出ると、そこにはフラッシュで作られたボタン類が鎮座しています。当然んっす。フラッシュがメインのサイトですから。
見ている人は再びそのフラッシュのページに並んでいるリンクボタンを押しますわな・・・。
うんうん。

・・・反応が無い・・・。

 ボタンを押しても〝うんともスンとも〟動かない。
 え?って思って、1秒程待っていると慌てて動き出す。常にそうなるかといえばそうでもない。時々なる程度だが気になる。

 このデッドタイムは何んじゃらほェ?

 よく観察すると、このデジタル降魔録でも同じ現象になる時がある。このページの一番上にある〝FlashPic〟のボタンを押すと新しいウィンドウが開いてそこに〝FlashPic〟が出てくるが、すぐにそのページを閉じて、再び〝FlashPic〟のボタンにマウスを当ててみると気が付くと思います。しばらくマウスをピコピコ動かしていないと、ボタンがポコッって上ってこない・・・時がある・・・。でもすぐに動く時もある。

 ここでもいえることだが、個人的なサイトならこれでもOKですね。
でも、商業的には多分アウトでしょう。

・・・何かなぁ~。この辺の曖昧な動きが組込み制御の世界とはまったく異なるよなぁ。CPUがこんな動きされたら絶対クレームの嵐やねんけどなぁ~。こんなことをウェブデザイナーの皆さんは納得されてるんでしょうか?
・・・何かなぁ~腑に落ちないっす。

 おッちゃんは悩みました。

 なぜ、待たされるか・・・?

 恐らく元のページのフラッシュにフォーカスが移るのに時間が掛かっているのでは?
それなら、ページを閉じるときに元のページにフォーカスを先に移しておけば、たとえ少しでも速くなるぢゃろ・・・?

ということで、

 function wincls() {
  opener.focus();
  window.close();
  return false;
  }


と、元のウインドウにフォーカスを移動させて(opener.focus();
それからウィンドウを閉じる(window.close();

という、苦肉の策だったがすごく改善された。ほとんど変な動きはしなくなった。Macでもちゃんと動いているそうだ。
ふぅ~何とか、なりやしたな。

ところで、〝×閉じる〟ボタンの画像を下のように・・・
  <form>
  <input type="image" src="clsBtn.gif" name="closeBtn" onclick="wincls();">
  </form>
<form> タグでボタンを拵える方法はダメです。iEでは正しく機能しますが、MacのSafariでは〝opener.focus();〟で、元のウィンドウにフォーカスが移った後、次の〝window.close();〟で、再び閉じようとしているウィンドウにフォーカスが戻るので、閉じようとしているウィンドウがチラチラと瞬くようになり見苦しくなる。

 ほんと、え~加減にしてくれよ、と叫びたくなるわな。
 たかがウィンドウを閉じるだけで、こんなめんどくさい羽目に合うとは・・・。

恐るべし世界ぢゃ・・・。 (○`ε´○) ブゥ~







2009年5月5日(火)

イラストレータのファイルをフラッシュに取り込むと・・・

進む 戻る 先頭へ

 フラッシュCS3になって、イラストレータの画像ファイル、通称AI(エーアイ)ファイルをフラッシュに直接取り込むことができるようになった。え?昔からだよ。って思われるかもしれないが、それは単純なレイヤー構造のAIファイルの場合。プロのデザイナーさんが作り上げるAIファイルは、リンク画像付き、何重にもネストしたクリッピングマスク処理、太っとい線とメッシュグラデーションの塗り、そして何層にも分かれたレイヤーで構成されている。そんなAIファイルを古いフラッシュに直接読み込んだら、まぁ、もとの画像の破片も残りませんぜ、親方・・・。

でもフラッシュCS3になってからは、とりあえず画像が崩れることなく、取り込めるようになった。エライ!CS3さん。
これで、アタシの仕事が少しでも楽になるじゃ~、あ~りませんか。これで心おきなく、ブラウザのワケのわからない挙動に振り回される時間が確保できるというもんですわ・・・と思っていた。
・・・ところが〝ぎっちょんちょん〟そうは問屋が卸さない、イカの●●たま、である。

ホント、お下品ですみません。


 デザイナーさんが作る画像は動くようにはできていな~い。
ま、これは当たり前。だからアタシがそれをやるんすよ。

 フラッシュを触る方ならご存知の通り、動かす画像はすべて〝シンボル〟というカタチに変換しなければいけない。でもご安心あれ、これは超簡単。〝シンボルに変換〟という処理があるのでマウスクリックひとつで動かせるキャラクターに変換される。

ただ~し、単純な構造のAIファイルの場合だけ・・・

またまた、こういうオチが付くんす。〝・・・~の場合だけ〟っちゅうやつですワ。

なんで、アタシがやることは、いつもこの条件から外れるんでやんすか? ←もーれつア太郎のケムンパスではないので・・・。

 シンボル化したキャラクターを動かしてすぐに気が付く、〝あかん、このクオリティやったらガネーシャに叱られる〟とね。

 キャラクターが動くたびに、画像の縁にノイズが走る。キャラクターの線に沿ってガビガビ、ビチビチとノイズのようなギザギザが時々出る。

〝個人的なサイトならこれでもOK・・・〟もう、エエっっちゅうねん。この文章は書き疲れたよ。

 原因は線の太さと複雑さにあったね。

 フラッシュは画像を動かすようにする専門のソフトで、動く方向、速度、角度、加速度、大きさなどを指定するだけで簡単にこなしてくれる。動かす原理はアニメのパラパラマンガと同じで、時間に沿って高速に消去と再描画を繰り返している。

この時、でんがな!(何故? 大阪弁・・・)

 これが正方形のような簡単な画像でなく、複雑に凹凸を繰り返すヒト型のキャラクターの時、コンピュータはどんだけ~、の仕事量になるか・・・。
コンピュータはものすごい速さで瞬間々に計算して再描画を繰り返している。この辺は人間様では絶対にできない芸当ですな。さすがコンピュータ様です。(よかった。ようやくデジタル降魔録的なお話になって来た・・・)

 ところがさすがのコンピュータ君も、メチャクチャ複雑な構造のキャラクターを回転させながら移動せよ、なんて超難問を要求した日にゃ、僅かな計算の誤差が出ます。ご存知のように10÷3をさせたら、クソまじめなコンピュータ君は〝3.3333333333333・・・〟と死ぬまで3を出してくる。そこで答えを丸める。

10÷3=3.3333ぐらいでエエっか、とね。
いや、めんどくさいから〝3.3〟でエエで。となるかも知れない。
ちなみにこの時は、大阪弁かどうかは知らないです。

これが誤差です。この誤差が動かすキャラクターの縁に沿って、ノイズのようにガビガビと、ビチビチと出たり消えたりして、クリエータを〝ひぃ~〟と、困らせているのです。


【 ガビガビ再現フィルムぢゃ 】

上のフラッシュは適当なカタチで無理やり複雑な画像を詰め込んで再現してありますが、
矢印の辺りにノイズが走るのが見えます。性能のいいパソコンの場合、出ないかもしれません。
普通はこんなこと起きません。
複雑なレイヤー構造と太い線を多用した上に縮小するという特殊な例です。



この時間の無い時に・・・。
〝おッちゃんクリエータ〟は、またまた悩みます。この誤差をどうしたら・・・と。

「ポクポクポク・・・ち~ん。」一休さんっす・・・。 古いっす。

線があるから誤差が生じている。ならば線を取っ払ったらエエねん。

そうです。キャラを速く動かしたい時は、〝線を使うな!〟が鉄則でしたね・・・。
さっそくフラッシュに搭載されている機能でもある〝線を塗りに変換〟というツールを使います。しかしイラストレータで拵えた複雑に入り組んだ線は、フラッシュの能力をはるかに超えていました。その結果、妙な形に線が変形して塗りに変換され、もとの綺麗な画像は跡形もなく消えるのでした~。

そして・・・。
はぁ~。フラッシュに取り込めるAIファイルの互換性ってまだまだやねぇ~、と頭を抱え込むのでした。

ちなみに、手作業で少量ずつ線を塗りに変換するとなんとかなります。どうしてもできない場合は、後から手を加えて修正します。そして、動かしてみて驚きです。キャラクタはノイズもほとんど無くなり、綺麗に動き出しました。めでたしめでたし。
キャラクターを綺麗に速く動かす時は線を使うな、という鉄則は本当だったんです。


【 ガビガビが収まったのぢゃ 】


 しかし、おッちゃんにはもうほとんどの時間が残っていませんでいた。
フォーカスが遅れる問題や〝閉じるボタン〟をフラッシュのコンテンツの中から実現するという課題は、なんとかクリアしていますが、その後の調べでは〝閉じるボタン〟をスクリプトを使わずに行う方法は無い・・・というのが結論になりそうです。
そもそもブラウザ以外の場所でブラウザをコントロールすること自体が、パソコンウイルスの予備軍になり得るという厳しいご意見を受け賜りました。

 やっぱり、嫌われてもジャバスクリプトやフラッシュを使うしかないのですね・・・。

 そして、フォーカスが遅れる問題は、どうもアクティブコンテンツ対策のために行っている、スクリプトでフラッシュを描画させるという設定に関係しているような感じです。
 この問題もAdobeさんやMicroSoftさんの大人の事情というヤツに阻まれており、確実に原因を突き止めて完璧な状態にするための具体的な方法は納品後に探ることとなるでしょう・・・。


そうして休日は無くなっていくのでありました。めでたしめでたし・・・。

めでたく無~い!  凸(`、´メ)ウリャ~。







2009年5月6日(水)

フルカラーLED64個のコントロール、その後・・・

進む 戻る 先頭へ

 〝デジタル降魔録〟なんて看板を立てておきながら、じぇんじぇんデジタルな話が出てこないやんか・・・とお叱りのメールを頂く前に、すこしはデジタルな話を書こうかな~っと思い、胸に手を当ててみたが、何も思い浮かばなかった。こんなこっちゃダメですね~。

 今、模索中のやつでもいいですか? 完成したわけでも製品化するという話にもなっていない、ちゅ~と半端な話ですが・・・イイですか?
64個のフルカラーLEDを音楽に合わせてイルミネーションさせるというモノで、只今実験中のお話です。突っ込んだ部分は製品化された時に問題になるとマズイのでしませんが、概略だけ、触りの部分だけという条件でお話します。

 PICでLEDを光らせるということは、電子工作をする方なら一度はやったことがある、オーソドックスなモノですね。とうぜんワタシも今までに何度もやってきています。典型的な例としてはクリスマスツリーの電飾ですな。電気と光りモノは切っても切れない関係があります。

 今、実験中のモノは、ひとつのLEDパッケージの中に赤・緑・青の三つのLEDが入ったフルカラーLEDといわれるものを64個並べて、音楽に合わせて綺麗な光り方になるようにPICでコントロールしようというものです。
綺麗に光らせるということは、単純に点灯と消灯だけではダメです。いろんな色の光で輝かせるためには、暗く光るとか明るく輝くとかの輝度コントロールも必要になります。

ねっ、いきなりハードルが高くなるでしょ。

 64個のフルカラーなので×3=192個のLEDの輝度コントロールも合わせて、さらにさらにですよ、音楽に合わせる・・・ということはA/D変換もやるということですぜ。そして最優先の条件はPIC16F877を使用して低コストで・・・。という絶対命令っす。
こうなると、無茶を通り越して無謀なことを・・・やろうとしているんではないでしょうかね?

先に結論を書きましょう。

PIC16F877Aで64個のフルカラーを音楽に合わせて32階調の輝度コントロールするには専用のLEDドライバーが必要でっせ

低コストが条件なので、LEDの点灯回路をマトリックス回路にして、ダイナミック点灯だけでやればコストもかなり低く抑えられます。ですが、16~32階調の輝度コントロールまで行うと、16F877の速度の限界を超えることに気づきやした。

で、現在は、とりあえず32個のフルカラーLEDを3~4センチ間隔にリング状に配置した外観になっている。電線を束ねた直径3~40センチの輪っかに点々とLEDが付いている状態。
16段階の輝度コントロールとオーディオ信号のRとLの2チャンネルのA/D変換を同時に行う、というところでお茶を濁して誤魔化してる。何故、リング状にLEDを配置したかというと、光をグルグル廻したりするだろうと思っているから・・・へへへ。

使用しているフルカラーLEDは値段の安い、秋月さんで売っている比較的大きなLEDです。


フルカラーLED


右の写真は赤・緑・青を光らせて白色の光にしたところです。赤・緑・青は光の3原色で、各色の明るさをじょうずに加減すると、すべての色の光が出せる。パソコンのモニターも同じ原理で総天然色表示(ふ、古ぅ~)が可能になっている。

でも、だが、しか~し。安モンのLED(秋月さん、すんません)では、そうは〝イカの●●〟でっす。

またまた、お下品ですみませ~ん。


 このLEDではどんなに上手く調節しても綺麗な白い光にはならない。3原色の光が拡散せずに外に向かって出るので、赤・緑・青の光がバラバラになって見える。写真ではカメラの性能が悪いため上手く拡散して白色に見えているだけです。
ざんねん。

なので、このLEDの前に光を拡散するようなレンズ、あるいはフィルターを置く必要がある。そうすると、まぁ、何とか白色に見える。






フルカラーLED2


 こっちのLEDは米粒ぐらいの小さなものだが、これもれっきとしたフルカラーLEDで、これは光が発光する廻りに白い反射板のようなものがあるタイプで、これはうまく調整すると白い光を出してくれる。写真では水色の光ですが・・・。

 白い光に近づけるには、単純に赤・緑・青を均等に光らせてもだめ~。10を最高輝度とすると、赤=8、緑=10、青=3ぐらいの割合。LEDにもよるが、青はこんなに暗くてもじゅうぶん白い色に見えるよ。

 さてLEDの講釈はこれぐらいで、ちゃっちゃっと進めるよ。

 次にダイナミック点灯でどうやって輝度コントロールをさせるかですね。
 答えは簡単、PWMですよ。LEDが点灯している時間を長くすれば明るく、短くすれば暗く光ります。これ、ほんとっす。人間の目って結構エエかげんなんすね。そのエエかげんな眼をもっと、ダマクラかしているのが、ダイナミック点灯方式。

 たくさんのLED、今回はフルカラー32個なので、LED一個に一個の点灯・消灯回路を作っていたら、96個も部品が要ることになりますね。そんなことをしたら社長から 「 ばかモノっ! 」 って怒鳴られますぜ、アニキぃ~。
赤・緑・青のLEDを光らす時は同時にアクセスするものなので、32個のLEDと見なして、それを8個のグループに分けると4組できる。1組のグループを選択しているときに8個の点灯・消灯回路を使えば3色で24回路、組の切り替えに4回路、トータル28個の回路で済みますぜ、旦那ぁ~。8個の回路が入っているICを使えば、4個のICでお釣りが出まっせ。

でも、そんなことしたら、一度に8個のLEDしかON/OFFできないよ・・・。

大丈夫。ものすごい速さで順番に切り替えていったら、人間の眼玉なんてしょせんガラス球、全部点いているように見えまっせ。

ほんとか?

ほんまでっせ。蛍光灯も本当は点いたり消えたりしてまんねんで、でも、誰ぁ~れも文句言いまへん。エエかげんなもんでっせ人間の眼って・・・。



という、何故か大阪弁の会話が有ったのか、無かったのかは知らないが、ダイナミック点灯とはそんなもの。

 回路の切り替えはPICの割り込みを利用して正確に一定時間で切り替えていく。その時に先ほどのPWM処理で光っている時間を加減して輝度調整も同時にやる。ダイナミック点灯でLEDを8個ずつ切り替える時間は2mS。これが4個分繰り返されるので、ある組のアクセスが終わって、次にもう一度その組の順番が回って来るまで8mS待たされる。これぐらいだとチラツキも無くはっきりと点灯する。でも、この待たされる時間が長くなると、さすがにエエかげんな人間の眼でも気が付く。LEDがチラチラするのが目立つようになる。チラツキが見え出すのが10mS~16mSぐらい。

 フルカラー64個を32階調に輝度調整すると、組は8つになるので、ひとつの組をアクセスする時間が2mSを切り出す。無理やり2mSを確保すると、×8=16mSの待ち時間になりチラツキ出す。1mSにするとひと組あたりの光っている時間が少なくなるので当然暗くなる。さらに輝度を32階調にするにはその1mSを32で割ることになるので、31.25μSになって、PICの限界に達する。ね・・・。
やってみてわかったが、割り込み処理が終わる前に次の割り込みが掛かって、メイン処理が進まなくなった。前にも書いたけど、店番していてトイレへ行きたくなったが、お客さんが次から次へとやって来て〝ひぇ~〟って、なっている、おっさんみたいだと・・・。

 輝度調整を専用のLEDドライバーで行えば、時間に余裕が出るのでLEDをもっと増やすことも可能だが、親分の命令〝コストを掛けず〟に反するので無理になってくる。
おッちゃんは、くやしい~です。

 そのため、現行はフルカラー32個を16階調でコントロールしている。内容は8グループの赤・緑・青のLEDを4組に分け、PICを164μSのタイマー0割り込みで、ひとつの組のアクセスを16回行い、輝度情報に合わせて光っている時間を調整するという方法にした。一番明るく光るのは16回アクセス中、全部ONで、暗い時は16回アクセス中1~2回目あたりでOFFにしてしまう。輝度情報が0の時はまったくONにしない・・・とやる。ひとつの組のアクセス時間が164μS×16=2.624mSになる。これを4つの組に対して順番にやるという方法。


 しゃて、次の問題は32個のフルカラーLED、赤・緑・青にして96個のLEDの明るさをどうやってプログラムで自由に調整するか?・・ですな。

 一番やりたいのは、音楽の音量に合わせて光の数をリアルタイム変化させるレベルメーターですね。あとは、曲のテンポに合わせて色が一斉に変化、あるいはある色の光の塊がグルグル回るとか、滝のように光が流れるとか・・・。考えたらきりがないっす。おッちゃんは興奮して夜も寝られなくなります。

 こんなことで、おッちゃんは興奮するんです。お~じょぉ~しまっせ。
 昔、地下鉄の電車をどこから地下に入れたのかを考えると、寝られなくなるおっさんがいましたが、それと同じです。
たしか、地下を掘る前に、電車を先に埋めておくんですよね・・・、あっ、違うか!


 こういう、くだらない話ばかり書くから、原稿が膨れ上がるんですね。はんせい、反省・・・。
 で、どうやったら、瞬間、瞬間に変化するオーディオ信号にリアルタイムに対応して光を変化させるかです。
 オーディオのアナログ信号は、さっきの164μSおきに掛かっている、ダイナミック点灯の割り込み処理の中でアナログ→デジタルの(A/D)変換を行ことにしました。
PICのA/D変換時間は50μSも掛からないので、割り込みの周期にじゅうぶん間に合う。ひとつの組のLEDに16回アクセスするとき、A/D変換も16回行われるため、時間的にはじゅうぶんっしょ。

 あとはそのA/D変換された値に合わせて光をどうにかしたらいいということ。
 でも、割り込み処理内で、いまどの組のLEDがアクセスされているかわからんし、そのタイミングに合わせて一番先頭のLEDだけを光らせるなんてことは至難の業。オーディオレベルメーターって、いったら常に光りがパラパラ動いてんすよ。どうすんの?でしょ。

「ポクポクポク・・・ち~ん。」またまた一休さんっす・・・。 ぜったい古いっす。

 プログラムを簡素にして、それでもなおかつ効果的に96個のLEDへリアルタイムに情報を流すといったら、VRAM方式しか無いっしょ。

 PICの中にあるメモリーテーブルにLEDの輝度情報を確保するテーブルを赤・緑・青の組ごとに32個、トータル3組で96個拵え、割り込み処理でその中のテーブルを読み出しながら、順次ダイナミック点灯で各色別にコントロールしていけばバッチリでしょ。ひとつの組にアクセスする時は一度に8個のLEDのON/OFFを2.624mSで切り替えるので、4つで10.496mS≒10.5mSでメモリーテーブルを一巡することになる。音楽データから見れば、じゅうぶんな速さになる。
ところで、この方式はVRAMとは言えないので、LRAM方式とでも呼びますか・・・。

LRAM方式というのは、ようするにメイン処理で各色のLRAMの1番地~32番地の内容を輝度データ(最高輝度0x0F~最低輝度0x01、消灯=0x00)として書き換えるだけで、あとは割り込み処理がそれぞれの色のLEDに転送してくれるので、LRAMのアクセスだけを考えればいいことになり、こりゃめっちゃ楽や~と、なりますね。

 レベルメータを作るとしたら、その時のレベル値に合わせた数のLRAMの中に輝度情報を書き込むだけ、例えばA/D変換の値が、最大付近の0xFFだったら、LRAMテーブル全部の番地に輝度情報を書き込むだけ。
LRAMは赤・緑・青の3種に分かれているので、赤のLRAMの全部の番地に0x0Fを書き込むと赤色の最高輝度で全部のLEDが点灯する。緑と青のLRAMだけに書き込むと水色になる。A/D変換値を8分の1するとちょうどLRAMの最大番地になるので、レベルメーターはあっというまに出来上がることになる。(0xFF÷0x08=0x1Fになる)
実際、よろこんでころこんで作ってみたところ、レベルメーターはバッチリ動作してくれた。感動でした。
 最初に書いたが、赤のLRAMに=0X0C、緑=0x0F、青=0x03のデータを書き込むと、書き込んだ場所のLEDがちゃんと白色で光る。なので、LRAMに書き込むを数値をランダムにしたり、最大レベルを超えるたびに変化させたりすると、カラフルな美しいオーディオレベルメーターになった。

 しかし、世の中上手くいかないもので、実はここだけの話・・・。
あることに気が付くまでは、挙動不審のウェブブラウザと違い、プログラムの世界はすべて計算通りに進むんぢゃのぉ~と、思っておりやした。すみません、自分の能力の無さにようやく気が付きました。ごめんなさい。

 このプロジェクトには、音楽の数値化という巨大な難問が控えていたんです。
たしかにダイナミック点灯処理の合間にA/D変換をして、LRAM方式でリアルタイムにLEDをコントロールするというデジタルの基本のような仕組みは上手く動いていたけど、音楽というアナログの世界に強烈な試練が待っているとは思ってもみなかった。ほんと、レベルメータ如きで浮かれている場合ではなかった、とさ・・・。

やっぱり、〝あほ〟ですな~。 v(⌒o⌒)vイエーイ


 割り込みの話とA/D変換の話が出てきたので、初歩のPICの次のお題は〝割り込みを使う〟にしましょう。







2009年5月7日(木)

試練なのぢゃ・・・

進む 戻る 先頭へ

 32個のフルカラーLEDをLRAM方式で光らせる方法はうまく動いてくれたが、オーディオ信号に合わせて美しく変化するイルミネーションを作る、という計画は暗礁に乗り上げていた。

 LRAM方式というのは、赤・緑・青のLEDの輝度情報テーブルをLEDの数だけ3色分確保して、そこに書き込まれたデータを輝度データとして、割り込み処理内でリアルタイムに出力し、LEDの明るさをコントロールするという方法のこと。

 LRAMの1番はLEDの1番、LRAMの2番はLEDの2番、と対応させているので、例えば赤のLRAM1番に0x0F、緑のLRAM1番に0x0F、青のLRAM1番に0x00を書き込むと、LED1番がオレンジ色に光るという仕組み。
そして緑のLRAM1番の輝度データを徐々に減らしていくと、当然そのLEDは緑の光が弱くなり、最後にはただの赤い光になる。

 この各色のLRAMを音楽に合わせて操作すると、美しいイルミネーションになる。計算上は・・・。

 ところが、です・・・。
 計算どおりにいかないのがアナログの代表である音楽ですな。まぁ、音楽信号の音量レベルを数値化して、それを利用してLRAMを操作すれば、立派なレベルメーターにはなった。ここまでは一応満足。LRAM方式のテストみたいなものですからね。
でも、レベルメータはオーディオ機器にも付けられていて、見かたによっては綺麗なものだけど、美しいイルミネーションになるとはいえないよな。
もっと音楽にノッている光り方を考えなければいけない。ようするに〝Groove〟する機械を考えなければ成功とはいえない。

〝Groove〟とは、音楽に〝乗る〟こと。「ノッてるかい! いぇ~い」の〝乗り〟のこと。
 機械が音楽を理解して〝乗った〟ように光を操ってくれたら、大成功といえる・・・んが、これは難しい。

 最初に考えたのはフーリエ変換を利用して周波数分析をして・・・と考えたが、頭がついて来なかった。ぶははは・・・(恥かしィね)
たとえついて来たとしても、このCPUでは無理、掛け算も割り算もまともにできない。ましてや微積分など無理っす。あたしゃ、さっさと諦めたモンね。

 そこでカッコイイ光り方のパターンをたくさん作っておき、それを曲のテンポに合わせて切り替えていくという方法を探ってみた。そのためには曲のテンポを読み取る方法を考えなければいけない。

 昔から音に関してはイロイロやってきているので、ある程度の機材は揃っている。まずはドラム単体のLOOP音の波形を入力してみた。


ドラムのLOOP音の波形(音出せますよ)


 この波形を見るとドラムを〝パンッ〟て叩いた時とバスドラムを〝ドン〟って蹴った時に、大きくレベルが上っているのがよくわかる。ならば基準値を決めておき、それをを越えた時がテンポの目安になるのではと思い、アルゴリズムを考えてみたが、そもそも基準値って何? この機械に入ってくる信号は音楽で、その音量の大小のレベルが数値になって飛び込んで来るだけ、それが証拠に次の写真を見て・・・。



ノリのよい曲の波形


 これはテンポの速い、ある曲の波形。たしかに波の大きさに規則性はあるが、ドラム単体の時とは大きく異なっていて、メチャクチャ複雑になるでしょ。ここからどうやってテンポを読むアルゴリズムをひねり出すか・・・。

 約半月、あたしゃ、かなりの試行錯誤を繰り返してましたぜ。


 さて、どうなったのでしょう~か。


それはまたこの次に・・・。  ( -_-)旦~ フゥ







2009年5月8日(金)

試練の合間に・・・

進む 戻る 先頭へ

 5月に入ってから、ここ1ヶ月の自分のやってきたことを、このページで羅列しているようだけど、実はこれ、今後の自分に対して、忘れないようにしているだけなんだよ。けっして、こんなことやってるんだぜ、とダラダラと自慢げに並べているのではおまへん。

 ところで私は東京生まれの大坂育ちのハイブリッド人間なので、関東弁と大阪弁が交互に出るんだ、ほんまでっせ。え?読みにくいって?これはエライすんまへん。

 ここに書くということは、ウソは書けないし、解かりやすく説明するように書かないと、いくら電子機器の世界が好きだというヒトでも、上手く伝わらないでしょ。なので、客観的になるよう、頭の中を組み直す必要があり、これがいいリハビリになる。

リハビリっていっても、別になんかおかしくなったのではないよ。もう一度、頭の中が整理されるっていうこと。これが問題解決に実にいい。悩んでいる人は一度お試しあれ。
ずっと難しいと思っていた事柄が、書いているうちに頭の中が整理されて行き、〝すっ〟と霧が晴れるように解ける時があるし、正しいと思い込んでいたことが、間違っていることに気づく時も何度もある。

そして、何よりも文章として記録されるので、今後同じような目に遭った時に読み返すことができる。この仕事は人から教えてもらってできる部分は基礎的な部分だけで、そこまでは誰でもできることでしょ。それらを応用して、それ以上のものを拵えた時に代価となって返って来るもんだと思っている。その部分っていうのは人に訊ねることができないので、忘れないようにどこかに書き留めておかなければいけない。それがここということですね。

 それぢゃあ、ここに書いてある文章を見て誰かが真似するかもって? 大丈夫。ヒントにはなるかも知ればいけど、ここに書いてあることを読んだだけで、カタチにできる人ならもっと進んでいる人ですって。

 内緒だけど、私は〝止まると死ぬのだ〟病に侵されている。寝ている時と食事中以外は、いや、ひどい時は食事をしながらでも何かしている。あるいは、何か考えている。バカバカしくて、人には知られたくないような内容から、超最先端過ぎて誰も見向きもしないようなモノまでいろいろ。
そして、このサイトを更新したり、本業の方で作っているモノを〝どうやって考えた〟とか〝どうやって作った。その仕組みは・・・〟などを、もっともっと詳しく書いた、開発ドキュメントなんていうモノも別枠で書いているでしょ。
他にも西宮文学全集の原稿も書いているし、よそ様のホームページも作らさせて貰ってるし・・・。ねっ。〝止まると死ぬのだ~〟という病が見えてくるでしょ。

と、うだうだ書いているあいだに、ガネーシャからメールが・・・。

ふむふむ・・・。次はガネーシャっちの会社のホームページを作ってくれっていうご依頼ぢゃ。
おぉ。またまた次の難問がやって来るのか。ワクワクするやんか。

さぁ~て、次のお題は何んでっしゃろ。







2009年5月9日(土)

試練の合間に(2)・・・

進む 戻る 先頭へ

 あ~。 しゃて。
再びサイト製作の依頼が入ったので、しゃっしゃっと、音楽に乗って(Groove)光を綺麗に光らせるマシンの話を進めましょう。

 だいたい、音楽を完全に理解できる機械なんて、できるか~い! と、叫んでしまいそうになるが、そう言ってしまっては実も蓋も無いし、給料泥棒と言われても文句は言えない。

 私は、給料泥棒と呼ばれるのが嫌さで、必死なっていままでやってきたところがあるかも。簡単に実現できるものなら、物理的な時間さえいただければそれは完成する。なので、堂々と御代を頂戴できる。ところが、できるかできないモノに手を出している時間に御代をいただくというのに抵抗がある。そんなことをいっていたらモノ造りしている人から、どえらいお叱りの言葉を貰うかもしれないが、私はどこか自信が無いのか、こういうことに躊躇してしまう。

 で、給料泥棒といわれたくない一心で考えた・・・。
フーリエ変換は己の知能では理解不能だったので、音楽に〝乗っているような〟光り方のパターンをたくさん作っておき、入力されている曲調やテンポを読み取って、それに一番近い光り方パターンを自動的に選び、光の変化速度をテンポに合わせるようなモノなら、音楽に乗って(Groove)光るマシンに、見えなくもないかも・・・。

 そこで、音量レベルの激しく変化したピーク値が、ある基準値を越えた時を読み取ることで、そこからテンポが読めて、ある程度、曲の特徴が捉えられるのではないか、とね。
ところが、イロイロな曲を聴いてみるとわかるけど、メロディがゆったりと流れるような静かな曲もあれば、激しくビートアップした、リズミカルで大きな音の曲もある。となると、基準となる値は一定ではないぞ、と。そもそも基準値ってなんや?となった。

 ある曲に限定してしまえば基準値は簡単に割り出すことはできる・・・と思ったでしょ。私もそう思った。ちゃうのです。同じ曲でも曲の中では静かに流れるような曲調になったかと思うと、いきなり、〝ドンッ〟って爆発的に音量が上ってテンポアップしたりするのですよ。こうやって作曲家の人たちは、曲を盛り上げているんす。これにまんまと(?)乗せられるのが、Grooveなんですね。

 ということで、基準値は流動的に変化しないとダメだと考えた。
曲全体を一度読み込んで、基準値の変化をあらかじめ調べるという方法もあるけど、これは実用的ではない。リアルタイムに曲に追従して変化していくものでないとダメ。

ね。ハードルが高いでしょ。頭痛いす。



痛いのはこんなページを読まされている方ぢゃ。   ( ̄Д ̄;)スンマソン…







2009年5月10日(日)

病は植木(キ)から・・・

進む 戻る 先頭へ

 〝止まると死ぬのだ〟病の私は、ガネーシャっちの会社のホームページを作っている合間に、植木の鉢を交換していた。

 〝止まると死ぬのだ〟病はパソコンだけに向かう、引きコモリ病とはちと違う。自分の好きなことならなんでも手を出して、凝りまくるのだ。
 今日も、ベランダに置いてある植木を見つめていると(アイデアに煮詰まると、トイレにコモるかべランダの植木を眺めます)、「あかん。この植木は大きくなり過ぎていて、今すぐ植木鉢を大きいサイズにしなければ枯れてしまう」と思ってしまった。
思ったら最後、〝止まると死ぬのだ〟病の患者は止まらない。すぐに大きな植木鉢を探し、スコップで土を掘り出すのでありました・・・。あ~めん。

 昨日から大阪はもう夏です。小さな植木鉢に植わっている〝ラデマキヤ シニカ〟もキツイ陽射しで少しつらそう。下の写真は去年の年末(2008.12_31)に写した〝ラデマキヤ シニカ〟で、見てもらうとわかるように小さな可愛い植木鉢に入っている。



年末頃の植木さん






そしてこれが今日の状態。横に、ちょこんと置いてあるのが前のおうち。


巨大植木鉢に入れられた植木さん



 これなら当分植木鉢を変える必要は無し、というぐらい大きな植木鉢に移動してやった。いくらなんでも大きすぎると言う周囲の意見を無視して、特大の植木鉢にお引越し。

久しぶりの初夏の陽射しを浴びて、すこし気晴らしになりました。

手を洗って、再びキーボードに向かう〝止まると死ぬのだ〟病のおッちゃんでした。

止まると死ぬのだぁ~。  (^。^;) あほや~






2009年5月18日(月)

ウイルスだいじょうぶ?・・・

進む 戻る 先頭へ

 ガネーシャっちの会社のホームページが完成して昨日から起動している。例の如く、掟破りのオールフラッシュサイト。
デザイン屋さんのホームページだが、型にはめられることなく自由に遊ばせていただけたのが、とても気持ちよかった。まだまだ手を加えていくが、とりあえず動き出した・・・。
で、どんなかなぁ~?って思われた方はこちらからどうぞ

 しかし新型インフルエンザにも掛からず、無事になんとか終わったね。これでようやくいつもの日常のペースに戻れる。

 ところでインフルエンザといえば・・・。
今日、仕事場でマスクが支給された。一応予防せよとのこと・・・。
 う~ん。ウイルスの大きさから見ればこんなマスクの網目なんて、素通りだよな。
え?
 呼吸で出している水蒸気の湿度で、ちったぁ~予防になるんだって? 
 ふ~ん。そうなんや・・・。ぢゃしとこ。

 ということで、今日一日マスクを掛けていた。でも、何か病気になったような気がして暗くなりそう。

ところで、このウイルスは衛生面で過保護に育てられてきた人にうつり易いとか・・・?
子供の頃に不衛生なことばかりしていた、あたしにゃ絶対うつらんやろね。

ウイルスの方が避けますから。ババチイって・・・   ( ̄Д ̄;) ンナ アホナ~

ババチイ(大阪弁)=汚らしい、汚れている







2009年5月23日(土)

パソコンのライン入力からA/D変換の敵、電源の揺らぎを読み取る(1)

進む 戻る 先頭へ

 先日bit2033さんから訊ねられたA/D変換の話がずっと頭にこびりついている。
 そういえばA/D変換処理をやらされたことはあったけど、そんなに精度を要求されたことがないなぁ~。まじめに精度を追求していけばどこまでやれるんだろうか・・・。
なんてね。妙に悩んでしまったわけなんですよ。

 こういう話に、あまり近づきたくない方のためへ簡単に説明しますね。
 知っとるわい、っていう方は、飛ばして飛ばして・・・。
 でも飛ばすと、読むトコ無いよ・・・ぶふふふ。

 A/D変換っていうのは、デジタル信号しか扱えないコンピュータに、アナログの信号をどうやって取り込もうか、っていうお話なんすよ。

 例えば乾電池・・・。
1本で1.5V(ボルト)あるというのは誰でも知ってるよね。電池が無くなっていけばドンドン電圧が下がって1.2Vに、そして1V、0.7V・・・0.3V・・・やがて空っぽになって電圧は0Vになる。まぁ実際は、0.5V以下になれば、そろそろって思われて、新しいのと交換されてしまうけどね。

この時、消耗されて変化していく電圧を超簡単にグラフで描いてみると、下の図のように左上から右下へ向かって降っている線が書けるでしょ。
時間と電圧の軸をいくらでも拡大すれば、16分23秒後は1.044567Vだったとか、調べることができるでしょ。この線で書かれたような、連続した信号をアナログ信号というわけ。


乾電池の消費曲線でアナログ信号を考えよう



 アナログ信号のように、いくらにでも表現されてしまう数値は、デジタルさんには大の苦手。
こちとら江戸っ子でぇ~っ。生まれたときから竹を割ったような性格なんでぇ~っ。なんでもポンポンっと割り切って、〝まっつぐ〟に〝しゅ~〟っとしてねぇっと、やっとられまへんわ!というのがデジタルさんで、「数字なんてなもんは、0と1だけあればいいんでぇっ!」と、おっしゃられるのでありました。

ま、実際は〝0〟と〝1〟を組み合わせて数字を作ってるんですが、これ情報とか呼んでいて、単位をビットといってます。話が長くなるので、手短に・・・。メモリーは無限には無いのです。

 超飛ばして説明すると、1ビットで〝0〟と〝1〟の2種類の数値が表現できる。2ビットで〝00〟〝01〟〝10〟〝11〟の4種類。
さぁ飛ばすよ・・・振り落とされないように付いて来てよ。

4ビットで16種類、8ビットで256、16ビットで6万5536、32ビットで42億9千以上。
ふぅ~しんど。

種類と書いていたのが、コンピュータで扱えることができる数値のこと。難しく考えたらだめ。ここは簡単にさぁ~っと通過しよう。

8ビットなら0~255までの数値が、16ビットなら0~65535までの数値が扱えると考えておけば簡単。安物の8桁電卓なら0~99,999,999までの足し算ができるようなもの。うちの家計なら5桁もありゃ、じゅうぶん。(恥っす)

しゃて・・・。A/D変換が変な方向にぶっ飛んでしまいましたね。

 ようするに、先ほどの乾電池のように徐々に降っていくアナログ的な電圧を、デジタルのビットで表す数値に変換しようぜっ。というのが、アナログ-デジタル変換ということで、A/D変換となる。
では、どうするか・・・。


 まず、基準になる電圧を決めます。それを扱うビット値で割ります。これが最小変換値となって、1ビットあたりの電圧値になる。たとえば4ビットで1.5Vの電圧をA/D変換するぞ! って、なったら、4ビットは0~15の数値の範囲なので1.5Vを15で分割してしまえ、という考え、なので、1.5V÷15=0.1(100mV)が一番小さい数値で、最小変換値となる。この最小変換値を求めるために決めた元の1.5Vを基準電圧=リファレンス電圧と呼ぶっす。

 ここまでわかったら後は簡単。

乾電池の電圧を調べて、その時の電圧を最小変換値で割ればOK。余りが出る時は切り捨てる。ようは、最小変換値が何個あればその時の電圧に一番近づくか、を計算しているだけ。
これを高速に繰り返せば、なんとかアナログっぽい信号に近づけるぜ・・・。というのがデジタルのA/D変換のお話。


A/D変換の考え方


 上の表なら20分後は0.75Vなので、0.75V÷0.1=7、余り0.05。小数点なんて2進数では無いので無視して、〝7〟をA/D変換値として、余りは切り捨てる。ね。簡単でしょ。

1.5Vをリファレンス電圧にして、0.75Vを4ビットでA/D変換したら、〝7〟でしっ!
最小変換値を掛けると元の電圧に戻るので計算しましょか・・・。
 0.1×7=0.7V
ありぃ~? 0.05V狂っとるぞ? ま、いいか・・・。

え? 余りを捨てたからって?
そう・・・。捨てるよ・・・。しょうがないじゃん。デジタルというのは、そういうもんなんだから。

これが量子化誤差と呼ばれるもの。 出るもんは、出るんだからしょうがない。

え~? そんな無責任なぁ~。
・・・ですよね。

出るもんはしょうがないけど、小さくすることはできる。 変換ビットを上げるのだよ。
さっきは4ビットだったのを8ビットにすると、分割数は255に一気に上るので最小変換値は
0.0059=5.9mVという小さな数字になる。
0.75Vを変換してみると、127・・・余りは切り捨てて、127を元の電圧に戻すと・・・。
127×0.0059=0.7493だよ。誤差は0.0007V

 どれぐらい細かく数値を割るか、どれぐらい速く、多くのA/D変換を繰り返すか、という部分を極限に小さくすれば実際のアナログ値との誤差はどんどん小さくなるね。これが現在のA/D変換のやり方。

どう? いい感じでしょ。
ただPICでのA/D変換はリファレンス電圧が2.5V以上でないとダメらしいので、1.5VのA/D変換はできない。

bit2033さんのお話では、リファレンス電圧5Vで10ビット変換をするということだ。10ビットは0~1023なので5V÷1023で、最小基準値は0.00488V=4.9mVという小さな数字になりますね。

ところが、実際に変換させてみると数値が微妙におかしい・・・。というのがこのあいだのお話。

 A/D変換にはまだ大きな罠があるのでしたね。
さっきから出ているリファレンス電圧。基準電圧というやつ。こいつがフラフラ変化していたら、どうなりやす?
そうっす。変換された数値もおかしくなるよね。だからこれが原因ではないかと思っていた。今回のお話では、リファレンス電圧をシステムの電源から引っ張って来ている。最近の電源はかなり性能がいいはずなので、精度を無視すれば間違いではない。
逆にコンピュータの電源が粗悪だったら、しょっちゅう計算ミスばかりしているお馬鹿マシンになっていまう。3の倍数だけ答えがおかしいマシンが有ったら、それはそれでおもしろいけどね・・・。

 しかし、いくらコンピュータの電源の性能が良いといっても、乾電池のようにビッタリ平坦な純粋な直流ではない。わずかに変動しているハズ。bit2033さんもそう思っておられるようで、電源ラインからリファレンスを取らずに基準電圧を出す専用の部品を使ってみると、おっしゃってました。

やっとここからが、今日の本題。

えぇ~!!

ひぃ~。ここにたどり着くまでが長かったぁ~。

すんません。ここからが本題なんです。m(_ _)m

5Vを10ビットで変換すると4.9mVが最小になる。5Vの約千分の一という、めちゃくちゃ小さな電圧ですよね。でも、もしリファレンスにしている電源電圧の変動が20も30mVもあったら、そらすごい誤差がでるわな。でも実際どうなんやろ?

電源電圧の変動・・・。

 bit2033さんは、DC-DCコンバータで12Vを5Vに落としていると書かれていたが、一般的によく使われているAC100Vを5Vに落としているスイッチングレギュレータ電源の変動ってどうなんかな?

 見たいね・・・。うん、見たい。

 早速、仕事場行ってオシロスコープで見てきた・・・。確かに変動はしている。感じでは10mVぐらい。ただ支給されているオシロスコープは40MHzのモノでこれが限界。社長の居るところに行けば、数GHzのデジタルストレージのオシロがあるが、まさかそこへ行って画面に向かって写真を撮るわけにもいかず・・・。そんなことしたら、「 ばかもの! 」 って言われるに決まっている。

 でも見たいね。
 何とか自宅で電源電圧の変動を画像に落とせないか・・・と考えた。

 日ごろから、寿司職人は家では握らんのぢゃ! って、偉そぶっている私なので自宅には工作機材が無い。あたしゃ、計測機材も工具も仕事場任せなんだ。あっち行きゃロジアナもICEも揃っているが、家には資料とWeb関係の本と、あとはパソコンが数台あるだけ。
自慢じゃないが・・・デジタル降魔録なんて大そうな看板を上げているのに、自宅には半田コテニッパードライバー、そしてホームセンターで売っている、千円もしないようなデジタルテスターが1丁あるだけです。

それも、接触が悪くて何度もドツかな動きまへん・・・。 ( ̄^ ̄)えっへん・・・(汗)
(ドツく → 叩く)



我が家にある計測機器と道具はこれだけ。(大恥っす)


結論を先に書きましよう。

お見せしましょう。電源電圧が変動している状態を・・・。

掛かった費用がなんと・・・。
あのね・・・。2GHzのデジタルストレージを購入して、〝はいどうぞ〟っていうオチではありませんからね。

掛かった費用がなんと・・・総額・・・なんと・・・




50円ほど。


ぶははは・・・。笑いが止まらんのぢゃ。 ((((^Q^)/゛ギャハハハ


引っ張って、明日へつづく・・・。









2009年5月24日(日)

パソコンのライン入力からA/D変換の敵、電源の揺らぎを読み取る(2)

進む 戻る 先頭へ

 半田コテと安テスターしかないのにどうやって電源電圧の変動を画像に捕らえたか・・・。

ああっ。そうだ!
電源電圧の変動を測ろうにも、肝心の電源ユニットも自宅には無かったよ。


 ・・・ ( ̄Д ̄;) あほや~。

仕事場行けば、売るほど積み上げてあるのに・・・(売ってますもの)
肝心のものが無ければどうしょうもないぞ。大ボラ吹きかぁ・・・?

慌てたね。あたしゃ。
スイッチングレギュレータの電源ユニットが無ければ、カレーライスにカレーが入ってないようなもの。変動を測ろうって、いうのに、そのものがねぇ~じゃんか。

ねぇ~・・・。 (^m^)ゞ ポリポリ


〝ねぇ〟っていっても・・・。

 しばし、部屋をキョロキョロ・・・。

お、そうか。友人から貰ってハードディスクを抜き取られて、モヌケの殻になっている〝SOTEC〟のパソコンが転がっているじゃん。この中にスイッチング電源が入っとるやんか。


 賢い(?)私は、早速〝SOTEC〟をバラして電源ユニットを取り出した。
そしておもむろにAC100Vをイン! がははは。骨の髄までしゃぶるのだ。
〝SOTEC〟さんありがとう・・・。って、オイ!
 うんともすんとも云わんぢゃないか!


100V突っ込んでもうんとすんとも云わん・・・電源ユニット。


再び賢い私は考えた・・・。

そうか、パソコンは電源ボタンを押すまでは待機状態になっていて、このままでは電源が入らんのや


AC100Vを差し込むまで気が付かない、お馬鹿ブリには頭が下がるな。ほんと。

 で、どうやって電源を入れるの?
 最近のパソコンの電源ユニットは、スイッチで電源を直接入れたり切ったりするような原始時代では、ぬあ~い。21世紀なんだよ世の中は・・・。フロントパネルの電源スイッチはTVのリモコンの電源ボタンのようなもので、それは電源を入れるきっかけ(=トリガー)を作っているに過ぎない。実際に電源を入れるのは、パソコン内部にあるパワー管理ユニットがしているのだよ。ほんと、えらい時代だこと・・・。

 電源ユニットからは接続コードが無数に出ているだけで、どれが電源を入れるトリガー線か解からないし、資料もな~んもない。どうすんの?
黒いコードは、まぁ、GNDでしょ。赤は5V、黄色は12Vでしょ。それぐらいは何とかわかるよ。いくら私でも・・・。
だんだん自信が無くなって来とるのです。あほです。はい。

結局、想像に任せた。

 電源OFF中(AC100Vは入っているという条件で)なら、待機しているパワー管理ユニットへは、最低限の電源パワーを送っているはず。問題はその管理ユニットがどうやって電源ユニットへ、電源の大元を接続せよという指令を送るか・・・。
そりゃ、たくさんあるコードのうちどれか1本がそのトリガー線で、それに電圧を与えるか、0Vに落とすかのどちらかでしょ。コレぐらいのことで、妙な小細工はせんでしょ。

 ということで、もう動かない壊れた〝SOTEC〟さんだが、もう一度電源ユニットをつなぎ直して、AC100Vを突っ込んだ。そして管理ユニットへ送るであろう常時出ている電源ラインを探すために、コネクターに一本ずつテスターを挿し込み測ってみた。もちろん何度もテスターを叩きながらね。

何故叩くのかって?
その理由は簡単、この安テスターは常に叩いていないと接触不良で表示が消えるのです。あははは~。

電源電圧の変動を調べる前にテスターの修理を先にしろよ・・・。ねぇ。


あ~。しゃて・・・。
AC100Vを突っ込んで調べていると、何もしていないのに20ピンコネクターの中のひとつ、橙色コードに+5Vが出ていた。


電源ユニット欲しさに、中を調べているとことです・・・。
テスターの表示が消えているのは、本文に書いている通りです。ぷぷぷ


おほほほ。これが、パワー管理ユニットへ送っている常時電源のラインでゲスな。
コレだけでも今回の電源として使用できる。でも、ここまで来たら〝なんとかこいつを動かしたいな〟と思うのが、こういうものに目が無い人間の性ですね・・・。


 ほりゃ~。これでどうじゃ・・・。と〝SOTEC〟の電源ボタンを入れたり切ったりして、いじくっていると一本の白いコードがそれに合わせて、電源が入ると0V、電源を切ると4.6Vに変化するのに気が付いた。

 この4.6Vというのが、5Vでもない、3.3Vでもない中途半端な電圧でしょ。こういうのが信号ラインなんすよ。きっとね。
電源が入ると0Vになっているのではなく、0Vになったから電源が入った、電源を切ると4.6Vになるのではなく、4.6Vになったから電源が切られた・・・と、考えると私の推理どおりでしょ。(誰でも考えるよな・・・)

 ここがパソコン側から電源ユニットへ、大元の電源を入れろという信号を送っているラインにちげぇねぇ~。と、思い込むアホひとり。
ようするに、0Vになるというところから、GNDに落とせばOKなんでしょ。たぶん・・・。
壊れても元々っすから・・・怖がらず、やることにした。

 再び、電源ユニットだけにしてAC100Vを突っ込み、白線をGNDにつないでみた。
瞬間、小さな音を立ててファンが廻りだし、赤線=5V、黄線=12V、茶線=3.3Vがそれぞれ出だした。

うははは。大成功~。 しめしめ。がははは・・・。


部屋では、しばらくアホの小踊りが続く・・・。
・・・っと、喜んでいる場合ではない。今の段階は、ただ単に電源ユニットが手に入っただけで、話はな~んも進んでいない。

 本題はどうやって、この電源ユニットが吐き出す電源電圧の変動を画像に撮るかですよね。

 あまり引っ張るのも悪いし、知っている人がいたら、もったいぶらずに早くやれよ、どうせあれだろ・・・。と思われているかも知れないので、タネ明かしします。

 電源ラインをパソコンのオーディオのライン入力に突っ込むのです。
あ~。そのまま突っ込むような真似は決してしないでくださいよ。ぶっ飛びますからね。


 パソコンのオーディ入力端子に入って来た信号は、その中にあるサウンドボードに取り込まれて、そこでA/D変換されてデジタル値が作られるんです。そう、昨日説明したA/D変換そのものです。それも16ビットで変換されます。

 いいっすか、この話はもともと、自分で作ったシステムの中で、最大5Vまでのアナログ信号を10ビットでA/D変換したら、電源電圧の変動か何かで微妙な数値になるというところから始まったのですよね。それと同じことがこのパソコンの中でもやっているんです。それもちゃんと程度の良いリファレンス電圧を使って(と思います・・・)それも16ビットで変換されるんですよ。

 16ビットっていうと昨日書きましたが、6万5536もの分解能力があるんですよ。もしリファレンス5Vなら最小変換値は0.000076=76μVという微小電圧になる。

すっげぇ~っすねぇ。


いやいやオーディ信号の変換をするのだからもっと小さいはず。

もう、ひぃ~っすね。


ま、そらそうです、CDプレーヤ並の音質ですもんね。 どう・・・?

〝どう〟って、言われてもしょうがないが、ようは、電源ラインの電圧をライン入力に適した電圧まで落として突っ込んだら、あとはパソコンがデジタル値に変換してくれて、それを音声編集ソフトで波形に変換すれば、電源ラインの変動が画像化されるという〝あんばい〟でヤンスよ。

俺って天才・・・? と、浮かれている場合では無い。そんなことは誰でも考えるって?

なんだ残念・・・俺ってふつうぅ~。


 それより欠点がある。まずCD並の精度があるといっても、音声データを相手にするので最大で25KHzぐらいまでかな。速度でいうと40μS(1μS=100万分の1秒)以上は変換されない。でも電源ラインの変動だからそれほどは速くは無いはず、1mS(1mS=千分の1秒)そこそこなら1KHzだからじゅうぶんに変換されると思う。それよりも最大の欠点は、直流成分をスパんとカットされること。

 サウンドボードに搭載されているA/D変換回路の直前には、各種のフィルターが付けられている。これはパソコン自身が出すノイズを防いだり、オーディオ信号に直流成分が入って来たらまずいことになるので、それをカットする回路が仕込んである。云わば牢屋の門番みたいな、おっさんが居るということ。

 〝パソコン自身が出すノイズが入らないようにする〟という意味はわかるでしょ。実はパソコンの中はデジタルの〝0〟〝1〟が高速に飛び交っている。この時に強烈なノイズが出る。いまからノイズに強いデジタル値に変換しょうとしているのに、自分自身の出す臭いノイズで汚されてはたいへん。そのノイズまでも一緒にデジタル値に変えられてしまうからね。

直流部分をカットする・・・。

 オーディオ信号の最終目的はスピーカーを押したり引いたりさせて、空気を振動させて音に変えること。スピーカーを〝押したり〟はプラス電圧、〝引いたり〟は、マイナス電圧を掛けるということになり・・・あり?逆かな?・・・知らん(む、無責任っす)。
早い話が・・・交流みたいに変化する信号を扱うようになっている。そこへ〝まっつぐ〟な直流電圧を突っ込めば、引っ込むはずの信号が引っ込まなくなったりして不具合が起きるから、サウンドボードの入り口に鎮座している門番さんに、〝スパーン〟とぶった切られるのは当然といえば当然。

 でも、考えてくださいよ。見たいのは電源電圧の変動部分で直流部分では無いはず。変動部分は上ったり下がったする交流の性質が残っているはずだから、門番さんもそこの部分だけは通過させてくれるのでは?
見たいのはその部分ですからね。直流部分は立派なのはわかってますから
やってみましょう。やりましょう。やってみなければわからない。

あの~。
ところでライン入力って・・・ピークトゥピークで何ボルトでしたっけ・・・?

ドタッ!  (ノ_ _)ノ 


ま、1Vp-pもあればいいか・・・。いや、音の仕事もしているので、このパソコンのオーディオ部分を壊すと、ちとまずいし・・・。安全のため、それ以内ということにしておきますかね・・・。

自信、無ぁ~いのだよ~。(大西ライオン風で・・・)


皆さん安心してください。こんな人間がこんな仕事してるんですよ。なんとかなるもんなんですよ。世の中ってやつは・・・。

 ということで、パソコンのことを考えて(ビビって)最大電圧を0.1V(100mV)ぐらいまでにして、下記の回路を拵えたのです。そして巨額な資金を掛けた、世紀の大実験が開始されました。(ふぅ~。大袈裟な・・・)

総額、50円ほどで・・・。←ここがポイントっす。



オーディオ電圧変換回路の全貌。・・・って、チャッチクない?


 押すと切断するスイッチは部屋のどこかに転がっていたモノで、あとは1円ほどの抵抗が2点と、2~30円の半固定抵抗器だけっす。
 ここで、カミングアウトするっす。
 あたしゃアナログ回路が超ぉ弱いっす。ライン入力のインピーダンスから見ると、
 【 半固定1KΩ-560Ω-10Ω-GND 】では、まずいっすか?
 【 半固定10KΩ-27KΩ-560Ω-GND 】の方がいいっすか?
インピーダンスとか云われると、頭の中が〝ピー〟っと鳴って、〝ダンス〟を始めるんすよ。
ま、直流相手なので気にしないでいいっか、それにこの部屋にはその抵抗しか無いもんね。27KΩといわれても買いに走る気は無いっす。それにもう、この回路で実験したんだもの・・・。

真似する人は慎重にね・・・。一応パソコンは壊れませんでした。念のため報告、報告・・・。

 ところで、なぜスイッチが付けられていて、それが最初はGNDに接続されているかというと、何も接続しないでライン入力に電線をつなぐと、僅かな電位の変化を敏感に受けて〝ビィービィー〟音が出るんだ。よくカラオケマイクが接触不良を起こして〝ビィービィー〟〝ガサガサ〟うるさいのを聞くでしょ。あれと同じようなことになる。それと、スイッチを押すまでライン入力へわけのわからない電圧がいきなり飛び込むのも防げるのよ。押すまではそれらを全部GNDに流し込んでいるという念の入りよう。


偉そうなこと書いているわりに、ビビっているのだ。 (=^_^;=) デヘデヘ


まだまだ引っ張って、話はつづくのぢゃ・・・。







2009年5月26日(火)

パソコンのライン入力からA/D変換の敵、電源の揺らぎを読み取る(3)

進む 戻る 先頭へ

 あんまり引っ張るのもなんですから・・・さっそく始めます。
まずは本当に変換されて、波形が表示されるか、実験的に交流電源を突っ込んでみたっす。

 交流電源といってもAC100Vではないよ。コレを読んで、自分もやったろと思われている方、絶対に100Vを突っ込むようなことはしないでくださいよ。100%パソコンがぶっ飛びます。最悪は火災になるかもしれません。

小学校の時に1.5Vの電磁石をコンセントに突っ込んだ人間が言っているんですから・・・。
本当ですよ。瞬間に丸焦げになりますよ。
小学校の時にマブチモータをコンセントに突っ込んだ人間が言っているのですから・・・。

恥ずかしいので、これ以上はやめときます。

 で、スイッチング電源もまともに無かったのに、その交流電源はどうしたかというと・・・。
実はバッテリーの充電器が我が家にはあるんですよ。
クルマがボロいから、すぐバッテリーが上って・・・って、コラ! 誰のクルマがボロいねん!

それがこれ・・・。


我が家にあった、唯一の電源ユニット?


12Vと6Vの切り替えがある、早い話がDCアダプターのちょっと大型版。
トランスとブリッジダイオードと電流計だけの、極超簡素、質素な電源ユニット。平滑コンデンサーも付いてない石器時代の遺物。
でも、ブリッジの手前からだとAC6Vが取り出せるんだ。今回だけは、ほんと好都合だねぇ~。
しかしバッテリーの充電以外に、こんなことに使われるなんて驚きですね。



超・安物DCアダプターの回路図


すぐに充電器をバラすと、そのブリッジダイオードの交流側を計測点として接続した。
(上記回路図と下記写真のオレンジ矢印が交流側)


オレンジ矢印の部分が交流の出ている場所です


 テスターをACレンジに切り替えて、ライン入力に突っ込む点を測るとボリューム最小で
AC 0.038V、最大で AC 0.127Vだった。まずまずの安全圏内なので、ライン入力へ接続・・・。まだスイッチは押してないので、パソコンへは流れ込んでいないはず。
次に、いつもお世話になっている〝Sound Forge7.0〟をパソコン側で立ち上げて録音状態にする。このソフトは音の仕事をする時に、音源の加工に使用しているものだ。

 このソフトには、かなり優秀なエフェクトが装備されていて、外部から入力された単純な音をとんでもなく変な音に加工したり、美しい音に加工したりできる。今日はこれに電源電圧を放り込むという暴挙(?)に出ようとしている。

 しかし何ですね・・・。このソフトを開発した会社も、まさか電源電圧の信号を録音されるとは、思ってもなかったでしょうね。

さて、準備は整った。録音状態にしてスイッチを押す・・・。

   
スイッチを押す前            押した直後


 押すと同時に、右写真のオレンジ矢印が示す通り、Lチャンネルのレベルが跳ね上がった。もちろんLチャンネルにAC6Vの電源を突っ込んでいるからね。Rチャンネルには何も接続していないので、ほとんど変化なし。

レベルメータが動いているし、適正レベルということは何かが録音されているはず。それは電圧変化の波形に違いない。

それがこれだ・・・





ワン、ツー、スリー・・・。






Lチャンネル(上)に見慣れた波形が


上の写真はLチャンネルに入力されている電源の波形がそのまま映し出されている。波の周期を測ってみると、下のウインドウのオレンジ矢印の部分。〝0.016〟秒となっている。我が家は関西なので60Hzの交流が家庭に流れ込んでいる。60Hzを秒に換算すると、
1÷60=0.01666
ばっちり正解!

どうでっか・・・。お客さん。
おもしろ、おますやろ。

何故か関西弁が連発しているけど・・・。
何がおもしろいって、専用のデジタルスコープで見ているのではなく、音声編集ソフトで電圧波形を見ているところ。
洗面器が無くても、水さえ溜められたらそれで顔を洗うことができるのと同じ・・・。
え? 違うかぁ?


では、気を好くして、次は本命のパソコンのスイッチングレギュレータの電源波形ですな。
ライン入力変換回路図で示す計測点 〝a〟点は無負荷なので少々高めの5.22V。ライン入力になる部分は91mVと予定通りっすな。無負荷といってもライン入力分圧用の抵抗が負荷になっているが、タカが知れてますので。

  
計測点5.22V               入力点91mV


では、もったいぶらずにお見せします。


スイッチングレギュレータの5V電源の波形は・・・これだぁ~・・・





ワン、ツー、スリー・・・。






スイッチを押したところからの波形です


ん~?と思われた方もおられるでしょうが、予想通りの結果になりましたね。
何が? でしょ。

 前回の記事を読んでいただけるとわかるのですが、サウンドボードのフィルター部分で直流部分をカットされている部分が見えてます。それにぬぁ~んと。スイッチを押した時の振動現象、チャタリングの様子までバッチリ撮られてますね。おぉ恥ずかしい。チャタリングが丸見えだ・・・。

あっ、ゴホン。こりは失礼しました。つい取り乱してしまいました。

チャタリングの部分を拡大するよ。


点線のあいだがチャタリングが起きている期間


時間にして0.057秒。57mSの出来事です。
 このスイッチは押すと端子が離れる構造になっているので、それまでGNDへ流していた電圧がバタバタと切り替わり、パソコンに流れ込んで来る様子が手に取るように解かる。

電流は一気に流れ込むのではなく、スイッチ端子の金属板が振動するため、短い時間に流れたり途切れたりを繰り返しているのが画面に出ている。
・・・ね、これがいつも云っているチャタリング現象っす。いい勉強になりましたね~。

 続いて波形は、チャタリングが収まり完全にライン入力に電圧が掛かると、こんどは緩やかに落ちて行き、最後は〝0〟になっていますでしょ。
これが、例の門番のおっさん(フィルター)に〝バサッ〟っと直流分を切り取られた瞬間です。直流分が消えてドンドン電圧が小さくなって行き、そして〝0〟になって・・・。これでおしまい・・・だと思うでしょ。ところが〝ぎっちょんちょん〟それで終わりではないのです。

 あ~。ちょっと話が逸れるけど、ここの文章って擬音が多ぉ~くない? 〝バサッ〟とか〝スパッ〟とか・・・。それに〝ぎっちょんちょん〟って何やねん?

・・・ま、いいか・・・。







 何日も引っ張ってきて申し訳ありませんでした。次の波形が、5Vスイッチングレギュレーターの電源出力の変動波形っす。



電源電圧の変動波形(上)と無信号チャンネル(下)のノイズ


直流分をカットされて、0Vになったと思っている部分を、最大に拡大するとこのような波形が現れる。これが電源の変動部分。

 細かくギザギザした部分は、サウンドボードに侵入してきているイロイロなノイズによるもの。下の赤い波形が、何も入力していないRチャンネルの波形。同じようにザワザワしているのがわかるでしょ。でも明らかに異なるのは上の緑の波形はそれ以外にうねっているよね。このうねりが電源ラインの変動だと思われる。
それと、コレは無負荷の条件で計測しているので、実際はもっと揺らいでいると思うよ。

 しかし、このままでは見づらい。でもここから音声編集ソフトの本領発揮。イコライザーで100Hz以上をカットして不要なノイズを消してみた。あまり掛けすぎると、肝心の電源の揺らぎまで消えてしまうのでそれはそこそこに・・・。

それがこれ・・・。


補正された電源電圧の変動波形(上)と無信号チャンネル(下)のノイズ


どうでっか。お客さん。だいぶ見やすくなりましたやろ・・・。えへへへ。すり手スリスリ・・・。


 さて、この変動がいくらぐらいあるかということ。

ここが、今回の最大の山場であり、最大の難関。何せ一銭も掛けずに調べようぜっていう、貧乏臭くて、とてもセコイことをしているので、ここからいきなり胡散臭くなる。
まじめに読んでくださっている方。どうも申し訳ありません。

先、謝っておこ~っと。

 先ほどのチャタリング部分の波形を見てもらうと、電圧が最大伸びたところが、一瞬だけ現れた電圧5Vの瞬間。縦軸の数値はだいたい〝35〟ですね。
この波形を表示しているソフトは、音声編集用のモノで信号測定用ではない。単位は〝%〟だ。上一杯まで振った波形を100%=0dB、50%の位置で-6dBと、しているに過ぎない。だから、5Vの波形が〝35〟ということは、1Vなら〝7〟でしょ。0.1Vなら〝0.7〟に、10mVで0.07なので、逆算すると0.007で1mVになるから、さっきの電源変動波形を見ると-0.1~+0.05なので変化は合わせて 0.15%ですね。

ということは、0.15÷0.007=21.4mV
・・・になるっちゅう・・・ことで・・・。
ん~? と言われるところを、ひとつ、今回はご勘弁いただけないでしょうか。

m(_ _)m …スミマセン


次は乾電池の波形と並べて比較しています。倍率はどちらも同じにしていますので、明らかに5V電源の方が、うねっているのが解かりますね。
やはり乾電池は純粋な直流電源といえるわけですな。


5V電源の波形(上)と乾電池の波形(下)を比較する


 さて、貧乏計測日記も終了ですが・・・。たしかに本物の計測器で測っていないので、どこまで信じていいものか・・・ですが、乾電池やAC波形と比べて見る限り、ある程度はちゃんと読めていると思っています。ただ、正確な電圧測定は、ちと、眉を上げてしまうかもしれませんが、何せお金が掛かってませんから・・・。ねっ。
 音声を波形にして表示するるソフトは、窓の杜へ行けば無料の物がゴロゴロしているので、同じことができます。無料の音声編集ソフトでもイコライザーぐらいは装備していると思いますので、それを使えばある程度は補正できます。お暇なときに挑戦してみてはいかがでしょうか。ただし、パソコンのライン入力の許容以上の電圧を入れないようにご用心ください。

パソコンを破損させるようなことも有るかもしれません。すべて自己の責任で行ってください。


イロイロな波形を付録として置いておきます。興味のある方はご覧ください。

乾電池1.5V
パソコンの3.3V電源の波形
DCアダプターに取り付けた、5Vの3端子レギュレーターの出力波形
DCアダプターのブリッジダイオードに電解コンデンサを付けなかった場合と付けた場合
AC12Vの波形拡大

あぁ。。。充実した休日だったね・・・。

今回はすべて無負荷での画像でしたが、負荷を通してから撮影した方がよかったですね。
ちなみに、ライン入力の分圧部分で570Ω、8.8mAの負荷になっていますが、電源から見れば負荷という数値ではないので、無負荷と書かせていただきました。






2009年5月26日(木)

ほんま、お恥ずかしいことで・・・

進む 戻る 先頭へ

 〝役に立つかも?・・・インデックス〟の更新をするのを長いこと忘れていた。

いやいや。そんなことより、このページ右上端にある〝お役立ちインデックス〟のボタンがちゃんと機能していなかったぢゃないか!。
 おかしいよな。作ったときにちゃんとテストするのに・・・。
ボタンを押しても、そっちのページにリンクしていなかった。ちゅうことは、3月頃から壊れていたことになる。

なんちゅう手抜きなことを・・・。バグがあるのに放ったらかしにしていたなんて、めちゃくちゃ恥ずかしいでは、ア~リませんか。
ズボンのファスナーを全開にしたまま、気付かないでニコニコしながら、手を振って街ん中を歩いてたみたいで、超~恥ずかしいっす。

うぅぅ。穴があったら入りたい。

とりあえず直しておきました。
それから、〝お役立ちインデックス〟の方も4月分まで更新しました。


これで、さらに恥ずかしくなることでしょう。  (* ̄▼ ̄*) デヘヘ







2009年5月29日(金)

催促が・・・

進む 戻る 先頭へ

 まだ5月だというのに、西宮文学全集の編集長からもう6月の原稿を促すメールが届いた。

え~? まだまだ先じゃん・・・。

 いや、コレぐらいから催促を掛けておかないとギリギリまで書かない人が、いるのではないか?
と、ここで〝あんた〟のことでっせ、と書くわけにいかないので、とりあえず、胸に手を当てて
〝え? 俺か?〟と思われた方・・・。そろそろ書き出しましょうね。

私はストックがまだありますから、余裕で本日、出稿しておきます。

と、偉そうなことはもう云ってられないのです。
じつはあとストックが3つしかない。そろそろやばいっすね。

な~んも浮かんでこんです。はい。 ( -_-)旦~ フゥ~







2009年5月31日(日)

独身貴族なのぢゃ・・・

戻る 先頭へ

 久しぶりの独身生活満喫。
 って、いってもあれじゃないよ。カミさんがお風呂屋へ行ったまま何年も帰って来ないっていう話ではないよ。
カミさん方の法事で留守をしているだけの話で、ほんの4~5日のこと。
 ぢゃ食事とか大変でしょうと思われるかもしれないが、と~~~~んでもない。カミさんも料理はそこそこできるが、何でも凝り性の私は料理も自分で結構やる。自慢ぢゃ無いが魚もさばくし御寿司も握る。ま、真似事程度ですが、でも一応家内では好評。さらに鍋物に関しては完全に私が一任されている。これもうるさいから任しておけという理由もありますが・・・。焼き物、お肉・魚・なぜか餃子もバッチリ完璧。餃子に関しては、〝餃子の大将〟そのもの。・・・ちゅうけど、大将の生餃子買ってきて焼いているだけですけどね。ただ焼き加減がパーフェクト。と、おだて上げられて気が付くとマルチ主夫に仕立て上げられている自分がここに・・・(恥ぃ~)

ま、いいですね。ひとりになっても別に臆することなく普段どおりの生活ができる。へへへ。好きなもんを好きなようにして食べれるのぢゃ。

ただし話すと長くなるが、ひとつ弊害が・・・。

 私ゃ、煙草をやめてから、お小遣いという金銭がまったく必要なくなった。仕事場での昼食も健康管理のために、野菜中心のおかずを持たされており、それを食べている。こう書くと、え~?とお思いでしょうが、カミさんの健康管理食がまだなかったころ。30歳を越えた辺りで高脂血症という病に侵された。医療関係に勤めていたカミさんはかなり落ち込んだそうだ。身近なところでこんな簡単な病を克服できなかったことを・・・。という経緯が野菜中心のお弁当になった。おかげでその後、高脂血症は完治し体重も63Kgから54Kgに下がり、以後20年経つが体重は54Kgを維持している。(身長は165cmです)

 昼食がお弁当になり、そして煙草をやめてから小遣いはまったく必要なくなり・・・。というよりも、歳とともに物欲が無くなり、ワイセツ物陳列罪にならない程度なら、服は着れたら何でもいい。クルマは法定速度で走れるのなら何でもいい。散髪は4ヶ月に一度でまったく気にならない。あ、いっときますが常に清潔ですよ。風呂は毎日入ってます。爪もいつも短いです。キーボードに当たる感触が嫌だから・・・。
そんな物欲よりも、今直面している問題解決に時間を使いたい、という精神欲の方に重点を置いた生き方をしたいのです、これが私の考え。ただしパソコンだけはイイのが欲しいね。

 カミさんもそれでいいと思っているらしいく、日々私のマネージャーの如く頑張っていて、絶妙なタイミングでアシストをしてくれている。今日はこんなものが食べたいと言ったら、食材を購入して冷蔵庫に入れてくれる。でも、作るのは私。「食べたいって言ったのだから、あなたが作るのでしょ」てな感じ。そりゃ、もちろんです。文句はありません。私が食べたいものは当然私が作ります。これは本気で思っています。モノ造りを志す人間が料理を作るおもしろさを理解しないわけが無い。そのかわり仕事が忙しい時は、あれが食べたいとか決して言いません。カミさんが作ったものをおとなしく食べています。

 そうこうしていると休日は比較的、私にも時間的余裕があるので、食べたいメニューをカミさんに知らせるようになる。そうすると休日の冷蔵庫には大体食べたい食材が入っているので、それを使って私が料理を振舞う。 こうやって、そろそろ20年は経ったかな。気が付くとすっかり飼い慣らされている自分に気づく。

今日、食べたいものは決まっているのだが、カミさんが法事で居ないので食材が冷蔵庫に無い。仕方がないので買い物に出かける。別になんの不服も無い。好きなものを買ってきて好きなように料理するだけだから。でも、飼いならされた家畜のような生活は身に染み付いていた。

 スーパーへ行って食材を選び、むふふふ、今日はひとりでこれとコレを使って、こんな料理にしようと思いながらレジに並んでいた時のこと。気が付くとお金を持たずにレジに並んでいた。ここが重要。うっかり忘れたのではない。貨幣が必要だということはわかっているが、常に持たないので、そのまま平気で買い物に出たということ、貨幣を持ち歩く習慣が消えているということ。さすがにこの感覚はやばいと思った。いいように云うと、超有名芸能人が電車の切符の買い方が解からないのと同じ・・・いいように云い過ぎ?

 ポケットには辛うじて500円玉が転がっていたので、短冊切りの刺身だけは購入できた。
 資料の本を買うときもネットで注文して代金引換で購入するので、私は直接お金を払わない。呑み屋で払う時もカミさんが精算する。仕事関係で呑みに行く時は、当然自分も払う気で行くのだが、だいたいがご馳走になってしまう。習慣とはおそろしいものです。
 しょうがないので、冷凍庫にあった豚肉を解凍し、カミさんが買っといてくれた春キャベツでお好み焼きを作り、買ってきたカンパチの短冊で一杯やった。
 もう少ししたら、これも冷蔵庫にあった残りもので、玉子とじウドンでも作って食べよう。
玉子とじって一概に言うが、これがまた難しい・・・ もういいか・・・。

そろそろボケて来たのとちがう?  ヽ(ー_ー )ノ オ~マイゴッ!

ちなみにお好み焼きは、水溶き粉の分量よりキャベツの方が多すぎると思うぐらいが、シャキシャキした美味しいのが出来ます。