ความสมจริงของไดโอรามา: ไม้กั้นทางรถไฟอัตโนมัติ
ระบบไม้กั้นทางรถไฟอัตโนมัติ (ที่ได้รับความนิยมจากนักประดิษฐ์อย่าง Sheekar Banerjee) เปลี่ยนไดโอรามาจำลองทางรถไฟที่นิ่งเฉย ให้กลายเป็นโลกที่มีชีวิตชีวาและตอบสนองได้ โดยผนวกการกำหนดตำแหน่งของ Servo เข้ากับตรรกะการกระพริบของ LED แบบ asynchronous เพื่อเลียนแบบสัญญาณเตือนในโลกจริงได้อย่างไร้ที่ติ

การกระพริบแบบ Asynchronous ที่ไม่บล็อกการทำงาน
ส่วนที่ยากที่สุดของโปรเจกต์นี้คือไฟเตือน
- ไม้กั้นทางรถไฟจริงมีไฟสีแดงสองดวงที่กระพริบสลับกัน: ซ้าย, ขวา, ซ้าย, ขวา
- หากคุณเขียนโค้ดโดยใช้
delay(500);โปรเซสเซอร์ Arduino จะหยุดทำงานโดยสมบูรณ์ จะไม่สามารถรับฟังข้อมูลจาก sensor เพื่อรู้ได้ว่ารถไฟผ่านไปแล้วหรือไม่! - คุณต้องใช้โครงสร้างตรรกะ
millis()(เทคนิค "Blink Without Delay") if (currentMillis - previousMillis >= 500) { toggleLights(); }- สิ่งนี้ช่วยให้ Arduino สามารถกระพริบเสาไฟ LED เตือนขนาดใหญ่ได้อย่างไร้ที่ติ พร้อมทั้งคำนวณความเร็วของรถไฟที่กำลังเข้ามาได้พร้อมกัน
การสั่งงานไม้กั้น
- ขาเข้า: ติดตั้ง TCRT5000 IR Sensor ไว้ใต้รางรถไฟ 3 ฟุตก่อนถึงทางข้ามถนน
- Arduino ตรวจจับรถไฟได้ มันจะเริ่มลำดับการกระพริบของ LED แบบ asynchronous ทันที
- มันจะสั่งงาน SG90 Micro Servos สองตัว (ซ่อนอยู่ใต้ถนน) ให้หมุนช้าๆ 90 องศา เพื่อลดไม้กั้นลง
- ขาออก: ติดตั้ง IR Sensor ตัวที่สองไว้ใต้ราง 3 ฟุต หลัง ทางข้ามถนน เมื่อตู้สุดท้ายของรถไฟพ้นจาก sensor ตัวที่สอง Arduino จะยกไม้กั้นขึ้นและปิดไฟเตือน!
รายการส่วนประกอบสำหรับฉากจำลอง
- Arduino Uno/Nano: ศูนย์ควบคุม
- IR Obstacle Sensors (x2) หรือ Light Dependent Resistors
- Micro Servos (SG90 x2)
- Red LEDs และ 220-ohm Resistors (x4) ที่ติดตั้งรวมอยู่ในเสาไม้กั้นที่พิมพ์ 3D จากพลาสติก
- MP3 Sound Module (ตัวเลือกเสริม: สำหรับเล่นเสียงกระดิ่ง "ติ๊ง-ติ๊ง-ติ๊ง" ของทางข้ามรถไฟที่ดังสนั่นจาก micro-SD card!)