Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo

Komponen dan Perlengkapan

Tentang Proyek Ini

Saya mendapat ide ini untuk memecahkan masalah yang saya alami dengan kamera keamanan rumah saya. Saya memiliki satu kamera tertentu yang ditempatkan di dinding antara dua kamar, namun Anda hanya dapat melihat satu kamar pada satu waktu kecuali Anda masuk ke perangkat lunak kamera untuk memutarnya secara manual. Jika seseorang memasuki kamar seberang, kamera tidak akan merekam tindakan tersebut. Untuk memecahkan masalah ini, saya memutuskan untuk membuat basis deteksi/pelacakan gerak tempat saya dapat melekatkan kamera sehingga akan secara otomatis menyesuaikan posisinya ke tempat gerak terdeteksi.

CARA KERJA :

Perangkat ini menggunakan 5 sensor gerak PIR untuk mendeteksi gerakan apa pun dalam radius 180º. Setelah gerak terdeteksi, motor servo memutar basis kamera untuk mengarah ke arah tersebut. Ada juga 5 lampu "status" LED yang ditempatkan di dalam basis yang akan menyala setiap kali salah satu sensor PIR mendeteksi gerak.

LIHAT DAKA!

PENGKABELAN :

Pengkabelan untuk proyek ini sederhana dan mudah, namun, karena ada 5 dari segala sesuatu kecuali motor servo, jumlah kabel mulai menumpuk cukup banyak. Periksa diagram rangkaian dan skema di bagian bawah halaman ini untuk lebih banyak detail, tetapi berikut adalah dasar-dasarnya.

lampu status LED...

Saya menggunakan breadboard mini untuk memisahkan lampu LED dari rangkaian lainnya untuk memungkinkan pengaturan yang lebih mudah jika diperlukan. Setiap LED merespons sensor PIR yang berbeda dan akan menyala setiap kali mendeteksi gerak. Cukup sambungkan setiap LED ke input digital terpisah (9-13) pada Arduino, dan grounding melalui resistor 220 ohm.

sensor gerak PIR...

Saya menggunakan model sensor PIR HC-SR501 untuk proyek ini. Setiap sensor PIR perlu disambungkan ke input digital (2-6) pada Arduino, daya 5V, dan ground. Jika Anda menggunakan sensor PIR yang sama seperti saya, Anda dapat (dengan hati-hati) melepas tutupnya dan pin ditandai di bawahnya. Anda akan menghubungkan setiap sensor PIR ke lampu LED yang sesuai dalam kode yang diunggah nanti.

motor servo...

Motor servo dilekatkan pada stand tempat kamera duduk, dan memutar kamera untuk menyelaraskan dengan sensor PIR yang aktif. Menggunakan pinout untuk motor Anda, sambungkan satu pin ke daya, pin lain ke input digital 7 Arduino, dan pin terakhir ke ground. Sebelum menyala Arduino, pastikan untuk menghubungkan kapasitor 100µF antara daya dan ground motor untuk membantu melindungi papan dari lonjakan daya yang terjadi saat motor bergerak.

Salah satu hal yang perlu diperhatikan tentang motor servo adalah tidak semua memiliki rentang gerakan penuh 180º. Setelah beberapa pengujian, saya menemukan bahwa motor saya hanya bergerak sekitar 160º, jadi ubah kode sesuai jika motor Anda berbeda. Anda akan tahu motor mencoba bergerak terlalu jauh saat mendengarkan suara gosok di posisi sensor PIR terakhir.

KONSTRUKSI :

Saya menggunakan labeler CD Memorex lama untuk perabot servo dan permukaan tempat kamera duduk. Saya gagal mengambil foto ‘sebelum’, jadi gambar di bawah adalah satu-satunya yang tersisa yang saya temukan online. Bagian belakang adalah cakram plastik datar dan kokoh yang akhirnya lepas dalam satu potongan (setelah sedikit dorongan dari obeng saya), jadi itu bekerja sangat baik untuk tempat duduk kamera saya. Ini juga datang dengan 4 karet ‘kaki’ yang dapat dilepas, yang membantu memberikan kamera sedikit grip saat motor bergerak.

Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo

Saya menggunakan alik untuk bagian hitam di tengah untuk melepasnya…dan dengan itu saya berarti, memecahnya menjadi sebanyak bagian yang bisa sebelum hilang :) Selanjutnya, saya membuat beberapa lubang di basis dengan Dremel saya lalu melekatkan motor servo dengan beberapa obeng.

Terakhir, saya menggunakan obeng lain untuk melekatkan motor servo pada bagian tempat kamera akan duduk. Saya mengalami masalah di mana bobot kamera menyebabkan basis miring, jadi saya menyelesaikannya dengan membuat tabung karton yang cukup tinggi untuk longgar antara motor dan kamera. Sekarang masih bergerak bebas, tetapi memiliki dukungan lebih dengan bobotnya terdistribusi merata.

Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo

Ini adalah tampilan semuanya setelah sensor PIR terpasang dan semua rangkaian selesai. Anda akan perhatikan saya menggunakan beberapa breadboard untuk menyelesaikan proyek saya. Alasannya adalah itu membuatnya sangat mudah untuk memasukkannya di dalam basis, serta memilih dan memilih yang akan dilepas saat troubleshooting dan memperluas nanti.

Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo
Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo

Untuk menyelesaikan proyek, saya cat semua bagian terlihat dari karton dengan cat spray hitam sehingga terlihat lebih menyatu dengan stand hitam di atas.

Ini adalah produk akhir setelah cat...

Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo
Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo
Basis Kamera Pelacakan Gerak Otomatis dengan Arduino dan Kontrol Servo

Kode

Kode UtamaArduino

Sensor PIR akan kalibrasi selama 15 detik setelah menyala Arduino. Direkomendasikan agar Anda meninggalkan ruangan selama proses ini sehingga sensor mendapatkan gambar sebenarnya dari ruangan tanpa gerakan.

/************************************************* *** Basis Kamera Motor Pelacakan Gerak *** *** oleh Lindsay Fox *** *************************************************/ // Servo motor #include <Servo.h> Servo camServo; // nama motor servo yang mengontrol basis kamera int currentPIRposition = 0; // atur sudut servo saat ini // lampu status LED int LEDpin[] = {9,10,11,12,13}; // nomor pin LED int currentLEDpin = 9; // pin LED saat ini; mulai dengan yang pertama dalam urutan di atas // sensor PIR int PIRpin[] = {2,3,4,5,6}; // nomor pin PIR int currentPIRpin = 2; // pin PIR saat ini; mulai dengan yang pertama dalam urutan di atas int PIRprevState[] = {1,1,1,1,1}; // status sebelumnya PIR (0 = LOW, 1 = HIGH) int PIRposition[] = {157,117.75,78.5,39.25,0}; // tetapkan sudut untuk motor servo (0-157 didistribusikan sama antara 5 sensor PIR) boolean PIRstatus; // Set status sensor PIR sebagai true atau false ///// SETUP ////////////////////////////////////// void setup() { Serial.begin(9600); camServo.attach(7); // tetapkan pin servo for (int p = 0; p < 5; p++) { // set semua sensor PIR sebagai INPUTS pinMode(PIRpin[p], INPUT); } // akhir 'p' for for (int l = 0; l < 5; l++) { // set semua LED sebagai OUTPUTS pinMode(LEDpin[l], OUTPUT); } // akhir 'l' for ////// KALIBRASI SENSOR PIR ////// Serial.print("Mengkalibrasi Sensor PIR "); for(int c = 0; c < 15; c++){ // kalibrasi sensor PIR selama 15 detik (ubah dari 10-60 detik tergantung pada sensor Anda) Serial.print("."); delay(1000); // tunggu 1 detik } // akhir kalibrasi for Serial.println("Sensor PIR Siap"); camServo.write(78.5); // gerakkan servo ke posisi tengah untuk memulai } // akhir setup ///// LOOP UTAMA ////////////////////////////////// void loop() { for (int PIR = 0; PIR < 5; PIR++) { // mulai loop ini untuk setiap sensor PIR currentPIRpin = PIRpin[PIR]; // tetapkan pin PIR saat ini ke nomor saat ini dalam loop 'for' currentLEDpin=LEDpin[PIR]; // tetapkan pin LED saat ini ke nomor saat ini dalam loop 'for' PIRstatus = digitalRead(currentPIRpin); if (PIRstatus == HIGH) { // jika gerak terdeteksi pada sensor PIR saat ini digitalWrite(currentLEDpin, HIGH); // nyalakan LED yang sesuai if(PIRprevState[PIR] == 0) { // jika status sebelumnya sensor PIR adalah LOW if (currentPIRposition != currentPIRpin && PIRprevState[PIR] == 0) { // jika PIR tinggi berbeda dari posisi saat ini PIR maka pindah ke posisi baru camServo.write(PIRposition[PIR]); Serial.print("Sudut saat ini : "); Serial.println(PIRposition[PIR]); delay(50); currentPIRposition = currentPIRpin; // reset posisi PIR saat ini ke pin [PIR] aktif PIRprevState[PIR] = 1; // tetapkan status PIR sebelumnya menjadi HIGH } PIRprevState[PIR] = 1; // tetapkan status PIR sebelumnya menjadi HIGH jika posisi saat ini sama dengan pin PIR saat ini } // akhir PIRprevState if } // akhir PIRstatus if else { // digitalWrite(currentLEDpin, LOW); // led memvisualisasikan status output pin sensor PIRprevState[PIR] = 0; // tetapkan status PIR sebelumnya menjadi LOW } // akhir else } // akhir [PIR] for loop } // akhir loop utama 

Skematik

Proses manufaktur

  1. Evolusi dan Desain Kamera Modern
  2. Kotak Pelindung Minimalis Raspberry Pi dari Kerusakan Statis
  3. Mengontrol LED dengan Sensor Gerak PIR pada Raspberry Pi
  4. Sistem Alarm Deteksi Gerakan dengan Java & Reactive Blocks – Deploy pada Raspberry Pi & Kirim SMS
  5. Bangun Tombol IoT AWS Terkontrol Gerakan dengan Raspberry Pi, Sensor PIR, dan MQTT
  6. Memasang Kamera Raspberry Pi di Burung: Panduan Langkah demi Langkah
  7. BrickPi Bookreader: Otomatisasi Pembacaan Kindle dengan Raspberry Pi dan LEGO Mindstorms
  8. Siapkan Kamera IP Langsung di Raspberry Pi Menggunakan Motion – Panduan Langkah demi Langkah
  9. Teknologi Gerak Linear: Solusi Presisi untuk Otomatisasi
  10. Pusat Penelitian Langley NASA Ungkap Kamera Plenoptic Canggih untuk Citra 3D Warna