เปลี่ยนรีโมททีวีเก่าที่ฝุ่นจับ ให้กลายเป็นเครื่องมือสั่งงานคอมพิวเตอร์สุดคลูด้วยบอร์ด RP2040
สวัสดีชาว Maker สายหาทำทุกคนครับ! 🛠️ เคยไหมครับที่ทีวีที่บ้านพังไปแล้ว แต่รีโมทมันยังใช้งานได้ดี จะทิ้งก็เสียดาย จะเก็บไว้ก็รกบ้าน วันนี้เรามีโปรเจกต์ปั่นๆ แต่โคตรมีประโยชน์มานำเสนอครับ!
โปรเจกต์นี้มีชื่อว่า "Tossed The TV — Kept The Remote" (TTVKTR) จากคุณ Brisk4t ซึ่งไอเดียของมันคือการนำรีโมททีวีหรือรีโมทแอร์เก่าๆ ที่ใช้ อินฟราเรด (Infrared) มาแปลงให้กลายเป็น "พอยน์เตอร์พรีเซนต์งาน (Presentation Clicker)" หรือ "คีย์บอร์ดมาโคร (Macropad)" เพื่อสั่งงานคอมพิวเตอร์ได้ง่ายๆ ผ่านสาย USB ครับ!
ฮาร์ดแวร์มีแค่นี้จริงๆ หรอ? 🤯
บอกเลยว่าโปรเจกต์นี้ใช้อุปกรณ์น้อยมาก และถูกจนน่าตกใจครับ! สิ่งที่คุณต้องเตรียมมีแค่:
บอร์ดไมโครคอนโทรลเลอร์จิ๋ว Waveshare RP2040-Zero (บอร์ดตระกูลเดียวกับ Raspberry Pi Pico แต่ตัวเล็กกว่า)
ตัวรับสัญญาณอินฟราเรด (IR Receiver) ความถี่ 38 kHz ธรรมดาๆ 1 ตัว
วิธีการต่อก็ง่ายสุดๆ แค่บัดกรีขาของเซนเซอร์ IR เข้ากับบอร์ด RP2040: ขา OUT ต่อเข้า GPIO 28, ขาไฟเข้าต่อ 5V หรือ 3.3V และขา GND ต่อ GND แค่นี้ฮาร์ดแวร์ก็เสร็จแล้วครับ! (ส่วนไฟ RGB LED บนบอร์ดจะถูกต่อกับ GPIO 16 มาให้อยู่แล้วจากโรงงาน เอาไว้แสดงสถานะของเลเยอร์คำสั่ง)
💡 Maker's Tip: บอร์ดตระกูล RP2040 เป็นอะไรที่เหมาะกับการทำโปรเจกต์แปลงเป็นอุปกรณ์ USB (USB HID) มากๆ ครับ เพราะมันจำลองตัวเองเป็นคีย์บอร์ดหรือเมาส์ได้ง่ายสุดๆ หากเพื่อนๆ กำลังหา บอร์ดพัฒนา RP2040, เซนเซอร์ตัวรับ IR 38kHz, หรืออุปกรณ์สายเชื่อมต่อต่างๆ แวะมาช้อปปิ้งของพร้อมส่งได้ที่ Globalbyte Shop เลยครับ หรืออยากปรึกษาเรื่องโปรเจกต์ ก็ทัก LINE OA Globalbyteshop มาได้ตลอดเลย!
จุดขายคือซอฟต์แวร์: ไม่ต้องนั่งเขียนโค้ดเอง! 💻
คุณอาจจะเคยเห็นโปรเจกต์แนวนี้มาบ้างอย่าง Adafruit pIRkey หรือ CH32V003-USB-IR-Receiver ซึ่งปัญหาคือพอคุณเปลี่ยนรีโมททีไร คุณต้องมานั่งแก้โค้ดใหม่ทุกที
แต่โปรเจกต์ TTVKTR นี้ฉลาดกว่านั้นครับ! ตัวเฟิร์มแวร์ถูกออกแบบมาให้สื่อสารผ่านบราวเซอร์ได้เลย (Web Serial) คุณแค่เปิดหน้า Web UI ของ TTVKTR ขึ้นมา จากนั้นก็กดปุ่มบนรีโมทใส่เซนเซอร์ แล้วกำหนดค่าบนหน้าเว็บได้เลยว่าจะให้ปุ่มนี้กดแทนปุ่มอะไรบนคีย์บอร์ด (ให้อารมณ์เหมือนตั้งค่าคีย์บอร์ด Custom ผ่านเว็บ VIA หรือ QMK เลยครับ!)
ฟีเจอร์เด็ดของ Web UI:
ตั้งค่าปุ่มรีโมทให้กดเป็นปุ่มคีย์บอร์ด, คุมสื่อ (Media controls) หรือทำมาโคร (Custom actions) ได้ง่ายๆ
ทำ Multiple layers ได้! (เช่น กดปุ่มนึงเพื่อสลับโหมดรีโมท โดยดูจากสีไฟ RGB บนบอร์ด)
รองรับการกดแบบ Multi-step (เช่น กดปุ่มเดียว = Ctrl + C แล้วตามด้วย Ctrl + V)
⚠️ ข้อควรรู้เรื่องเบราว์เซอร์
การตั้งค่า Web UI ต้องทำผ่านเบราว์เซอร์ที่รองรับ Web Serial API นะครับ (เช่น Google Chrome หรือ Microsoft Edge) ส่วน Firefox ในอดีตไม่รองรับ แต่เวอร์ชันใหม่ๆ เริ่มเปิดให้ใช้งานได้แล้วครับ ลองอัปเดตเบราว์เซอร์ดูก่อนลุยงานนะ!
▼ เปิดดูภาพการต่อวงจร, หน้าเว็บตั้งค่า และตัวอย่างโค้ด JSON ▲ ซ่อนรายละเอียดเพิ่มเติม
ภาพรวมฮาร์ดแวร์เมื่อต่อเสร็จ 🛠️
บัดกรีสายแค่ 3 เส้น (ไฟ, กราวด์, สัญญาณ) ก็พร้อมใช้งานเป็นเครื่องรับสัญญาณ USB ได้เลย!
แผนผังขาบอร์ด (Pinout Diagram) 📍
แผนผังขาของบอร์ด Waveshare RP2040-Zero ที่มีขนาดเล็กกะทัดรัดมากๆ
หน้าเว็บตั้งค่า Web UI 🌐
ตั้งค่าทุกอย่างผ่านหน้าเว็บได้เลย ไม่ต้องติดตั้งโปรแกรมลงคอมพิวเตอร์
ตัวอย่างโค้ดตั้งค่าที่บันทึกเป็นไฟล์ JSON 📄
เมื่อเราตั้งค่าผ่านหน้าเว็บเสร็จ ระบบจะสร้างไฟล์ settings.json บันทึกลงในบอร์ดให้เราอัตโนมัติ (หรือจะแก้ไฟล์ดิบๆ เองก็ได้นะ) หน้าตาโค้ดจะเป็นแบบนี้ครับ:
Copy Code
{
"ir": {
"modeChangeCode": "0xC40387EE",
"modeCount": 2,
"receivePin": 28,
"handleRepeat": true,
"repeatInitialDelayReports": 5
},
"led": {
"pin": 16,
"modeColors": ["0xFF0040", "0x0080FF"],
"brightnessPercent": 10
},
"modes": [
{
"name": "Layer 1",
"slots": [
{ "irCode": "0xC40387EE", "type": "consumer", "key": "0xCD" },
{ "irCode": "0x...", "type": "keyboard", "key": "0x28" },
{ "irCode": "0x...", "type": "keyboard", "key": "0x1D", "mods": "0x01" },
{ "irCode": "0x...", "type": "mode_switch" },
{ "irCode": "0x...", "type": "text", "value": "hello world" },
{ "irCode": "0x...", "type": "combo", "steps": [
{ "type": "keyboard", "key": "0x04", "mods": "0x01" },
{ "type": "keyboard", "key": "0x4C" }
]}
]
}
],
"layouts": [
{
"name": "Default Layout",
"buttons": [
{ "irCode": "0x...", "x": 0, "y": 0 },
{ "irCode": "0x...", "x": 1, "y": 0 }
]
}
]
}
📚 แหล่งข้อมูลศึกษาเพิ่มเติมและดาวน์โหลดโค้ด:
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากบทความเทคโนโลยีต่างประเทศ การเบิร์นเฟิร์มแวร์ลงบอร์ด RP2040 และการตั้งค่าผ่าน Web Serial อาจมีขั้นตอนจุกจิกเล็กน้อยสำหรับผู้เริ่มต้น แนะนำให้ศึกษา
คู่มือและขั้นตอนการอัปโหลดโค้ดบน GitHub อย่างละเอียดก่อนลงมือทำครับ