ลองจินตนาการดูว่า คุณเป็นเจ้าหน้าที่กู้ชีพที่กำลังพยายามยื้อชีวิตผู้ป่วยหลังรถพยาบาล หรืออาจจะเป็นมนุษย์แม่ที่กำลังรีบพาลูกไปซ้อมดนตรีที่อยู่ห่างไปแค่ 600 เมตร แต่ศัตรูตัวฉกาจของคุณคือ "ไฟแดง" นับสิบแยกและรถติดมหาศาล... มันจะดีแค่ไหนถ้าเรามีเวทมนตร์เสกให้ไฟจราจรกลายเป็น "ไฟเขียว" ให้เราผ่านไปได้ตลอดทาง?
สิ่งนี้ในโลกความเป็นจริงเรียกว่า Traffic Preemption สำหรับรถฉุกเฉินจะเรียกว่า EVP (Emergency Vehicle Preemption) และสำหรับรถสาธารณะอย่างรถเมล์หรือรถรางจะเรียกว่า TSP ซึ่งระบบพวกนี้ไม่ใช่เรื่องใหม่ ในยุค 90s และ 2000s เทคโนโลยีที่ชนะเลิศและถูกนำมาใช้เป็นโครงสร้างพื้นฐานระดับชาติก็คือ "อินฟราเรด (Infrared)" หลักการเดียวกับรีโมททีวีบ้านเรานี่แหละครับ!
ระบบมันรู้ได้ไงว่ารถฉุกเฉินกำลังมา?
หลักการง่ายๆ คือ รถฉุกเฉินจะติด ตัวส่งสัญญาณ (Emitter) ไว้บนหลังคา เมื่อเปิดไซเรน มันจะยิงแสงอินฟราเรดไปข้างหน้า ที่แยกไฟแดงจะมี ตัวรับสัญญาณ (Detectors) คอยจับแสงนี้ แล้วส่งข้อมูลไปให้ ตัวประมวลผล (Optical Signal Processor) เพื่อสั่งเปลี่ยนไฟแดงเป็นไฟเขียวให้ในเลนนั้นๆ ทันที
คลิกเพื่อดูรูปภาพตัวรับสัญญาณ (View More)
ตัวรับสัญญาณ Strobecom Detectors ที่ติดอยู่บนเสาไฟจราจร และภาพคลื่นสัญญาณที่จับได้
สรุป Flipper Zero เปลี่ยนไฟแดงได้ไหม?
คุณอาจจะเคยเห็นคลิปไวรัลใน YouTube หรือ TikTok ที่คนเอา Flipper Zero มากดปุ่มแล้วไฟจราจรเปลี่ยนสี... คำตอบคือ "อาจจะได้" สำหรับระบบรุ่นเก่า เพราะระบบยุคแรกๆ ใช้แค่การยิงคลื่น IR ที่ความถี่ 14.035 Hz ซึ่ง Flipper Zero เลียนแบบได้สบายมาก
แต่แน่นอนว่าถ้าใครก็ทำได้ บ้านเมืองคงวุ่นวาย บริษัทอย่าง GTT (Opticom) และ Tomar (Strobecom) จึงพัฒนาระบบ "การเข้ารหัส (Encoding)" เข้าไปในสัญญาณด้วย: - ระบบ GTT: เข้ารหัสด้วยการ "ข้ามจังหวะพัลส์ (Missing pulses)" - ระบบ Tomar Strobecom: ใช้หลอดไฟแฟลช Xenon และเข้ารหัสด้วย "การหน่วงเวลา (Variable delays)" ระหว่างพัลส์
ชำแหละระบบ Tomar Strobecom II
เพื่อหาคำตอบ ผู้เขียนบล็อกได้สั่งซื้อบอร์ดประมวลผล Tomar Strobecom 2140 OSP มาชำแหละดูการทำงานภายใน บอร์ดนี้ใช้ชิป PIC สื่อสารกันผ่าน I2C และมีพอร์ต RS232 สำหรับคอนฟิกค่า แต่ปัญหาคือซอฟต์แวร์ตั้งค่าราคาแพงถึง $600 ดอลลาร์! โชคดีที่ไปขุดเจอคู่มือเก่าๆ บน Wayback Machine เลยทำให้รู้วิธีส่งคำสั่ง Hex เพื่อตั้งค่าบอร์ดให้รับสัญญาณแบบ Uncoded ได้สำเร็จ
คลิกเพื่อดูรูปภาพบอร์ดประมวลผลและซอฟต์แวร์ (View More)
ถอดรหัสลับ และการทดสอบด้วย Raspberry Pi Pico
จากการทดลองส่งค่าแบบสุ่มเข้าไป พบว่าระบบ Strobecom ใช้ข้อมูลความยาว 17 bits (วนซ้ำ 2 รอบ รวมเป็น 33 pulses) โดยความลับอยู่ที่ "ระยะเวลาการหน่วง (Delays)" ที่แบ่งเป็นแบบสั้น (s) และแบบยาว (l) รวมถึงพัลส์ตัวแรกที่ต้องหน่วงยาวเป็นพิเศษ (p) เพื่อบอกว่านี่คือจุดเริ่มต้นของข้อมูล
เมื่อรู้ความลับแล้ว ก็ถึงเวลาสร้างตัวปล่อยสัญญาณ! โดยใช้บอร์ด Raspberry Pi Pico ต่อเข้ากับหลอด IR LED ผ่านตัวต้านทาน แล้วเขียนโค้ดคุมจังหวะ Microsecond delay ให้เป๊ะตามที่ถอดรหัสมาได้
คลิกเพื่อดูรูปภาพการต่อวงจรและคลื่นสัญญาณ (View More)
คลิกเพื่อดูโค้ดสำหรับ Raspberry Pi Pico (C++)
📋 คัดลอกโค้ด
#define l 71225 - 0xffff
#define s 71100 - 0xffff
#define p 71270 - 0xffff
#define LENGTH 17
#define on 200
unsigned int payload[LENGTH] = {p, s,s,s,l, s,s,s,s, l,l,s,l, l,s,s,s};
int pos = 0;
void setup() {
pinMode(0, OUTPUT);
digitalWrite(0, LOW);
}
void loop() {
delayMicroseconds(0xffff - on);
delayMicroseconds(payload[pos]);
digitalWrite(0, HIGH);
delayMicroseconds(on);
digitalWrite(0, LOW);
pos++;
if (pos >= LENGTH) {
pos = 0;
}
}
ผลลัพธ์การทดสอบยิงสัญญาณด้วย Pico
VIDEO
สรุปแล้ว Flipper Zero ทำได้ไหม? เป็นไปได้ครับ! แต่ไทม์มิ่งของระบบ Tomar นั้นโหดมาก การกระพริบแค่ 14Hz ไม่พอ ถ้าหลอด LED ตอบสนองไม่เร็วพอ (Rise time) สัญญาณก็จะถูกคัดกรองทิ้ง และคุณจำเป็นต้องรู้รหัส (ID) ที่ระบบตั้งไว้ด้วย แต่ด้วยความที่ระบบมีพื้นที่หน่วยความจำจำกัด การสุ่มรหัส (Brute force) หลักพันชุดก็ไม่ใช่เรื่องที่เป็นไปไม่ได้สำหรับแฮกเกอร์!
สนใจบอร์ด Raspberry Pi Pico ไปสร้างโปรเจกต์สนุกๆ ไหม?
คำเตือน: การใช้อุปกรณ์แทรกแซงสัญญาณจราจรตามที่กล่าวถึงในบทความนี้ อาจส่งผลกระทบต่อเวลาตอบสนองของรถฉุกเฉิน และ "ผิดกฎหมาย" ในหลายพื้นที่ ระบบไฟจราจรมีการบันทึกข้อมูลและมีกล้องวงจรปิด บทความนี้มีจุดประสงค์เพื่อการศึกษาและการวิเคราะห์ทางวิศวกรรมจากห้องทดลองเท่านั้น เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการ