บทความเกี่ยวกับ Raspberry Pi
บทความเกี่ยวกับ Arduino
1 | การติดตั้งโปรแกรม Arduino IDE บนระบบปฏิบัติการ Windows |
บทความเกี่ยวกับ Home Automation
การปรับความละเอียด(Resolution)จอภาพ Raspberry PI
เราสามารถนำกล้อง Webcam โดยทั่วไปที่มีขายตามท้องตลาดหรือกล้องประเภทอื่นๆ อาทิ เช่น กล้องถ่ายรูป กล้องถ่ายวีดีโอ หรือกล้องติดรถยนต์ และกล้องประเภทอื่นๆ ที่สนับสนุนฟังชั่น Webcam มาเชื่อมต่อกับพอร์ท USB ของ Raspberry Pi เพื่อที่จะบันทึกภาพจากล้องลงไฟล์ .jpg โดยในตัวอย่างนี้ เราจะใช้กล้องติดรถยนต์ ซึ่งสนับสนุนฟังชั่น Webcam มาต่อกับพอร์ท USB (พอร์ทใดที่ว่างก็ได้) ดังรูปด้านบน โดยเราจะต้องนำสาย USB เสียบเข้าไปที่พอร์ท USB ของ Raspberry Pi แล้วจึงจ่ายไฟเข้า Raspberry Pi แล้วจึงเปิดโหมด Webcam หรือ PC Camera บนตัวกล้องเสียก่อน แต่ถ้าเราใช้กล้องเวบแคมโดยเฉพาะ พอเสียบสาย USB ของกล้องเข้าพอร์ท Raspberry Pi และจ่ายไฟเข้าแล้ว เราไม่ต้องทำอะไรกับตัวกล้อง เราสามารถติดตั้งโปรแกรม FSwebcam ลงบน Raspberry Pi แล้วบันทึกภาพจากกล้องได้ทันที เมื่อได้ภาพจากกล้องแล้ว เราอาจจะเขียนโปรแกรมแนบภาพส่งอีเมล์ต่อไปก็ได้ แต่ในตัวอย่างนี้ ขอแสดงขั้นตอนเพียงการจับภาพและบันทึกลงไฟล์ .jpg ก่อน อนึ่ง ในการติดตั้งโปรแกรม จะเราใช้โปรแรกม PuTTY รีโมทเข้าไปติดตั้งโปรแกรมหรือจะใช้โปรแกรม Terminal บนราสบ์เบอรี่พาย โดยอาจจะต่อจอภาพหรือไม่ต่อจอภาพ แต่สามารถใช้ VNC Viewer รีโมทเข้าไปควบคุมเดสท็อปของ RaspberryPi ก็ได้ แล้วแต่จะสะดวก อย่างไรก็ตาม ในตัวอย่างนี้ เราจะใช้ PuTTY โดยมีขั้นตอนการการจับภาพจากกล้องเวบแคมดังต่อไปนี้
1. เรียกโปรแกรม Wireless Network Watcher เพื่อตรวจสอบหมายเลข IP ปัจจุบันของ Raspberry Pi (ดูวิธีติดตั้ง Wireless Network Watcher ได้ ที่นี่) จะปรากฏจอภาพแสดงหมายเลข IP ปัจจุบันของ Raspberry Pi ดังรูปข้างล่างนี้
2. เรียกโปรแกรม PuTTY ออกมาใช้งาน (ดูวิธีติดตั้ง PuTTY ได้ ที่นี่) ดังรูปด้านล่าง แล้วป้อนหมายเลข IP ในตัวอย่างนี้คือ 192.168.1.236 (1) ให้แน่ใจว่า Port คือ 22(2) และโหมด SSH (Secure SHell)(3) ถูกเลือกใช้งาน แล้วคลิกปุ่ม Open(4) หากไม่สามารถ Connect ได้ ให้ตรวจสอบว่าโหมด SSH ของราสบ์เบอรี่พาย อยู่ในสถานะปิดหรือไม่ (ถ้าหากโหมด SSH ถูกปิดอยู่ เราจะไม่สามารถเชื่อมต่อได้ ดูวิธีในการเปิดโหมด SSH ได้ ที่นี่) เมื่อ Connect ได้แล้ว เราจะต้องป้อนยูสเซอร์ pi(5) และป้อนพาสเวิร์ด (6) ที่เราได้เปลี่ยนใหม่แล้ว (พาสเวิร์ดเดิมคือ raspberry) จะปรากฏ Prompt รอรับคำสั่ง pi@raspberrypi: ~ $(7) ดังรูปด้านล่าง
3. เริ่มติดตั้งโปรแกรม FSwebcam โดยป้อนคำสั่ง sudo apt-get install fswebcamแล้วกดปุ่ม Enter
pi@raspberrypi: ~ $sudo apt-get install fswebcam
4. เมื่อติดตั้งโปรแกรม FSwebcam เสร็จเรียบร้อบแล้ว เริ่มบูทเครื่องใหม่ โดยป้อนคำสั่ง sudo rebootแล้วกดปุ่ม Enter
pi@raspberrypi: ~ $sudo reboot
5. ใช้โปรแกรม PuTTY เชื่อมต่อ(Connect)เข้าไปที่ราสบ์เบอรี่พายใหม่ ตามวิธีในข้อ 2 (ถ้าไม่ได้ใช้กล้อง Webcam อย่าลืมปรับโหมด Webcam หรือ PC Camera บนตัวกล้องใหม่ด้วย)
6. เริ่มทดลองจับภาพจากกล้องและบันทึกลงไฟล์ .jpg โดยป้อนคำสั่ง sudo fswebcam myhome.jpg แล้วกดปุ่ม Enter จะปรากฏดังรูปข้างล่างนี้ โปรแกรมจะจับภาพและบันทึกไฟล์ myhome.jpg ที่ความละเอียด 320x240 จุด ไว้ในโฟลเดอร์ /home/pi
pi@raspberrypi: ~ $sudo fswebcam myhome.jpg
7. ตรวจสอบและคัดลอกไฟล์รูปภาพ .jpg ไปยังระบบฏิบัติการวินโดวส์ โดยเรียกโปรแกรม WinSCP ออกมาใช้งาน (ดูวิธีการติดตั้งและการตั้งค่า WinSCPที่นี่ ) เมื่อใช้โปรแกรม WinSCP เชื่อมต่อเข้ากับ Raspberry Pi ได้แล้ว บนหน้าต่างด้านขวา เปลี่ยนไปทำงานในโฟลเดอร์ /home/pi (8) เราจะพบไฟล์ myhome.jpg (10) ปรากฏอยู่ ไปยังหน้าต่างด้านซ้าย ซึ่งแสดงโฟลเดอร์และไฟล์ของระบบปฏิบัติการวินโดวส์ แล้วเลือกโฟลเดอร์ \Pictures (9) แล้วคลิกและลากไฟล์ myhome.jpg(10) จากหน้าต่างด้านขวา /home/pi(8) ไปปล่อยบนหน้าต่างด้านซ้าย \Pictures (9) จะปรากฏไฟล์ myhome.jpg (11) บนหน้าต่างด้านซ้ายดังรูปด้านล่างนี้
8. บนระบบปฏิบัติการวินโดวส์ ใช้ File Explorer แล้วไปยังโฟลเดอร์ \Pictures ดับเบิ้ลคลิกไฟล์ myhome.jpg จะปรากฏไฟล์รูปภาพความละเอียดต่ำ 320x240 จุดและแสดง Banner ที่ขอบล่างของรูปภาพดังรูปด้านล่างนี้
9. ทดลองจับภาพใหม่ 4 ภาพ ที่ความละเอียดเป็น 640x480 จุด, 720x576 จุด, 1280x720 จุด และ 1980x1080 จุด และยกเลิก Banner ที่ขอบล่างของรูปภาพ โดยกลับไปยังหน้าต่างโปรแกรม PuTTY แล้วป้อนคำสั่งดังนี้
pi@raspberrypi: ~ $sudo fswebcam -r 640x480 --no-banner myhome1.jpg
pi@raspberrypi: ~ $sudo fswebcam -r 720x576 --no-banner myhome2.jpg
pi@raspberrypi: ~ $sudo fswebcam -r 1280x720 --no-banner myhome3.jpg
pi@raspberrypi: ~ $sudo fswebcam -r 1920x1080 --no-banner myhome4.jpg
หมายเหตุ เราสามารถกดปุ่ม หัวลูกศรชี้ขึ้น บนคีย์บอร์ด แล้วเลื่อนเคอร์เซอร์เข้าไปแก้ไขตัวอักษรของคำสั่งได้ อนึ่ง ถ้ากล้องไม่สนับสนุนความละเอียดในโหมดใด โปรแกรมจะปรับความละเอียดขึ้นหรือลงไปยัง Resolution ที่กล้องสนับสนุนโดยอัตโนมัติ
10. กลับไปยังหน้าต่างโปรแกรม WinSCP แล้วคลิกปุ่ม Refresh (12) เพื่อแสดงไฟล์ใหม่ที่ยังไม่ปรากฏในช่องหน้าต่างทั้งหมด แล้วคลิกและลากไฟล์ทั้ง 4 จากหน้าต่างด้านขวา /home/pi ไปยังหน้าต่างด้านซ้าย \Pictures แล้วเปิดไฟล์รูปภาพทั้ง 4 ออกมาตรวจสอบ จะปรากฏดังรูปข้างล่างนี้
Myhome1.jpg 640x480 จุด
Myhome2.jpg 800x600 จุด (โปรแกรมปัดขึ้นให้ตรงกับโหมดของกล้อง)
Myhome3.jpg 1280x720 จุด (720p)
Myhome4.jpg 1920x1080 จุด (1080p)
เราจะเห็นว่าไฟล์ Myhome4.jpg ที่โหมด 1920x1080 จุด ภาพบริเวณขอบด้านล่างขาดหายไปบางส่วน แสดงว่ากล้องตัวนี้ไม่สามารถใช้งานในโหมด 1080p ได้ (ถึงแม้ว่าจริงๆ แล้วกล้องนี้สนับสนุน Video Resolution = 1080p ก็ตาม) แต่สามารถใช้งานในโหมดอื่นๆ 720p หรือโหมดอื่นๆ ที่ต่ำกว่าได้
11. หากเราต้องการจับภาพจากล้อง โดยต้องการให้โปรแกรมตั้งชื่อไฟล์รูปภาพโดยใช้วันที่และเวลาเป็นชื่อไฟล์โดยอัตโนมัติ เราสามารถเขียน Bash Script ในที่นี้ เราจะสร้างสคริปท์ไฟล์ webcam.sh เก็บไว้ในโฟลเดอร์ /home/pi ซึ่งเป็นโฟลเดอร์ใช้งาน และบันทึกไฟล์รูปภาพ .jpg ไว้ในโฟลเดอร์เดียวกัน /home/pi นี้ทั้งหมด โดยสร้างสคริปท์ไฟล์ดังนี้ แล้วพิมพ์สคริปท์ให้ปรากฏดังรูปข้างล่างนี้ เมื่อพิมพ์สคริปท์เสร็จแล้ว บันทึกไฟล์ โดยกดปุ่ม Ctrl+O เมื่อปรากฏชื่อไฟล์ webcam.sh ให้กดปุ่ม Enter แล้วกดปุ่ม Ctrl+X เพื่อออกจากโหมดการสร้างสคริปท์ไฟล์
pi@raspberrypi: ~ $sudo nano /home/pi/webcam.sh หรือsudo nano webcam.sh
#!/bin/bash
DATE=$(date +"%d-%m-%Y_%H%M")
fswebcam -r 1280x720 --no-banner /home/pi/$DATE.jpg
11. กำหนดโหมด Executable ให้กับสคริปท์ไฟล์ โดยป้อนคำสั่งดังนี้
pi@raspberrypi: ~ $sudochmod +x webcam.sh
12. ทดลองรันสคริปท์ไฟล์ โดยป้อนคำสั่ง ./webcam.sh แล้วกดปุ่ม Enter ดังนี้ เราจะเห็นว่าโปรแกรมได้บันทึกไฟล์ โดยใช้ชื่อไฟล์เป็นวันและเวลาที่จับภาพจากกล้องและบันทึกไฟล์ไว้ในโฟลเดอร์ใช้งาน /home/pi ดังรูปข้างล่างนี้
pi@raspberrypi: ~ $./webcam.sh
ส่วนรายละเอียดของตัวเลือกต่างๆ ของคำสั่ง fswebcam สามารถดูรายละเอียดได้จากตารางข้างล่างนี้
Switch |
Alternative Switch |
Description |
-c |
--config |
โหลดไฟล์คอนฟิกเกอเรชั่น |
-q |
--quiet |
ซ่อนข้อความยกเว้นข้อความที่แสดงความผิดพลาด Errors |
-v |
--verbose |
แสดงข้อความเพิ่มเติมในขณะจับภาพ |
|
--version |
แสดงเวอร์ชั่นและออกจากคำสั่ง |
-l |
--loop |
รันแบบวนรอบ |
-b |
--background |
รันอยู่เบื้องหลัง |
-o |
--output |
สร้าง log file บันทึกการจับภาพ |
-d |
--device |
เลือกแหล่งกล้องที่เชื่อมต่อ |
-i |
--input <number/name> |
เลือก input สำหรับใช้งาน |
-t |
--tuner |
เลือก tuner สำหรับใช้งาน |
-f |
--frequency |
เลือความถี่ frequency สำหรับใช้งาน |
-r |
--resolution |
ตั้งความละเอียดภาพ |
|
--fps |
ตั้ง frame rate สำหรับการจับภาพ |
-F |
--frames |
กำหนดจำนวนเฟรมเพื่อจับภาพ |
-S |
--skip |
กำหนดจำนวนเฟรมเพื่อข้ามการจับภาพ |
|
--dumpframe |
สร้างไฟล์ดิบ (raw frame) |
-s |
--set = |
กำหนดค่าควบคุม |
|
--revert |
เรียกคืนภาพต้นฉบับ |
|
--flip |
พลิกกลับภาพในแนวนอนแนวตั้ง (h, v) |
|
--crop [,] |
ตัดบางส่วนของภาพ |
|
--scale |
ปรับสเกลรูปภาพ |
|
--rotate |
หมุนรูปภาพตามมุม 90 องศาที่กำหนด |
|
--deinterlace |
ลดข้อบกพร่องหรือการรบกวนบนภาพ |
|
--invert |
สลับสีตรงกันข้าม |
|
--greyscale |
ปรับภาพเป็นโทนสีเทา ระงับสีทั้งหมด |
|
--swapchannels |
สลับช่อง c1 และ c2. |
|
--no-banner |
ซ่อนแถบ Banner แสดงข้อมูล |
|
--top-banner |
ซ่อนแถบ Banner ด้านบนของภาพ |
|
--bottom-banner |
ซ่อนแถบ Banner ด้านล่างของภาพ (Default) |
|
--banner-colour |
กำหนดสี banner (#AARRGGBB) |
|
--line-colour |
กำหนดสีเส้นขอบของ banner |
|
--text-colour |
กำหนดสีของตัวอักษร |
|
--font <[name][:size]> |
กำหนดฟอนท์และขนาด |
|
--no-shadow |
ระงับโหมดแสดงเงาของตัวอักษร |
|
--shadow |
เปิดโหมดแสดงเงาของตัวอักษร |
|
--title |
กำหนดชื่อหัวเรื่อง (มุมบนด้านซ้าย) |
|
--no-title |
ยกเลิกการกำหนดชื่อหัวเรื่อง |
|
--subtitle |
กำหนดชื่อเรื่องย่อย (มุมล่างซ้าย) |
|
--no-subtitle |
ยกเลิกการกำหนดชื่อเรื่องย่อย |
|
--timestamp |
กำหนดรูปแบบวันเวลา (มุมบนขวา) |
|
--no-timestamp |
ยกเลิกการกำหนดรูปแบบวันเวลา |
|
--gmt |
ใช้เวลา GMT แทนเวลาท้องถิ่น local timezone. |
|
--info |
กำหนดข้อมูลตัวอักษร (มุมล่างขวา) |
|
--no-info |
ยกเลิกการกำหนดข้อมูลตัวอักษร |
|
--underlay |
กำหนดรูปภาพอิมเมจที่นำมาวางซ้อนด้านล่าง |
|
--no-underlay |
ยกเลิกการกำหนดรูปภาพอิมเมจที่นำมาวางซ้อนด้านล่าง |
|
--overlay |
กำหนดรูปภาพอิมเมจที่นำมาวางซ้อนด้านบน |
|
--no-overlay |
ยกเลิกการกำหนดรูปภาพอิมเมจที่นำมาวางซ้อนด้านบน |
|
--jpeg |
เลือกฟอร์แมต JPEG (-1, 0 - 95) |
|
--png |
เลือกฟอร์แมต PNG (-1, 0 - 10) |
|
--save |
บันทึกการจับภาพลงไฟล์ |
|
--exec |
รันคำสั่งและรอจนกว่าคำสั่งจะทำงานเสร็จ |
*****************************************************
หน้าที่เข้าชม | 859,455 ครั้ง |
ผู้ชมทั้งหมด | 384,604 ครั้ง |
เปิดร้าน | 6 ม.ค. 2560 |
ร้านค้าอัพเดท | 8 ก.ย. 2568 |