9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【オフライン】秋葉原でパーツお買い物&そのままNerves入門!初日レポート

Last updated at Posted at 2024-06-22

本イベントは、2024年6月22日開催の「【オフライン】秋葉原でパーツお買い物&そのままNerves入門!」の初日イベントレポートです。

私はpiyopiyo.exの運営として、イベントの企画・提案・会場探しを担当しました。

勉強会の講師(myasuさん)

「ElixirではじめるIoT開発入門 Nervesプラットフォームで組み込み開発にトライ!」の著者、三宅 泰宏さん(myasu)さんが、秋葉原でのパーツ購入手引き、Lチカの基本、Nervesセットアップを教えてくれました! :clap:

秋葉原でパーツ購入〜神田明神へお参り

楽しい秋葉原散策とパーツ購入

ラジオデパート
IMG_0600.png

秋月電商
IMG_0605.png

神田明神でお参り
IMG_0608.png

歩き疲れたので休憩
IMG_0609.png

はじめてのNerves+Lチカ

Lチカ

まずはラズパイやNervesを使わず、LEDを光らせます。

IMG_0619.png

ブレッドボード、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

IMG_0621.jpg

Lチカしよう

ファームウェアを作る

関連パッケージを追加

mix.exs
  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)

(わかりづらいけど)光った!!

IMG_0622.jpg

さいごに

myasuさんの丁寧なサポートがあっての本イベントでした。
秋葉原散策の途中で聞いたお話は、仕事で携わっている方ならではでしたし、
Nervesセットアップまで都度ハマることに親切に助けてくれました。

myasuさん、本当にありがとうございました!
ぜひ「ElixirではじめるIoT開発入門 Nervesプラットフォームで組み込み開発にトライ!」も読んでみましょう!

9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?