Modul Kamera Raspberry Pi 3 yang baru menawarkan kualitas gambar yang luar biasa dan pilihan antara lensa standar (75 derajat) dan lensa lebar (120 derajat). Yang terbaik dari semuanya, kami sekarang memiliki fokus otomatis. Memotret dengan Picamera2 mudah, tapi terkadang kita hanya ingin menekan tombol dan mengambil gambar, dan muncul dalam bidikan!
Dalam proyek ini kita akan menggunakan Blue Dot, modul Python dan aplikasi Android untuk membuat pemicu kamera yang dikendalikan Bluetooth. Berkat perpustakaan Blue Dot yang mudah digunakan dan struktur verbose Picamera2, kami akan mengambil foto 1080p melalui sejumlah kecil kode.
Untuk Proyek Ini Anda Akan Membutuhkan
- Raspberry Pi 3 atau 4
- Kamera Raspberry Pi
- Perangkat Android
Memasang Modul Kamera Raspberry Pi
1. Buka port kamera dengan perlahan mengangkat kunci plastik ke atas.
2. Masukkan konektor pita dengan tab biru menghadap ke port USB / Ethernet. Pengguna Raspberry Pi Zero perlu menggunakan adaptor dan menghubungkan kamera ke port di sisi kanan papan.
3. Tutup kunci pada konektor dan berikan tarikan yang sangat lembut untuk memastikannya ada di tempatnya.
4. Nyalakan Raspberry Pi ke desktop. Buka terminal dan instal pembaruan Picamera terbaru.
sudo apt update && sudo apt upgrade -y
5. Dari terminal, periksa apakah kamera Anda berfungsi dengan baik. Perintah libcamera berguna untuk memeriksa dengan cepat apakah kamera kita terhubung dan berfungsi seperti yang diharapkan.
libcamera-hello
Memasang Titik Biru
Blue Dot adalah ciptaan Martin O’Hanlon dan menyediakan cara yang sangat sederhana untuk mengontrol Raspberry Pi dari jarak jauh. Nama “Blue Dot” mewakili titik biru besar yang mendominasi layar perangkat Android. Kita akan menggunakan Blue Dot sebagai tombol besar berwarna biru untuk memicu kamera mengambil gambar.
1. Di perangkat Android Anda, buka Google Play Store dan cari Blue Dot. kalau tidak ikuti tautan ini.
2. Instal Blue Dot di perangkat Android Anda.
3. Di Raspberry Pi Anda, buka terminal dan instal pustaka Python Blue Dot.
sudo pip3 install bluedot
4. Buka menu Bluetooth, klik kanan dan pilih “Make Discoverable”.
5. Di perangkat Android Anda, buka Pengaturan >> Perangkat yang terhubung dan pilih Pasangkan Perangkat Baru.
6. Pilih “raspberrypi” dan ikuti instruksi pemasangan. Jika Raspberry Pi Anda memiliki hostname yang berbeda, maka “raspberrypi” tidak akan muncul, cari hostname Anda.
Dengan perangkat Android kami dan Raspberry Pi sekarang terhubung, kami akan menulis skrip Python cepat untuk memeriksa apakah Blue Dot dapat berkomunikasi di antara kedua perangkat.
1. Buka Tonnyditemukan di menu utama di bawah Pemrograman.
2. Buat file baru dan impor pustaka Blue Dot Python.
from bluedot import BlueDot
3. Buat objek, bd, yang akan kita gunakan untuk bekerja dengan perpustakaan.
sudo pip3 install bluedot
4. Tunggu hingga pengguna menekan tombol biru. Baris Python ini adalah pemblokir. Ini akan menunggu sampai pengguna berinteraksi. Ketika itu terjadi, kode berpindah ke baris berikutnya.
bd.wait_for_press()
5. Cetak pesan ke shell Python.
print("You pressed the blue dot!")
6. Simpan kode sebagai bd-test.py dan klik Jalankan. Kode akan menunggu koneksi dari perangkat Android kita.
7. Di perangkat Android Anda, buka Blue Dot.
8. Pilih nama host Raspberry Pi Anda. Biasanya ini adalah “raspberrypi”.
9. Klik pada Titik Biru untuk mengaktifkan kode Python. Anda akan melihat pesan di shell Python.
Daftar Kode Tes Lengkap
from bluedot import BlueDot
bd = BlueDot()
bd.wait_for_press()
print("You pressed the blue dot!")
Membuat Pemicu Kamera dengan Titik Biru
Tujuan proyek ini adalah membuat pemicu kamera dengan Blue Dot. Saat tombol ditekan, sebuah fungsi diluncurkan pada Raspberry Pi yang menangani pengambilan foto.
1. Buat file baru dan impor pustaka Blue Dot Python.
from bluedot import BlueDot
2. Impor Picamera2 dan libcamera. Kelas pratinjau digunakan untuk menghasilkan jendela pratinjau, berguna untuk membingkai bidikan. Kelas kontrol dari libcamera memungkinkan kita untuk menggunakan fokus otomatis dengan Modul Kamera 3 yang baru.
from picamera2 import Picamera2, Preview
from libcamera import controls
3. Impor fungsi jeda dari sinyal dan kemudian perpustakaan waktu. Jeda akan digunakan untuk menghentikan kode keluar. Waktu akan menunda kode setelah jendela pratinjau dibuat, memberi kita waktu untuk mengambil gambar.
from signal import pause
import time
4. Buat objek, bd, yang akan kita gunakan untuk bekerja dengan perpustakaan.
bd = BlueDot()
5. Buat objek, picam2, yang memungkinkan kita untuk menggunakan pustaka Picamera2 dengan mudah.
picam2 = Picamera2()
6. Tentukan fungsi, take_picture() yang akan digunakan untuk mengambil gambar. Fungsi bekerja dengan memanggil namanya, ini memicu fungsi untuk menjalankan semua langkah di dalamnya.
7. Buat konfigurasi untuk kamera untuk mengambil gambar diam. Ini mengatur ukuran gambar menjadi 1080p, sedangkan jendela pratinjau akan menjadi 720p.
camera_config = picam2.create_still_configuration(main={"size": (1920, 1080)}, lores={"size": (1280, 720)}, display="lores")
8. Atur Picamera2 untuk menggunakan konfigurasi baru.
picam2.configure(camera_config)
9. Mulai jendela pratinjau dengan resolusi 720p. Kami mengatur posisi menggunakan koordinat X dan Y, jika tidak, defaultnya adalah 0,0. Tweak ini untuk memenuhi kebutuhan Anda.
picam2.start_preview(Preview.QTGL, x=100, y=200, width=1280, height=720)
10. Menampilkan jendela pratinjau.
picam2.start(show_preview=True)
11. Atur kamera untuk menggunakan fokus otomatis berkelanjutan. Perhatikan, ini hanya berfungsi dengan Modul Kamera 3.
picam2.set_controls({"AfMode": controls.AfModeEnum.Continuous})
12. Jeda selama dua detik sebelum mengambil gambar ke file bernama picam1.jpg.
time.sleep(2)
picam2.capture_file("picam1.jpg")
13. Tutup jendela pratinjau lalu hentikan Picamera2.
picam2.stop_preview()
picam2.stop()
14. Di luar fungsi, gunakan fungsi “when_pressed” Blue Dot untuk bereaksi terhadap input pengguna dengan menjalankan fungsi take_picture.
bd.when_pressed = take_picture
15. Gunakan jeda untuk mencegah kode keluar.
pause()
16. Simpan kode sebagai bluedot_camera.py dan klik Jalankan untuk memulai kode. Anda akan melihat bahwa kode menunggu perangkat Android terhubung.
17. Di perangkat Android Anda, buka Titik Biru.
18. Pilih nama host Raspberry Pi Anda. Biasanya ini adalah “raspberrypi”.
19. Klik pada Titik Biru untuk memicu kamera. Anda akan melihat jendela pratinjau muncul dan kemudian, dua detik kemudian, sebuah gambar akan disimpan ke kartu micro SD. Penekanan berulang akan membuat gambar baru, tetapi karena nama filenya sama maka akan ditimpa setiap saat.
Daftar Kode Lengkap
from bluedot import BlueDot
from picamera2 import Picamera2, Preview
from libcamera import controls
from signal import pause
import time
bd = BlueDot()
picam2 = Picamera2()
def take_picture():
camera_config = picam2.create_still_configuration(main={"size": (1920, 1080)}, lores={"size": (1280, 720)}, display="lores")
picam2.configure(camera_config)
picam2.start_preview(Preview.QTGL, x=100, y=200, width=1280, height=720)
picam2.start(show_preview=True)
picam2.set_controls({"AfMode": controls.AfModeEnum.Continuous})
time.sleep(2)
picam2.capture_file("picam1.jpg")
picam2.stop_preview()
picam2.stop()
bd.when_pressed = take_picture
pause()