Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta instrukcja pokaże Ci, jak zrobić tanią kamerę na kask, którą można sterować za pomocą pilota, aby główna kamera mogła bezpiecznie pozostać w plecaku. Kontroler można przymocować do jednego z pasków naramiennych plecaka i umożliwia nagrywanie i zatrzymywanie kamery, a także włączanie i wyłączanie kamery „pociskowej”. Jest to idealne rozwiązanie dla osób, które chcą filmować sporty ekstremalne, takie jak bmxing, snowboard, deskorolka itp. z perspektywy pierwszej osoby. Zdjęcie poniżej przedstawia kamerę typu bullet i pilot wraz z kamerą główną i akumulatorem.
Krok 1: Jak to działa
Podłączenie małej kamery w stylu „pocisku” do kamery jest dość proste i sprawić, by kamera sfilmowała to, co „widzi” mini kamera, ale chciałem móc kontrolować nagrywanie i zatrzymywać działanie kamery bez wyjmowania mojej torby za każdym razem. Po krótkim dochodzeniu odkryłem, że aparaty Sony mają połączenie LANC, które może służyć do sterowania aparatem, a także do przekazywania informacji o tym, co robi aparat. To świetnie, ponieważ po zdalnym naciśnięciu przycisku nagrywania możesz odczytać dane z kabla LANC, aby dowiedzieć się, czy kamera faktycznie rozpoczęła nagrywanie, a na kontrolerze zaświeci się dioda LED nagrywania. Mini kamera kosztowała tylko 15 funtów w serwisie eBay. Wtyczka stereo 2,5 mm miała około 1 funta, a inne kawałki i kawałki miały mniej niż 5 funtów. Więc za około 20 funtów możesz mieć w pełni działającą, zdalnie sterowaną kamerę do kasku. Mój kontroler jest bardzo prosty. Posiada przycisk nagrywania, przycisk stop, wyłącznik zasilania mini kamery i 3 diody LED. (Zasilanie minikamery, zasilanie kamery głównej i wskaźnik nagrywania). To wszystko, czego potrzebowałem do mojego projektu, ale dostarczony przeze mnie kod źródłowy jest dość prosty i można go dostosować, aby umożliwić sterowanie wszystkim w aparacie. --- Dodałem kolejny krok, Krok 4, jest to aktualizacja informująca o niskim stanie baterii i końcu taśmy) --- Zdjęcia: Zdjęcie 1 - Prototyp (z 8 diodami LED do debugowania mojego programu) Zdjęcie 2 - Zbliżenie kamery „pocisku” i kontrolera
Krok 2: Schemat obwodu
Obwód jest bardzo prosty. - PIC jest zasilany bezpośrednio z kabla LANC. - Minicam jest zasilany z akumulatora 12 V za pomocą przełącznika - Są 2 przyciski do nagrywania i zatrzymania - 3 diody LED pokazują stan połączeń PIC kamery: RA0 - LANC z kamery RB7 - Dioda nagrywania RB4 - Przycisk nagrywania RB5 - Przycisk stop (Pamiętaj, że krok 4 to aktualizacja tego obwodu, dioda LED zasilania jest podłączona do RA5 i jest inny kod źródłowy)
Krok 3: Co to jest LANC i jak działa program?
Jeśli odwiedzisz ten link, dowiesz się, jak działa protokół Sony LANC, oraz wszystkie polecenia i dane kamery dostępne na protokole LANC:https://www.boehmel.de/lanc.htmJak widać, możesz uzyskać dużo informacji z kamery, a także sterowanie każdą funkcją kamery przez port komunikacyjny LANC. Mój kod jest bardzo prosty, a plik.asm można załadować do MPLAB (bez Micochip.com) i zaprogramować za pomocą PicKit2 całkiem łatwo. Jak działa kod:Jeśli pobierzesz kod źródłowy, jest on udokumentowany przez cały czas, informując Cię o tym, co się dzieje, ale tutaj również przedstawię krótkie wyjaśnienie. Na porcie LANC jest 8 bajtów co 20 ms (16, 6 ms dla NTSC). Każdy bajt ma bit startu, po którym następuje 8 bitów, każdy o długości 104 uS. Między bajtami jest przerwa około 200uS - 400uS. Po tym, jak wszystkie 8 bajtów „pojawiło się” na linii LANC, jest długa przerwa (5–8 ms), w której linia LANC jest „utrzymywana” wysoko, a następnie te same 8 bajtów „pojawia się” ponownie. Po uruchomieniu programu, sprawdza wejście LANC, aż 'widzi' je na wysokim poziomie przez okres dłuższy niż 1000uS, co oznacza, że znajdujemy się w przerwie między ósmym bajtem a pierwszym bajtem. 0) na linii. Kiedy tak się dzieje, program czeka na 52 uS (połowa długości bitu) i ponownie sprawdza, czy nadal jest logiczne 0 na linii LANC. Jeśli tak, wiemy, że mamy poprawny bit startu i jesteśmy gotowi do odczytu bajtu. -Teraz czekamy na 104uS (długość 1 bitu), więc będziemy w samym środku następnego bitu na linii LANC. Czytamy ten bit, czekamy 104uS i czytamy ponownie. Trwa to dla wszystkich 8 bitów. Teraz mamy bajt 0.-Program czeka na następny bit startowy i wykonuje to samo zadanie, aby uzyskać bajt 1, 2, 3, 4, 5, 6 i 7. Bajt 4 jest tym, którego używam w programie do uzyskać informacje o stanie nagrywania kamery, ale jak widać w podanym przeze mnie łączu, dostępnych jest mnóstwo informacji! Zgadza się, to jest omawiany odczyt linii LANC, a co z pisaniem do niej, aby sterować kamerą? - Po naciśnięciu przycisku 2 rejestry są ładowane bajtami potrzebnymi do wykonania określonej operacji, a rejestr o nazwie „Sender” jest ładowany liczbą 5 (wyjaśnię dlaczego później). Gdy program dojdzie do części „gotowy do odczytu bajtów”, jeśli rejestr „Sender” nie jest równy 0, zmienia pin RA0 na wyjście i zaczyna wyprowadzać pierwszy bajt. Następnie szuka następnego bitu Start i wyprowadza następny bajt. Rejestr „Sender” jest zmniejszany o 1, a RA0 jest zmieniane z powrotem na wejście do odczytu ostatnich 6 bajtów. Powodem, dla którego rejestr „Sender” jest używany, jest to, że aby kamera zaakceptowała polecenie, musi zobaczyć polecenie dla kilka cykli. Niektóre witryny twierdzą, że potrzebne są tylko 3, ale ponieważ 1 cykl zajmuje tylko 20 ms, wysłanie go 5 razy (dla pewności) zajmuje tylko 100 ms. Mam nadzieję, że ten krótki instruktaż ma sens i jesteś w stanie zrobić własne majsterkowanie krzywki kasku. Zapraszam do dostosowania mojego kodu do własnych potrzeb, ale proszę o kredyt mnie za kod, jeśli opublikujesz go gdziekolwiek indziej.
Krok 4: Aktualizacja…
Zaktualizowałem program w PIC, aby migać diodą zasilania, gdy bateria w głównym aparacie jest słaba i migać diodą nagrywania, jeśli taśma jest na końcu. Dodałem nowszy schemat połączeń i kod źródłowy. Jedyną różnicą w schemacie okablowania jest to, że dioda LED stanu (była diodą zasilania) jest teraz podłączona do RA5 zamiast +5v