Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Połączenie akcelerometru z Raspberry Pi
- Krok 2: Łączenie przycisku z Raspberry Pi
- Krok 3: Tworzenie skryptu w Pythonie do seryjnego sterowania wskaźnikiem myszy
- Krok 4: Opracowanie skryptu Pythona do sterowania wskaźnikiem myszy przez Bluetooth
- Krok 5: Osadzenie akcelerometru i przycisku na rękawicy
Wideo: [Mysz do noszenia] Kontroler myszy do noszenia z interfejsem Bluetooth dla systemów Windows 10 i Linux: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Stworzyłem kontroler myszy oparty na technologii Bluetooth, który może być używany do sterowania wskaźnikiem myszy i wykonywania operacji związanych z myszą PC w locie, bez dotykania jakichkolwiek powierzchni. Obwody elektroniczne, które są osadzone na rękawiczce, mogą być używane do śledzenia gestów rąk za pomocą akcelerometru, co można przełożyć na ruch wskaźnika myszy. To urządzenie jest również połączone z przyciskiem, który replikuje kliknięcie lewym przyciskiem. Urządzenie można podłączyć szeregowo do komputera (przez USB) lub bezprzewodowo przez połączenie Bluetooth. Bluetooth zapewnia solidną i uniwersalną komunikację bezprzewodową między urządzeniem hosta a myszą do noszenia. Ponieważ Bluetooth jest powszechnie dostępny i jest wbudowany w prawie wszystkie laptopy osobiste, zastosowanie takiego urządzenia do noszenia jest szerokie. Korzystanie z Raspberry Pi, które jest powszechnie używaną platformą programistyczną do różnych projektów, łączenie różnych czujników i tworzenie takiego urządzenia jest łatwe i skalowalne. Rękawicę można zastąpić dowolnym innym urządzeniem do noszenia, aby poszerzyć jej zastosowanie.
Jako środek ostrożności przeciwko COVID-19, zaleca się unikanie dotykania powierzchni, które mogą być używane przez różne osoby, a laptop z ekranem dotykowym lub mysz mogą znajdować się wśród tych wspólnych powierzchni. Korzystanie z takiego urządzenia do noszenia pomaga w utrzymaniu higieny i utrzymaniu higieny powszechnie używanych powierzchni:)
Kieszonkowe dzieci
- Raspberry Pi 3 Model B V1.2
- Akcelerometr trzyosiowy SparkFun Breakout - MMA8452Q
- Przewód połączeniowy męski na żeński
- Rękawiczka
- Taśma klejąca
- Nożyce
- Kabel micro-USB
- Kabel HDMI (do debugowania przez Raspberry Pi)
Krok 1: Połączenie akcelerometru z Raspberry Pi
Użyłem akcelerometru trójosiowego MMA8542Q firmy Sparkfun, który wykorzystuje protokół komunikacyjny I2C do komunikacji z pinami GPIO Raspberry Pi i wysyłania danych osi. Ten czujnik zapewnia różne tryby pracy z konfigurowalną szybkością transmisji danych, trybami uśpienia, zakresem przyspieszenia, trybem filtrowania itp. Kod od Pibits jest bardzo pomocny w mojej początkowej konfiguracji czujnika i testowaniu go za pomocą gestów rąk. Lepiej jest najpierw umieścić czujnik na płaskiej powierzchni i wykonywać deterministyczne przechyły obserwując surowe wartości czujnika. Jest to szczególnie przydatne w zrozumieniu, jak ten czujnik reaguje na różne gesty dłoni i jak możemy ustawić progi dla naszej aplikacji. Gdy akcelerometr zostanie pomyślnie połączony, możesz zobaczyć nieprzetworzone dane osi na ekranie terminala Pi.
Krok 2: Łączenie przycisku z Raspberry Pi
W tym urządzeniu do noszenia podłączyłem przycisk, który może działać jako lewy przycisk myszy, dzięki czemu mogę klikać ikony na ekranie. 2 końce przycisku są następnie połączone z 2 pinami GPIO Pi. Jeden z pinów wyprowadza logiczny wysoki, a drugi pin odczytuje tę wartość. Po naciśnięciu przycisku obwód zostaje zamknięty, a pin wejściowy jest w stanie odczytać wysoką wartość logiczną, która jest następnie przetwarzana przez skrypt, który napisałem, aby emulować kliknięcie lewym przyciskiem myszy. Z powodu braku lutownicy użyłem taśmy klejącej do połączenia zworek z przyciskiem.
Krok 3: Tworzenie skryptu w Pythonie do seryjnego sterowania wskaźnikiem myszy
Do sterowania wskaźnikiem myszy użyłem biblioteki Pythona Pyautogui. Powodem użycia tej biblioteki było to, że działa ona zarówno na platformie Linux, jak i Windows. Aby kontrolować wskaźnik myszy na moim Raspberry Pi, najpierw podłączyłem moje Pi do wyświetlacza. Następnie do sterowania wskaźnikiem myszy użyłem następujących interfejsów API udostępnianych przez bibliotekę:
- pyautogui.move(0, 200, 2) # przesuwa mysz w dół o 200 pikseli w ciągu 2 sekund
- pyautogui.click() # kliknij myszą
W celu odfiltrowania danych o błędach pochodzących z akcelerometru wykorzystałem uśrednianie i inne metody filtrowania, które można łatwo zrozumieć dzięki dołączonemu kodowi. API pyautogui.move(0, y) zostało użyte w taki sposób, że wskaźnik myszy może poruszać się jednocześnie w górę lub w dół lub lewo-prawo. Dzieje się tak, ponieważ akcelerometr zgłasza osie w kierunku X, Y i Z, ale API przyjmuje tylko 2 argumenty, osie X i Y. Stąd to podejście było bardzo odpowiednie dla mojego akcelerometru i mapowania gestów na ekranie.
Krok 4: Opracowanie skryptu Pythona do sterowania wskaźnikiem myszy przez Bluetooth
Ta część to zaawansowana aplikacja, w której każdy laptop z funkcjami Bluetooth może komunikować się z Raspberry Pi w modelu komunikacji serwer-klient i bezprzewodowo przesyłać dane współrzędnych myszy. Aby skonfigurować 64-bitowego laptopa z systemem Windows 10, aby umożliwić komunikację Bluetooth, musimy wykonać następujące czynności:
Windows 10:
- Utwórz przychodzący port COM Bluetooth.
- Sparuj Bluetooth Pi z Bluetooth laptopa, czyniąc Pi wykrywalnym.
- Zainstaluj Pythona w systemie Windows.
- Zainstaluj pip w systemie Windows. Pip służy do instalowania bibliotek na komputerze z systemem Linux lub Windows.
- Zainstaluj pyautogui w systemie Windows za pomocą: pip install pyautogui
- Po zainstalowaniu pyautogui na urządzeniu zainstaluj Pybluez w systemie Windows, używając następującego polecenia na terminalu Windows, używając: pip install PyBluez-win10. PyBluez umożliwia komunikację Bluetooth zarówno na komputerach z systemem Windows, jak i Linux.
-
Aby stworzyć aplikację na laptopie z systemem Windows 10, musimy zainstalować Microsoft Visual Studio (wymagane 15-20 GB miejsca) i jego narzędzia do budowania. Dlatego wraz z PyBluez musimy postępować zgodnie z poniższymi instrukcjami,
- Pobierz i uruchom "Visual Studio Installer":
-
Zainstaluj „Visual Studio Build Tools 2017”, zaznacz „Visual C++ build tools” i „Universal Windows Platform build tools”
- klon git
- cd pybluez
python setup.py zainstalować
- Jeśli powyższe instrukcje są prawidłowo przestrzegane, uruchomienie Pythona na terminalu Windows i importowanie modułu pyautogui i Bluetooth powinno działać bez błędów, jak na powyższym obrazku.
- W bibliotece pybluez zainstalowanej na komputerze z systemem Windows przejdź do: pybluez-master\examples\simple\rfcomm-server.py i wykonaj za pomocą pythona rfcomm-server.py. Jeśli terminal przejdzie w stan oczekiwania bez błędów, przejdź do poniższej sekcji, aby skonfigurować Bluetooth na Pi. Jeśli występują błędy podczas instalowania pybluez, zapoznaj się z problemami GitHub w celu debugowania.
Raspbian na Raspberry Pi:
- Zainstaluj PyBluez na Pi
- Uruchom przykład serwera w systemie Windows. Następnie na Pi przejdź do pybluez-master\examples\simple\rfcomm-client.py i wykonaj. Jeśli dwa urządzenia rozpoczęły komunikację, Bluetooth jest teraz skonfigurowany na obu urządzeniach. Aby dowiedzieć się więcej o tym, jak komunikacja za pomocą gniazd działa w Pythonie, zapoznaj się z tym linkiem z MIT.
W celu wysłania danych osi z Pi do komputera PC konieczne będzie dodatkowe parsowanie danych, ponieważ dane są przesyłane w bajtach. Zapoznaj się z załączonym kodem, aby uzyskać więcej informacji na temat komunikacji danych klienta i serwera.
Krok 5: Osadzenie akcelerometru i przycisku na rękawicy
Gdy akcelerometr jest dobrze połączony, szkielet systemu wygląda jak pierwszy obraz na tym etapie.
Ponieważ powierzchnia rękawicy nie jest płaska, użyłem atrapy karty kredytowej, która co jakiś czas trafia do mojej skrzynki pocztowej. Zgodnie z drugim obrazem na tym etapie, przykleiłem atrapę karty kredytowej na górnej powierzchni rękawicy taśmą klejącą. Nad kartą przyczepiłem mój akcelerometr. Ta konfiguracja była wystarczająco solidna, aby mój akcelerometr był stabilny i mógł dokładnie śledzić moje gesty.
Zalecana:
Przyjazna dla myszy na żywo pułapka IoT: 6 kroków (ze zdjęciami)
Przyjazna dla myszy IoT pułapka na żywo: jest to pułapka, w której można złapać myszy bez ranienia ich, aby można było je wypuścić na zewnątrz. Jeśli czujnik zbliżeniowy wykryje mysz, silnik Servo zamknie drzwi. Otrzymasz wiadomość błyskawiczną i/lub e-mail z informacją, że ograniczysz
RYB080l Samouczek Bluetooth dla urządzenia do noszenia: 8 kroków
RYB080l Samouczek Bluetooth dla urządzenia do noszenia: Hej, co słychać, chłopaki! Akarsh tutaj z CETech. Ten mój projekt jest bardziej krzywą uczenia się, aby zrozumieć działanie małego modułu Bluetooth firmy Reyax. Po pierwsze, zrozumiemy sam moduł i spróbujemy go użyć bezpośrednio, a następnie będziemy ko
Zabezpieczenie SCADA dla systemów sterowania opartych na Arduino: 5 kroków
Zabezpieczanie SCADA dla systemów sterowania opartych na Arduino: Kontrola nadzoru i akwizycji danych (SCADA) to platforma do monitorowania i zdalnego dostępu do systemów sterowania powszechnie stosowanych w wielu systemach przemysłowych, takich jak elektrownie, koleje, zakłady produkcyjne, huty, samoloty , s
SCADA dla systemów sterowania opartych na Arduino: 5 kroków
SCADA dla systemów sterowania opartych na Arduino: Kontrola nadzoru i akwizycji danych (SCADA) to platforma do monitorowania i zdalnego dostępu do systemów sterowania powszechnie stosowanych w szerokiej gamie systemów przemysłowych, takich jak elektrownie, koleje, zakłady produkcyjne, huty, samoloty i
Kontroler SNES w modzie myszy: 8 kroków
SNES Controller Into a Mouse Mod: Szybki i łatwy sposób na przekształcenie SNES Controller w działającą mysz optyczną