[PYTHON] Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (2)

Ausgehend von der vorherigen Zeit werden wir uns der Herausforderung stellen, Bluetooth-gesteuerte LED-Lampen von einem Mikrocomputer aus zu steuern. Dieses Mal werde ich versuchen, über die Programmiersprache (Python) zu steuern.

Was du machen willst

slide.png

In diesem Artikel werden wir am 2. Schritt arbeiten.

Umgebung

Verfahren zur Kontrolle

Es wird davon ausgegangen, dass die Einstellungen des Mikrocomputers (Intel Edison), die Verbindung mit der Bluetooth-gesteuerten LED-Lampe (PLAYBULB) und die Steuerung der Lampe mit gatttools abgeschlossen sind (vorherige). / items / 7d6afca7b81ea46f9474)). In diesem Artikel werden wir es ermöglichen, das zu tun, was wir mit gatttools (Gerätesteuerung über das Bluetooth LE GATT-Protokoll) in einer Programmiersprache gemacht haben. Ich habe Python als Sprache verwendet, weil "die Umgebung und die Informationen zu Edison erheblich sind". Ich denke, dass andere Sprachen verwendet werden können, solange es sich um eine Programmiersprache handelt, die das GATT steuern kann.

[1] Installation von Python und Pip (optional)

Ich habe eigenständiges Python (3.5.3) und Pip von der Quelle installiert (aus einem anderen Grund als diesem). Für die Methode habe ich auf [offizielle Intel-Website] verwiesen (https://software.intel.com/en-us/blogs/2017/02/07/installing-python-36-on-your-intel-edison). ..

[2] Installation von BluePy

Es gibt verschiedene Möglichkeiten, die GATT-Funktionalität über Python zu verwenden. Dieses Mal habe ich [Bluepy] verwendet (https://github.com/IanHarvey/bluepy).

--Pexpect (Edison Official Page -edison) hat einen Artikel)

$ pip3 install bluepy

[3] Implementierung und Ausführung von Programmen, die das GATT handhaben

Jetzt, da wir bereit sind, werden wir mit der Implementierung beginnen. Hier erstellen wir ein Programm, das die Farbe alle 3 Sekunden wiederholt ändert.

light_control.py


# -*- coding: utf-8 -*-
from bluepy import btle
from bluepy.btle import BTLEException
import time

LIGHT_MAC_ADDR="DB:22:4B:13:AC:E6"

if __name__ == '__main__':
    # connect to device
    tPeripheral = btle.Peripheral(deviceAddr=LIGHT_MAC_ADDR)
    # find characteristic
    tCharList = tPeripheral.getCharacteristics()
    tChar = next(tChar for tChar in tCharList if tChar.getHandle()==0x001b)    

    while (True):
        tChar.write(bytes([0, 255, 0, 0]))  # red
        time.sleep(3)
        tChar.write(bytes([0, 0, 255, 0]))  # green
        time.sleep(3)
        tChar.write(bytes([0, 0, 0, 255]))  # blue
        time.sleep(3)

Es gibt verschiedene Möglichkeiten, um das Merkmal zu erhalten (ich verstehe es in Form eines "Objekts, das eine bestimmte Funktion steuert"), aber ich habe die Methode gewählt, alle Merkmale abzurufen und dann die Ziehpunkte abzugleichen. Informationen zu Handles und Steuerbefehlen finden Sie in der Tabelle im Artikel Letztes Mal.

Wenn das Programm abgeschlossen ist, versuchen Sie es mit dem folgenden Befehl auszuführen

$ python3 light_controll.py

Hat sich die Farbe der LED-Lampe alle 3 Sekunden geändert?

Zusammenfassung

Ich konnte die LED-Lampe (PLAYBULB) mit meinem eigenen Programm (Python) und meiner eigenen Bibliothek (Bluepy) steuern. Als Anwendung

Usw. realisiert werden kann. Es kann mit einem kleinen Intel Edison im Wohnzimmer installiert und als Informationsleuchte für Familien verwendet werden. Wenn Sie wissen, dass es eine so interessante Anwendung gibt, lassen Sie es mich bitte wissen.

Ich habe zweimal versucht, die Lampenfunktion der LED-Lampe zu verwenden, aber beim nächsten Mal möchte ich eine andere Lautsprecherfunktion verwenden.

Recommended Posts

Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (1)
Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (2)
Steuern Sie das Matrix-LED-Panel von ROS aus
Infrarot-Fernbedienungsempfang mit Intel Edison
Start Intel Edison
Senden Sie den Wert des Beschleunigungssensors von Eaglet + Intel Edison an Kinesis