สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
หลังจากค้นหาหลายครั้ง ฉันรู้สึกประหลาดใจและท้อแท้เกี่ยวกับข้อมูลที่ขัดแย้งกันเกี่ยวกับวิธีตั้งค่ารีโมทคอนโทรล IR สำหรับโครงการ RPi ของฉัน ฉันคิดว่ามันน่าจะง่าย แต่การตั้งค่า Linux InfraRed Control (LIRC) นั้นมีปัญหามาเป็นเวลานาน แต่มีการเปลี่ยนแปลงอย่างมากในเดือนมิถุนายน 2019 ด้วยการเปิดตัว Raspbian เวอร์ชัน Buster ทำให้บทช่วยสอนส่วนใหญ่ไร้ค่า บทช่วยสอนมากมายให้คุณสร้างไฟล์ hardware.conf แต่ LIRC ไม่ต้องการและไม่ต้องการมัน และโมดูล lirc-rpi ถูกแทนที่ด้วยโมดูล gpio-ir
บทช่วยสอนนี้ถือว่า RPi กำลังเรียกใช้ raspbian (เวอร์ชัน Buster Jun 2019) นอกจากนี้ ความรู้ในการทำงานของเทอร์มินัล จะถือว่าคำสั่งพื้นฐานจากพรอมต์คำสั่งและการแก้ไขไฟล์ข้อความ
หมายเหตุ: การตั้งค่า LIRC จะล้มเหลวหากเรียกใช้ในฐานะผู้ใช้รูทและนำไปสู่ข้อผิดพลาด "ไม่สามารถนำเข้าชื่อ RawConnection" ที่น่ากลัวเมื่อเรียกใช้โค้ดหลาม บทช่วยสอนนี้ถือว่าคุณเข้าสู่ระบบในฐานะผู้ใช้ (เช่น: PI)
เป้าหมาย: เพื่อเปิดใช้งานการควบคุมระยะไกล IR ของโครงการ RPi
1) ตั้งค่า LIRC บน RPi [ตอนที่ 1]
2) สาธิต LIRC โดยใช้ python [ตอนที่ 2]
เสบียง
--- Raspberry Pi (3, 4, ศูนย์)
--- ลวดดูปองท์ (หญิง-หญิง)
--- VS 1838b ตัวรับสัญญาณ IR
ขั้นตอนที่ 1: ประกอบฮาร์ดแวร์
การใช้เครื่องรับ VS1838b IR ไม่ใช่เรื่องง่าย เพียงต่อเซ็นเซอร์กับ RPi โดยตรงด้วยลวดดูปองท์ (ตัวเมีย-ตัวเมีย) คุณสามารถใช้เขียงหั่นขนม (ไม่แสดง) หรือประสานบนโปรโตบอร์ด (ภาพถ่าย)
มองไปที่ VS1838b IR Receiver จากด้านหน้า (โดยให้ X ตัวใหญ่หันเข้าหาคุณ)
---- ขาซ้ายออก
---- ขากลางเป็นพื้น
---- ขาขวา 3.3v
1) แนบขาซ้ายเข้ากับ BCM pin 17 บน RPi (สายสีเหลือง)
2) ติดขากลางกับพื้น (ลวดสีดำ)
3) ติดขาขวาเข้ากับ 3.3v (สายสีแดง)
ขั้นตอนที่ 2: ติดตั้ง Lirc
1) เปิดหน้าต่างเทอร์มินัลและติดตั้ง LIRC ขอเตือนล่วงหน้าว่าสิ่งนี้จะทำให้เกิดข้อผิดพลาด "ล้มเหลวในการเริ่มการสนับสนุนแอปพลิเคชันอินพุต/เอาต์พุตระยะไกล IR ที่ยืดหยุ่น" เนื่องจากไฟล์ที่ติดตั้งในขณะนี้มี.dist ต่อท้าย และต้องลบส่วนต่อท้ายตามที่ระบุไว้ด้านล่าง ไม่ยากแต่อึดอัด
$ sudo apt-get update
$ sudo apt-get ติดตั้ง lirc
----ไม่ต้องกังวล! เนื่องจากอาจก่อให้เกิดข้อผิดพลาด "ไม่สามารถเริ่มการสนับสนุนแอปพลิเคชันอินพุต/เอาต์พุตระยะไกล IR แบบยืดหยุ่นได้" เนื่องจากต้องลบส่วนต่อท้าย.dist ออกจาก lirc_options.conf เพียงเปลี่ยนชื่อไฟล์ตามที่แสดง
$ sudo mv /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
2) ติดตั้ง lirc ใหม่ทันทีที่ไฟล์ lirc_options.conf ถูกเปลี่ยนชื่อ
$ sudo apt-get ติดตั้ง lirc
ขั้นตอนที่ 3: แก้ไข Lirc_options.conf
แก้ไข /etc/lirc/lirc_options.conf ดังต่อไปนี้โดยเปลี่ยนสองบรรทัดนี้:
:
:
ไดรเวอร์ = ค่าเริ่มต้น
อุปกรณ์ = /dev/lirc0
:
:
ขั้นตอนที่ 4: ดำเนินการย้ายไปที่ Remove.dist Suffix From Lircd.conf.dist
ลบส่วนต่อท้าย.dist ออกจาก /etc/lirc/lircd.conf.dist
$ sudo mv /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf
ขั้นตอนที่ 5: แก้ไข Config.txt
แก้ไข /boot/config.txt โดยเพิ่มหนึ่งบรรทัดในส่วนโมดูล lirc-rpi ดังนี้ ตัวอย่างนี้ถือว่า RPi กำลัง 'ฟัง' บน BCM Pin 17 สำหรับตัวรับสัญญาณ IR แต่สามารถใช้พิน RPi IO ใดก็ได้ ฉันยังไม่ได้ลอง แต่ถ้าคุณต้องการส่งคำสั่งจาก RPi ให้เพิ่มและยกเลิกหมายเหตุบรรทัดที่ 4 ที่แสดงด้านล่างเพื่อส่งคำสั่ง IR บน BCM pin 18
:
:
:
# ยกเลิกความคิดเห็นนี้เพื่อเปิดใช้งานโมดูล lirc-rpi
#dtoverlay=lirc-rpi
dtoverlay=gpio-ir, gpio_pin=17
#dtoverlay=gpio-ir-tx, gpio_pin=18
:
:
:
ขั้นตอนที่ 6: ตรวจสอบสถานะและรีบูต
1) หยุด เริ่มต้น และตรวจสอบสถานะของ lircd เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด!
$ sudo systemctl หยุด lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl สถานะ lircd.service
2) รีบูต
$ sudo รีบูต
ขั้นตอนที่ 7: ทดสอบรีโมท
ขั้นตอนนี้ถือว่าคุณมีตัวรับสัญญาณ IR ที่เชื่อมต่อกับ RPi ของคุณบนพินที่ระบุใน config.txt
1) หยุดบริการ LIRCD และทดสอบรีโมตโดยใช้คำสั่ง mode2
$ sudo systemctl หยุด lircd.service
$ sudo mode2 -d /dev/lirc0
3) ชี้รีโมทไปที่เครื่องรับแล้วกดปุ่มบางปุ่ม คุณควรเห็นสิ่งนี้:
:
:
ช่องว่าง
ชีพจร
:
:
4) กด Ctrl-C เพื่อออก
5) ตัวรับสัญญาณ IR ของคุณได้รับการตั้งค่าและพร้อมที่จะดำเนินการในส่วนที่ 2 และเข้าถึงได้ใน python