สารบัญ:
- ขั้นตอนที่ 1: แค่ไลน์! เบาๆ!(Type1)
- ขั้นตอนที่ 2: เกี่ยวกับโครงการ (ประเภท 1)
- ขั้นตอนที่ 3: วัสดุ (ฮาร์ดแวร์)
- ขั้นตอนที่ 4: วัสดุ (การควบคุม)
- ขั้นตอนที่ 5: ขั้นตอนที่ 3: วัสดุ (พลังงาน)
- ขั้นตอนที่ 6: ขั้นตอน: วัสดุ (ฯลฯ)
- ขั้นตอนที่ 7: ก่อนวาดลวดลาย
- ขั้นตอนที่ 8: สร้างฮาร์ดแวร์ (การตัดด้วยอะคริลิค)
- ขั้นตอนที่ 9: สร้าง (โครงสร้าง)
- ขั้นตอนที่ 10: ฮาร์ดแวร์และการประกอบซอฟต์แวร์
- ขั้นตอนที่ 11: สร้างฮาร์ดแวร์ (Formex Cutting)
- ขั้นตอนที่ 12: สร้างฮาร์ดแวร์ (การตัดและทาสีไม้)
- ขั้นตอนที่ 13: * หากคุณต้องการแขวนชิ้นนี้บนผนัง ให้สร้างโครงสร้างเดียวกับรูปภาพ
- ขั้นตอนที่ 14: สร้างซอฟต์แวร์ (แผนภาพวงจร)
- ขั้นตอนที่ 15: การรวมฮาร์ดแวร์และการกำหนดค่าวงจรแผงด้านหลัง
- ขั้นตอนที่ 16: ป้อนรหัสลงในซอฟต์แวร์ (A-a Arduino Mega Board)
- ขั้นตอนที่ 17: ป้อนรหัสลงในซอฟต์แวร์ (Bb Arduino Mega Board)
- ขั้นตอนที่ 18: สนุก
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เป็นผลงานการแสดงแสงบนแผ่นอะคริลิกที่แกะสลักด้วยลวดลายของลายเส้น แสดงสีและรูปแบบของไฟ LED ต่างๆ อย่างกลมกลืน โปรเจ็กต์นี้จัดทำขึ้นโดยใช้ลวดลายจาก "Thanks for the Planets" ของ Arout Meijer ซึ่งเป็นการสังเคราะห์แสงสองสี ตามระยะห่างของเส้นและนำเสนออย่างสวยงาม
ขั้นตอนที่ 1: แค่ไลน์! เบาๆ!(Type1)
เป็นผลงานการแสดงแสงบนแผ่นอะคริลิกที่แกะสลักด้วยลวดลายของลายเส้น แสดงสีและรูปแบบของไฟ LED ต่างๆ อย่างกลมกลืน โปรเจ็กต์นี้จัดทำขึ้นโดยใช้ลวดลายจาก "Thanks for the Planets" ของ Arout Meijer ซึ่งเป็นการสังเคราะห์แสงสองสี ตามระยะห่างของเส้นและนำเสนออย่างสวยงาม
ขั้นตอนที่ 2: เกี่ยวกับโครงการ (ประเภท 1)
หลังจากแกะสลักลวดลายของลายเส้นบนระนาบอะคริลิกแล้ว ให้สังเคราะห์และแทรกแสงเข้าไปตรงกลางและด้านนอกของอะคริลิก
โครงสร้าง
ผู้ใช้สามารถปรับแสงได้อย่างมั่นคงโดยติดตั้งโพเทนชิออมิเตอร์ภายในเพลตเดิมทั้ง 3 แผ่นและจับนีโอฟิกเซลไว้ที่ขอบ
วิธีใช้
ผู้ใช้หมุนจานสามแผ่นด้วยไม้พายเพื่อควบคุมสีของแสง (Hue) และ LED พื้นฐานใช้ค่า Hue, Saturation และ Brightness เพื่อดึงดูดความสนใจของผู้ชมในรูปแบบ สีของแสง และภาพเคลื่อนไหว
ขั้นตอนที่ 3: วัสดุ (ฮาร์ดแวร์)
1. แถบ LED
:Adafruit NeoPixel Digital RGB LED Strip (WS2812)(144 LED/1 ม.) - 2 ม
:Adafruit NeoPixel Digital RGB LED Strip (WS2812)(60 LED/1 ม.) - 2 ม
2อะคริลิค.
10t - 600*600(มม.)
3. แบบฟอร์ม
12t(10+2t) - 800*800(mm)*2
2t - 800*800(มม.)*2
4. ไม้กระดาน
5t - 850*850(มม.)
ขั้นตอนที่ 4: วัสดุ (การควบคุม)
1. ARDUINO MEGA 2560
ARDUINO MEGA 2560 * 2
โพเทนชิออมิเตอร์ 2.10k
โพเทนชิออมิเตอร์ 10k * 3
ขั้นตอนที่ 5: ขั้นตอนที่ 3: วัสดุ (พลังงาน)
1. แหล่งจ่ายไฟ
SMPS แหล่งจ่ายไฟ 5V 40A (200W)
SMPS แหล่งจ่ายไฟ 5V 2A (10W)
2. สายไฟฟ้า
14awg (3 สี) - 10 เมตร/อัน
ขั้นตอนที่ 6: ขั้นตอน: วัสดุ (ฯลฯ)
1.เพ้นท์สเปรย์ (สีดำด้าน)
*หากคุณต้องการให้เอฟเฟกต์โดดเด่นยิ่งขึ้นในที่มืด ให้ใช้ Vanta Black Paint
2.สกรู
3.เหล็กเข้ามุม
4. สว่าน
5.กลูแกน
6.การยึดเกาะที่แข็งแรง
*เตรียมอุปกรณ์ตามสถานการณ์
ขั้นตอนที่ 7: ก่อนวาดลวดลาย
*ภาพด้านบนคือเพลง "Thanks for the Planets" ของ Arnout Meijer ซึ่งเป็นแรงบันดาลใจให้งานของฉัน
ก่อนเข้าโครงการ ผมรู้สึกว่าสีของการไล่ระดับแสงที่เกิดจากแสงสลัวเข้าไปในลวดลายที่ฝังด้วยอะคริลิกนั้นสวยงามมาก
โดยพื้นฐานแล้ว สีตั้งแต่สองสีขึ้นไปต้องซ้อนทับกันจึงจะกลายเป็นการไล่ระดับสี
เพื่อให้สีตั้งแต่สองสีขึ้นไปก่อตัวขึ้นอย่างสวยงาม ให้พิจารณาความหนาแน่น มุม หรือระดับของแสงที่ก่อตัวขึ้นตามเส้นโค้ง
ขั้นตอนที่ 8: สร้างฮาร์ดแวร์ (การตัดด้วยอะคริลิค)
*อ้างอิง. ขั้นตอนที่ 7: โครงสร้าง (ตอนที่ 5)
การตั้งค่าเครื่องตัดอะครีลิค
อะคริลิค (10t)
*การตัด - การตั้งค่าเส้นผม
ความเร็ว - กำลัง
(5 - 50)
*แกะสลัก
ความเร็ว - กำลัง
(20 - 35)
*สามารถปรับระดับการแกะสลักลวดลายได้ตามชอบใจ
ขั้นตอนที่ 9: สร้าง (โครงสร้าง)
1. 2t - ปก
2. 10t - ที่จับควบคุม
3. 10t - แถบ LED / โพเทนซิโอมิเตอร์
4. 12t - แถบ LED (2 + 10) t
5. 10t - แพทเทิร์น (อะคริลิค)
6. 2t - พื้นหลัง
7. 10t - พื้นที่วงจร
*ยกเว้นเบอร์ 5 - วัสดุ Formex
ขั้นตอนที่ 10: ฮาร์ดแวร์และการประกอบซอฟต์แวร์
อันดับแรก. เตรียม 3.4.6.7.
ที่สอง. วางตามลำดับ 7.6.4 ส่วนด้วยกาวที่แข็งแรง
ที่สาม. แก้ไขโพเทนชิออมิเตอร์ 3 ส่วนด้วยปืนกาว
ที่สี่ แนบ 3 ส่วนด้วยโพเทนชิออมิเตอร์กับ 4.6.7 ส่วนด้วยกาวที่แข็งแรง
ที่ห้า ติด ws2812b เข้ากับขอบ 3.4.6.7 (พื้นที่สีแดง) โดยใช้กาวที่แข็งแรง
หก. ใส่แผ่นอะครีลิคที่ตัดแล้วลงใน 3.4.6.7 ที่รวมกันแล้วยึดด้วยปืนกาว
ที่เจ็ด ใส่ 2 ส่วนลงในส่วนควบคุมของโพเทนชิออมิเตอร์แล้วยึดด้วยกาวกาว
ที่แปด ปิดส่วนที่ 1 และแก้ไขด้วยกาวที่แข็งแรง
* คุณสามารถอ้างถึง PDFfiles
ขั้นตอนที่ 11: สร้างฮาร์ดแวร์ (Formex Cutting)
(กำหนดค่าฮาร์ดแวร์เพื่อให้เห็นเฉพาะรูปแบบในห้องมืด)
1. 2t - ปก
2. 10t - ที่จับควบคุม
3. 10t - แถบ LED / โพเทนซิโอมิเตอร์
4. 12t - แถบ LED (2 + 10) t
6. 2t - พื้นหลัง
7. 10t - พื้นที่วงจร
*คุณต้องอ้างอิงถึงขั้นตอนที่7(ภาพ)
ขั้นตอนที่ 12: สร้างฮาร์ดแวร์ (การตัดและทาสีไม้)
ขั้นตอนที่ 13: * หากคุณต้องการแขวนชิ้นนี้บนผนัง ให้สร้างโครงสร้างเดียวกับรูปภาพ
*หลักสูตรนี้เป็นทางเลือก และคุณสามารถข้ามได้หากไม่ต้องการ
*โครงสร้างด้านบนเป็นความคิดส่วนตัวของฉัน และเมื่อคุณเพิ่มความคิดเข้าไป มันจะเป็นงานพิเศษมากขึ้น
*ตอนที่ผมกำลังสร้างโครงสร้างนี้ ผมไม่อยากเห็นกระดานไม้กับผนัง
ขั้นตอนที่ 14: สร้างซอฟต์แวร์ (แผนภาพวงจร)
เมื่อสร้างวงจร ให้กำหนดค่า GND / DIN / 5v ของแถบ ws2818b และทิศทางการไหลของกระแสอย่างระมัดระวัง (ทิศทางลูกศร)
GND = แบตเตอรี่ - (เส้นสีดำ)
5v = แบตเตอรี่ + (สายสีแดง)
DIN = สายสัญญาณ (สายสีเขียว)
ขั้นตอนที่ 15: การรวมฮาร์ดแวร์และการกำหนดค่าวงจรแผงด้านหลัง
เข้าร่วมฮาร์ดแวร์และยึดวงจรด้วยสกรูด้านหลัง
ขั้นตอนที่ 16: ป้อนรหัสลงในซอฟต์แวร์ (A-a Arduino Mega Board)
// คุณต้องป้อน A-a arduino mega board
#รวม
#include #define LED_PIN 0 #define NUM_OF_LEDS 120
int j = 0;
แถบ Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_OF_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
//rampUnsignedChar RAMPh[NUM_OF_LEDS];
rampUnsignedChar RAMPv[NUM_OF_LEDS];
การตั้งค่าเป็นโมฆะ () {
// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: strip.begin(); แถบ.show();
}
วงเป็นโมฆะ () {
// ใส่รหัสหลักของคุณที่นี่เพื่อเรียกใช้ซ้ำ ๆ:
valueSet();
// LEDSet();
สำหรับ(int i=0; i<num_of_leds; ="" h="RAMPh.update(); " v="RAMPv.update();" strip.setpixelcolor(i, ="" 360, ="" 230, ="" strip.show();
}
โมฆะ valueSet(){
คง uint32_t oldTime = 0; uint32_t nowTime = มิลลิวินาที ();
// 00.3 초에 한 번씩 코드를 실행합니다
if(nowTime - oldTime > 300) { สำหรับ (int i=0; i=360){ j=0; } } }
ขั้นตอนที่ 17: ป้อนรหัสลงในซอฟต์แวร์ (Bb Arduino Mega Board)
// คุณต้องป้อน Bb arduino mega board
#รวม
#รวม #define LED_PIN_A 2 #define LED_PIN_B 1 #define LED_PIN_C 0 #define NUM_OF_LEDS 52
#define POT_A A10
#define POT_B A9 #define POT_C A8
int j[3] = {0};
Adafruit_NeoPixel แถบ[3] = {
Adafruit_NeoPixel(NUM_OF_LEDS, LED_PIN_A, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel(NUM_OF_LEDS, LED_PIN_B, NEO_GRB + NEO_KHZ800), Adafruit_NeoPixel(NUM_OF_LEDS, LED_GRHZ_C, NEOK)
rampUnsignedChar RAMPv[3][NUM_OF_LEDS];
การตั้งค่าเป็นโมฆะ () {
// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: for (int i = 0; i < 3; i++) { strip.begin(); แถบ.show(); }
Serial.begin(9600);
}
วงเป็นโมฆะ () {
// ใส่รหัสหลักของคุณที่นี่เพื่อเรียกใช้ซ้ำ ๆ:
valueSet();
// map() 범위를 바꿔주는 함수
// 0~1023을 0~359로 바꿔줌 //j = map(analogRead(POT_B), 0, 1023, 0, 359); j[0] = แผนที่(analogRead(POT_A), 0, 1023, 0, 359); j[1] = แผนที่ (analogRead(POT_B), 0, 1023, 0, 359); j[2] = แผนที่(analogRead(POT_C), 0, 1023, 0, 359); สำหรับ (int i = 0; i < 3; i++) ถ้า (j < 0) j += 360;
สำหรับ (int k = 0; k < 3; k++) {
สำหรับ (int i = 0; i < NUM_OF_LEDS; i++) { // 현재 값을 얻습니다 uint8_t v = RAMPv[k].update(); แถบ[k].setPixelColor(i, แถบ[k]. ColorHSV(j[k] * 65535 / 360, 255, v));
}
แถบ[k].show();
}
}
โมฆะ valueSet () {
คง uint32_t oldTime = 0; uint32_t nowTime = มิลลิวินาที ();
// 00.3 초에 한 번씩 코드를 실행합니다
if (nowTime - oldTime > 300) { สำหรับ (int k = 0; k < 3; k++) { สำหรับ (int i = 0; i < NUM_OF_LEDS; i++) { // 다음 값을 설정합니다 // 다음 값, 다음 값까지 걸리는 시간, 가는 방법)) RAMPv[k].go(random(0, 255), 300, LINEAR); } } oldTime = ตอนนี้เวลา;
}
}