İlan

Raspberry Pi ile uzaktan görüntülenebilir bir pan ve tilt güvenlik kamerası yapmayı öğrenin. Bu proje sabahları sadece en basit parçalarla tamamlanabilir. Sonuç:

Neye ihtiyacın var

  • Micro SD kartlı Raspberry Pi 2 veya 3
  • Arduino UNO veya benzeri
  • 2 x mikro veya mini hobi servo
  • USB web kamerası
  • Erkek-erkek bağlantı kabloları
  • Erkek-kadın bağlantı kabloları
  • Çeşitli zip bağları

Güvenlik Kamerasını Oluşturma

Verilen vidayı kullanarak her servoya bir servo boynuzu (küçük plastik “şekiller”) takın. Belirli şekil gerçekten önemli değil, ancak daha büyük daha iyi. Vidayı aşırı sıkmayın.

Şimdi bir servoyu diğerine dik açıyla bağlamak için fermuar bağları kullanın. Bunlardan biri pan (soldan sağa), diğeri eğilir (yukarı ve aşağı). Hangisinin ne yaptığı önemli değil, kodda ayarlanabilir.

Servo Donanım

Son olarak, web kameranızı servolardan birine takın. Bunun için zip bağları kullanabilirsiniz, ancak web kameram alt tarafa vidalanmış bir klipsle geldi - bunu kaldırdım ve vidayı kornaya tuttum. Kararlılık için tüm teçhizatı bir kasaya veya kutuya monte etmek isteyebilirsiniz. Basit bir karton kutu hileyi oldukça güzel yapar. Düzgün bir kare delik kesip bir servo sifonu yüzeye monte edebilirsiniz, ancak bir zip bağı yeterli olacaktır.

instagram viewer

Pi-Pan-Tilt-Kamera

Web Kameraları Hakkında Bir Söz

Tüm USB web kameraları eşit olarak oluşturulmaz. Web kameranızı Pi'nizin USB bağlantı noktasına bağlayın ve şu komutu çalıştırın:

lsusb

Bu komut, Pi'ye bağlı tüm USB aygıtları hakkında bilgi görüntüler. Web kameranız burada listelenmemişse, elektrikli bir USB hub'ı denemek ve komutu tekrarlamak isteyebilirsiniz. Web kamerası hala tanınmıyorsa, bir web kamerası satın almanız gerekebilir. uyumlu web kamerası.

Servo Kurulumu

Servolar korkutucu ve karmaşık görünse de, bağlanmak gerçekten çok basittir. Servolar, dijital sistemlerin analog sinyalleri taklit etmenin bir yolu olan Darbe Genişliği Modülasyonu (PWM) üzerinde çalışır. PWM sinyalleri aslında hızlı bir ON - OFF sinyalidir. Görev döngüsü kullanılarak AÇIK veya YÜKSEK bir sinyal tanımlanır. Görev döngüsü yüzde olarak ifade edilir ve sinyalin ne kadar süreyle AÇIK olduğunu açıklar. % 25 görev döngüsüne sahip bir PWM sinyali zamanın% 25'i için AÇIK, geri kalan% 75'i için KAPALI olacaktır. Sinyal başlangıçta AÇIK ve daha sonra sonsuza dek KAPALI değildir, çok kısa bir süre boyunca düzenli olarak titreşir.

Servolar bu darbeleri dinler ve buna göre hareket eder. % 100'lük bir görev döngüsü kullanmak “normal” 5v ile aynı olur ve% 0'ı zemin ile aynı olur. PWM'nin nasıl çalıştığını tam olarak anlamadıysanız endişelenmeyin, yine de servoları kontrol edebilirsiniz (Extreme Electronics, daha fazla bilgi için iyi bir yerdir).

PWM'yi kullanmanın iki ana yolu vardır - donanım veya yazılım. Donanım PWM genellikle yazılım PWM'den daha düşük gecikme süresi (servo ile komut alma ve taşıma arasında ne kadar sürer) sağlar, ancak Pi'nin yalnızca bir donanım PWM özellikli pimi vardır. Harici devreler birden fazla donanım PWM kanalı sağlamak için kullanılabilir, ancak basit bir Arduino birden fazla donanım PWM pinine sahip olduklarından görevi de halledebilir.

İşte devre:

Pi-Servo Bağlantı

İki kez kontrol edin Pi'niz için pin, modeller arasında biraz farklılık gösterir. Servolarınızın nasıl kablolandığını bulmanız gerekir. Servolar onları kontrol etmek için üç kablo gerektirir, ancak renkler biraz değişir:

  • Kırmızı pozitif, bunu Pi + 5v'ye bağlayın
  • Kahverengi veya siyah negatif, bunu Pi üzerindeki GND'ye bağlayın
  • Turuncu veya beyaz sinyal, bunu Arduino pinleri 9 ve 10'a bağlayın

Arduino Kurulumu

Arduino'da yeni misiniz? buradan başla Arduino'ya Başlarken: Başlangıç ​​KılavuzuArduino esnek, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik prototipleme platformudur. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar oluşturmak isteyen herkes için tasarlanmıştır. Daha fazla oku .

Servolar bağlandıktan sonra, bilgisayarınızda Arduino IDE'sini açın ve bu test kodunu yükleyin. Ekrandan doğru pano ve bağlantı noktasını seçmeyi unutmayın. Araçlar> Pano ve Araçlar> Bağlantı Noktası menüler

#Dahil etmek // Servo servoPan, servoTilt kütüphanesini içe aktarın; // Servo nesneleri oluşturun. int servoMin = 20, servoMax = 160; // Servolar geçersiz kurulum sınırlarını tanımlayın () {// PWM özellikli pinlere servo kurulumu servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i  servoMin; --i) {// Servoları maksimumdan minimum servoPan.write (i) 'ye taşı; servoTilt.write (i); gecikme (100); // 100ms Bekle} }

Her şey iyi olduğunda, her iki servonun da yavaşça ileri geri hareket ettiğini görmelisiniz. “ServoMin” ve servoMax ”öğelerinin nasıl 20 ve 160 derece (0 ve 180 yerine) olarak tanımlandığına dikkat edin. Bunun nedeni, bu ucuz servoların 180 dereceyi tam olarak hareket ettirememesi ve web kamerasının fiziksel boyutundan dolayı tam aralığın kullanılmasını engellemesidir. Kurulumunuz için bunları ayarlamanız gerekebilir.

Eğer hiç çalışmıyorlarsa devrenin doğru bağlandığını iki kez kontrol edin. Breadboard'ların kalitesi de bazen değişebilir, bu nedenle doğrulamak için bir multimetreye yatırım yapmayı düşünün.

Servolar neredeyse Arduino'nun gücü için çok güçlü, bu yüzden Pi tarafından güçlendirilecekler. Pi üzerindeki 5v ray Pi'nin tamamı için 750mA ile sınırlı ve Pi yaklaşık 500mA çekiyor ve servolar. Bu mikro servolar yaklaşık 80mA çeker, yani Pi bunlardan ikisini idare edebilmelidir. Daha fazla servo veya daha büyük, daha yüksek güçlü modeller kullanmak isterseniz, harici bir güç kaynağı kullanmanız gerekebilir.

Şimdi Arduino'ya aşağıdaki kodu yükleyin. Bu, gelen seri verileri dinleyecektir (Universal'deki gibi seri Seri Veri yolu veya USB). Pi bu verileri USB üzerinden Arduino'ya göndererek servoları nereye taşıyacağını söyler.

#Dahil etmek // Servo servoPan, servoTilt kütüphanesini içe aktarın; // Servo nesnesi oluştur. Dize verileri = ""; // Gelen komutları sakla (buffer) void setup () {// ServoPan.attach (9) PWM özellikli pinlere servo kurulumu; servoTilt.attach (10); Serial.begin (9600); // Seriyi 9600 bps'de (hız) başlat } void loop () {while (Serial.available ()> 0) {// Veri varsa char charChar = Serial.read (); // (singleChar == 'P') {// Pan servo servoPan.write (data.toInt ()) 'ı taşıyın; veri = ""; // buffer'ı temizle} else if (singleChar == 'T') {// Tilt servo servoTilt.write (data.toInt ()) öğesini taşı; veri = ""; // Arabelleği temizle} else {data + = singleChar; // Yeni veri ekle}} }

Seri monitörü açarak bu kodu test edebilirsiniz (sağ üst> Seri Monitör) ve bazı test verilerini gönderme:

  • 90P
  • 0P
  • 20T
  • 100T

Komutların biçimine dikkat edin - bir değer ve sonra bir harf. Değer, servo konumudur ve harf (büyük harflerle yazılır) pan veya tilt servo'yu belirtir. Bu veriler Pi'den seri olarak iletildiğinden, her karakter birer birer gelir. Arduino, tüm komut iletilene kadar bunları “saklamak” zorundadır. Son harf sadece servoyu belirtmekle kalmaz, aynı zamanda Arduino'nun bu komutta daha fazla veri olmadığını bilmesini sağlar.

Son olarak, Arduino'nuzu bilgisayardan ayırın ve normal USB port bağlantısı üzerinden Raspberry Pi'ye takın.

Pi Kurulumu

Şimdi Pi'yi kurma zamanı. İlk, bir işletim sistemi kurmak Raspberry Pi'ye İşletim Sistemi Nasıl YüklenirRaspberry Pi'nize nasıl bir işletim sistemi yükleyeceğiniz ve hızlı olağanüstü durum kurtarma için mükemmel kurulumunuzu nasıl kopyalayacağınız aşağıda açıklanmıştır. Daha fazla oku . Web kamerasını ve Arduino'yu Pi USB'ye bağlayın.

Pi'yi güncelleyin:

sudo uygun-güncelleştirme. sudo uygun-yükseltme

Hareketi yükleyin:

sudo apt-get yükleme hareketi

Hareket web kamerası akışını işlemek için yapılmış bir programdır. Tüm ağır kaldırma işlemlerini gerçekleştirir ve hatta kayıt ve hareket algılama gerçekleştirebilir (deneyin hareket yakalama güvenlik sistemi oluşturma Raspberry Pi Kullanarak Hareket Yakalama Güvenlik Sistemi OluşturunRaspberry Pi ile inşa edebileceğiniz birçok projeden en ilginç ve kalıcı olarak kullanışlı olanı hareket yakalama güvenlik sistemidir. Daha fazla oku ). Motion yapılandırma dosyasını açın:

sudo nano /etc/motion/motion.conf

Bu dosya, Motion'ı yapılandırmak için birçok seçenek sunar. Aşağıdaki gibi kurun:

  • daemon on - Programı çalıştır
  • kare hızı: 100 - Akışta kaç kare veya görüntü
  • stream_localhost off - Ağ üzerinden erişime izin ver
  • genişlik 640 - Videonun genişliği, web kameranız için ayarlayın
  • height 320 - Videonun yüksekliği, web kameranız için ayarlayın
  • stream_port 8081 - Video çıkışı yapılacak bağlantı noktası
  • output_picture off - Hiçbir resmi kaydetme

Bu oldukça büyük bir dosya, bu yüzden kullanmak isteyebilirsiniz CTRL + W satır aramak için. İşiniz bittiğinde, CTRL + X ardından kaydedip çıkmayı onaylayın.

Şimdi bir dosya daha düzenleyin:

sudo nano / etc / default / motion

“Start_motion_daemon = yes” olarak ayarlayın. Motion'ın çalışmasını sağlamak için bu gereklidir.

Şimdi IP Adresinizi bulun:

ifconfig

Bu komut Pi için ağ bağlantısı ayrıntılarını gösterecektir. İkinci satıra bak, inet adresi. Statik bir IP adresi ayarlamak isteyebilirsiniz (statik IP nedir? Statik IP Adresi Nedir? İşte Neden Bir İhtiyacınız YokStatik IP adresi asla değişmeyen bir IP adresidir. Dinamik IP adresleri değişir. Neden statik bir IP adresine ihtiyacınız olmadığını açıklıyoruz. Daha fazla oku ), ancak şimdilik bu numarayı not edin.

Şimdi Motion'ı başlatın:

sudo servisi hareket başlatma

“Start” ı “stop” veya “restart” olarak değiştirerek Motion'ı durdurabilir veya yeniden başlatabilirsiniz.

Bilgisayarınıza geçin ve bir web tarayıcısından Pi'ye gidin:

http://xxx.xxx.x.xx: 8081

Burada xxx.xxx.x.xx, Pi IP adresidir. İki nokta üst üste ve ardından bir sayı, daha önce ayarlanan bağlantı noktasıdır. Tüm iyi olmak web kameranızdan akışı görmelisiniz! Hareket etmeyi deneyin ve işlerin nasıl göründüğünü görün. Yapılandırma dosyasında parlaklık ve kontrast ayarlarını yapmanız gerekebilir. Web kamerasına odaklanmanız gerekebilir - bazı modellerde lensin etrafında küçük bir odak halkası vardır. Görüntü en net olana kadar bunu çevirin.

Pi'ye geri dönün, bir klasör oluşturun ve klasöre gidin:

mkdir güvenlik kamerası. cd güvenlik kamerası /

Şimdi Twisted'ı yükleyin:

sudo apt-get install python-bükülmüş

Twisted, Python'da yazılmış, komutları dinleyecek ve daha sonra buna göre hareket edecek bir web sunucusudur.

Kurulduktan sonra, komutları yürütmek için bir Python betiği oluşturun (servoları taşıyın).

sudo nano servos.rpy

Dosya uzantısının "py" yerine ".rpy" olduğuna dikkat edin. İşte kod:

# Gerekli dosyaları içe aktarın. seriyi içe aktar. twisted.web.resource içe aktarma Kaynak # Arduino'yu doğru hızda kurun. deneyin: arduino = seri. Seri ('/ dev / ttyUSB0', 9600) hariç: arduino = seri. Seri ('/ dev / ttyUSB1', 9600) sınıfı MoveServo (Kaynak): isLeaf = Gerçek def render_GET (self, request): dene: # Değeri üzerinden gönder Arduino'ya seri arduino.write (request.args ['value'] [0]) 'Başarı' değerini döndürür, ancak şunu döndürür: 'Başarısızlık' resource = MoveServo ()

Şimdi web sunucusunu başlatın:

sudo twistd -n web -p 80 --yol / ev / pi / güvenlik kamerası /

Bırakalım - “-p 80” portu (80) belirtir. Bu, web sayfaları için varsayılan bağlantı noktasıdır. “–Path / home / pi / security-cam /” Twisted'a sunucuyu belirtilen dizinde başlatmasını bildirir. “Güvenlik kamerası” klasörü içindeki komut dosyalarında herhangi bir değişiklik yaparsanız, sunucuyu yeniden başlatmanız gerekir (CTRL + X kapatmak için komutu tekrar çalıştırın).

Şimdi web sayfasını oluşturun:

sudo nano index.html

İşte web sayfası kodu:

DIY Güvenlik Kamerasından Yararlanın


“PI_IP_ADDRESS” i (iki kez kullanılır) Pi'nizin gerçek IP adresiyle değiştirin (raspberrypi.local en son Raspian'ı çalıştırıyorsanız da çalışmalıdır). Web sunucusunu yeniden başlatın ve bilgisayarınızdan Pi'ye gidin, bağlantı noktasını belirtmeye gerek yoktur. Sola ve sağa kaydırma ve video akışını görebilmeniz gerekir:

Pi-Pan-Tilt-Kamera-Web Görünümü

İşte aldın. Kendi Pan ve Tilt Ağ Kameranız. Web kameranızı internete tanıtmak istiyorsanız, tehlikeleri düşün Ev Güvenlik Kameralarınızı İşaret Ederken Dikkat Edilecek 5 TehlikeKameralarınızı nereye yerleştirdiğinizi ve evinizin hangi kısımlarına yönlendirdiğinizi dikkatlice düşünmek önemlidir. İşleri güvende tutmak önemlidir, ancak gizliliğinizi korumak da önemlidir. Daha fazla oku - sonra içine bak liman yönlendirme Liman Yönlendirme Nedir ve Bana Nasıl Yardımcı Olabilir? [Açıklamalar MakeUseOf]Birisi size bir liman yönlendirme sorunu olduğunu söylediğinde biraz içeride ağlıyor musunuz ve bu yüzden parlak yeni uygulamanız işe yaramıyor mu? Xbox'ınız oyun oynamanıza izin vermiyor, torrent indirmeleriniz reddediyor ... Daha fazla oku , yönlendiriciniz gelen isteklerin nereye gönderileceğini bilir. Ekleyebilirsin harici bir güç kaynağı Taşınabilir Projeler için 3 Raspberry Pi Pil PaketiRaspberry Pi pili, taşınabilir bir bilgisayara normal bir Pi yapabilir. Başlamak için bu pil çözümlerinden birine ihtiyacınız olacak. Daha fazla oku ve gerçekten taşınabilir bir donanım için Wi-Fi adaptörü.

Web kamerası ve Pi ile harika bir şey yaptın mı? Yorumlarda bana bildirin, görmek isterim!

Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.