はじめに
前回の記事で Nerves を導入し、Lチカまで実装しました
実は Delux というモジュールを使うことで、更に簡単にLチカできたので記事に残します
Delux は @mnishiguchi さんに教えてもらいました
実装したノートブックはこちら
環境
デバイス: Raspberry Pi 4
実行環境: Nerves Livebook
設定の確認
新しいノートブックを開き、以下のコードを実行します
Application.get_env(:delux, :indicators)
すると、以下のような結果が返ってきます
%{default: %{green: "ACT"}}
実は Nerves Livebook には最初から Delux がインストール済であり、しかも ACT の LED を使うように設定済になっているのです
Nerves Livebook の config ディレクトリーを見ると、デバイス毎に設定が用意されています
Raspberry Pi 4 用の config を参照すると、先程確認した内容が記述されています
...
config :delux, indicators: %{default: %{green: "ACT"}}
この設定では、緑色を光らせるように指定した場合、 ACT の LED が光ります
Lチカの実行
既にお膳立てされているため、以下のように実行するだけでLチカが実行できます
:green # 色
|> Delux.Effects.blink(0.5) # 周波数
|> Delux.render()
周波数を 4 に変更すると以下のようになります
また、色に :red
や :blue
を指定すると光らなくなります
:red
や :blue
には LED を割り当てていないためです
状態の確認
以下のコードを実行すると、現在の LED の状態が確認できます
Delux.info()
実行結果
green at 4 Hz
モールス信号
おまけとして、モールス信号で "SOS" を発信してみます
:green # 色
|> Delux.Morse.encode("SOS", loop?: true) # モールス信号にしたい文字列、繰り返し
|> Delux.render()
SOS は「・・・---・・・」(トントントンツーツーツートントントン)なので、確かにモールス信号になっています
まとめ
Delux で簡単にLチカを実行できました
次は何をしたら良いか、オススメの工作キット等あれば教えてください