Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Widziałem wiele filmów z zakłopotanymi ludźmi, którzy nie zauważyli, że ich mikrofon lub kamera są włączone, i to podsunęło mi pomysł na ten projekt.
Napisałem prostą aplikację w C#, która wykrywa, kiedy używana jest kamera lub mikrofon i wyświetla powiadomienie z nazwą programu. Dodatkowo mam prostą płytkę z 2 diodami WS2812B i brzęczykiem, który piszczy i zapala się, gdy otrzymuje powiadomienie z oprogramowania.
Sprzęt jest oparty na Arduino, a komunikacja odbywa się za pośrednictwem portu szeregowego, aby zachować prostotę i dać początkującym program do łatwego uruchamiania.
Proszę sprawdzić repozytorium projektu GitHub, aby uzyskać pełny kod źródłowy:
Kieszonkowe dzieci
- 2 x WS2812B
- 1x5 v brzęczyk
- 1 x tabliczka zaciskowa Micro USB
- 1 x żeńska tabliczka zaciskowa USB typu A
- Okrągły magnes neodymowy 8 x 3 mm x 1,8 mm
Krok 1: Elektronika
Elektronika tutaj jest bardzo prosta, zastosowałem 2 adresowalne diody LED (WS2812B), buzzer oraz złącze micro USB. Wszystko okablowane zgodnie z załączonym schematem.
Po stronie Arduino jest to po prostu proste złącze USB typu A, które łączy się z 5v, GND oraz pinami 8 i 9.
Krok 2: Drukowanie 3D obudowy
Zaprojektowałem prostą obudowę zawierającą elektronikę z dwoma szczelinami na akrylowe znaki. Wokół diod LED umieściłem podpórkę na znaki, aby się nie przechylały. W dolnej części obudowy umieściłem 4 magnesy więc można go łatwo dopasować do uchwytu na ekranie.
Wydrukuj po jednym z każdego pliku stl.
Krok 3: Grawerowanie akrylowych znaków
Użyłem mojej stacjonarnej maszyny CNC, SainSmart CNC 3018-PROVer. Szukałem darmowych ikon i konwertowałem je na wektory za pomocą oprogramowania inkview
Krok 4: Programowanie
Tutaj mamy aplikację po stronie klienta, czyli C# (dla Windows) i kod Arduino. Możesz je znaleźć tutaj.
Aby monitorować, kiedy kamera lub mikrofon są używane, monitoruję następującą ścieżkę w rejestrze systemu Windows: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam
oraz
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone
Za każdym razem, gdy otrzymujemy powiadomienie o zmianie, musimy przeszukać drzewo w poszukiwaniu zmian. Gdy urządzenie jest używane, LastUsedTimeStop wynosi 0, więc szukamy go i analizujemy klucz, aby uzyskać nazwę aplikacji, aby pokazać ją w powiadomieniu.
Komunikacja między Arduino a programem C# odbywa się przez port szeregowy. Komunikaty są w formacie JSON, więc łatwo będzie przenieść komunikację do czegoś innego, jeśli chcemy to zrobić w przyszłości.