กลับไปหน้ารวมไฟล์
predator-counter-d42713.md

ในโปรเจกต์ Predator Numbers นี้ พี่อยากสร้างตัวนับเวลาอันโด่งดังจากหนัง Predator และ AVP ให้มันมีชีวิตขึ้นมาจริงๆ

ตัวนับเวลาของ Predator ในหนัง

พี่ออกแบบ PCB ขึ้นมาเพื่อเชื่อม 16-segment สองตัวให้กลายเป็น "ตัวเลขเอเลี่ยน" หนึ่งหลัก PCB ช่วยให้งานบัดกรีดูสะอาดตาขึ้น แต่ถ้าน้องไม่อยากทำ PCB ก็ทำได้เหมือนกัน แค่หาตัวผ่านรู (through-hole) มาแทน SMD ให้เจอ

ถ้าน้องอยากดูรายละเอียดวงจรหรือชิ้นส่วนต่างๆ พี่มีไฟล์ Schematic กับรายการชิ้นส่วนให้ดูใน GitHub ของโปรเจกต์นะ

มันทำอะไรได้บ้าง?

โปรเจกต์นี้คือตัวนับถอยหลังแบบ 4 หลัก แสดงเวลาที่เหลืออยู่ ค่าเริ่มต้นสามารถตั้งได้ด้วยปุ่ม BTN0 กับ BTN1

อย่างที่บอก เป้าหมายคือให้มันมี สไตล์แบบ Predator พี่ใช้รูปด้านล่างเป็นตัวอ้างอิง (ใช้แค่ตัวเลข ส่วนเลข '0' คือปิดหลักนั้นไปเลย)

ฟอนต์ Predator

พี่เคยเห็นคนอื่นทำโปรเจกต์แบบนี้เหมือนกัน แต่สิ่งที่เขาทำคือแปลง ระบบเลขฐานสิบ ของเราให้เป็นฟอนต์นี้แล้วแสดงผลเฉยๆ พี่ไม่อยากทำแบบนั้น เพราะระบบเลขฐานสิบมันน่าเบื่อ (ส่วนใหญ่เปลี่ยนแค่หลักสุดท้าย) เพื่อให้ได้อารมณ์แบบ Predator ที่ตัวเลขทั้ง 4 หลักเปลี่ยนไปทุกวินาที พี่เลยสร้างระบบตัวเลขของตัวเองขึ้นมา (ทำแบบรีบๆ นะ ใครมีไอเดียอื่นที่ใกล้เคียงของเดิมมากกว่านี้มาคุยกันได้)

สิ่งที่พี่ทำคือสร้างสูตรคำนวณค่าขึ้นมา สมมติมี 4 หลัก: 'a', 'b', 'c' และ 'd'; ค่าปัจจุบันจะตรงกับสูตรนี้: a + a*b^2 + b*c + b^2*d สูตรนี้ทำให้ตัวเลขเปลี่ยนเยอะมาก ข้อเสียอย่างเดียวคือเลขสูงสุดที่แสดงได้คือ 1,548 (แทนที่จะเป็น 9,999)

เพื่อเพิ่มความตื่นเต้น ดีเลย์ ที่รอให้ตัวเลขเปลี่ยนไปขั้นต่อไปจะไม่คงที่ ถ้าตัวเลขมากกว่า 60 มันจะใช้เวลา 1 วินาทีต่อขั้น แต่ถ้าน้อยกว่านั้นมันจะเปลี่ยนเร็วขึ้นเรื่อยๆ ยิ่งใกล้ 0 ยิ่งเร็ว (จาก 1 วินาที/เลข เหลือ 0.5 วินาที/เลข)

นอกจากนี้ เนื่องจากตัวนับแบบนี้ดูเวลาที่เหลือยาก พี่ก็มี เว็บไซต์ ให้เช็คเลขปัจจุบัน (หลัก 'a', 'b', 'c', 'd' ในฐานสิบ) และเวลาที่เหลือจนถึง 0000 ด้วย

รายละเอียดเทคนิคเพิ่มเติม

หัวใจของโปรเจกต์คือไดรเวอร์จอแสดงผลแบบกำหนดเองและลอจิกมัลติเพล็กซ์ ตัวเลขเอเลี่ยนแต่ละหลักประกอบด้วย 16-segment สองตัวเชื่อมต่อบน PCB ที่ออกแบบเอง เพื่อควบคุมทุกเซกเมนต์ใน 4 หลักโดยไม่ใช้พินเยอะเกินไป Arduino ใช้เทคนิคมัลติเพล็กซ์ นั่นคือมันสลับจ่ายไฟให้แต่ละหลักอย่างรวดเร็วทีละหลัก อาศัยความต่อเนื่องของการมองเห็น (persistence of vision) ทำให้ทั้งสี่หลักดูเหมือนติดพร้อมกัน นี่คือสาเหตุที่บางครั้งในวิดีโออาจเห็นการกระพริบ แม้ตาคนจะมองไม่เห็น

ลอจิกการจับเวลานับถอยหลังใช้ฟังก์ชัน millis() เพื่อสร้างดีเลย์แบบไม่บล็อก (non-blocking) ทำให้การมัลติเพล็กซ์ทำงานลื่นไหล สูตร a + a*b^2 + b*c + b^2*d จะถูกคำนวณในแต่ละรอบเพื่อหาค่าในฐานสิบจากตัวเลขเอเลี่ยนสี่หลัก ค่านี้จะถูกนำไปใช้ปรับดีเลย์ระหว่างการนับแบบไดนามิก สร้างความรู้สึกเร่งรีบมากขึ้นเมื่อตัวนับใกล้ถึงศูนย์

สำหรับการเก็บข้อมูลถาวร—เช่น การบันทึกค่านับถอยหลังเริ่มต้นไว้หากไฟดับ—โปรเจกต์นี้สามารถใช้ EEPROM (Electrically Erasable Programmable Read-Only Memory) ภายใน Arduino ได้ โดยการ include library EEPROM.h ตัวแปรสำคัญ เช่น ค่าเริ่มต้น สามารถเขียนและอ่านจากหน่วยความจำแบบไม่ลบเลือนนี้ได้ ทำให้ตัวนับรักษาสถานะไว้ได้แม้จะปิดแล้วเปิดเครื่องใหม่

เดโม

นี่คือวิดีโอตัวอย่างให้ดูกันนะน้อง ต้องบอกก่อนว่าพี่ขับไฟ LED แบบมัลติเพล็กซ์ (Multiplexing) นะ อาศัยหลักการที่ตาคนเรารับภาพได้ช้ากว่าจริงๆ บางทีเทคนิคนี้มันก็ตีกับกล้องถ่ายวิดีโอน่ะสิ (เลยเห็นไฟกระพริบในวิดีโอ แต่ของจริงมันสวยปรี๊ดเลยจ้า)

หวังว่าน้องๆ จะชอบกันนะ! สู้งานต่อเลยวัยรุ่น!

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

apps:
  - "1x PlatformIO"
author: "rogermiranda1000"
category: "Screens & Displays"
components:
  - "1x Arduino Nano 33 IoT"
  - "1x Soldering kit"
  - "1x Predator Numbers PCB"
description: "มาทำตัวนับแบบในหนัง Predator กัน! ใช้เซนเซอร์ตรวจจับแล้วนับแบบตึงๆ ผ่าน Arduino งานนี้ทั้งเท่ทั้งวัยรุ่น จัดไปเลยน้อง!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://github.com/rogermiranda1000/PredatorNumbers"
encryptedPayload: "U2FsdGVkX1/cV6asR9q1B01v91UDGMQqzlWkZmJAwME/or6ULWzpHqdO0lAI4OIDgpA4Cv5xks91MRrX7FqezffKZYjHiT4AoK+QhhUerxQ="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/predator-counter-d42713_cover.gif"
lang: "en"
likes: 1
passwordHash: "b322376a9ddfe9368fed7e0cf18de6cfe1cd0526db031afafa1bf544ee1571fb"
price: 1499
seoDescription: "Build a DIY Predator Counter with Arduino. A movie-inspired replica using electronic sensors and modules."
tags:
  - "Toys"
  - "Lights"
title: "เคาน์เตอร์สายล่าแบบหนัง Predator งานง่ายแต่หล่อ!"
tools: []
videoLinks:
  - "https://youtu.be/_QwOZDd4uf0"
views: 2740