小学生から中学生の頃は、よく半田ごてを握って電子工作をやっていた。
電子工学の専門書を見て回路を作ったり、いろいろ研究をしたりしていた。自分で簡単な回路を設計したりもしていた。
中でもオペアンプに魅力を感じて専門書をよく見て研究していた。
秋月のキットの絡みで4558というオペアンプに出会ったことがきっかけだったりする。
アマチュア無線をやっていたことや、オーディオに手を出していたこともあり、当時はかなりアナログな電子回路に傾いていたが、後には少しはデジタルも扱った。
コンピューターと電子工作はそれほど結びつけていなかったが、大学での研究時にはMSXに自作ハードをつけてソフトから機器を操作するなんてことをやりデータを取ることもやっていた。
**
電子楽器を扱うようになってからは、D/Aコンバーターを組み立ててデジタル出力をアンプにつなぐとかをやっていた。機器が多すぎてグランドループができたりノイズ対策で苦労したが。
この頃にはアナログ増幅用に4558の低雑音高性能版4580DDとか、オーディオ用と銘打った5532DDとかそんなものを使っていた。
**
そんなことを思い出しながら、秋月で部品を頼む時に、一緒にオペアンプも買ってみた。
**
mbedをつかってファンを無段階制御しようと考えるのも、コンピュータというハードの先に何をやり、どうすればソフトからコントロールできるかと言うことを知っているから、何だ、雑作もないことだと思ってしまう。
ベンツW169の電動ファンは、付属のPWMコントローラーが一般的でない制御をしているおかげでとても厄介なのだけれど、それも何とかしてやろうとか思ってしまう。トヨタのコントローラーならしごく簡単なのに。
ハードの操作をやりやすかったのはホビーパソコンたるMSX2で、ジョイスティック端子とかプリンターポートをつかってハードをつなぎ、ソフトでコントロールすることが容易だった。
子供時代にそう言うことができるハードウエアに出会えたのはとてもラッキーなことで、今どきの若い子たちは
・コンピューターは与えられたものをつかってネットをググるもの。
・艦コレをするためのもの。
程度の意識のが多い。ワードとかエクセルとかパワーポイントとか、そうしたソフトを使ったりもするけれど、自分でソフトを書いたりハードをつくってコントロールするなんて考えがたい環境にある。これは不幸なことだと思う。
しかしながら、今はまた状況が変わりつつある。
mbedのような極めて容易にハードをつなぎソフトからコントロールすることが可能な低価格なハードと開発環境がどんどん開発されて供給されてきているからだ。
これには子供たちが手を出すよりも積極的に、かつての電子工作少年たち(=電子工作中年たち)が手を出しているらしい。
コンピューターはどんどん高度になるものの、自分で容易にソフトを書いてどうかできるようなものではなくなってしまった。
それを以前とは少し違う形ではあるがもう一度自分の手に取り戻すことができるのだ。しかもかつてより遙かに高度で安価に。
電子工作ゴコロのある人たちにとっては、いい時代になったものだと思う。
**
MSXの時代は4MHzのZ80(正確にはもう少し低いクロックだが)で、インタープリター言語の内蔵BASICでプログラムを書くことが基本だった。今は2GHz以上のクロックで2個以上のプロセッサーを同時に動かすのが当たり前で、それを比べると恐ろしく処理能力の低いハードではあるが。
他の8bitパソコンほどマシン語開発環境がよくなかったので、MSXではなかなかやりにくい部分があった。しかし、オンメモリーBASICコンパイラー「MSXべーしっ君」の登場でBASICで書かれたプログラムをかなり速くソフトを動かせるようになったのは画期的だった。自分で作ったSEGA版テトリス類似プログラムが実用速度で動いたのだから。
自分の場合はMSX-DOS上で8bit版のTURBO PASCALを使って自分でライブラリを書いたりしながらソフトを作ったりもしていた。BASICでは32kbytesしかRAMを使えなかったが、MSX-DOSでは64kbytes(-システムエリア数kbytes)を利用できたし、メモリーマッパーを駆使すればうちのマシンでは128kbytesを利用できた。
ASCIIが発売していたアセンブラーも買ったけれど、結局ほとんど使わなかったな。DOS上のTURBO PASCALでプログラムを書きコンパイルすればかなり速く動いたから。
MSXの場合、ソフトを書く上では高い互換性を求められ、I/Oポートを直接操作することは許されていなかった。
とはいえ自分で使うだけなら問題ないので、MSX-DOS2が登場するまでシステムコールがなかったメモリーマッパーなんかは直接ポートを操作して拡張RAMを利用していた。けれど、そんなソフトは外部に出せないし、なんか妙な罪悪感? みたいな感覚があった。
ところがmbedの場合は一切そんなことを考える必要も感じる必要もない。はじめから互換性なんか気にする必要がないのだ。何しろ、周辺ハードは自分が何をどうつなぐのかを設計/デザインするのだから。
当然ポート叩き放題というか叩かないと何もできないはずなのだが、今のところそういうローレベルハード操作のめんどくさいところは誰かが作ってくれたライブラリーを利用することで気にする必要がない。これもmbedのありがたいところだ。
ハード的に用意されていれば、ピンの用途も宣言するだけで変更できるし。デジタルアウトがアナログインに化けたりする。
キャラクター液晶を利用するのも、ライブラリーを組み込んで、どのポートに液晶をつないだのかの宣言をすれば、あとはライブラリーを介して文字表示ができる。
その他、さまざまなマイコン接続できる機器が簡単に利用できるようになっている。本当によくできている。
もちろん、低電圧デジタル素子丸出しなので壊さないよう気を付ければならないが、プラモデル感覚でいろいろなことができるこうしたハードの出現は、何かを大きく変えてきたようだ。

(↑手持ちのmbedなボード達)
壊れたかと思った液晶だが、昨日手持ちの生きたmbedをつないだ時は使えなかったのに、今日届いたmbedをつないだらちゃんと使えた。電源をつないだ状態で液晶に何か表示されているので、mbedに液晶を使うプログラムを焼いて動かしたらちゃんと表示されたのだ。
ラッキーだが、なんで昨日は使えなかったのだろう??? 不思議。