Spisu treści:

[Mysz do noszenia] Kontroler myszy do noszenia z interfejsem Bluetooth dla systemów Windows 10 i Linux: 5 kroków
[Mysz do noszenia] Kontroler myszy do noszenia z interfejsem Bluetooth dla systemów Windows 10 i Linux: 5 kroków

Wideo: [Mysz do noszenia] Kontroler myszy do noszenia z interfejsem Bluetooth dla systemów Windows 10 i Linux: 5 kroków

Wideo: [Mysz do noszenia] Kontroler myszy do noszenia z interfejsem Bluetooth dla systemów Windows 10 i Linux: 5 kroków
Wideo: 🟢 ROBIMY SOBIE TASKA NA GS MOIM RYCERZEM | REAL TIBIA 2024, Lipiec
Anonim
Image
Image
Połączenie akcelerometru z Raspberry Pi
Połączenie akcelerometru z Raspberry Pi

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

Połączenie akcelerometru z Raspberry Pi
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

Przycisk interfejsu z Raspberry Pi
Przycisk interfejsu 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ę:

  1. pyautogui.move(0, 200, 2) # przesuwa mysz w dół o 200 pikseli w ciągu 2 sekund
  2. 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

Opracowywanie skryptu w języku Python do sterowania wskaźnikiem myszy przez Bluetooth
Opracowywanie skryptu w języku Python 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:

  1. Utwórz przychodzący port COM Bluetooth.
  2. Sparuj Bluetooth Pi z Bluetooth laptopa, czyniąc Pi wykrywalnym.
  3. Zainstaluj Pythona w systemie Windows.
  4. Zainstaluj pip w systemie Windows. Pip służy do instalowania bibliotek na komputerze z systemem Linux lub Windows.
  5. Zainstaluj pyautogui w systemie Windows za pomocą: pip install pyautogui
  6. 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.
  7. 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,

    1. Pobierz i uruchom "Visual Studio Installer":
    2. Zainstaluj „Visual Studio Build Tools 2017”, zaznacz „Visual C++ build tools” i „Universal Windows Platform build tools”

    3. klon git
    4. cd pybluez
    5. python setup.py zainstalować

  8. 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.
  9. 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:

  1. Zainstaluj PyBluez na Pi
  2. 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

Osadzanie akcelerometru i przycisku na rękawicy
Osadzanie akcelerometru i przycisku na rękawicy
Osadzanie akcelerometru i przycisku na rękawicy
Osadzanie 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: