壊れたメガネ

ホッチキスの達人の意識の高いブログ。

Gorilla - シリアル通信のための PHP 拡張ライブラリ

2013-12-26 追記

PHPMake という「 PHP で電子工作とかしようぜ!」というユーザーグループ作ってみました。Gorilla の使い方や、 PHP での工作についての情報共有が目的です。気軽にご参加ください。
PHPMake ホームページ
http://phpmake.info/

イイタイコト

Gorilla というシリアル通信のための PHP 拡張ライブラリを作っています。

経緯&動機

Ruby のお勉強に、と、 ruby-arduino という gem をつかって LED 光らせたりしていました。これがかなり楽しく、結構はまっていました。 ruby-arduinoruby-serialport というシリアル通信のためのモジュールを使っていて、 Windows でも POSIX システムでも動きます。

Ruby であるのであれば、ということでシリアル通信のための PHP ライブラリってあったりするのかと軽く調べました。
PECLDirect IO というパッケージが登録されていて、 dio_tcsetattr() という関数を使えばシリアルポートを制御できます。しかし、この関数は Windows では未実装で、さらに Direct IO 自体がシステムコールAPI をそのまま包んだ様なインタフェースなので、なんかなーという感じがします。
PHPでシリアル通信 - 脱サラ大学生のプログラム日記
この4年前の記事では色々とライブラリが紹介されているのですが、 Windows でしか動かなかったり、あるいは Linux でしか動かなかったり、ソースは非公開だったりします。Google の検索結果 https://www.google.com/search?q=PHP+serial+library を見ると、そのあたりの状況は4年前と大して変わってないんじゃないかと思います。

という風にどのライブラリも惜しいものばかり。
個人的に欲しいのは、

  • シリアル通信プログラミングのための PHP インタフェース
  • Windows でも POSIX システムどちらでも動く
  • ソースコードが公開されている

というものです。
そういうものが見当たらないので作ることにしました。

現状

現在の状況は POSIX システム、というか、 Linux のための実装を一通り終えています。
手元の arduino はちゃんと操作できてるっぽいです。次のスクリプトは一応フツーに動いています。テストはまだ書けていません。。

これから使い方とAPIドキュメント書いて、簡単なサイト作ろうというところです。
それと並行して Windows のための実装を進めます。

arduino やシリアルポートをスクリプティングしたいって人はぜひ Gorilla を使ってみてください!

蛇足

というか「 Ruby でスクリプティングできるんだからおとなしく ruby-serialport と ruby-arduino 使っとけよ」と思わないわけではありません。
しかし、PHPerとしては「何かできないか」と思うわけです。これでPHPerの選択肢が少しでも増えればいいなと思って作っています。このへんは妄想です。すみません。

2012-11-10 追記

どうにか Windows 版の開発できています。
Gorilla - Windows 版の開発(メモ)

2012-11-04 追記

とりあえず Gorilla のサイト作ってみました。説明とかデモとか随時追加してます。
http://sandbox.n-3.so/Gorilla/