กลับไปหน้ารวมไฟล์
sliding-tile-clock-458fe9.md

โปรเจกต์นี้ใช้บอร์ด NANO ESP32 ควบคุมสเต็ปเปอร์มอเตอร์ 4 ตัว เพื่อแสดงเวลาจากอินเทอร์เน็ตที่ดึงมาจากเซิร์ฟเวอร์ NTP

วงจร (Schematic)

ภาพรวมโปรเจกต์

"Chrono-Slide" คือประติมากรรมจลนศาสตร์แนวคิดสูง ที่เชื่อมโยงความแม่นยำแบบดิจิทัลเข้ากับความรู้สึกสัมผัสแบบกลไก แทนที่นาฬิกาทั่วไปจะใช้เข็มหรือไฟ LED แบบนิ่ง เจ้านี่ใช้ Arduino Nano ESP32 ในการจัดเรียงแผ่นสไลด์ให้กลายเป็นตัวเลขจริงๆ ด้วยการดึงเวลาอะตอมผ่าน Wi-Fi แล้วแปลงเป็นขั้น (step) ที่แม่นยำของมอเตอร์ นาฬิกานี้สร้างสุนทรียะแบบ "กลไกเคลื่อนไหว" สไตล์อุตสาหกรรม ที่ทั้งเที่ยงตรงและน่าตื่นตาตื่นใจ

ลึกลงไปในเทคนิค

  • ESP32-S3 และการเชื่อมต่อ NTP:
    • ความแม่นยำระดับมิลลิวินาที: Nano ESP32 เชื่อมต่อไปยังกลุ่มเซิร์ฟเวอร์ NTP (Network Time Protocol) ทั่วโลก มันส่งแพ็กเก็ต UDP ไปพอร์ต 123 และรับข้อมูลประทับเวลา 64 บิตกลับมา เฟิร์มแวร์จะปรับค่านี้ให้เป็นโซนเวลาและเวลาออมแสงท้องถิ่น ทำให้หน้าปัดกลไกไม่ต้องตั้งค่าเองเลย
    • การประมวลผลแบบอะซิงโครนัส: ใช้ประโยชน์จาก Xtensa® LX7 สองคอร์ โดยจัดการสแต็ก Wi-Fi ในคอร์หนึ่ง และควบคุมจังหวะพัลส์ให้สเต็ปเปอร์มอเตอร์ทำงานนิ่งๆ ในอีกคอร์หนึ่ง
  • เมคคาทรอนิกส์ของสเต็ปเปอร์มอเตอร์ (28BYJ-48):
    • การวางตำแหน่งแบบไม่ต่อเนื่อง: นาฬิกาใช้สเต็ปเปอร์มอเตอร์ 4 ตัว แต่ละตัวควบคุมเลขหนึ่งหลัก ด้วยอัตราทดเกียร์ 64:1 มอเตอร์เหล่านี้ให้แรงบิดสูงเพียงพอที่จะเลื่อนแผ่นพลาสติกได้ลื่นไหล
    • ฟอเรนซิกส์แบบลูปเปิด: เพื่อรักษาการซิงค์โดยไม่ต้องใช้ออปติคัลเอ็นโคเดอร์ ซอฟต์แวร์จะรัน "ลำดับการกลับบ้าน (Homing Sequence)" ตอนเริ่มระบบ โดยขับแผ่นไปชนจุดหยุดทางกายภาพ เพื่อกำหนดตำแหน่งศูนย์สัมบูรณ์ของแต่ละหลัก
  • การแปลงทางจลนศาสตร์:
    • จากการหมุนสู่การเลื่อนเชิงเส้น: โครงสร้างที่พิมพ์จาก 3D พริ้นเตอร์ใช้กลไกแบบแร็คแอนด์พินเนียนหรือแคม Arduino จะคำนวณจำนวนขั้นที่ต้องการ (ประมาณ 2048 ขั้นต่อ 1 รอบ) เพื่อเลื่อนแผ่นจากสถานะซ่อนไปสู่สถานะที่มองเห็น สร้างภาพลวงตาเหมือนหน้าจอ 7-Segment ที่ทำจากพลาสติกจริงๆ

วิศวกรรมและการนำไปใช้

  • อาร์เรย์ไดรเวอร์ ULN2003:
    • สเต็ปเปอร์มอเตอร์เป็นโหลดแบบอินดักทีฟที่กินกระแสสูง อาร์เรย์ดาร์ลิงตัน ULN2003 ทำหน้าที่เป็นสเตจกำลัง ช่วยให้สัญญาณลอจิก 3.3V จาก ESP32 สามารถสวิตช์เรลไฟ 5V ที่มอเตอร์ต้องการได้ พร้อมปกป้อง MCU จากสไปก์ของแรงดันย้อนกลับ (back-EMF) ดูได้จากวงจรด้านบน
  • จังหวะเวลาและความกระตุกในซอฟต์แวร์:
    • เฟิร์มแวร์ใช้วิธีที่ไม่บล็อก เช่น millis() หรือการขัดจังหวะจากไทเมอร์ ในการขับมอเตอร์เป็นขั้นๆ สิ่งนี้ทำให้ทั้งสี่หลักสามารถ "สไลด์" พร้อมกันได้ สร้างแอนิเมชันที่ลื่นไหลและซิงค์กันในทุกนาทีที่เปลี่ยน
  • การแยกเรลไฟ:
    • การขับสเต็ปเปอร์ 4 ตัวพร้อมกันอาจกินกระแสเกิน 1A โปรเจกต์นี้เน้นการใช้เรลไฟ 5V แยกสำหรับมอเตอร์ โดยมีกราวด์ร่วมกัน เพื่อให้แน่ใจว่า วิทยุ Wi-Fi ของ ESP32 ยังคงเสถียรและไม่โดนแรงดันตกจากมอเตอร์

สรุป

Chrono-Slide แปลงเวลาให้เป็นการแสดงทางกายภาพ มันเป็นตัวอย่างชั้นยอดของการจับคู่การเชื่อมต่อ IoT (NTP) เข้ากับเมคคาทรอนิกส์คลาสสิก เพื่อสร้างเครื่องบอกเวลาที่เป็นทั้งเครื่องมือสมัยใหม่และชิ้นงานศิลปะสำหรับพูดคุย


เวลาในความเคลื่อนไหว: การซิงโครไนซ์โลกกายภาพกับนาฬิกาอะตอม

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x arduino IDE cloud"
author: "gooikerjh"
category: "Screens & Displays"
components:
  - "1x Arduino Nano ESP32"
description: "นาฬิกาจากการเลื่อนแผ่นเซรามิกด้วยมอเตอร์ ใช้ Arduino ควบคุม ตึงๆ วัยรุ่นจัดไป"
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/381d2623-796d-4e3f-abe0-39b8844abdb6.ino"
encryptedPayload: "U2FsdGVkX190mTJmJgDBSa8135ZdVbSenMPKFE91at35zj7fdbZRSUBj/5CtTUx0qIPauAGFl1R28vMnxFNGRnFnqzHc4A2iy8s30MDCPI4="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/sliding-tile-clock-458fe9_cover.gif"
lang: "en"
likes: 1
passwordHash: "92858ff00c8c4c7da8e1c56683107460db92f6eb03c40d63ec5e73f45ca9a359"
price: 1499
seoDescription: "Build a unique Sliding Tile Clock with Arduino. Innovative design featuring mechanical tile movement for time display."
tags:
  - "Clocks"
title: "นาฬิกาเลื่อนแผ่นเทพๆ งานง่ายแต่หล่อ"
tools: []
videoLinks: []
views: 2928