ชื่อโปรเจกต์: Pomodoro device
เมื่อหลายปีก่อน ตอนที่พี่กำลังงมโข่งหาวิธีปั่นงานยังไงให้เสร็จแบบไม่โดนงานสูบวิญญาณไปซะก่อน พี่ก็ได้ไปเจอกับเทคนิคจัดการเวลาเทพๆ ที่เรียกว่า Pomodoro ว่ะน้อง หลักการมันง่ายมาก คือตั้งใจลุยงาน 25 นาที แล้วพักเบรกชิลๆ 5 นาที ทำวนไป!
พอผ่านไปไม่กี่เดือน พี่ก็เริ่มเข้าวงการ [Arduino](https://s.shopee.co.th/7fUgFAWSki) แล้วก็ตกหลุมรักความเทพของมันเข้าอย่างจัง โปรเจกต์นี้เลยเป็นการจับคู่กันระหว่างเทคนิคจัดการเวลากับบอร์ดคู่ใจของเรานี่แหละ หล่อเท่เลยงานนี้

ตัว Code ที่พี่จัดไว้ให้เนี่ย น้องสามารถปรับแต่งลำดับเหตุการณ์ตามใจชอบได้เลยนะ กับ Hardware ชุดเดิมนี่แหละ ของเดิมพี่ตั้งค่าไว้ที่ [ทำงาน 25 นาที, พัก 5 นาที, ทำงาน 25 นาที, พัก 5 นาที, ทำงาน 25 นาที, พัก 5 นาที, ทำงาน 25 นาที, พักยาว 15 นาที] แล้วก็เริ่ม Loop ใหม่
ถ้าอยากแก้เวลาตามสไตล์ตัวเอง ก็ไปลุยตรงบรรทัดพวกนี้ได้เลยวัยรุ่น:
int pomodoroSecs[8] = {
1500, 300, 1500, 300, 1500, 300, 1500, 900
};
bool isWorkState[8] = {
true, false, true, false, true, false, true, false
};
ผังวงจร (Schematics Diagram)

ส่องความหล่อแบบ 3D จาก KiCad


ดูของจริง (Demo)
รายละเอียดทางเทคนิค (แบบเจาะลึก)
Productivity Optimization Hardware
โปรเจกต์นี้คือการสร้าง Timer ตัวช่วยโฟกัสตามสไตล์ Pomodoro ที่จะช่วยให้น้องจัดการเวลาทำงานและเวลาพักได้แบบมีอะไรให้กดเล่นจริงๆ ไม่ใช่นั่งดูแต่หน้าจอคอมอย่างเดียว
- Temporal State Machine: ตัว Arduino จะคอยคุม State ทั้ง 4 แบบ คือ ช่วงลุยงาน (25 นาที), พักสั้น (5 นาที), พักยาว (15 นาที) และโหมด Standby ซึ่งแต่ละโหมดก็จะมีธีมการแสดงผลสวยๆ บนจอ I2C OLED หรือ LED ring ที่ต่างกันไป จัดเต็มความเท่ว่ะน้อง
- Tactile Timer Dial: งานนี้ใช้ Rotary encoder มาให้หมุนปรับเวลากันมันๆ มือ โดยพี่เขียนให้ Arduino ใช้ Interrupts คอยจับจังหวะ "Click" ของตัวหมุน ทำให้เวลาเราหมุนปุ๊บ หน้าจอก็เปลี่ยนค่าปั๊บ ทันใจวัยรุ่นแน่นอน ห้ามหมุนแรงจนพังนะเว้ย!