ระบบจัดคิวลิฟต์แบบ Algorithmic (ลิฟต์จิ๋ว Miniature Lift)
ปกติแล้วการคุม Motor พื้นๆ ทั่วไปเขาก็แค่กดปุ่มแล้วสั่งให้มัน "ขึ้น" หรือ "ลง" แบบทื่อๆ ใช่ป่ะ? แต่โปรเจกต์ตัวต้นแบบ (Prototype) ของเรามันเหนือกว่านั้นน้อง! เพราะเราจำลองระบบ Logic ของลิฟต์ในตึกสูงจริงๆ มาใส่ไว้เลย โดยใช้หลักการที่เรียกว่า Finite State Machine (FSM) Priority Queue มาจัดลำดับความสำคัญในการทำงาน
งานนี้เราดึงพลัง GPIO ของ Arduino Mega 2560 มาใช้แบบคุ้มๆ รองรับการทำ Interrupt จากปุ่มกดถึง 13 ปุ่มพร้อมกัน! ระบบจะเอา Array มาเช็คว่าใครกดเรียกจากข้างนอก หรือคนข้างในจะไปชั้นไหน แล้วคำนวณหาเส้นทางที่ฉลาดที่สุด สมมติ Loop หลักสั่งให้ลิฟต์วิ่งจากชั้น 1 ไปชั้นสูงสุด (ชั้น 5) แต่ดันมีคนกดเรียกจากชั้น 3 ในทิศทางเดียวกันพอดี FSM ของเราจะสั่งหยุด Motor กลางคันเพื่อแวะรับคน (Interceptor) ก่อนจะวิ่งต่อไปยังเป้าหมายเดิมแบบหล่อๆ เลย
ส่วนเรื่องความเป๊ะ เรามี Infrared (IR) Sensor ทำหน้าที่เป็นจุดเช็คตำแหน่ง (Positioning Gates) เพื่อส่งค่า Boolean กลับไปบอก CPU ให้สั่งหยุดการทำงานของ Motor ได้ทันทีแบบ Real-time ไม่ต้องมานั่งกะเวลาหรือใช้ Delay แบบมั่วๆ ให้เสียชื่อเด็กช่างนะน้อง! สู้ๆ งานนี้จบสวยแน่นอน!
ข้อมูล Frontmatter ดั้งเดิม
title: "Miniature Lift"
description: "A complex execution of Finite State Machine (FSM) arrays integrating priority handling, interrupts, and synchronous motor mapping utilizing an Atmel 2560 structure."
author: "devcode2control"
category: ""
tags:
- "project"
- "lift"
- "miniature"
- "example"
views: 0
likes: 1532
price: 2450
difficulty: "Hard"
components:
- "0"
tools:
- "13x LED (generic)"
- "2x DC motor (generic)"
- "13x Pushbutton switch 12mm"
- "5x IR receiver (generic)"
- "1x Arduino Mega 2560"
apps:
[]
downloadableFiles:
[]
documentationLinks:
[]
passwordHash: "ee87af943a209c168104663cab682113e20c6a00487f4d1daee882477b5f14e3"
encryptedPayload: "U2FsdGVkX18aLFvqzzukr2RsCl27YiCZ/3Pf8XvHKbpTE7Cx16mSZ3uaKuw7DDVk7o1VHwz9bvOsPDSNNHieAXJ7oX4y7UpBK4bDcfZ19dA="
seoDescription: "Engineer an advanced algorithmic Finite State Machine logic loop mimicking complex commercial lift queuing vectors using ATmega2560 dependencies."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/miniature-lift-16168c_cover.png"
lang: "th"