
Lesley Fowler
0
3660
408
Dowiedz się, jak zrobić zdalnie widoczną kamerę bezpieczeństwa z funkcją obrotu i pochylenia za pomocą Raspberry Pi. Ten projekt można ukończyć rano tylko z najprostszych części. Oto wynik końcowy:
Czego potrzebujesz
- Raspberry Pi 2 lub 3 z kartą Micro SD
- Arduino UNO lub podobny
- 2 x serwo mikro lub mini hobby
- Kamera internetowa USB
- Przewody przyłączeniowe męskie do męskich
- Druty przyłączeniowe męskie do żeńskich
- Różne paski na zamek błyskawiczny
Budowanie kamery bezpieczeństwa
Przymocuj klakson serwa (mały plastik “kształty”) do każdego serwomechanizmu za pomocą dostarczonej śruby. Konkretny kształt nie ma tak naprawdę znaczenia, chociaż im większy, tym lepszy. Nie dokręcaj śruby zbyt mocno.
Teraz użyj opasek na suwak, aby przymocować jedno serwo do drugiego pod kątem prostym. Jedna z nich będzie obracać (od lewej do prawej), podczas gdy druga będzie przechylać (w górę i w dół). Nie ma znaczenia, kto co robi, można to zmienić w kodzie.
Na koniec podłącz kamerę internetową do jednego z serwomechanizmów. Możesz do tego użyć opasek błyskawicznych, chociaż moja kamera internetowa ma klips przykręcony do dołu - usunąłem to i użyłem śruby, aby przytrzymać ją do klaksonu. Aby uzyskać stabilność, możesz zamontować cały zestaw na skrzynce lub pudełku. Proste kartonowe pudełko całkiem nieźle sobie radzi. Możesz wyciąć schludny kwadratowy otwór i zamontować jeden serwo równo z powierzchnią, jednak krawat na suwak będzie wystarczający.
Słowo o kamerach internetowych
Nie wszystkie kamery internetowe USB są tworzone jednakowo. Podłącz kamerę internetową do portu USB komputera Pi i uruchom następujące polecenie:
lsusb
To polecenie wyświetla informacje o wszystkich urządzeniach USB podłączonych do Pi. Jeśli kamery internetowej nie ma na liście, możesz wypróbować zasilany koncentrator USB i powtórzyć polecenie. Jeśli kamera internetowa nadal nie jest rozpoznawana, może być konieczne zakupienie zgodnej kamery internetowej.
Konfiguracja serwomechanizmu
Chociaż serwomechanizmy mogą wydawać się przerażające i złożone, można je bardzo łatwo połączyć. Serwa działają na modulacji szerokości impulsu (PWM), która jest sposobem dla systemów cyfrowych na naśladowanie sygnałów analogowych. Sygnały PWM są zasadniczo szybkim sygnałem WŁ. - WYŁ. Sygnał, który jest WŁĄCZONY lub WYSOKI, jest opisany za pomocą cyklu pracy. Cykl pracy jest wyrażony w procentach i opisuje, jak długo sygnał jest włączony. Sygnał PWM 25% cyklu pracy będzie WŁĄCZONY przez 25% czasu, a WYŁĄCZONY dla pozostałych 75%. Sygnał nie jest WŁĄCZONY na początku, a następnie WYŁĄCZONY na zawsze, pulsuje regularnie przez bardzo krótki czas.
Serwa nasłuchują tych impulsów i działają odpowiednio. Zastosowanie cyklu roboczego 100% byłoby takie samo jak “regularny” 5v, a 0% byłoby tym samym co ziemia. Nie martw się, jeśli nie w pełni rozumiesz, jak działa PWM, nadal możesz kontrolować serwomechanizmy (Extreme Electronics to dobre miejsce, aby dowiedzieć się więcej).
Istnieją dwa główne sposoby korzystania z PWM - sprzęt lub oprogramowanie. Sprzętowy PWM często zapewnia mniejsze opóźnienie (jak długo pomiędzy serwomechanizmem odbierającym polecenie a ruchem) niż programowy PWM, jednak Pi ma tylko jeden pin zgodny ze sprzętowym PWM. Dostępne są obwody zewnętrzne zapewniające wiele kanałów sprzętowego PWM, jednak proste Arduino może również obsłużyć to zadanie, ponieważ mają wiele sprzętowych styków PWM.
Oto obwód:
Sprawdź dokładnie pinout dla swojego Pi, różnią się one nieznacznie w zależności od modelu. Musisz dowiedzieć się, jak okablowane są serwomechanizmy. Serwa wymagają trzech przewodów do ich sterowania, jednak kolory różnią się nieznacznie:
- Kolor czerwony jest dodatni, podłącz to do Pi + 5v
- Brązowy lub czarny jest ujemny, podłącz to do GND na Pi
- Sygnał pomarańczowy lub biały, podłącz go do styków 9 i 10 Arduino
Konfiguracja Arduino
Nowy w Arduino? Rozpocznij tutaj Rozpoczęcie pracy z Arduino: Przewodnik dla początkujących Rozpoczęcie pracy z Arduino: Przewodnik dla początkujących Arduino to platforma prototypowania elektroniki typu open source oparta na elastycznym, łatwym w użyciu sprzęcie i oprogramowaniu. Jest przeznaczony dla artystów, projektantów, hobbystów i wszystkich zainteresowanych tworzeniem interaktywnych obiektów lub środowisk. .
Po połączeniu serwomechanizmów otwórz Arduino IDE na komputerze i prześlij ten kod testowy. Nie zapomnij wybrać właściwej płyty i portu z Narzędzia> Płyta i Narzędzia> Port menu
#include // Importuj bibliotekę Servo servoPan, servoTilt; // Tworzenie obiektów serwo int servoMin = 20, servoMax = 160; // Zdefiniuj granice serwomechanizmów void setup () // Ustaw serwomechanizmy na pinach obsługujących PWM servoPan.attach (9); servoTilt.attach (10); void loop () for (int i = servoMin; i servoMin; --i) // Przenieś serwomechanizmy z maksimum na minimum servoPan.write (i); servoTilt.write (i); opóźnienie (100); // Poczekaj 100ms
Wszystko dobrze, powinieneś zobaczyć oba serwomechanizmy powoli poruszające się do przodu i do tyłu. Zauważ jak “servoMin” i servoMax” są zdefiniowane jako 20 i 160 stopni (zamiast 0 i 180). Wynika to częściowo z tego, że te tanie serwomechanizmy nie są w stanie dokładnie przesunąć pełnych 180 stopni, a także ze względu na fizyczny rozmiar kamery internetowej uniemożliwia wykorzystanie pełnego zakresu. Może być konieczne dostosowanie ich do konfiguracji.
Jeśli w ogóle nie działają, sprawdź dwukrotnie, czy obwód jest prawidłowo podłączony. Płyty chlebowe mogą czasami różnić się również jakością, dlatego warto rozważyć inwestycję w multimetr, aby to sprawdzić.
Serwa są prawie zbyt potężne, aby Arduino mogło je zasilić, więc będą zasilane przez Pi. Szyna 5 V na Pi jest ograniczona do 750 mA dostarczanego do całego Pi, a Pi pobiera około 500 mA, pozostawiając 250 mA dla serwomechanizmów. Te mikrosilniki pobierają około 80 mA, co oznacza, że Pi powinien być w stanie obsłużyć dwa z nich. Jeśli chcesz użyć większej liczby serwomechanizmów lub większych modeli o większej mocy, może być konieczne użycie zewnętrznego zasilacza.
Teraz prześlij następujący kod do Arduino. Spowoduje to nasłuchanie przychodzących danych szeregowych (szeregowych jak w Universal Seryjny Bus lub USB). Pi wyśle te dane przez USB do Arduino, mówiąc mu, gdzie przenieść serwomechanizmy.
#include // Importuj bibliotekę Servo servoPan, servoTilt; // Utwórz obiekt serwo String data = ""; // Przechowuj przychodzące polecenia (bufor) void setup () // Skonfiguruj serwa na pinach obsługujących PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Rozpocznij szeregowanie z prędkością 9600 bps (prędkość) void loop () while (Serial.available ()> 0) // Jeśli istnieją dane char singleChar = Serial.read (); // Odczytaj każdy znak if (singleChar == 'P') // Przenieś pan servoPan.write (data.toInt ()); data = ""; // Wyczyść bufor else if (singleChar == 'T') // Przenieś serwo przechyłu servoTilt.write (data.toInt ()); data = ""; // Wyczyść bufor else data + = singleChar; // Dołącz nowe dane
Możesz przetestować ten kod, otwierając monitor szeregowy (w prawym górnym rogu> Monitor szeregowy) i wysyłanie niektórych danych testowych:
- 90 P.
- 0 P.
- 20T
- 100T
Zwróć uwagę na format poleceń - wartość, a następnie litera. Wartość jest pozycją serwomechanizmu, a litera (dużymi literami) określa serwo obrotu lub pochylenia. Ponieważ dane te są przesyłane szeregowo z Pi, każda postać przychodzi pojedynczo. Arduino musi “sklep” te do momentu przesłania całego polecenia. Ostatnia litera nie tylko określa serwomechanizm, ale także informuje Arduino, że w tym poleceniu nie ma już żadnych danych.
Na koniec odłącz Arduino od komputera i podłącz go do Raspberry Pi za pomocą zwykłego portu USB.
Konfiguracja pi
Teraz nadszedł czas, aby skonfigurować Pi. Najpierw zainstaluj system operacyjny Jak zainstalować system operacyjny na Raspberry Pi Jak zainstalować system operacyjny na Raspberry Pi Oto jak zainstalować system operacyjny na Raspberry Pi i jak sklonować idealną konfigurację do szybkiego odzyskiwania po awarii. . Podłącz kamerę internetową i Arduino do Pi USB.
Zaktualizuj Pi:
sudo apt-get update sudo apt-get upgrade
Zainstaluj ruch:
sudo apt-get install motion
Motion to program stworzony do obsługi przesyłania strumieniowego z kamery internetowej. Obsługuje wszystkie ciężkie podnoszenie, a nawet może wykonywać nagrywanie i wykrywanie ruchu (spróbuj zbudować system bezpieczeństwa przechwytywania ruchu Zbuduj system bezpieczeństwa Motion Capture za pomocą Raspberry Pi Zbuduj system bezpieczeństwa Motion Capture za pomocą Raspberry Pi Z wielu projektów, które możesz buduj z Raspberry Pi, jednym z najbardziej interesujących i stale użytecznych jest system bezpieczeństwa przechwytywania ruchu.). Otwórz plik konfiguracji Motion:
sudo nano /etc/motion/motion.conf
Ten plik zawiera wiele opcji konfiguracji Motion. Skonfiguruj w następujący sposób:
- daemon on - Uruchom program
- framerate: 100 - Ile klatek lub zdjęć na sekundę przesyłać strumieniowo
- stream_localhost off - Zezwól na dostęp przez sieć
- szerokość 640 - Szerokość wideo, dostosuj do kamery internetowej
- wysokość 320 - Wysokość wideo, dostosuj do kamery internetowej
- stream_port 8081 - Port do wyjścia wideo
- output_picture wyłączony - nie zapisuj żadnych obrazów
Jest to dość duży plik, więc możesz chcieć użyć CTRL + W szukać linii. Po zakończeniu naciśnij CTRL + X a następnie potwierdź, aby zapisać i wyjść.
Teraz edytuj jeszcze jeden plik:
sudo nano / etc / default / motion
Zestaw “start_motion_daemon = tak”. Jest to potrzebne, aby zapewnić działanie Motion.
Teraz znajdź swój adres IP:
ifconfig
To polecenie pokaże szczegóły połączenia sieciowego dla Pi. Spójrz na drugą linię, adres inet. Możesz ustawić statyczny adres IP (co to jest statyczny adres IP? Co to jest statyczny adres IP? Oto dlaczego nie potrzebujesz tego Co to jest statyczny adres IP? Oto dlaczego nie potrzebujesz jednego adresu IP przypisanego do routera adresy zmieniają się sporadycznie, podczas gdy statyczne adresy IP tego nie robią. Oto dlaczego tak naprawdę ich nie potrzebujesz), ale na razie zanotuj ten numer.
Teraz uruchom Motion:
uruchomienie ruchu usługi sudo
Możesz zatrzymać lub ponownie uruchomić Motion, zmieniając “początek” do “zatrzymać” lub “uruchom ponownie”.
Przełącz się na komputer i przejdź do Pi z przeglądarki internetowej:
http: //xxx.xxx.x.xx: 8081
Gdzie xxx.xxx.x.xx to adres IP Pi. Dwukropek, po którym następuje liczba, to port skonfigurowany wcześniej. Wszystko dobrze, powinieneś zobaczyć strumień z kamery internetowej! Spróbuj się poruszać i zobacz, jak wszystko wygląda. Może być konieczne dostosowanie ustawień jasności i kontrastu w pliku konfiguracyjnym. Może być konieczne ustawienie ostrości kamery internetowej - niektóre modele mają mały pierścień ostrości wokół obiektywu. Obracaj to, aż obraz będzie najostrzejszy.
Wróć do Pi, utwórz folder i przejdź do niego:
mkdir security-cam cd security-cam /
Teraz zainstaluj Twisted:
sudo apt-get install python-twisted
Twisted to serwer WWW napisany w języku Python, który będzie nasłuchiwał poleceń, a następnie będzie działał odpowiednio.
Po zainstalowaniu utwórz skrypt w języku Python, aby wykonywać polecenia (przenosić serwomechanizmy).
sudo nano servos.rpy
Zauważ, jakie jest rozszerzenie pliku “.rpy” zamiast “py”. Oto kod:
# Zaimportuj niezbędne pliki zaimportuj numer seryjny z twisted.web.resource import Zasób # Ustaw Arduino z właściwą prędkością spróbuj: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) z wyjątkiem: arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) klasa MoveServo (zasób): isLeaf = True def render_GET (self, request): try: # Wyślij wartość przez port szeregowy do Arduino arduino.write (request.args [' wartość '] [0]) zwróć' Sukces „oprócz: zwróć„ Niepowodzenie ”zasób = MoveServo ()
Teraz uruchom serwer WWW:
sudo twistd -n web -p 80 --path / home / pi / security-cam /
Rozbijmy to - “-s. 80” określa port (80). Jest to domyślny port dla stron internetowych. “-ścieżka / strona główna / pi / security-cam /” mówi Twisted, aby uruchomił serwer w określonym katalogu. Jeśli dokonasz zmian w skryptach wewnątrz “kamera bezpieczeństwa” folder musisz zrestartować serwer (CTRL + X zamknąć, a następnie ponownie uruchomić polecenie).
Teraz utwórz stronę:
sudo nano index.html
Oto kod strony:
Skorzystaj z DIY Security Camera #container / * wyśrodkuj zawartość * / margines: 0 auto; wyrównanie tekstu: środek; 
Masz to. Twoja własna kamera sieciowa typu Pan and Tilt. Jeśli chcesz udostępnić swoją kamerę internetową do Internetu, pamiętaj, aby wziąć pod uwagę zagrożenia 5 Niebezpieczeństwa, które należy wziąć pod uwagę przy wskazywaniu kamer bezpieczeństwa w domu 5 Niebezpieczeństwa, które należy wziąć pod uwagę, kierując kamery do bezpieczeństwa w domu Ważne jest, aby dokładnie rozważyć miejsce ustawienia kamer i na części domu, na które je kierujesz. Dbanie o bezpieczeństwo jest ważne, ale także prywatność. - następnie sprawdź przekierowanie portów Co to jest przekierowanie portów i jak może mi pomóc? [MakeUseOf wyjaśnia] Co to jest przekierowanie portów i jak może mi pomóc? [MakeUseOf wyjaśnia] Czy płaczesz trochę w środku, gdy ktoś mówi ci, że jest problem z przekierowaniem portów i dlatego Twoja nowa, błyszcząca aplikacja nie działa? Twoja Xbox nie pozwala ci grać w gry, twoje pobieranie torrentów odmawia… więc twój router wie, gdzie wysyłać przychodzące żądania. Możesz dodać zewnętrzny zasilacz. 3 zestawy akumulatorów Raspberry Pi do projektów przenośnych 3 zestawy akumulatorów Raspberry Pi do projektów przenośnych Z akumulatora Raspberry Pi można przekształcić zwykłe Pi w komputer przenośny. Aby rozpocząć, będziesz potrzebować jednego z tych rozwiązań akumulatorowych. i adapter Wi-Fi do naprawdę przenośnego zestawu.
Czy zrobiłeś coś fajnego za pomocą kamery internetowej i pi? Daj mi znać w komentarzach, chciałbym zobaczyć!