Perl meets Hardware #01 Perlとハードウェアが出会うには
オイコラ! どうもマコピーだ。
オイラのエントリは他の奴らのとはちょいと違う。Hachioji.pmだってんのにあるやつはPHPのエントリを書いたり、あるやつは暗黒美夢王って言ったらいいよといったばかりにヤツが目覚めちまった。
そんなわけでオイラは徹底的にPerlなエントリを極めてみたいと思う。それも胸焼けを起こさないように連載形式でだ。
Perlと相成れないと思われる存在、ハードウェア、もしくは電子工作を組み合わせたいと思う。
何故Perlがハードウェアと相成れないのか
Perlという言語は、元来テキスト処理のための言語だ。C言語でむき出しになっていたI/Oだのメモリだの、そういった泥臭い部分は綺麗に隠蔽化され、オイラたちはなにも気にせずに思う存分テキスト処理できる。
その代償として、処理系の向こうに隠れた電気的な信号まで制御ができない。そう、ピン一本一本まで制御したいオイラのような酔狂な奴にとってはそのベールを脱がしたいと思うのだ。だがそれをやるにはXSなどの硬派な書き方をしたりして回避しなければならない。手間だ。
さらに悲惨なことを、一言で表す。
Only perl can parse Perl.
perl(コマンドとしてのPerl)でしかPerlをパースすることは出来ない。
RubyやPythonなどの他のモダンなLightweight Languageには第一のインタプリタ(MRIやCPython)のほかにもJRubyやJythonといったJVM上での実装もあればハードウェア上で動くフットプリントの小さい実装(mruby)などもある。
が、Perlには実用的な実装系はperlしかないのだ。 perlのフットプリントは非力なハードウェア上で動かのには厳しすぎる。では、もう少し小さいPerlのサブセットを探そうとしても、そんなものはない。
だが昨今は状況が変わってきた。そんな話題についてもこの連載で触れてみたいと思う。
ハードウェア側からの歩み寄り RaspberryPi
科学の進化というものは……その、まあ……驚きの連続だ。 もしハードウェアが進化して太ったPerlを載せられるような代物が出てきたら、Perlはダイエットをする必要がないだろう。
RaspberryPi。IT革命とスマートフォンブームが生み出したクレジットカードサイズの$25コンピュータだ。
フツーのLinux(カーネルは少々改造されているものの)が動き、フツーに使える。そこまで普遍的であるということは、
Perlが動くということだ
さらにRaspberryPiには、最近のモダンなコンピュータが失った自由に使えるGPIOと言う名のピンが備わっている。これで君は温度センサで部屋の温度を知ったり、GPSモジュールや三軸加速度モジュールを使ってどのような姿勢にあるのかを四六時中ロギングすることが出来るだろう。
そんなわけで
当連載ではPerlで書かれたコードをRaspberryPiその他のデバイス上で動かし、物理空間を読み取り物理空間へ影響を与えていくことにチャレンジして行こうと思う。
次回はお決まりのLEDでも光らせて、退屈だと思ったらPerlが得意な何かと組み合わせて小さなエレクトリカルパレードを演出してみようと思う。期待して欲しい。
以下はおちゃめなオイラがモンハン4をDL中に部品を実装しようとしたらはんだを買い忘れていて途方にくれていた時の机の様子だ。コレを見て楽しみに待っていて欲しい。 ちなみに中央右がRaspberryPiで、左がArduinoと呼ばれるもっと低レベルなボードだ。こいつも活用しようと思っている。
次はmod_perl神、xtetsuji氏の登場だ。クレイジーな発表を期待している。