monsieurvechai gửi vào
- 87385 lượt xem
Trong bài "Đi học thoai" (Phần 3) (http://arduino.vn/bai-viet/994-di-hoc-thoai-phan-3-time-lapse-cuoi-ngay-...) tui có hướng dẫn các bạn làm hiệu ứng time-lapse với Raspberry Pi camera. Tuy nhiên giá 1 module camera khá chát so với túi tiền sinh viên. Nếu bạn có 1 cái webcam không sử dụng đâu đó trong nhà thì vẫn có thể làm được, có điều là độ phân giải thấp hơn nhiều thôi. (đa phần webcam có độ phân giải khoảng 1MP trở xuống, trong khi Pi Camera có độ phân giải 5 đến 8 MP tùy phiên bản).
Nguyên lý
Chúng ta dùng hàm sleep() của Python ra lệnh cho Raspberry Pi chụp hình lại mỗi 60 giây và gộp chúng lại thành 1 file với dạng .gif
Chuẩn bị
Đơn giản tới mức không thể đơn giản hơn:
- 1 Raspberry Pi hay Pizero
- 1 Webcam.
- Cắm webcam vào USB
Trên Raspberry Pi
Tải package ImageMagick để chuyển định dạng sang .gif:
sudo apt-get update sudo apt-get upgrade sudo apt-get install imagemagick -y
Tải package fswebcam để điều khiển chụp ảnh bằng webcam:
sudo apt-get install fswebcam
Chép đoạn code sau và lưu lại với tên telepresent.py:
from os import system from time import sleep for i in range(60*10): os.system("fswebcam 'image{0:04d}.jpg'.format(i)") sleep(60) system('convert -delay 10 -loop 0 image*.jpg animation.gif')
Lưu code lại. Mở terminal trong thư mục bạn lưu file python và gõ:
python telepresent.py
Lưu ý
Code trên sẽ chạy trong 10 tiếng đồng hồ. Bạn có thể sửa lại số giờ trong phần for() loop nha
Nâng cao
- Bạn đã thấy module time của Python lợi hại thế nào rồi đó. Với module này, bạn có thể chỉnh sửa chế độ chụp, tần số chụp, etc theo thời điểm trong ngày.
- Đếm số người trong nhà với MAC address theo như bài http://arduino.vn/bai-viet/981-di-hoc-dzia-kiem-tra-nguoi-dung-co-dang-o... và tăng tần số chụp hình lên (sleep ngắn lại).