本イベントは、2024年6月22日開催の「【オフライン】秋葉原でパーツお買い物&そのままNerves入門!」の初日イベントレポートです。
私はpiyopiyo.exの運営として、イベントの企画・提案・会場探しを担当しました。
勉強会の講師(myasuさん)
「ElixirではじめるIoT開発入門 Nervesプラットフォームで組み込み開発にトライ!」の著者、三宅 泰宏さん(myasu)さんが、秋葉原でのパーツ購入手引き、Lチカの基本、Nervesセットアップを教えてくれました!
秋葉原でパーツ購入〜神田明神へお参り
楽しい秋葉原散策とパーツ購入
はじめてのNerves+Lチカ
Lチカ
まずはラズパイやNervesを使わず、LEDを光らせます。
ブレッドボード、LED、抵抗について解説してくれるmyasuさん。
Nervesのインストール
LEDが光る仕組みがわかったところでNervesのセットアップに進みます。
asdfを使ってerlang/elixirのインストール
erlangのインストール
asdf list all erlang
asdf install erlang 26.2.5
asdf local erlang 26.2.5
elixirのインストール
asdf list all elixir
asdf install elixir 1.16.3-otp-26
asdf local elixir 1.16.3-otp-26
nervesのインストール
macに必要なパッケージのインストール
brew update
brew install fwup squashfs coreutils xz pkg-config
hexとrebarを更新
mix local.hex
mix local.rebar
nerves_bootstrapのインストール
mix archive.install hex nerves_bootstrap
Nervesプロジェクト作成
mix nerves.new hello_nerves
cd hello_nerves
今回はラズパイ0を使うので環境変数にrpi0
を指定
export MIX_TARGET=rpi0
依存関係をインストール
mix deps.get
mix firmware
microSDカードをセットしてから実行
macbookから直接ファームウェアを書き込む
mix burn
microSDカードをラズパイにセットする。
ラズパイは電源ケーブルをつなぎ、ランプが点灯すること!
sshでラズパイに接続する
ssh nerves.local
Lチカしよう
ファームウェアを作る
関連パッケージを追加
defp deps do
[
# Dependencies for all targets
{:nerves, "~> 1.10", runtime: false},
{:shoehorn, "~> 0.9.1"},
{:ring_logger, "~> 0.10.0"},
{:toolshed, "~> 0.3.0"},
{:circuits_gpio, "~> 2.1"}, # <= 追記
関連パッケージをインストール実施
mix deps.get
mix fireware
実行中のNervesに対してネットワーク経由でファームウェアを書き込む
mix upload
ラズパイにmicroSDカードをセット、電源ケーブルをさす
ssh nerves.local
Circuits.GPIOでLチカする
GPIOを開く
iex> {:ok, my_output_gpio} = Circuits.GPIO.open({"gpiochip0", 5}, :output)
開いたGPIOに対して出力をオンにする
iex> Circuits.GPIO.write(my_output_gpio, 1)
(わかりづらいけど)光った!!
さいごに
myasuさんの丁寧なサポートがあっての本イベントでした。
秋葉原散策の途中で聞いたお話は、仕事で携わっている方ならではでしたし、
Nervesセットアップまで都度ハマることに親切に助けてくれました。
myasuさん、本当にありがとうございました!
ぜひ「ElixirではじめるIoT開発入門 Nervesプラットフォームで組み込み開発にトライ!」も読んでみましょう!