Cov txheej txheem:

Dot Teeb Txawv: 6 Kauj Ruam
Dot Teeb Txawv: 6 Kauj Ruam

Video: Dot Teeb Txawv: 6 Kauj Ruam

Video: Dot Teeb Txawv: 6 Kauj Ruam
Video: Tus Neeg Ruam - R-Lin Thoj | New Song [ Official MV ] Nkauj Tawm Tshiab 2023 Hmong Song 2023 2024, Lub Xya hli ntuj
Anonim
Image
Image
Dot Lub Teeb Txawv
Dot Lub Teeb Txawv
Dot Lub Teeb Txawv
Dot Lub Teeb Txawv

Kuv pib nrog lub tswv yim "Kuv puas tuaj yeem tswj lub teeb nrog kuv tus kheej txhais tes thiab qhia kuv tus kheej lub siab nyiam?"

Nws yog 'Dot Light Pattern' uas tso cai rau koj los tsim koj cov xim los ntawm koj tus kheej, tsim koj tus kheej cov qauv nrog cov xim ntawd, thiab ntsib ntau yam kev cuam tshuam los ntawm cov duab.

Kauj ruam 1: Cov ntaub ntawv

Khoom siv
Khoom siv
Khoom siv
Khoom siv
Khoom siv
Khoom siv
Khoom siv
Khoom siv
  1. Arduino UNO x 13
  2. WS2901 lossis WS2811 pixel LED sawb (130 LEDS)
  3. Khawm hloov x 1
  4. Swb x65
  5. Lub zog ntsuas x 65
  6. Zaj sawv kab
  7. Lub zog txaus SMPS
  8. Tus neeg xyuas pib cable
  9. Acrylic pob tshab round bar (30 hli txoj kab uas hla)
  10. Cov xim dub Acrylic board (5T) (500mm*790mm) x 2, (500mm*35mm) x 2, (790mm*35mm) x 2

Kauj Ruam 2: Kev Npaj Tsim Kho

Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho
Txoj Kev Tsim Kho

Kauj Ruam 3: Kho Vajtse: Tsim Circuit Court

Kho vajtse: Tsim Circuit Court
Kho vajtse: Tsim Circuit Court
Kho vajtse: Tsim Circuit Court
Kho vajtse: Tsim Circuit Court
Kho vajtse: Tsim Circuit Court
Kho vajtse: Tsim Circuit Court
  1. Txiav cov phaj acrylic zoo li cov qauv saum toj no. (saib cov kauj ruam 2)

  2. Ib qho ntawm neo-pixel LED tau muab tso rau sab saum toj thiab hauv qab ntawm lub hwj chim ntsuas qhov, thiab tag nrho ntawm 65 khub ntawm neo-pixel LEDs tau txuas nrog.
  3. Ib khub ntawm neo-pixel LEDs tau txuas ua ke los tsim ib tus pin Arduino.
  4. Haum 65 lub zog ntsuas rau lub qhov ntsuas qhov ntsuas. (Muab nws tso rau sab nraud ntawm qhov chaw neo-pixelated.)
  5. Txuas 65 lub khawm hloov pauv kom haum rau qhov hloov qhov.
  6. Tag nrho ntawm kaum peb Arduino UNOs tau txuas rau txhua ntawm kaum peb thaj tsam txhawm rau khi tsib daim ntawm 65 daim kho vajtse rau hauv ib qho Arduino UNO.
  7. Raws li tau qhia hauv daim duab txuas, Txuas lub zog ntsuas, ntsuas qhov hloov pauv thiab neo-pixel LEDs rau tus pin ntawm Arduino UNO los ntawm xaim. (saib cov kauj ruam 2)
  8. GND thiab 5V tus pin ntawm ntau Arduino UNOs tau sau rau cov xov hlau, tom qab ntawd txuas nrog lub zog sab nraud. (saib cov kauj ruam 2)
  9. Tshem cov hmoov av los ntawm Cua siab.

Kauj Ruam 4: Kho Vajtse: Txiav Acrylic

Kho vajtse: Txiav Acrylic
Kho vajtse: Txiav Acrylic
Kho vajtse: Txiav Acrylic
Kho vajtse: Txiav Acrylic
Kho vajtse: Txiav Acrylic
Kho vajtse: Txiav Acrylic
  1. Txiav acrylic pas nrig kom ntev li 50 hli.
  2. Ib sab ntawm cov pas nrig acrylic tau muab laum rau qhov loj thiab qhov tob kom haum rau tus tswj ib feem ntawm lub zog ntsuas.
  3. Cov pas nrig acrylic tau txiav me ntsis dav dua lub qhov rau kev tshem tawm uas tuaj yeem haum tau zoo rau hauv lub zog ntsuas.
  4. Lwm sab muab cov ntawv me me kom lub teeb tuaj yeem kis tau zoo.

Kauj Ruam 5: Arduino Programming Code

www.kasperkamperman.com/blog/arduino/ardui…

'hsb rau rgb' code 참고 참고 한 사이트

#suav nrog

// 'adafruit_neopixel' 파일 파일 파일 라는 라이브러리 를 를

// 픽셀 픽셀 연결 핀 선언

#define PIN1 2 #define PIN2 3 #define PIN3 4 #define PIN4 5 #define PIN5 6

#define NUMPIXELS 2 // 픽셀 픽셀 LED 갯수

#define NUM_LIGHTS 5 // 모듈 모듈 갯수 (네오 픽셀 오브젝트 갯수)

// 픽셀 픽셀 오브젝트 Array 선언

Adafruit_NeoPixel pixels = {Adafruit_NeoPixel (NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN2, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN3, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN4, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN5, NEO_GRB + NEO_KHZ800)}; //// 네오 픽셀 을 사용 하기 위해 객체 객체 하나 를 생성 // 의 인자 값 네오 의 의 의 // 두번째 인자 값 은 네오 픽셀 이 이 번호 번호 세번째 // 세번째 인자 값 은 픽셀 바뀌는 바뀌는 바뀌는 바뀌는 바뀌는 바뀌는

//////////////////////////////////////////////////////////////

////// HSV 를 RGB 변환 변환 하는 함수 getRGB () 위한 위한 변수 와 와 함수

const byte dim_curve = {

0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255, }; //

tsis muaj dab tsi getRGB (int hue, int sat, int val, int xim [5] [3], int index) {

val = dim_curve [val]; zaum = 255 - dim_curve [255 - zaum];

// 색조, 및 밝기 밝기 (HSB /HSV), RGB 변환 변환

// dim_curve 밝기 밝기 값 채도 (반전) 사용 사용 됩니다 // 가장 가장 자연스럽게

tus r;

tus g; tus b; koj puag;

yog (sat == 0) {

xim [index] [0] = val; xim [index] [1] = val; xim [index] [2] = val; lwm yam {

puag = ((255 - sat) * val) >> 8;

hloov (hue / 60) {

rooj plaub 0: r = val; g = (((val - puag) * hue) / 60) + puag; b = puag; tawg;

rooj plaub 1:

r = (((val - puag)) * (60 - (hue % 60))) / 60) + puag; g = tau; b = puag; tawg;

rooj plaub 2:

r = puag; g = tau; b = (((val - puag)) * (hue % 60)) / 60) + puag; tawg;

rooj plaub 3:

r = puag; g = (((val - puag)) * (60 - (hue % 60))) / 60) + puag; b = kev; tawg;

rooj plaub 4:

r = (((val - puag)) * (hue % 60)) / 60) + puag; g = puag; b = kev; tawg;

rooj plaub 5:

r = tau; g = puag; b = (((val - puag)) * (60 - (hue % 60))) / 60) + puag; tawg; }

xim [index] [0] = r;

xim [index] [1] = g; xim [index] [2] = b; }

}

int rgb_colors [NUM_LIGHTS] [3]; // color 픽셀 오브젝트 마다 color rgb xim 선언

int hue [NUM_LIGHTS]; // ue 픽셀 ue ue ue hue 선언 int sat [NUM_LIGHTS]; // 선언 픽셀 오브젝트 마다 명도 선언 선언 int brignt [NUM_LIGHTS]; // 픽셀 픽셀 오브젝트 갯수 마다 밝기

// 변수 변수 선언

int pibSwitch = {8, 9, 10, 11, 12}; // rau/tawm ool 핀 번호 boolean startState = {tsis tseeb, cuav, cuav, cuav, cuav}; // rau/tawm 상태

const int colorPin = {A0, A1, A2, A3, A4}; // 저항 저항 핀

int colorVal = {0, 0, 0, 0, 0}; // 저항 저항 초기

int animationButton = 7; // 모드 모드 변환 버튼 번호

/////////////////////////////////////////////////

// 모든 모든 변환 을 위한 버튼 디 바운싱 바운싱 디 // 디 바운싱 Button 시간 내 이벤트 가 하는것 에 대한 대한 해결 button button button button button button button button button button button int buttonState; // last 핀 으로부터 현재 판독 판독 값 int lastButtonState = HIGH; // igned 의 판독 은 은 상태 igned igned unsigned ntev lastDebounceTime = 0; // 으로 핀 이 마지막 으로 시간 으로 으로 0 으로 unsigned ntev debounceDelay = 50; // MOD 바운싱 타임 출력; 출력 깜빡 이면 증가 한다 한다 int MODE = 0; // 모드 모드 변수

int B_Interval [5]; // 링킹 링킹 을 위한 각 모듈 모듈 의 랜덤 속도

int B_Min = 100; // 링킹 링킹 최단 속도; int B_Max = 500; // 링킹 링킹 최장 속도; int R_Interval = 50; // D 애니메이션 속도 변수 int D_Interval = 10; // 속도 속도 변수

boolean B_state [5]; // 링킹 링킹 을 위한 각 모듈 의 의 상태

///////////////////////////////////////////////////////

// 테스 테스 킹 애니메이션 을 위한 시간 시간 변수

tsis tau kos npe ntev tam sim no Millis; // 시간 시간 변수

unsigned ntev B_previousMillis [5]; // long 모듈 의 링킹 링킹 igned unsigned ntev DR_Millis [5]; // 각 모듈 의 랜덤 타이머 예비 (예비) unsigned ntev R_previousMillis; // 타이머 타이머 unsigned ntev D_previousMillis; // 디밍 타이머

boolean firstRainbow = muaj tseeb; // 색상 색상 초기화 변수

hauv RainbowSpeed; // 변환 변환 변수

int Bright = 100; // Bright 초기 값 int BrightnessFactor = 1; // 증감 증감 값 //////////////////////////////////////////

void teeb tsa () {

rau (int i = 0; kuv <NUM_LIGHTS; kuv ++) {pixels .begin (); // 픽셀 픽셀 오브젝트 초기화}

// 인풋 인풋 설정

rau (int i = 0; kuv <NUM_LIGHTS; kuv ++) {pinMode (pibSwitch , INPUT_PULLUP); // rau/tawm pin 설정 설정} pinMode (animationButton, INPUT_PULLUP); // 버튼 버튼 인풋

rau (int i = 0; kuv <NUM_LIGHTS; i ++) {B_Interval = int (random (B_Min, B_Max)); // 모듈 별 블 랜덤 속도 (인터발) 변수 변수}

Serial.begin (9600); // 설정 설정

}

void voj () {

QAUV = CheckAnimMode (); // 에 에 애니메이션 체크 모드 함수 를 를

// 과 과 과 저항 을 값 을 을 각각 읽어 읽어 변수 에 에

rau (int kuv = 0; kuv <NUM_LIGHTS; kuv ++) {startState =! digitalRead (pibSwitch ); // rau/tawm 을 읽은 읽은 값 값 을 St St startState start 넣어 준다 // startState = digitalRead (pibSwitch ); colorVal = analogRead (colorPin [kuv]); // 저항 저항 저항 읽은 값 을 가변 가변 저항 초기 값 에 에 에 넣는다

hloov (MODE) {// 함수 함수 스위치 문

rooj plaub 0: ntawm (); // ntawm 실행 실행 tawg; // 에서 에서 빠져

rooj plaub 1:

zaj sawv (); // zaj sawv 실행 실행 tawg;

rooj plaub 2:

dimming (); // dimming 실행 실행 tawg;

rooj plaub 3:

ntsais muag (); // ntsais muag 실행 실행 tawg; }

rau (int i = 0; kuv <NUM_LIGHTS; kuv ++) {pixels .show (); // 픽셀 픽셀 오브젝트 배열 켜라}

}

/////////////////////////////////////////////////////////////

int CheckAnimMode () {

// 선택 선택 버튼 을 읽어 모드 를 를 결정

////////////////////////////////////////////////////////// /// currentMillis = millis (); // 측정 측정 int nyeem ntawv = digitalRead (animationButton); yog (nyeem! = lastButtonState) {// 입력 핀 으로부터 이전 의 버튼 버튼 상태 와 와 비교 비교 비교 D lastDebounceTime = millis (); // 시간 시간 시간 을 핀 이 마지막 으로 으로 전환 전환 시간 넣음 넣음 넣음

yog ((currentMillis - lastDebounceTime)> debounceDelay) {

yog (nyeem! = buttonState) {// 입력 핀 으로부터 받은 현재 값 과 과 판독 값 과 과

buttonState = nyeem ntawv; // 을 값 을 buttonState 에 대입 대입

yog tias (buttonState == LOW) {// 버튼 상태 가 꺼져 있다면 있다면

QAUV ++; // 모드 모드 1 증가 증가 if (MODE> 3) {MODE = 0; firstRainbow = muaj tseeb; // ness 초기화 상태 켜짐 ness BrightnessFactor = 1; // 값 값 Bright = 15; // 는 는 15}}}}

lastButtonState = nyeem ntawv; // 값 값 을 이전 의 버튼 상태 상태 에

rov MODE; 하고 를 종료 하고 hom 함수 로 값 값 을 리턴 하라}

////////////////////////////////////////////////////////////////////

// animation hom kev ua haujlwm

// rau

tsis muaj dab tsi ntawm () {Serial.println ("ntawm"); // 시리얼 모니터 에 을 써라 rau (int kuv = 0; kuv <NUM_LIGHTS; kuv ++) {color_set (kuv, colorVal [kuv]); // 저항 저항 값 에 따라 컬러 셋팅}}

// Zaj sawv

tsis muaj zaj sawv () {Serial.println ("nag"); // 에 모니터 에 nag 써라 써라 yog (thawj Rainbow) {RainbowSpeed = 0; // ain 속도 초기화 firstRainbow = cuav; // 레인보우 색상 상태 꺼짐 if} yog (millis () - R_previousMillis> R_Interval) {// 흐른 시간 시간 이 이 레인보우 인터벌 보다 보다 _ _ _ R_previousMillis = currentMillis; // bow 시간 을 이전 의 시간 에 넣어 라 bow RainbowSpeed += 10; // 변환 변환 변수 을 10 을 더해라}

rau (int i = 0; i <NUM_LIGHTS; i ++) {color_set (i, (colorVal +RainbowSpeed) % 1023); // 컬러 컬러 셋팅}

}

// Dimming

tsis muaj dabtsis dimming () {Serial.println ("dimm"); // 에 모니터 m dimm 써라 써라 Serial.println (Bright); // 에 에 에 Bright 써라 써라 yog (currentMillis - D_previousMillis> D_Interval) {// 흐른 시간 시간 이 이 디밍 값 보다 크면 _ D_previousMillis = currentMillis; // 라 시간 을 의 디밍 에 에 넣어 라 Bright += BrightnessFactor; // 밝기 에 디밍 값 씩 1 씩 if} yog (Bright 254) {BrightnessFactor = -1 * BrightnessFactor; } Bright = txwv (Bright, 99, 254); 변수 밝기 값 최소값 ~ 99 ~ 최대 값 254 사이 의 의 값 으로 한정 한다

rau (int i = 0; kuv <NUM_LIGHTS; i ++) {dim_color_set (i, Bright); // 컬러 컬러 셋팅}}

// Tsaus muag

void blinking () {Serial.println ("ntsais"); // ink 에 에 blink 써라 써라 써라

rau (int i = 0; i B_Interval ) {// 흐른 시간 값 이 블링크 인터벌 인터벌 보다 보다 크면

B_previousMillis [kuv] = currentMillis; // 시간 시간 을 의 블링크 에 넣어 라 라 _ B_state =! B_state ; // 각 모듈 의 링킹 상태 의 값}}}}} for for} rau (int i = 0; kuv <NUM_LIGHTS; i ++) {if (B_state ) {// 모듈 의 의 블 링킹 상태 가 읽 히면 color_set (kuv, colorVal [kuv]); // {저항 값 따라 else else else} lwm {noColor_set (i); // 않으면 않으면 컬러 셋팅 하지 않음}}

}

////////////////////////////////////////////////////////////////////////////////////////

// tub ntxhais functuation

// xim txheej

void color_set (int index, int colorSenser) {

if (startState [index]) {hue [index] = daim ntawv qhia (colorSenser, 0, 1023, 0, 359); // 0 ~ 1023 을 을 0 ~ 359 값 으로 매핑 가지고 지정 지정 지정 지정 color (colorSenser get) getRGB (hue [index], 255, 255, rgb_colors, index); rau (int i = 0; i <NUMPIXELS; i ++) {pixels [index].setPixelColor (i, pixels [index]. Color (rgb_colors [index] [0], rgb_colors [index] [1], rgb_colors [index] [2])); } // 픽셀 컬러 을 gb rgb_colors 의 r, g, b 으로 else} lwm noColor_set (index); // 셋팅 셋팅 하지 않음}

////// noColor teeb

tsis muaj dab tsi noColor_set (int index) {// 셋팅 셋팅 하지 않는 함수 함수

rau (int i = 0; i <NUMPIXELS; i ++) {pixels [index].setPixelColor (i, pixels [index]. Color (0, 0, 0))); } // 픽셀 컬러 세팅 0, 0, 0 으로 설정}

//// dimColor teeb

void dim_color_set (int index, int BC) {// 컬러 컬러 셋팅 함수 설정 설정

if (startState [index]) {hue [index] = daim ntawv qhia (colorVal [index], 0, 1023, 0, 359); // 0 ~ 1023 을 을 0 ~ 359 값 으로 매핑 을 지정 지정 지정 color color color (colorVal 에) getRGB (hue [index], 255, BC, rgb_colors, index); rau (int i = 0; i <NUMPIXELS; i ++) {pixels [index].setPixelColor (i, pixels [index]. Color (rgb_colors [index] [0], rgb_colors [index] [1], rgb_colors [index] [2])); } /// 픽셀 컬러 을 gb rgb_colors 의 r, g, b 으로 else} lwm yam noColor_set (index); // 셋팅 셋팅 하지 않음}

Kauj Ruam 6: Ua tiav Saib

Pom zoo: