Nerves를 사용하여 Raspberry Pi 2로 LED를 치카치카 시킨다 〜크리스마스 장식을 하자〜

11615 단어 NervesElixir
(이 기사는, 「#NervesJP Advent Calendar 2019」의 10일째입니다)
어제는 니시우치 카즈마 씨의 「 Elixir에서 라즈파이 LED를 치카 ~ RaspbianOS 설치에서 ~ 」입니다!
이쪽도 꼭 꼭!
나도 치카 치카하자!

소개


  • Nerves를 사용하여 Raspberry pi2에서 Twitter 게시
  • 여기에서 만든 프로젝트에서 LED를 치카 치카하는 기능을 추가합니다

  • NervesElixir 의 IoT에서 나우에서 영 멋진 시원한 녀석입니다

  • 작품


  • hello_nerves



  • 변경 포인트


  • 대응 커밋
  • diff --git a/mix.exs b/mix.exs
    index 7eb5f71..1e02c45 100644
    --- a/mix.exs
    +++ b/mix.exs
    @@ -61,7 +61,8 @@ defmodule HelloNerves.MixProject do
           {:poison, "~> 3.1"},
           {:oauther, "~> 1.1"},
           {:extwitter, "~> 0.8"},
    -      {:cronex, github: "jbernardo95/cronex", ref: "345b57e14667a08280d790afdfbb359f467649df"}
    +      {:cronex, github: "jbernardo95/cronex", ref: "345b57e14667a08280d790afdfbb359f467649df"},
    +      {:circuits_gpio, "~> 0.4"}
         ]
       end
    

  • Elixir Circuits - GPIO 추가 중

  • lib/hello_nerves/led.ex
    defmodule HelloNerves.Led do
      def blink do
        turn_on()
        Process.sleep(500)
        turn_off()
        Process.sleep(500)
    
        spawn(HelloNerves.Led, :blink, [])
      end
    
      defp turn_on do
        Circuits.GPIO.write(gpio(), 1)
      end
    
      defp turn_off do
        Circuits.GPIO.write(gpio(), 0)
      end
    
      defp gpio do
        {:ok, gpio} = Circuits.GPIO.open(18, :output)
        gpio
      end
    end
    
  • 나는 GPIO 18를 사용했지만 좋아하는 것을 사용하십시오
  • 회로는, Raspberry Pi로 배우기 전자 공작 초소형 컴퓨터로 전자 회로 제어 (블루백스) (을)를 참고로 만들어졌습니다(에이!
  • 이 책에서는 파이썬 에서의 구현 예가 쓰여졌고, 그것을 참고로 Elixir 로 써 보았습니다
  • 옛날 책대로 파이썬에서 한 경험이 있기 때문에 문제가 없었습니다
  • 이 책, 컬러 버전 도 있는 것 같습니다

  • $ export MIX_TARGET=rpi2
    $ mix deps.get
    $ mix firmware
    $ mix firmware.burn
    

    Nerves on Raspberry Pi 2에 ssh
    iex(1)> HelloNerves.Led.blink
    

    어떻게 하면 LED가 치카치카 계속 합니다.

    한화휴제



    lib/hello_nerves/led.ex
    defmodule HelloNerves.Led do
      def start do
        spawn(Led, :blink, [])
      end
    
      def blink do
        {:ok, gpio} = Circuits.GPIO.open(18, :output)
    
        Stream.iterate(0, &(&1 + 1))
        |> Enum.each(fn _ ->
          Circuits.GPIO.write(gpio, 1)
          Process.sleep(500)
          Circuits.GPIO.write(gpio, 0)
          Process.sleep(500)
        end)
      end
    end
    
  • 나는 무한히 치카 치카하는 것을 만들고 싶었을 것입니다.
  • 왠지 아름답지 않은 것처럼 보였기 때문에 상단
  • 어느 것이 더 낫고, 더 나은 글을 쓰는지 모르겠습니다
  • 지도 채찍을 잘 부탁드립니다

  • A very merry Christmas (war is over if you want it)









    다음 번


  • 내일도 가 담당 하셔서 Nerves를 사용하여 매일 아침 날씨 예보를 Raspberry Pi 2에게 말할 수 있습니다. 입니다 .
  • 이쪽도 잘 부탁합니다
  • 좋은 웹페이지 즐겨찾기