PEPPER 눈의 LED를 복잡하게 빛나게 한다

4565 단어 ChoregraphePepper

개요



Pepper의 LED를 빛낼 때,
표준 Eye LEDs 상자를 사용하는 방법이 있지만,
이 상자를 사용하면 눈이 전부 빛납니다.

이것을 해결하기 위해서는 Led의 빛나는 방법을 프로그래밍할 필요가 있기 때문에
이번에는 그것에 대해 해설하고 싶습니다.

구현


import time

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        self.leds = ALProxy("ALLeds")

    def onUnload(self):
        self.leds.reset("AllLeds")

    def onInput_onStart(self):
        eyes = ["FaceLed0", "FaceLed2", "FaceLed4", "FaceLed6"]

        # LEDを点灯する
        for id in eyes: self.leds.fadeRGB(id, 0xffb361, 0.1)

        # 3秒間sleep
        time.sleep(3)

        # ledをリセット
        self.leds.reset("AllLeds")    
        self.onStopped()

    def onInput_onStop(self):
        self.onUnload()
        self.onStopped()

해설



Pepper의 눈 LED는 8개씩 붙어 있습니다.
또한 이러한 LED는 naoqi로 그룹화되어 있으며,
ALLeds.fadeRGB 메서드를 사용하여 그룹, 색상을 지정하여 빛을 낼 수 있습니다.
그룹은 ALLeds 페이지에 나와 있습니다.



덧붙여서 귀의 LED도 마찬가지로 ID가 흔들리고 있습니다.



이번에는 눈을 빛내고 싶기 때문에
FaceLed 그룹을 지정합니다.

fadeRGB의 인수는 왼쪽에서
  • LED 그룹 이름
  • 컬러
  • 페이드 인 시간

  • 입니다.

    FaceLed[x]를 지정하면
    두 눈의 동일한 색인 LED를 빛낼 수 있습니다.
    좌우 대상으로 LED를 빛내고 싶은 경우에 편리합니다.

    이것을 따로 빛내고 싶다면
    RightFaceLed[x]나 LeftFaceLed[x]등을 지정하는 것으로 별도의 빛나는 방법을 시키거나,
    ALLeds.createGroup에서 새 그룹을 선언할 수도 있습니다.

    사용 후의 주의로서는,
    ALLeds.reset("ALLLeds") 등을 호출하여 원래 색상으로 되돌리지 않으면
    계속 같은 색이 되어 버리므로 Unload 및 onStop시에 반드시 reset을 부르도록 합시다.

    좋은 웹페이지 즐겨찾기