0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

irMagicianをClojureで操作してみる。

Last updated at Posted at 2018-01-04

大宮技研が販売する赤外線ブラスターであるirMagicianをClojureから扱えるようにするライブラリをつくってみました。

irMagicianは、LinuxだとCDC-ACMのドライバを使用するため、アプリからは/dev/ttyACM0といったデバイスファイルを通じてお話することができ、インターフェースも容易なため、すでに、たくさんの言語用のライブラリがつくられています。(Python, Javascript etc...)

仕様はこちら↓
http://www.omiya-giken.com/?page_id=889

しかし、Clojurianな自分としては、やっぱりClojureからさわりたいので、仕様を読みつつライブラリを書いてみました。
https://gitlab.com/myst3m/irmagician

準備

用意したもの:

環境:

  • Debian GNU/Linux
    (RaspbianでもOK)

使い方

READMEに、使い方はある程度、細かく記載したのだけれども、基本操作としてはir-openでポートをオープンして、その後命令を実行する形式で、至って普通な実装だと思います。
with-ir-portというマクロを用いると、この中でclose処理をすますので、明示的にcloseする必要はありません。
例えば、赤外線データの学習をしたいときは以下のようにします。

(with-ir-port (ir-open :path "/dev/ttyACM0")
 (ir-capture))

一々、マクロで包むのがめんどい場合は以下のようにすると、デフォルトで指定のデバイスを使用できます。ただし、最後にir-close!でクローズする必要があります。
ひととおり使い方を書くとこんな感じです。

バージョン表示:

(with-ir-port (ir-open :path "/dev/ttyACM0")
 (ir-version))

学習:

(with-ir-port (ir-open :path "/dev/ttyACM0")
 (ir-capture))

実行:

上記で学習したデータを実行します

(with-ir-port (ir-open :path "/dev/ttyACM0")
 (ir-play))

デフォルトデバイスの指定:

REPLで使用する場合などは、一々マクロでくくるのが面倒なので、以下でデフォルトデバイスを設定して、あとは、(ir-capture)とか(ir-play)とかで実行できます

(set-default-ir-port! (ir-open :host "localhost" :port 9999)

その他、ir-saveとかir-loadとかでJSONファイルをロードしたり、データを表示したりできるので、Clojureで遊んでみたい方はぜひつかってみてください。
REPLでテレビつけたりするとちょっとおもしろいですよ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?