สารบัญ:

แผนที่อัจฉริยะของไอดาโฮพร้อมข้อมูล LED + ศิลปะ: 8 ขั้นตอน (พร้อมรูปภาพ)
แผนที่อัจฉริยะของไอดาโฮพร้อมข้อมูล LED + ศิลปะ: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แผนที่อัจฉริยะของไอดาโฮพร้อมข้อมูล LED + ศิลปะ: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แผนที่อัจฉริยะของไอดาโฮพร้อมข้อมูล LED + ศิลปะ: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ออกแบบบ้าน | 25 เรือนแพและบ้านลอยน้ำแสนวิเศษ 2024, พฤศจิกายน
Anonim
Image
Image

By jwolinFollow เพิ่มเติมโดยผู้เขียน:

แผนที่โลกอัจฉริยะพร้อมหน้าจอข้อมูลและแสงสว่างที่ตั้งโปรแกรมได้ DMX
แผนที่โลกอัจฉริยะพร้อมหน้าจอข้อมูลและแสงสว่างที่ตั้งโปรแกรมได้ DMX
Bearded Iris - แบ่งและพิชิต
Bearded Iris - แบ่งและพิชิต
Bearded Iris - แบ่งและพิชิต
Bearded Iris - แบ่งและพิชิต
นาฬิกาแอนิเมชั่น SMART LED ที่เชื่อมต่อกับเว็บพร้อมแผงควบคุมบนเว็บ เซิร์ฟเวอร์เวลาซิงโครไนซ์
นาฬิกาแอนิเมชั่น SMART LED ที่เชื่อมต่อกับเว็บพร้อมแผงควบคุมบนเว็บ เซิร์ฟเวอร์เวลาซิงโครไนซ์
นาฬิกาแอนิเมชั่น SMART LED ที่เชื่อมต่อกับเว็บพร้อมแผงควบคุมบนเว็บ เซิร์ฟเวอร์เวลาซิงโครไนซ์
นาฬิกาแอนิเมชั่น SMART LED ที่เชื่อมต่อกับเว็บพร้อมแผงควบคุมบนเว็บ เซิร์ฟเวอร์เวลาซิงโครไนซ์

ฉันต้องการวิธีแสดงข้อมูลทางภูมิศาสตร์อย่างมีศิลปะและแบบไดนามิกโดย "ระบายสี" แผนที่ด้วยแสง ฉันอาศัยอยู่ในไอดาโฮและรักรัฐของฉัน ฉันคิดว่าที่นี่น่าจะเป็นจุดเริ่มต้นที่ดี! นอกจากจะเป็นงานศิลปะที่มีเอฟเฟกต์แสงไฟสุดเจ๋งแล้ว ยังให้ข้อมูลที่เป็นประโยชน์อีกด้วย ตัวอย่างเช่น คุณสามารถแสดง "แผนที่ความร้อน" ต่อจำนวนความหนาแน่นของประชากร ระดับปริมาณน้ำฝน ระดับความสูงสูงสุด/ต่ำสุด จำนวนเอเคอร์ของพื้นที่รกร้างว่างเปล่า ฯลฯ หลังจากทำแผนที่ไอดาโฮนี้แล้ว ฉันมีแรงจูงใจที่จะทำสิ่งที่คล้ายคลึงกัน ระดับโลก!

สำหรับคำแนะนำนี้ คุณจะต้องมีสิ่งต่อไปนี้:

  • (2) 2'x4' แผ่น 1/4MDF
  • (1) 10' ชิ้น 1"x8" ไม้สน
  • (1) แผ่นอะครีลิคกระจายแสง
  • 2 สตริงของ (50) ws2812B prewired indexible LED
  • แหล่งจ่ายไฟ 5 โวลต์
  • คราบ ทาสี กาว
  • Arduino Micro หรือเทียบเท่า

เครื่องมือที่จำเป็น

  • เครื่อง CNC
  • หัวแร้ง
  • ที่หนีบ
  • กระดาษทราย

ขั้นตอนที่ 1: กาวไม้

กาวไม้
กาวไม้
กาวไม้
กาวไม้
กาวไม้
กาวไม้
กาวไม้
กาวไม้

เมื่อใดก็ตามที่ฉันติดแผ่นไม้ ฉันมักจะนำบิสกิตมาประกบเข้าด้วยกัน ป้องกันการแตกร้าวเนื่องจากการหดตัวเมื่อไม้แห้ง นี่เป็นสิ่งสำคัญอย่างยิ่งในโครงการนี้ เนื่องจากพื้นที่ผิวที่เชื่อมต่อชิ้นส่วนเข้าด้วยกันจะลดลงเนื่องจากการดำเนินการเจาะ CNC หลังจากที่ได้ลูกปัดกาวที่ดีทั้งสองข้างรวมทั้งในทั้งสองส่วนของโพรงบิสกิตให้หนีบและทิ้งไว้ 24 ชั่วโมง

หลังจากดึงที่หนีบออกจากกันแล้ว ให้ใช้เครื่องขัดฝ่ามือ (หรือถ้าคุณกล้าใช้เครื่องขัดสายพาน) แล้วขัดข้อต่อให้เรียบ คุณจะต้องใช้กาวบีบข้อต่อออกอย่างสม่ำเสมอ และต้องการขัดกระดานให้เรียบและปราศจากตำหนิมากที่สุด

ตอนนี้เรามีแผงสามแผงที่เราจำเป็นต้องใช้แล้ว ไปที่งาน CNC กัน!

ขั้นตอนที่ 2: CNC the Three Panels (แผงขอบ, Pine Core และ LED Panel)

CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)
CNC the Three Panels (แผงขอบ, แกนไพน์และแผงไฟ LED)

มีสามแผงที่ประกอบขึ้นเป็นโครงการ คุณสามารถดูรุ่นในซอฟต์แวร์ที่ฉันใช้ ข้อมูลแผนที่ถูกซื้อจากแพ็กแผนที่ maptorian ที่ยอดเยี่ยมที่ไม่มีค่าลิขสิทธิ์ รายละเอียดและคุณค่าที่น่าทึ่งที่นี่! ไฟล์ CAD จะถูกแนบในขั้นตอนต่อไป หากคุณต้องการ DXF สำหรับไฟล์ CAD หรือ Vector

แผงแกน LED นั้นเป็นแผ่น MDF 1/4" ที่กลึงแล้วซึ่งยึด LED ไว้ด้วยความเสียดทานที่แน่น คุณจะสังเกตเห็นบนแผงนี้มี "กระเป๋า" ขนาดใหญ่รอบ LED เพื่อให้แสงกระจายอย่างรวดเร็ว เป็นไปได้เพื่อหลีกเลี่ยงจุดร้อนบนอะคริลิก

แกนกลางคือแผงไม้สนที่เราติดกาวในขั้นตอนก่อนหน้าและแสดงฉากหลังของโครงการ เพื่อให้แสงส่องถึงแผ่นอะครีลิค เราจึงตัดเฉือนแต่ละเขตออกไป

ในที่สุดแผงด้านบนถูกกลึงด้วยโครงร่างของเคาน์ตีและนักเรียนประจำของรัฐ แต่ละเคาน์ตีมีชั้นวางขนาดเล็กที่จะรับอะครีลิคกระจายแสงขนาด 1/8 นิ้ว

พูดถึงอะครีลิคแล้ว ได้เวลาแมชชีนเหล่านี้ต่อไป

ขั้นตอนที่ 3: กลึงมณฑลจากแผ่นอะครีลิค

Image
Image
เครื่องจักรมณฑลจากแผ่นอะครีลิค
เครื่องจักรมณฑลจากแผ่นอะครีลิค
เครื่องจักรมณฑลจากแผ่นอะครีลิค
เครื่องจักรมณฑลจากแผ่นอะครีลิค

การตัดเฉือนเคาน์ตีจากอะคริลิกต้องใช้การลองผิดลองถูกเล็กน้อย อะคริลิกสามารถละลายได้หากกลึงให้ช้า ดังนั้นการป้อนที่เหมาะสมจึงจำเป็นเพื่อให้ได้ผลลัพธ์ที่ดี เคล็ดลับอีกประการหนึ่งคือใช้เครื่องมือขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้ด้วยการดูดที่ดีเพื่อขจัดเศษออก เครื่องมือขนาดเล็กมักจะไม่ล้างเศษออกอย่างง่ายดายและสะสมความร้อนที่ทำให้เกิดการหลอมที่ไม่ต้องการ

ฉันได้ความละเอียดที่ต้องการด้วย 1/8 upcut two flute spiral bit at 18, 500rpm and feedrate 200ipm. feeds and speeds calculatorsที่ดีมีประโยชน์ที่นี่! ฉันขอแนะนำตัวที่cnccookbook.com. ฟลุตบิตตัวเดียวน่าจะทำงานได้ดีกว่านี้แต่ฉันไม่มีในมือ การเก็บแท็บเล็กๆ ไว้บนชิ้นส่วนเหล่านี้ในงาน CAM เป็นสิ่งสำคัญที่จะป้องกันไม่ให้ชิ้นส่วนที่เสร็จแล้วแตกออกและฉายเข้าไปในห้อง!

ออฟเซ็ตเวทย์มนตร์สำหรับการทำให้เขตมีขนาดที่เหมาะสม กลายเป็นความพ่ายแพ้.075 จากเส้นกึ่งกลางของภาพวาด cad สิ่งนี้ทำให้ค่าเผื่อ 1/2 ของขอบ 1/8 บวกเพิ่มอีกเล็กน้อยเพื่อให้แผงวางเข้าที่ ต้องใช้การขัดเล็กน้อยในบางชิ้นเพื่อให้เข้าที่ ชิ้นงานที่พอดีทำให้งานนี้รวดเร็วและง่ายดาย

การทำให้มณฑลทั้งหมดพอดีกับอะคริลิกชิ้นเดียวเป็นเรื่องง่ายด้วยซอฟต์แวร์ vectric ของฉันที่มีคุณสมบัติการซ้อนเพื่อเพิ่มการใช้แผ่นงานให้เกิดประโยชน์สูงสุด

เพื่อความสนุก ฉันเริ่มทดสอบการใส่ชิ้นส่วนบางชิ้น เริ่มมากันแล้ว. เย็น!

ต้องการไฟล์สำหรับการตัดเฉือนเคาน์ตี แน่นอน! ดูเอกสารแนบ.

ขั้นตอนที่ 4: ทาสีและย้อมสี

สีและคราบ
สีและคราบ
สีและคราบ
สีและคราบ
สีและคราบ
สีและคราบ

ก่อนประกอบชิ้นส่วนทั้งหมด เราควรทาสีและทำสีเสียก่อน ฉันใช้คราบผสมกันสำหรับแผงไม้ สีสเปรย์สำหรับชั้นขอบ และสีขาวสะท้อนแสงสำหรับชั้น LED งานด่วนและเราอยู่ในการชุมนุม ขอให้สนุก!

ขั้นตอนที่ 5: ติดกาวแผง

กาวติดแผง
กาวติดแผง
กาวติดแผง
กาวติดแผง
กาวติดแผง
กาวติดแผง

ตอนนี้ได้เวลาทากาวแผงด้านล่างไปที่ด้านล่างของแกนสนแล้วติดแผงขอบ MDF ไปที่แกนสน ฉันเพิ่งใช้ชุดแคลมป์เพื่อทำสิ่งนี้

ขั้นตอนที่ 6: ต่อสายไฟ LED ด้วย Friction Fit และเชื่อมต่อ Arduino

ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino
ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino
ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino
ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino
ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino
ต่อสายไฟ LED ด้วยแรงเสียดทานพอดีและเชื่อมต่อ Arduino

งานฝันร้ายนี้ง่ายมากด้วยค่าเผื่อความเสียดทานพอดีที่นี่ ฉันใช้ปลายปากกากดเข้าที่ แทบล็อคเข้าและจะไม่ออกมาโดยไม่มีแรงมาก ไม่มีการใช้กาวใด ๆ สำหรับส่วนนี้ของโครงการ ทำให้การประกอบเป็นเรื่องง่าย! ฉันได้ทำหลายโครงการที่ต้องต่อสู้กับการเดินสายเป็นเวลาหลายชั่วโมงและใช้เวลา 10 นาทีอย่างแท้จริง นี่เป็นวิธีที่ง่ายที่สุด ฉันพยายามวางสายรัฐในลำดับซิกแซกโดยจัดกลุ่มเพื่อให้แต่ละเขตมีลำดับตามเชือก

การเชื่อมต่อกับ Arduino ทำได้ง่ายโดยใช้เขียงหั่นขนมขนาดเล็กและสายเชื่อมต่อ แหล่งจ่ายไฟเป็นการซื้ออีเบย์ 5v และ 8amps นั้นเกินความสามารถสำหรับโปรเจ็กต์นี้ แต่ให้โอเวอร์เฮดมากมาย การเดินสายไฟสิ่งเหล่านี้เป็นเรื่องง่าย +5v ไปยังพิน VCC, กราวด์ไปที่พินกราวด์ จากนั้นจ่ายไฟให้กับสแตรนด์ด้วยแหล่งกำเนิด 5v เดียวกัน พินเดียวที่เหลืออยู่คือพินข้อมูลที่จ่ายไฟให้กับสตริง! ในกรณีของฉัน ฉันใช้ D7 สำหรับข้อมูล เข้าสู่การเขียนโปรแกรม!

ขั้นตอนที่ 7: การเข้ารหัส Arduino

การเข้ารหัส Arduino
การเข้ารหัส Arduino
การเข้ารหัส Arduino
การเข้ารหัส Arduino

LED นั้นใช้พลังงานจาก Arduino ซึ่งทำให้การเข้ารหัสเค้ก รูทีนเริ่มต้นบางส่วนถูกยืม (เช่น ถูกขโมย) จากไลบรารี ws2813fx ที่ยอดเยี่ยมบน github มันง่ายที่จะปรับเปลี่ยนกิจวัตรเหล่านี้เพื่อทำในสิ่งที่ฉันต้องการให้พวกเขาทำ ขอบเขตทั้งหมดของโค้ดจะอธิบายได้ยากอย่างครบถ้วน แต่นี่เป็นไฮไลท์บางส่วน!

นี่คือกิจวัตรการสาธิตที่ใช้ได้:

#define FX_MODE_STATIC 0 # กำหนด FX_MODE_BLINK 1 #define FX_MODE_BREATH 2 #define FX_MODE_COLOR_WIPE 3 #define FX_MODE_COLOR_WIPE_INV 4 #define FX_MODE_COLOR_WIPE_REV 5 #define FX_MODE_COLOR_WIPE_REV_INV 6 #define FX_MODE_COLOR_WIPE_RANDOM 7 #define FX_MODE_RANDOM_COLOR 8 #define FX_MODE_SINGLE_DYNAMIC 9 #define FX_MODE_MULTI_DYNAMIC 10 #define FX_MODE_RAINBOW 11 #define FX_MODE_RAINBOW_CYCLE 12 #define FX_MODE_SCAN 13 #define FX_MODE_DUAL_SCAN 14 #define FX_MODE_FADE 15 #define FX_MODE_THEATER_CHASE 16 #define FX_MODE_THEATER_CHASE_RAINBOW 17 #define FX_MODE_RUNNING_LIGHTS 18 #define FX_MODE_TWINKLE 19 #define FX_MODE_TWINKLE_RANDOM 20 #define FX_MODE_TWINKLE_FADE 21 #define FX_MODE_TWINKLE_FADE_RANDOM 22 #define FX_MODE_SPARKLE 23 #define FX_MODE_FLASH_SPARKLE 24 #define FX_MODE_HYPER_SPARKLE 25 #define FX_MODE_STROBE 26 #define FX_MODE_STROBE_RAINBOW 27 #กำหนด FX_MODE_MULTI_STROBE 28 #define FX_MODE_BLINK_RAINBOW 29 #define FX_MODE_CHASE_31 FX_MODE_CHASE_31 ภาคตะวันออกเฉียงเหนือ 32 FX_MODE_CHASE_RANDOM #define FX_MODE_CHASE_RAINBOW 33 #define FX_MODE_CHASE_FLASH 34 #define FX_MODE_CHASE_FLASH_RANDOM 35 #define FX_MODE_CHASE_RAINBOW_WHITE 36 #define FX_MODE_CHASE_BLACKOUT 37 #define FX_MODE_CHASE_BLACKOUT_RAINBOW 38 #define FX_MODE_COLOR_SWEEP_RANDOM 39 #define FX_MODE_RUNNING_COLOR 40 #define FX_MODE_RUNNING_RED_BLUE 41 #define FX_MODE_RUNNING_RANDOM 42 #define FX_MODE_LARSON_SCANNER 43 #define FX_MODE_COMET 44 #define FX_MODE_FIREWORKS 45 #define FX_MODE_FIREWORKS_RANDOM 46 #define FX_MODE_MERRY_CHRISTMAS 47 #define FX_MODE_FIRE_FLICKER 48 #define FX_MODE_FIRE_FLICKER_SOFT 49 #define FX_MODE_FIRE_FLICKER_INTENSE 50 #define FX_MODE_CIRCUS_COMBUSTUS 51 #define FX_MODE_HALLOWEEN 52 #define FX_MODE_BICOLOR_CHASE 53 #define FX_MODE_TRICOLOR_CHASE 54 #define FX_MODE_ICU 55

และลองดูหนึ่งในกิจวัตรตัวอย่าง

uint16_t WS2812FX::mode_breath (เป็นโมฆะ) {// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // ขั้นตอน uint16_t breath_delay_steps = {7, 9, 13, 15, 16, 17, 18, 930, 19, 18, 15, 13, 9, 7, 4, 5, 10 }; // ตัวเลขวิเศษสำหรับการหายใจ LED uint8_t breath_brightness_steps = { 150, 125, 100, 75, 50, 25, 16, 15, 16, 25, 50, 75, 100, 125, 150, 220, 255 }; // ยิ่งเลขวิเศษ!

ถ้า (SEGMENT_RUNTIME.counter_mode_call == 0) {

SEGMENT_RUNTIME.aux_param = breath_brightness_steps[0] + 1; // เราใช้ aux_param เพื่อเก็บความสว่าง }

uint8_t breath_brightness = SEGMENT_RUNTIME.aux_param;

ถ้า (SEGMENT_RUNTIME.counter_mode_step < 8) { breath_brightness--; } อื่น ๆ { breath_brightness++; }

// อัปเดตดัชนีการหน่วงเวลาปัจจุบันเมื่อถึงความสว่างเป้าหมาย เริ่มต้นใหม่หลังจากขั้นตอนสุดท้าย

if(breath_brightness == breath_brightness_steps[SEGMENT_RUNTIME.counter_mode_step]) { SEGMENT_RUNTIME.counter_mode_step = (SEGMENT_RUNTIME.counter_mode_step + 1) % (sizeof (breath_brightness_steps)/sizeof (uint8_t)); }

int lum = แผนที่ (breath_brightness, 0, 255, 0, _brightness); // ให้ความสว่างต่ำกว่าความสว่างที่กำหนดโดยผู้ใช้

uint8_t w = (SEGMENT.colors[0] >> 24 & 0xFF) * lum / _brightness; // แก้ไขสี RGBW ด้วยข้อมูลความสว่าง uint8_t r = (SEGMENT.colors[0] >> 16 & 0xFF) * lum / _brightness; uint8_t g = (SEGMENT.colors[0] >> 8 & 0xFF) * lum / _brightness; uint8_t b = (SEGMENT.colors[0] & 0xFF) * lum / _brightness; สำหรับ (uint16_t i=SEGMENT.start; i <= SEGMENT.stop; i++) { Adafruit_NeoPixel::setPixelColor (i, r, g, b, w); }

SEGMENT_RUNTIME.aux_param = ความสว่างของลมหายใจ;

ย้อนกลับ breath_delay_steps[SEGMENT_RUNTIME.counter_mode_step]; }

สามารถดาวน์โหลดซอร์สแบบเต็มได้จากที่เก็บ ws2812fx github

ขั้นตอนที่ 8: เพลิดเพลินกับการแสดงแสงสีศิลปะ

ฉันมีความสุขมากกับผลลัพธ์ที่ได้! เป็นเรื่องที่น่ายินดีจริงๆ ที่ได้ชม และฉันก็ตื่นเต้นที่จะได้เล่นต่อไปด้วยการกำหนดค่าการแสดงข้อมูลต่างๆ! อย่าลังเลที่จะถามคำถามใด ๆ หรือติดต่อเราสำหรับข้อมูลใด ๆ ที่ฉันพลาดไป

การประกวด LED 2017
การประกวด LED 2017
การประกวด LED 2017
การประกวด LED 2017

รางวัลที่สองในการประกวด LED 2017

Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017

รองชนะเลิศการแข่งขัน Arduino 2017

แนะนำ: