ใช้งานกล้องสำหรับ Raspberry Pi บน Raspberry Pi OS Bulleye ด้วย Libcamera
--
Raspberry Pi OS เวอร์ชันล่าสุดมีพื้นฐานมาจาก Debian 11 (ฺBulleye) ซึ่งได้มีการยกเลิกในส่วนของคำสั่ง raspistill และ raspicam โดยให้เปลี่ยนไปใช้งานเครื่องมือ opensource ที่จะสามารถใช้งานได้กับกล้องสำหรับ Raspberry Pi อย่าง Libcamera
Libcamera คืออะไร
Libcamera เป็น library ที่รองรับการใช้งานบน Linux, Android และ ChromeOS ซึ่งก่อนหน้าได้มีการแนะนำให้ใช้งานใน Raspberry Pi OS เวอร์ชันก่อนหน้า Raspberry Pi OS เวอร์ชัน Bulleye แต่หลังจากการมาถึงของ Raspberry Pi OS เวอร์ชัน Bulleye ซึ่งได้มีการยกเลิกชุดคำสั่งอย่าง raspistill หรือ raspicam ทำให้ Libcamera ได้รับความนิยมขึ้นมาอีกครั้ง ซึ่งตัว Libcamera สามารถใช้งานได้ง่าย สามารถปรับแต่งค่าต่างๆของตัวกล้องได้ อาทิ รูรับแสง สมดุลสี โดยขึ้นอยู่กับรุ่นของกล้องที่รองรับ
คำสั่งพื้นฐานของ Libcamera
การใช้งาน Libcamera นั้น สามารถใช้งานผ่าน Terminal ได้ทันทีหลังจากที่เริ่มต้นการทำงาน Raspberry Pi OS โดยมีคำสั่งต่างๆ ดังนี้
libcamera-hello
สำหรับคำสั่งข้างต้น ใช้ในการตรวจสอบว่า Raspberry Pi ของเราสามารถรับภาพจากกล้องที่เชื่อมต่ออยู่กับตัวบอร์ดได้หรือไม่ โดยจะปรากฏหน้าต่างแสดงภาพเคลื่อนไหวที่ได้จากกล้องที่เชื่อมต่ออยู่เป็นเวลา 5 วินาที ก่อนที่จะปิดไป
libcamera-hello -t 0
สำหรับคำสั่งนี้ ใช้ในการแสดงผลภาพเคลื่อนไหวที่ได้จากกล้องที่เชื่อมต่ออยู่กับ Raspberry Pi โดยจะปรากฏหน้าต่างแสดงภาพเคลื่อนไหวที่ได้จากกล้องที่เชื่อมต่ออยู่ค้างไว้ โดยหากต้องการปิดการแสดงผลภาพ สามารถกดกากกบาทที่ขอบหน้าต่างนั้นได้ โดยเหมาะสำหรับใช้ในการปรับแต่งโฟกัสหรือมุมกล้องก่อนใช้งานจริง
libcamera-jpeg -o test.jpg
สำหรับคำสั่งข้างต้นใช้ในการสั่งการให้กล้องทำการถ่ายภาพแล้วบันทึกในชื่อ test.jpg (บันทึกใน /home/pi)
libcamera-jpeg -o test1080.jpg -t 5000 --width 1920 --height 1080
หรือในบางครั้งที่เราต้องการถ่ายภาพที่ขนาดเฉพาะเจาะจง เราสามารถกำหนดค่า parameter เพื่อจำกัดขนาดภาพที่ต้องการบันทึกได้ จากคำสั่งข้างต้น
หรือหากต้องการใช้งานลักษณะคำสั่งที่มีความใกล้เคียงกับชุดคำสั่งเก่าอย่าง raspistill เราสามารถใช้คำสั่ง libcamera-still ทดแทนได้ โดยมีลักษณะคำสั่งการใช้งานที่ใกล้เคียงกัน
libcamera-still -o still-test.jpg
สำหรับคำสั่งข้างต้นใช้ในการถ่ายภาพนิ่งแล้วทำการบันทึกในชื่อ “still-test.jpg”
libcamera-still -e png -o still-test.png
หรือในกรณีที่ต้องการบันทึกภาพนิ่งในสกุลไฟล์ PNG ก็สามารถทำได้โดยการกำหนด parameter ดังชุดคำสั่งข้างต้น
libcamera-still --datetime
หรือหากต้องการบันทึกภาพโดยอ้างอิงชื่อไฟล์ตาม เดือน วัน เวลา สามารถกำหนดชื่อไฟล์ได้โดยใช้ชุดคำสั่งข้างต้น
การบันทึกวิดีโอโดยใช้ Libcamera
สำหรับการบันทึกวิดีโอโดยใช้ libcamera นั้นจะสามารถบันทึกได้ในรูปแบบ h.264, mjpeg และ yuv420 เท่านั้น
libcamera-vid -t 10000 -o test.h264
โดยสามารถใช้คำสั่งข้างต้นในการบันทึกวิดีโอความยาว 10 วินาที แล้วทำการบันทึกในชื่อไฟล์ “test.h264”
การสตรีมภาพโดยใช้ Libcamera
เราสามารถทำการสตรีมภาพจากกล้องที่ทำการเชื่อมต่อกับ Raspberry Pi ได้โดยใช้คำสั่ง
libcamera-vid -t 0 --inline --listen -o tcp://0.0.0.0:8888
ซึ่งภาพจากกล้องจะสตรีมแบบ h264 โดยสามารถชมภาพที่ผ่านการสตรีมได้ผ่านโปรแกรมอย่าง VLC