2017-12-10 7 views
0

일련의 RGB LED에 대한 기본 애니메이션을 만들려고합니다. 일반 선형 애니메이션은 루프 및 카운터를 사용하여 밝은 색상을 다양하게 변경하는 데 충분합니다.빛의 원형 애니메이션

내가 갖고있는 것은 24 개의 LED 링으로, 간단한 컬러 와이프라고하는 효과가 위에서 아래로 또는 옆에서 옆으로 (기본적으로 주어진 방향으로) 발생하도록 애니메이션을 적용 할 수 있기를 원합니다. .

I는 LED의 각 "행"의 배열을 저장하는 것 이외의 진행 가치 공유를하지 않았

:

0 => 0 
1 => 1, 23 
2 => 2, 22 
3 => 3, 21 
and so on 

이것은 원유 솔루션을, 나는 COS를 사용하여 더 나은 방법이 바라고/아마도 황갈색.

제 질문은 애니메이션을 위에서 아래로 (또는 n도 시작하여) 수행 할 때 순서대로 각 LED를 처리하는 방법입니다.

+1

그 질문은, 그것이 막연히 모호합니다. i-th led rgb 구성 요소를 설정하는 인터페이스가있는 한 다르게 구현되는 모든 종류의 효과를 수행 할 수 있습니다. – Jack

+0

아래에 요약 된 질문을 추가했습니다. 기본적으로 원의 위에서 아래로 애니메이션 할 때 각 LED에 액세스하려고합니다. –

답변

1

삼각법은 하나의 숫자 (각도)에서 한 쌍의 숫자 (원 위에있는 점의 좌표)로 이동하려는 경우 적합합니다. 귀하의 LED 주소는 0에서 23 사이의 단일 숫자 인 것처럼 보입니다. 본질적으로 각도 (360/24 = 15도마다 1 개이므로 각도를 변환 할 필요가 없습니다.)

필요한 것은 무엇입니까? .

def wipe_from(i): 
    leds = [[i]] 
    for j in range(1,12): 
     leds.append([(i+j) % 24, (i-j) % 24]) 
    leds.append([(i+12)%24]) 
    return leds 
: 방법은 회전 대칭을 모델링하지만 단순히 모듈러 산술입니다 (24 모드 작업) 몇 가지 아이디어를 제공하기 위해, 여기에 24 점의에서 "닦아"하는 데 사용할 수있는 파이썬 스크립트입니다

예를 들어, wipe_from(0)은 이미 가지고있는 것과 일치하고 wipe_from(5)은 :

[[5], [6, 4], [7, 3], [8, 2], [9, 1], [10, 0], [11, 23], [12, 22], [13, 21], [14, 20], [15, 19], [16, 18], [17]] 
입니다.3210
+0

환상적인 답변 John, 친절하게 감사드립니다. 나는 앵글을 사용하려고 생각한 이유가 x, y 좌표를 알아내어 전이가 발생했을 때 각 LED를 일정 기간 (예 : 10 초) 동안 고르게 점멸시킬 수 있다고 생각합니다. 각 "행"사이의 간격이 원의 가운데 방향으로 증가하기 때문에 상상할 수있는 타이머 루프를 가지고 놀 필요가 있습니다. 다시 감사합니다. –

관련 문제