마이크로컴퓨터(Intel Edison)에서 LED 램프 제어(1)
5695 단어 EdisoPythonBluetoothLE
최초의 계기
작년 연말에 IT학과 개발대회MashupAwards에 참가했습니다. 두 번째 대회에 참가한 이번에 AI(챗봇)와 센서를 사용하는 IoT 화장실 시스템관련 보도을 제작하고 응모했습니다.아니면 뚜껑이 계속 비어 있다면 "계속 비어 있지 않나요?"주의를 촉진하다.
이 음성 마법사 기능을 구현할 때 단일 기능의 블루투스 스피커 대신 스피커 기능이 부착된 LED 전구를 사용해'쉽게 전원을 조작할 수 있다','화장실 천장에 설치할 수 있어 소리를 통과하기 쉽다'는 장점 외에는"구두어에 따라 색깔이 바뀐다(예: 주의를 촉구하는 경우는 노란색)"등 흥미로운 사용법이 생겼다.
제어가 가능한 LED 전구라면 필립스의 허가 먼저 떠오르는데, 빛만 제어할 수 있는 허보다 소리와 빛을 제어할 수 있는 블루투스 연결형 LED 전구가 예술 등보다 더 흥미로운 사용법이라고 생각해 제어법을 정리했다.
하고 싶은 일
컨디션
Intel Edison
MiPow PLAYBULB color Smart LED
Amazon에서 구입 시 7000엔 정도 됩니다.
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 구성 구성에 대한 장치 제어
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
root@edison:~# rfkill unblock bluetooth
root@edison:~# rfkill list
...
2: bcm43xx Bluetooth: bluetooth
Soft blocked: no
Hard blocked: no
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 <-- スピーカー機能
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...]
...
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) 를 사용하여 제어에 도전합니다.
Reference
이 문제에 관하여(마이크로컴퓨터(Intel Edison)에서 LED 램프 제어(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nobu_e758/items/7d6afca7b81ea46f9474
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(마이크로컴퓨터(Intel Edison)에서 LED 램프 제어(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nobu_e758/items/7d6afca7b81ea46f9474텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)