TTVKTR เฟิร์มแวร์โอเพนซอร์สแปลงรีโมต IR เก่าให้เป็น Presentation Clicker ด้วย RP2040

IR remote control RP2040 USB HID

Brisk4t ได้พัฒนาโครงการเฟิร์มแวร์โอเพนซอร์สชื่อ “Tossed The TV — Kept The Remote” (TTVKTR) สำหรับบอร์ด USB ที่ใช้ชิป RP2040 ของ Raspberry Pi โดยมีเป้าหมายเพื่อลดขยะอิเล็กทรอนิกส์ ด้วยการนำรีโมตอินฟราเรด (IR) เก่าที่ไม่ได้ใช้งานแล้ว มาดัดแปลงเป็นรีโมตควบคุมการนำเสนอ (Presentation Clicker)

บอร์ด Raspberry Pi RP2040 ที่มีพอร์ต USB ส่วนใหญ่สามารถใช้งานได้ แต่โครงการนี้แนะนำให้ใช้ Waveshare RP2040-Zero ร่วมกับตัวรับสัญญาณอินฟราเรดมาตรฐานความถี่ 38 kHz เนื่องจากมีขนาดเล็กและราคาประหยัดเพียงประมาณ $4(~130฿) ถึง $5(~165฿) นอกจากนี้ยังสามารถใช้ไฟ RGB LED ที่ติดตั้งมาบนบอร์ดสำหรับแสดงสถานะของเลเยอร์ต่าง ๆ ได้อีกด้วย

IR Remote control to presentation clicker RP2040 project

ฮาร์ดแวร์ที่ต้องใช้ มีอุปกรณ์ที่จำเป็นมีเพียงไม่กี่ชิ้น โดยต้องบัดกรีขาของตัวรับสัญญาณ IR เข้ากับบอร์ดดังนี้ ขา OUT → GPIO 28, ขา VCC → 5V หรือ 3.3V และขา GND → GND การเชื่อมต่อค่อนข้างง่ายและไม่ซับซ้อน ส่วนไฟ RGB LED แบบ WS2812 บนบอร์ด RP2040-Zero ถูกเชื่อมต่อกับ GPIO 16 มาเรียบร้อยแล้ว เราได้พยายามค้นหาบอร์ด RP2040 USB ที่มีตัวรับสัญญาณ IR ในตัว แต่ยังไม่พบบอร์ดที่รองรับลักษณะดังกล่าว

Waveshare RP2040 Zero Pinout
พินเอ้าท์ไดอะแกรมของ Waveshare RP2040-Zero

เฟิร์มแวร์จะรับรหัส IR จากตัวรับสัญญาณ 38 kHz และแปลงเป็นรายงาน USB HID ตามการตั้งค่าที่กำหนดไว้ในไฟล์ JSON ซึ่งถูกเก็บอยู่ในระบบไฟล์ของอุปกรณ์ แต่ผู้ใช้ไม่จำเป็นต้องแก้ไขไฟล์ JSON ด้วยตนเอง เนื่องจากมีเครื่องมือกำหนดค่าผ่านเว็บเบราว์เซอร์ที่สามารถสื่อสารกับบอร์ดผ่าน Web Serial ได้ ทำให้สามารถเรียนรู้รหัส IR จากรีโมต, กำหนดปุ่มต่าง ๆ ได้ผ่านอินเทอร์เฟซแบบกราฟิก, จัดการเลย์เอาต์และเลเยอร์ได้ง่าย แนวทางนี้คล้ายกับโปรแกรม VIA หรือ QMK ที่ใช้กับคีย์บอร์ดแมคคานิคอลและแมคโครแพด จึงใช้งานง่ายกว่างานลักษณะเดียวกัน เช่น Adafruit pIRkey และ CH32V003-USB-IR-Receiver ที่ต้องแก้ไขโค้ดสำหรับรีโมตแต่ละรุ่นด้วยตนเอง

TossedTheTVKeptTheRemote web UI
TossedTheTVKeptTheRemote web UI

เว็บอินเทอร์เฟซของ TTVKTR รองรับฟีเจอร์ต่าง ๆ ดังนี้:

  • อินเทอร์เฟซบนเว็บสำหรับกำหนดปุ่มรีโมตให้ทำงานเป็นคีย์บอร์ด ปุ่มควบคุมสื่อ หรือคำสั่งพิเศษต่าง ๆ
  • รองรับหลายเลเยอร์สำหรับรีโมตตัวเดียว โดยใช้ไฟ RGB LED บนบอร์ดแสดงสถานะเลเยอร์ปัจจุบัน
  • รองรับการส่งคำสั่งหลายขั้นตอน , การกดปุ่มร่วมกับ Modifier เช่น Ctrl, Alt หรือ Shift, การกดซ้ำอัตโนมัติ และการเรียกใช้คำสั่งต่อเนื่องหลายรายการ
  • รองรับ Layout เพื่อแยกความแตกต่างของรีโมต IR หลายตัว
  • มีตัวแก้ไขไฟล์ JSON สำหรับผู้ใช้ขั้นสูง

ตัวอย่างไฟล์ JSON ที่จัดเก็บอยู่ในไฟล์ /settings.json ภายในพาร์ทิชันของบอร์ด:


เครื่องมือกำหนดค่าผ่านเว็บต้องใช้เบราว์เซอร์ที่รองรับ Web Serial เช่น Chrome, Edge และ Firefox เวอร์ชันใหม่

ซอร์สโค้ดของเฟิร์มแวร์ (Arduino / PlatformIO) รวมถึงเว็บอินเทอร์เฟซ (HTML + JavaScript) พร้อมคำแนะนำสำหรับการคอมไพล์และเริ่มต้นใช้งาน ถูกเผยแพร่แบบโอเพนซอร์สบน GitHub

แปลจากบทความ : Convert old IR remote controls into presentation clickers using an RP2040 USB board and open-source TTVKTR firmware

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
โฆษณา