Iklan
Pelajari cara membuat kamera keamanan pan dan tilt yang dapat dilihat dari jarak jauh dengan Raspberry Pi. Proyek ini dapat diselesaikan di pagi hari hanya dengan bagian-bagian yang paling sederhana. Inilah hasil akhirnya:
Apa yang kau butuhkan
- Raspberry Pi 2 atau 3 dengan kartu Micro SD
- Arduino UNO atau serupa
- 2 x servos hobi mikro atau mini
- Webcam USB
- Kabel hookup pria ke pria
- Kabel hookup pria ke wanita
- Ikatan zip berbagai macam
Membangun Kamera Keamanan
Pasang tanduk servo ("bentuk" plastik kecil) ke setiap servo menggunakan sekrup yang disediakan. Bentuk khusus tidak terlalu penting, meskipun semakin besar semakin baik. Jangan terlalu kencangkan sekrup.
Sekarang gunakan ikatan zip untuk melampirkan satu servo ke yang lain di sudut kanan. Salah satunya adalah pan (kiri ke kanan), sementara yang lain akan miring (atas dan ke bawah). Tidak masalah mana yang melakukan apa, itu dapat disesuaikan dalam kode.
Terakhir, pasang webcam Anda ke salah satu servos. Anda dapat menggunakan zip-ties untuk ini, meskipun webcam saya datang dengan klip yang disekrup ke bawah - Saya melepas ini dan menggunakan sekrup untuk menahannya pada klakson. Untuk stabilitas, Anda mungkin ingin memasang seluruh rig ke kasing atau kotak. Sebuah kotak kardus sederhana cukup efektif. Anda bisa memotong lubang persegi yang rapi dan memasang satu servo flush ke permukaan, namun dasi ritsleting akan cukup.
Sepatah Kata Tentang Webcam
Tidak semua webcam USB dibuat sama. Hubungkan webcam Anda ke port USB Pi Anda dan jalankan perintah ini:
lsusb
Perintah ini menampilkan informasi tentang semua perangkat USB yang terhubung ke Pi. Jika webcam Anda tidak tercantum di sini, Anda mungkin ingin mencoba hub USB yang aktif dan mengulangi perintah. Jika webcam masih tidak dikenali Anda mungkin harus membeli a webcam yang kompatibel.
Pengaturan Servo
Sementara servos mungkin tampak menakutkan dan kompleks, mereka benar-benar sangat sederhana untuk dihubungkan. Servo beroperasi pada Pulse Width Modulation (PWM), yang merupakan cara bagi sistem digital untuk meniru sinyal analog. Sinyal PWM pada dasarnya adalah sinyal ON - OFF yang cepat. Sinyal yang AKTIF atau TINGGI dijelaskan menggunakan siklus kerja. Siklus tugas dinyatakan sebagai persentase, dan menjelaskan berapa lama sinyal AKTIF untuk. Sinyal PWM dari 25% siklus kerja akan AKTIF selama 25% dari waktu, dan OFF untuk 75% sisanya. Sinyal tidak AKTIF di awal dan kemudian MATI selamanya, itu berdenyut secara teratur selama periode waktu yang sangat singkat.
Servo mendengarkan pulsa ini dan bertindak sesuai. Menggunakan siklus kerja 100% akan sama dengan "reguler" 5v, dan 0% akan sama dengan ground. Jangan khawatir jika Anda tidak sepenuhnya memahami cara kerja PWM, Anda masih dapat mengontrol servos (Extreme Electronics adalah tempat yang baik untuk mempelajari lebih lanjut).
Ada dua cara utama untuk menggunakan PWM - perangkat keras atau perangkat lunak. Perangkat Keras PWM sering memberikan latensi yang lebih rendah (berapa lama antara servo menerima perintah dan bergerak) daripada perangkat lunak PWM, namun Pi hanya memiliki satu pin perangkat keras yang mampu PWM. Sirkuit eksternal tersedia untuk menyediakan beberapa saluran PWM perangkat keras, namun Arduino sederhana juga dapat menangani tugas tersebut, karena mereka memiliki beberapa pin PWM perangkat keras.
Inilah sirkuitnya:
Periksa ulang pinout untuk Pi Anda, mereka sedikit berbeda antar model. Anda perlu mencari tahu bagaimana servos Anda terhubung. Servo membutuhkan tiga kabel untuk mengendalikannya, namun warnanya sedikit berbeda:
- Merah positif, hubungkan ini ke Pi + 5v
- Coklat atau hitam negatif, hubungkan ini ke GND pada Pi
- Oranye atau putih adalah sinyal, hubungkan ini ke pin Arduino 9 dan 10
Pengaturan Arduino
Baru mengenal Arduino? Mulai di sini Memulai Dengan Arduino: A Beginner's GuideArduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif. Baca lebih banyak .
Setelah servo terhubung, buka IDE Arduino di komputer Anda dan unggah kode uji ini. Jangan lupa untuk memilih board dan port yang benar dari Alat> Papan dan Alat> Port menu
#termasuk // Impor pustaka Servo servoPan, servoTilt; // Buat objek servo. int servoMin = 20, servoMax = 160; // Tetapkan batas pengaturan servos void () {// Atur servos pada pin PWM yang mampu servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i servoMin; --i) {// Memindahkan servos dari maksimum ke servoPan.write (i); servoTilt.write (i); keterlambatan (100); // Tunggu 100 ms} }
Semua baik-baik saja, Anda harus melihat kedua servos perlahan bergerak bolak-balik. Perhatikan bagaimana "servoMin" dan servoMax "didefinisikan sebagai 20 dan 160 derajat (bukan 0 dan 180). Ini sebagian karena servo murah ini tidak dapat secara akurat memindahkan 180 derajat penuh, dan juga karena ukuran fisik webcam mencegah jangkauan penuh yang digunakan. Anda mungkin perlu menyesuaikan ini untuk pengaturan Anda.
Jika mereka tidak berfungsi sama sekali periksa ulang sirkuit dengan kabel yang benar. Breadboards terkadang dapat bervariasi dalam kualitasnya, jadi pertimbangkan untuk berinvestasi dalam multimeter untuk memverifikasi.
Servos adalah hampir terlalu kuat untuk Arduino berkuasa, sehingga mereka akan didukung oleh Pi. Rel 5v pada Pi adalah terbatas pada 750mA yang disediakan untuk seluruh Pi, dan Pi menarik sekitar 500mA, meninggalkan 250mA untuk servos. Servo mikro ini menarik sekitar 80mA, artinya Pi harus mampu menangani dua di antaranya. Jika Anda ingin menggunakan lebih banyak servos atau model yang lebih besar dan bertenaga lebih tinggi, Anda mungkin perlu menggunakan catu daya eksternal.
Sekarang unggah kode berikut ke Arduino. Ini akan mendengarkan data serial yang masuk (serial seperti di Universal Serial Bus, atau USB). Pi akan mengirim data ini melalui USB ke Arduino, memberitahukan tempat untuk memindahkan servos.
#termasuk // Impor pustaka Servo servoPan, servoTilt; // Buat objek servo. Data string = ""; // Simpan perintah masuk (buffer) batal setup () {// Setup servos pada pin PWM yang mampu servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Mulai serial pada 9600 bps (kecepatan) } void loop () {while (Serial.available ()> 0) {// Jika ada data char singleChar = Serial.read (); // Baca setiap karakter jika (singleChar == 'P') {// Memindahkan pan servo servoPan.write (data.toInt ()); data = ""; // Bersihkan buffer} else if (singleChar == 'T') {// Pindahkan servo servoTilt.write (data.toInt ()); data = ""; // Bersihkan buffer} else {data + = singleChar; // Tambahkan data baru}} }
Anda dapat menguji kode ini dengan membuka monitor serial (kanan atas> Serial Monitor) dan mengirim beberapa data uji:
- 90 p
- 0P
- 20T
- 100T
Perhatikan format perintah - nilai dan kemudian surat. Nilainya adalah posisi servo, dan huruf (dalam huruf kapital) menentukan pan atau tilt servo. Karena data ini ditransmisikan dari Pi secara seri, setiap karakter muncul satu per satu. Arduino harus "menyimpan" ini sampai seluruh perintah telah dikirim. Huruf terakhir tidak hanya menentukan servo, tetapi juga membuat Arduino tahu tidak ada lagi data dalam perintah ini.
Akhirnya, lepaskan Arduino Anda dari komputer, dan colokkan ke Raspberry Pi melalui koneksi port USB yang biasa.
Pengaturan Pi
Sekarang saatnya menyiapkan Pi. Pertama, instal sistem operasi Cara Memasang Sistem Pengoperasian pada Raspberry PiInilah cara menginstal OS pada Raspberry Pi Anda dan cara mengkloning pengaturan sempurna Anda untuk pemulihan bencana yang cepat. Baca lebih banyak . Hubungkan webcam dan Arduino ke Pi USB.
Perbarui Pi:
sudo apt-get pembaruan. sudo apt-get upgrade
Instal gerak:
sudo apt-get install motion
Motion adalah program yang dibuat untuk menangani streaming webcam. Ini menangani semua pengangkatan berat, dan bahkan dapat melakukan perekaman dan deteksi gerakan (coba membangun sistem keamanan penangkapan gerak Membangun Sistem Keamanan Tangkapan Gerak Menggunakan Raspberry PiDari sekian banyak proyek yang dapat Anda bangun dengan Raspberry Pi, salah satu yang paling menarik dan bermanfaat secara permanen adalah sistem keamanan penangkapan gerak. Baca lebih banyak ). Buka file konfigurasi Motion:
sudo nano /etc/motion/motion.conf
File ini menyediakan banyak opsi untuk mengkonfigurasi Motion. Atur sebagai berikut:
- daemon on - Jalankan program
- framerate: 100 - Berapa banyak frame atau gambar / detik untuk streaming
- stream_localhost off - Memungkinkan akses di seluruh jaringan
- lebar 640 - Lebar video, sesuaikan untuk webcam Anda
- tinggi 320 - Tinggi video, sesuaikan untuk webcam Anda
- stream_port 8081 - Port untuk output video
- output_picture off - Jangan menyimpan gambar apa pun
Ini file yang cukup besar, jadi Anda mungkin ingin menggunakannya CTRL + W untuk mencari garis. Setelah selesai, tekan CTRL + X dan kemudian konfirmasi untuk menyimpan dan keluar.
Sekarang edit satu file lagi:
sudo nano / etc / default / motion
Setel "start_motion_daemon = ya". Ini diperlukan untuk memastikan Motion berjalan.
Sekarang temukan Alamat IP Anda:
ifconfig
Perintah ini akan menampilkan detail koneksi jaringan untuk Pi. Lihatlah baris kedua, inet addr. Anda mungkin ingin menetapkan alamat IP statis (apa itu IP statis? Apa itu Alamat IP Statis? Inilah Mengapa Anda Tidak MembutuhkannyaAlamat IP statis adalah alamat yang tidak pernah berubah. Alamat IP dinamis memang berubah. Kami menjelaskan mengapa Anda tidak memerlukan alamat IP statis. Baca lebih banyak ), tetapi untuk sekarang catat nomor ini.
Sekarang mulai Gerak:
layanan sudo mulai bergerak
Anda dapat menghentikan atau memulai ulang Gerak dengan mengubah "mulai" menjadi "berhenti" atau "mulai ulang".
Beralih ke komputer Anda dan navigasikan ke Pi dari browser web:
http://xxx.xxx.x.xx: 8081
Di mana xxx.xxx.x.xx adalah alamat IP Pi. Tanda titik dua yang diikuti oleh angka adalah port yang telah diatur sebelumnya. Semua baik-baik saja Anda akan melihat aliran dari webcam Anda! Cobalah bergerak dan lihat bagaimana keadaannya. Anda mungkin perlu menyesuaikan pengaturan kecerahan dan kontras dalam file konfigurasi. Anda mungkin perlu memfokuskan webcam - beberapa model memiliki cincin fokus kecil di sekitar lensa. Putar ini sampai gambar paling tajam.
Kembali ke Pi, buat folder, dan navigasikan ke dalamnya:
mkdir security-cam. cd security-cam /
Sekarang instal Twisted:
sudo apt-get install python-twisted
Twisted adalah server web yang ditulis dengan Python, yang akan mendengarkan perintah dan kemudian bertindak sesuai.
Setelah diinstal, buat skrip Python untuk menjalankan perintah (pindahkan servos).
sudo nano servos.rpy
Perhatikan bagaimana ekstensi file ".rpy" bukan "py". Ini kodenya:
# Impor file yang diperlukan. serial impor. dari twisted.web.resource impor Sumber Daya # Setup Arduino dengan kecepatan yang benar. coba: arduino = serial. Serial ('/ dev / ttyUSB0', 9600) kecuali: arduino = serial. Serial ('/ dev / ttyUSB1', 9600) kelas MoveServo (Sumber): isLeaf = True def render_GET (self, request): coba: # Kirim nilai lebih dari serial ke Arduino arduino.write (request.args ['value'] [0]) mengembalikan 'Success' kecuali: return 'Failure' resource = MoveServo ()
Sekarang mulai server web:
sudo twistd -n web -p 80 - path / home / pi / security-cam /
Mari kita jabarkan - “-p 80” menentukan port (80). Ini adalah port default untuk halaman web. "–Path / home / pi / security-cam /" memberitahu Twisted untuk memulai server di direktori yang ditentukan. Jika Anda membuat perubahan pada skrip di dalam folder "security-cam" Anda harus me-restart server (CTRL + X untuk menutup, lalu jalankan perintah lagi).
Sekarang buat halaman web:
sudo nano index.html
Ini kode halaman web:
Memanfaatkan Kamera Keamanan DIY
Ubah "PI_IP_ADDRESS" (digunakan dua kali) ke alamat IP asli dari Pi Anda (raspberrypi.local seharusnya juga berfungsi jika Anda menjalankan Raspian terbaru). Mulai ulang server web dan kemudian arahkan ke Pi dari komputer Anda, tidak perlu menentukan port. Anda harus dapat menggeser ke kiri dan ke kanan, dan melihat aliran video:
Itu dia. Kamera Jaringan Pan dan Tilt Anda sendiri. Jika Anda ingin mengekspos webcam Anda ke internet, ingatlah untuk pertimbangkan bahayanya 5 Bahaya untuk Dipertimbangkan Saat Menunjuk Kamera Keamanan Rumah AndaPenting untuk mempertimbangkan dengan cermat di mana Anda memposisikan kamera Anda, dan bagian mana dari rumah Anda. Menjaga keamanan adalah penting, tetapi menjaga privasi Anda juga penting. Baca lebih banyak - lalu lihat ke dalam penerusan porta Apa Port Forwarding & Bagaimana Itu Bisa Membantu Saya? [MakeUseOf Menjelaskan]Apakah Anda menangis sedikit di dalam ketika seseorang memberi tahu Anda ada masalah port forwarding dan itulah mengapa aplikasi baru Anda yang mengkilap tidak akan berfungsi? Xbox Anda tidak akan membiarkan Anda bermain game, unduhan torrent Anda menolak ... Baca lebih banyak , jadi router Anda tahu ke mana harus mengirim permintaan yang masuk. Anda bisa menambahkan catu daya eksternal 3 Paket Baterai Raspberry Pi untuk Proyek PortabelBaterai Raspberry Pi dapat membuat Pi biasa menjadi komputer portabel. Anda akan memerlukan salah satu solusi baterai ini untuk memulai. Baca lebih banyak dan adaptor Wi-Fi untuk rig yang benar-benar portabel.
Sudahkah Anda membuat sesuatu yang keren dengan webcam dan Pi? Beri tahu saya di komentar, saya ingin sekali melihatnya!
Joe adalah lulusan Ilmu Komputer dari University of Lincoln, Inggris. Dia adalah pengembang perangkat lunak profesional, dan ketika dia tidak terbang drone atau menulis musik, dia sering ditemukan mengambil foto atau memproduksi video.