마이크로컴퓨터(Intel Edison)에서 LED 램프 제어(1)

시중에 판매되는 LED 전구는 블루투스를 통해 색상을 바꾸거나 소리를 낼 수 있는 것이 있는데 보통 딸린 스마트폰 앱으로 제어되지만 마이크로컴퓨터(Intel Edison)로 제어하는 것에 도전했다.

최초의 계기


작년 연말에 IT학과 개발대회MashupAwards에 참가했습니다. 두 번째 대회에 참가한 이번에 AI(챗봇)와 센서를 사용하는 IoT 화장실 시스템관련 보도을 제작하고 응모했습니다.아니면 뚜껑이 계속 비어 있다면 "계속 비어 있지 않나요?"주의를 촉진하다.
이 음성 마법사 기능을 구현할 때 단일 기능의 블루투스 스피커 대신 스피커 기능이 부착된 LED 전구를 사용해'쉽게 전원을 조작할 수 있다','화장실 천장에 설치할 수 있어 소리를 통과하기 쉽다'는 장점 외에는"구두어에 따라 색깔이 바뀐다(예: 주의를 촉구하는 경우는 노란색)"등 흥미로운 사용법이 생겼다.
제어가 가능한 LED 전구라면 필립스의 허가 먼저 떠오르는데, 빛만 제어할 수 있는 허보다 소리와 빛을 제어할 수 있는 블루투스 연결형 LED 전구가 예술 등보다 더 흥미로운 사용법이라고 생각해 제어법을 정리했다.

하고 싶은 일


  • 첫 번째 단계: 마이크로컴퓨터에서 명령을 입력하여 제어
  • 2단계: 마이크로컴퓨터에서 모바일 프로그램 제어
  • 이 문장은 먼저 첫 번째 단계를 쓴 다음에 두 번째 단계를 쓴다.

    컨디션


  • Intel Edison
  • 스위치 사이언스를 통해 브릭아웃 보드와 세트를 구매했는데 구매 시 약 10000엔 정도였다.

  • MiPow PLAYBULB color Smart LED

  • Amazon에서 구입 시 7000엔 정도 됩니다.
  • Bluetooth(정확히 Bluetooth LE)를 통해 제어

  • MiPow PLAYBULB를 LED 전구(기체에 BT100이 찍힌 모델 이름)로 사용합니다. 실제로 이 외에 다른 모델의 블루투스 제어형 LED 전구를 몇 개 시도했지만 통신 프로토콜을 분석할 수 없어서 제어할 수 없습니다.
    또 USB 배터리로 마이크로컴퓨터를 구동하고 조작이 편리한 Intel Edison을 사용했다. 시도해 본 적은 없지만 랩베리 Pi3와 PC 등도 같은 제어를 할 수 있을 것 같다.

    제어 전 단계


    [1] 마이크로컴퓨터 측의 블루투스 준비


    Intel Edison의 Wifi 등을 설정합니다. 펌웨어 버전은 다음과 같습니다.
    root@edison:~# uname -a
    Linux edison 3.10.98-poky-edison+ #1 SMP PREEMPT Mon Jun 6 14:32:08 PDT 2016 i686 GNU/Linux
    
    또한 블루투스도 활성화됩니다. 또한 Edison을 다시 시작하면 다시 비활성화됩니다.
    참조여기.는 시작할 때 자동으로 활성화되도록 설정되어 있습니다.
    root@edison:~# rfkill unblock bluetooth
    root@edison:~# rfkill list
    ...
    2: bcm43xx Bluetooth: bluetooth
            Soft blocked: no
            Hard blocked: no
    

    [2] LED 램프(PLAYBULB) 연결 확인


    콘센트에 LED 전구를 꽂아 스마트폰 PLAYBULB 전용 제어기에서 색상을 바꿀 수 있는 곳까지 적용한 것을 확인했다. 우선 Intel Edison 콘솔에서 PLAYBULB가 보이는지 확인한다.
    root@edison:~# bluetoothctl 
    [NEW] Controller 98:4F:EE:04:28:48 edison [default]
    [bluetooth]# scan on
    Discovery started
    [CHG] Controller 98:4F:EE:04:28:48 Discovering: yes
    [NEW] Device DB:22:4B:13:AC:E6 PLAYBULB COLOUR LED    <-- LED電球機能
    [NEW] Device AC:E6:4B:13:E4:9F PLAYBULB COLOUR        <-- スピーカー機能
    
    PLAYBULB는 LED 전구와 스피커 두 가지 기능이 있기 때문에 Device도 두 가지 기능을 확인할 수 있다.

    [3] gattools 설치


    다음은 Intel Edison에서 제어에 필요한 도구(gatttools)를 설치합니다.
    블루투스는 각종 장치에 적합한 프로필(마우스나 키보드의 경우 HID 프로필, 소리의 경우 A2DP 프로필 등)을 제공하지만 PLAYBULB는 블루투스 LE의 표준 프로필Generic Attribute Profile(GATT)을 사용하여 제어한다.
    이것 공식 홈페이지에 있으니까 문제 없어요.
    root@edison: wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.43.tar.xz
    root@edison: tar -xf bluez-5.43.tar.xz
    root@edison: cd bluez-5.43
    root@edison: ./configure --prefix=/usr/local --disable-systemd -disable-udev
    root@edison: make
    root@edison: make install
    root@edison: cp ./attrib/gatttool /usr/local/bin
    root@edison: export PATH=$PATH:/usr/local/bin
    root@edison: gatttool 
    Usage:
      gatttool [OPTION...]
    ...
    
    앞으로 자주 사용할 것이기 때문에/usr/local/bin으로 복사하여 경로를 통과했습니다.

    [4] 컨트롤을 해보자.


    Bluetooth LEGATT 구성 구성에 대한 장치 제어
  • 특정 핸들(Attribute Handle과 유사한 주소)에
  • 특정 제어 데이터 쓰기/읽기
  • 우선 전구의 색깔을 바꾸어 보세요.gatttool -b 이후 방금 조사한 LED 전구 측의 주소를 지정한다.
    root@edison:~# gatttool -b DB:22:4B:13:AC:E6 -I
    [DB:22:4B:13:AC:E6][LE]> connect
    Attempting to connect to DB:22:4B:13:AC:E6
    Connection successful
    [DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 00ff0000  <-- 赤
    [DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 0000ff00  <-- 緑
    [DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 000000ff  <-- 青
    ...
    
    Intel Edison에서gattools 해설 기사 사용
    색깔이 바뀌었나요?상기 색상 제어를 하는 제어점 (0x001b) 에 4byte 데이터를 써서 제어할 수 있으며, 이외에 플래시 모드 등을 지정할 수 있습니다. 대응하는 표를 아래에 놓으십시오.

    강조 모드(0x001b)


    Byte
    Effect
    0
    화이트 레벨
    1
    레드 레벨
    2
    녹색 등급
    3
    Bluetooth 수준

    깜박임 페이드 모드(0x0019)


    Byte
    Effect
    0
    Reserve?
    1
    레드 클래스(단색)
    2
    녹색 레벨(단색)
    3
    Blue 클래스(단색)
    4
    0x00: 단색 반짝임 0x01: 단색 옅은 색 0x02: 무지개 반짝임 0x03: 무지개 옅은 색
    5
    Reserve?
    6
    효과 속도(0x00이 가장 빠름)
    7
    Reserve?
    주의: 이 대응표는 공식적으로 발표된 것이 아니라 독립적으로 분석한 것이기 때문에모델에 따라 오류가 발생할 수 있습니다. 또한 제조업체가 의도하지 않은 파라미터를 설정하면 제품에 손해를 끼칠 수 있습니다. 스스로 책임을 지십시오.

    총결산


    Bluetooth LEGATT 구성에 따라 제어 명령을 보내면 마이크로컴퓨터를 통해 LED 전구(PLAYBULB)를 제어할 수 있다.
    그러나 상술한 방법은 제어를 위해 하나하나 명령을 내려야 하기 때문에 적용할 수 없습니다. 다음은 프로그래밍 언어 (Python) 를 사용하여 제어에 도전합니다.

    좋은 웹페이지 즐겨찾기