Micropython에서 NeoPixel을 빛나게 합니다.

13248 단어 micropythonIoTlt
서곡
이 기사는 IoTLT Advent Calendar 2017 12월 16일의 기사입니다.
그럼 히로시마에서'IoTLT 히로시마'라는 행사를 했습니다.2~3개월 1회 정도의 비율로 2016년 6월부터 2017년 12월 9일Vol.7에 개최됐다.그런, IoTLT 히로시마 Vol.7, 하지만, 아래의 총결산처럼 그 본가의 IoTLT도 유명한아가씨 등장!!물론 회의장은 LED가 모두 켜져 정말 만자가 열린다.
-> 총괄은 다음과 같다.
맞아, 매운 여동생 전기하면 LED!!!이날 밤 열린 GEEKNIGHT 히로시마까지 합치면 이날은 히로시마 엔지니어계에서 가장 밝은 LED의 날이다.
메시지
그래서 저도 이런 영향을 받아서 바로 LED 테이프를 사서 사용해 봤습니다. 그래서 그 보고를 허락해 주십시오.
준비물
  • NeoPixel Mini 테이프 LED 1m/60 LED
  • ESP-WROOM-02
  • 이번에는 제가 가지고 있는 ESP-WROOM-02를 먼저 사용하기로 했습니다.
    방침.
    아두노IDE 제작 사례에 일본어 기사가 워낙 많이 나와 이번에 해보고 싶다MicroPython.
    Micropython 설정
    우선 ESP-WROOM-02에 Micropython을 설정해야 합니다.
    그 전에 핸드폰에서python3과pip3을 활성화해야 하지만, Python3의 설정은 이 글에서 생략됩니다.
    esptool.py 설치
    > pip3 install esptool
    
    pip3 install에서 마지막으로/bin에 쓸 수 없는 오류를 가진 사람은 다음 옵션을 추가하십시오.
    > pip3 install --install-option="--prefix=/usr/local" esptool
    
    ESP-WROOM-02 연결
    USB로 ESP-WROOM-02를 연결하여 포트를 확인합니다.포트가 Mac인 경우 다음과 같은 느낌입니다.
    > ls /dev/tty.usb*
    /dev/tty.usbserial-xxxxxx
    
    다음은 이 글은'/dev/tty.usbserial-xxxxx'의 형식으로 포트를 추진할 것이니 적당히 자신의 환경으로 바꿔 주십시오.Windows는 "COM3"같은 느낌이에요.
    esptool.py의 동작 확인
    > esptool.py --port=/dev/tty.usbserial-xxxxxx --baud 115200 flash_id
    
    정상적으로 설정할 수 있다면 다음과 같은 내용이 나타날 것이다.
    esptool.py v2.2
    Connecting....
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Uploading stub...
    Running stub...
    Stub running...
    Manufacturer: a1
    Device: 4016
    Detected flash size: 4MB
    Hard resetting...
    
    펌웨어 다운로드
    Microsoft 페이지에서 펌웨어를 다운로드합니다.맨 위에 있는 Latest는 아무 문제 없다고 생각해요.
    > wget http://micropython.org/resources/firmware/esp8266-20171101-v1.9.3.bin
    
    펌웨어 쓰기
    > esptool.py --port=/dev/tty.usbserial-xxxxxx erase_flash
    esptool.py v2.2
    Connecting....
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Uploading stub...
    Running stub...
    Stub running...
    Erasing flash (this may take a while)...
    Chip erase completed successfully in 21.7s
    Hard resetting...
    
    > esptool.py --port=/dev/tty.usbserial-xxxxxx --baud 115200 write_flash --flash_size=4MB 0 esp8266-20171101-v1.9.3.bin
    esptool.py v2.2
    Connecting....
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Flash params set to 0x0040
    Compressed 600888 bytes to 392073...
    Wrote 600888 bytes (392073 compressed) at 0x00000000 in 34.9 seconds (effective 137.9 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting...
    
    REPL 동작 확인
    위까지 성공하면 리플이라는 파이톤의 해석기 같은 것이 움직인다.Mac의 확인 방법은 다음과 같습니다.
    > sudo cu -s 115200 -l /dev/tty.usbserial-xxxxxx
    Connected.
    >>>
    
    Connected. 다음에 >>이(가) 표시됩니다.반응이 없을 것 같으면 Return 또는 Ctrl+C를 입력하십시오.>>뒤에 입력한 적절한 Python 처리 명령입니다.
    >>> print('IoT!!!!!!')
    IoT!!!!!!
    
    큐를 끝낸 상태에서 ~를 입력합니다.Disconnected. 대화 상자.
    >>> ~.
    
    Disconnected.
    
    Python을 통한 프로그램 만들기
    그럼 여기까지 거의 다 왔어요.Python 프로그램을 만듭니다.말하자면 기릿허브에서 주운 샘플을 붙였을 뿐이야.
    main.py
    from machine import Pin
    from neopixel import NeoPixel
    import time
    
    
    def demo(pin, n):
        np = NeoPixel(Pin(pin), n)
    
        # cycle
        for i in range(4 * n):
            for j in range(n):
                np[j] = (0, 0, 0)
            np[i % n] = (255, 255, 255)
            np.write()
            time.sleep_ms(25)
    
        # bounce
        for i in range(4 * n):
            for j in range(n):
                np[j] = (0, 0, 128)
            if (i // n) % 2 == 0:
                np[i % n] = (0, 0, 0)
            else:
                np[n - 1 - (i % n)] = (0, 0, 0)
            np.write()
            time.sleep_ms(60)
    
        # fade in/out
        for i in range(0, 4 * 256, 8):
            for j in range(n):
                if (i // 256) % 2 == 0:
                    val = i & 0xff
                else:
                    val = 255 - (i & 0xff)
                np[j] = (val, 0, 0)
            np.write()
    
        # clear
        for i in range(n):
            np[i] = (0, 0, 0)
        np.write()
    
    설치
    파이톤에서 ESP-WROOM-02로 파일을 전송하는 데 편리하도록ampy라는 도구를 설정합니다.
    pip3 install adafruit-ampy
    
    파일 쓰기
    ampy -p /dev/tty.usbserial-xxxxxx put main.py
    
    NeoPixel LED 테이프 연결
    5V, GND, 4번 핀을 사용합니다.

    실행 확인
    REPL에 연결하여 다음 작업을 수행하면 LED가 화려한 빛을 발할 것입니다!
    >>> demo(4,8)
    
    4는 제어선을 연결하는 핀 번호이고, 8은 빛을 내는 LED 개수다.
    컴퓨터에서 꺼내도 자동으로 빛이 나는main.py의 마지막 기록 데모(4,8).
    main.py
        # clear
        for i in range(n):
            np[i] = (0, 0, 0)
        np.write()
    
    demo(4,8)
    
    Let's 조명 장식
    이렇게 하면 너도 LED 여왕이 될 수 있어!옷을 입고 나가라!

    Microsoft의 이점
    그럼 저는 마이크로파이톤입니다. 가장 큰 장점은 파이톤의 인코딩입니다.특히 HTTP 주변 처리와 API 요청을 사용하면 아두노 IDE를 사용하는 것보다 압도적으로 수월하다.예를 들어, Firebase에 연결된 예는 다음과 같습니다.
    야, 파이썬 정말 대단해!
    firebase.py
            res = http_request(
                'https://your-firebase-project.firebaseio.com/your-database-name/your-key-name.json',
                'POST',
                data,
                'application/json')
    
    
    IoTLT Advent Calendar 2017
    다음 기사는 @gishi_yama씨입니다!

    좋은 웹페이지 즐겨찾기