ใช้งานกล้องสำหรับ Raspberry Pi บน Raspberry Pi OS Bulleye ด้วย Libcamera

Cytron Thailand
1 min readDec 14, 2021

--

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

--

--

Cytron Thailand

More from Cytron Thailand