search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

Organization

Grove Base HAT for RasPiは真っ直ぐグイっとさす

はじめに

IMG_20201203_212332.jpg

そんな当たり前のことをなぜ書いたの?

  • 経緯を書きます
  • ここからが長いです :smile:
  • Seeed UG Advent Calendar 2020に参加していらっしゃる方にとっては、そしていまこの記事を書いている時点の私にとっても当たり前のことになりましたが、

20201227p.jpg

  • :point_up::point_up_tone1::point_up_tone2::point_up_tone3::point_up_tone4::point_up_tone5: このセットが手元に届いたとき私は固まりました
  • かろうじて、RasPi4AC-DCアダプタmicroSDカードはわかります
    • 令和2年なのにいまだにRaspberry Pi 2を使っているからです
  • そのくらいの経験はあるのですが他のものはさっぱりわかりませんでした
  • 話が前後しますが私がこのセットをいただいたのは
  • 【オンライン】豪華プレゼント付!Elixir/Nerves(ナーブス)体験ハンズオン!でハンズオンのお手伝いをしているからです
    • Seeed株式会社:santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:様からのクリスマスプレゼントとのことありがとうございます!!!
  • で、いろいろあって図入りの説明書(イベントの台本みたいなもの)をいただいたのですが、Grove Base HAT for RasPiRasPi4にどこまで差し込んでいいものやらはじめわかりませんでした
    • あんまり力まかせにやるとピンを曲げやしないか
    • ふわっと乗せるだけでいいんかなあ?
    • どうして思い切る気になったのかは忘れました(画像検索した!?)
    • とにかくドキドキ、ヒヤヒヤしながら差し込みました
    • スピード・スリル・サスペンス 飯塚オートです
    • 素人は躊躇しがちなんです
  • 長々と書きましたが無事、組み立てられました
  • この記事のタイトルからするとここまでで終わりです
  • それではちょっと寂しいので、
  • ハードウェア的なことよりはやや私の得意なNervesの話を以下書きます

Nerves

環境構築

以下ご参考にされてください。

mix nerves.new

$ export MIX_TARGET=rpi4
$ mix nerves.new good_evening_nerves
$ cd good_evening_nerves
mix.exs
 defp deps do
    [
      # Dependencies for all targets
      {:nerves, "~> 1.7.0", runtime: false},
      {:shoehorn, "~> 0.7.0"},
      {:ring_logger, "~> 0.8.1"},
      {:toolshed, "~> 0.2.13"},

      # Dependencies for all targets except :host
      {:nerves_runtime, "~> 0.11.3", targets: @all_targets},
      {:nerves_pack, "~> 0.4.0", targets: @all_targets},

      # Dependencies for specific targets
      {:nerves_system_rpi, "~> 1.13", runtime: false, targets: :rpi},
      {:nerves_system_rpi0, "~> 1.13", runtime: false, targets: :rpi0},
      {:nerves_system_rpi2, "~> 1.13", runtime: false, targets: :rpi2},
      {:nerves_system_rpi3, "~> 1.13", runtime: false, targets: :rpi3},
      {:nerves_system_rpi3a, "~> 1.13", runtime: false, targets: :rpi3a},
      {:nerves_system_rpi4, "~> 1.13", runtime: false, targets: :rpi4},
      {:nerves_system_bbb, "~> 2.8", runtime: false, targets: :bbb},
      {:nerves_system_osd32mp1, "~> 0.4", runtime: false, targets: :osd32mp1},
      {:nerves_system_x86_64, "~> 1.13", runtime: false, targets: :x86_64},

      {:circuits_gpio, "~> 0.4"} # add
    ]
  end
$ mix deps.get
config/target.exs
config :vintage_net,
  regulatory_domain: "US",
  config: [
    {"usb0", %{type: VintageNetDirect}},
    {"eth0",
     %{
       type: VintageNetEthernet,
       ipv4: %{method: :dhcp}
     }},
    {"wlan0",
     %{
       type: VintageNetWiFi,
       vintage_net_wifi: %{
         networks: [
           %{
             key_mgmt: :wpa_psk,
             ssid: System.get_env("MY_NETWORK_SSID"),
             psk: System.get_env("MY_NETWORK_PSK"),
           }
         ]
       },
       ipv4: %{method: :dhcp}
     }}
  ]
$ mix firmware
  • microSDカードをパソコンに挿しまして
$ mix burn
  • こんがり焼き上がりましたら、RasPi4に挿して、そうですね〜 1分くらい瞑想でもしながら待ちますか
  • ポクポクちーん
$ ssh nerves.local

IExでLEDつけよう :bulb:

  • sshするとIEx(Elixir's interactive shell)が立ち上がるのでそこにElixirのプログラム書きます
iex> {:ok, gpio} = Circuits.GPIO.open(16, :output)
{:ok, #Reference<0.4009724731.268566546.204049>}
iex> Circuits.GPIO.write(gpio, 1)
:ok
  • D16っちゆうところに挿しているので、16Circuits.GPIO.open/3しています

  • ついた:bulb:

IMG_20201212_225058.jpg

  • 消すときは:point_down::point_down_tone1::point_down_tone2::point_down_tone3::point_down_tone4::point_down_tone5:
iex> Circuits.GPIO.write(gpio, 0)
:ok

ボタン押したときの入力を受け取ろう

iex> {:ok, gpio} = Circuits.GPIO.open(5, :input)  
{:ok, #Reference<0.4009724731.268566546.204050>}  
iex> Circuits.GPIO.read(gpio)
0
  • ボタンは、D5っちゆうところに挿しているので、5Circuits.GPIO.open/3しています
  • 押していないときは0が返ります
iex> Circuits.GPIO.read(gpio)
1
  • 押しながらCircuits.GPIO.read/1すると、1が返ります!!!
  • ボタン押したら、光らせるとかももちろんできるのですが、Grove Base HAT for RasPiは真っ直ぐグイっとさすことだけが言いたい記事で、それだと寂しいのでNervesを引っ張りだしてきて、長々書きましたが、だんだん1明後日の方向に行き始めたのでここらへんで筆を置きます
  • 真っ直ぐグイっと挿したGrove Base HAT for RasPiのおかげで簡単にボタンとかLEDとか取り付けることができて、手先が不器用な私でもいろいろなものをつけたり外したりができそうで、いろいろやってみよう! という気になってきました
  • 私と同じように、ハードウェアに自信がなかったり、手先が不器用な方は、モジュール(っていえばいいんですかね)を探しにhttps://www.seeedstudio.com/へGo!!! :rocket::rocket::rocket:
  • 私の不器用具合をご紹介

https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_131808_bf1f08d7-5933-caf5-b5f9-6b4ef0a822b9.jpeg

Wrapping Up :christmas_tree::santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5::christmas_tree:


  1. はじめから!? 

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
What you can do with signing up
0