Spisu treści:

Mysz komputerowa Cyborg: 4 kroki (ze zdjęciami)
Mysz komputerowa Cyborg: 4 kroki (ze zdjęciami)

Wideo: Mysz komputerowa Cyborg: 4 kroki (ze zdjęciami)

Wideo: Mysz komputerowa Cyborg: 4 kroki (ze zdjęciami)
Wideo: 5-minute crafts be like; 2024, Lipiec
Anonim
Cyborg mysz komputerowa
Cyborg mysz komputerowa

Wiele badań sugeruje, że postawa przy użyciu konwencjonalnej myszy komputerowej może być niebezpieczna. Mysz jest standardowym sprzętem komputerowym. Użytkownicy komputerów używają myszy prawie trzy razy częściej niż klawiatury. Ponieważ wskaźniki ekspozycji są wysokie, bardzo ważna jest poprawa postawy kończyn górnych podczas korzystania z myszy komputerowej.

W tym abstrakcyjnym projekcie stworzymy urządzenie do noszenia, które pozwoli ludziom poruszać się po ekranie komputera bez konieczności korzystania z zewnętrznej technologii. W ten sposób mogliśmy wykorzystać naturalne ruchy rąk zamiast klikać urządzeniem na poziomej powierzchni. Pozwala to również na korzystanie z ekranów w pozycji stojącej, uprzyjemniając prezentacje ustne.

Jeśli chodzi o prototyp, wskaźnik będzie używany jako joystick, środkowy palec do kliknięcia lewym przyciskiem, palec serdeczny do kliknięcia prawym i mały palec do włączania i wyłączania urządzenia. Kciuk będzie działał jak powierzchnia, na której naciskane są przyciski. Wszystko to zostanie dodane do rękawicy.

Kieszonkowe dzieci

  • (x1) Arduino Leonardo
  • (x1) Płyta prototypowa
  • (x1) Moduł joysticka
  • (x3) Przycisk
  • (x20±) Zworki z drutu
  • (x3) Rezystory 1KΩ
  • (x1) Zestaw do szycia rękawic
  • Rzep Gorący silikon
  • Zestaw do lutowania drutowego
  • Część drukowana w 3D

Krok 1: Skonfiguruj sprzęt

Skonfiguruj sprzęt
Skonfiguruj sprzęt

Załączyliśmy szkic Fritzing, aby lepiej zrozumieć projekt. Zalecamy najpierw montaż komponentów na płycie prototypowej. W ten sposób przed lutowaniem możesz sprawdzić, czy wszystko działa.

Krok 2: Prześlij kod i przetestuj

Po wykonaniu połączeń podłącz USB A (M) do micro USB B (M) z komputera do Arduino Leonardo i wgraj szkic. Zapraszam do kopiowania, modyfikowania i ulepszania szkicu.

OSTRZEŻENIE: Kiedy używasz polecenia Mouse.move(), Arduino przejmuje kontrolę nad myszą! Upewnij się, że masz kontrolę, zanim użyjesz polecenia. Działa tylko dla Arduino Leonardo, Micro lub Due

Oto nasz kod do tego projektu:

// Zdefiniuj szpilki#include; const int mouseMiddleButton = 2; // pin wejściowy dla środkowego przycisku myszy Przycisk const int startEmulation = 3; // przełącznik, aby włączyć lub wyłączyć emulację myszy const int mouseLeftButton = 4; // pin wejściowy dla lewego przycisku myszy Button const int mouseRightButton = 5; // pin wejściowy dla prawego przycisku myszy Przycisk const int joystickX = A1; // oś X joysticka const int joystickY = A0; // oś Y joysticka

// parametry do odczytu joysticka:

int kursorPrędkość = 10; // wyprowadzanie prędkości ruchu w osi X lub Y int responseDelay = 5; // opóźnienie odpowiedzi myszy, w ms int próg = cursorSpeed / 4; // próg spoczynkowy int center = cursorSpeed / 2; // wartość pozycji spoczynkowej int mouseMiddleState = 0;

wartość logiczna mouseIsActive = fałsz; // czy kontrolować mysz, czy nie

int lastSwitchState = NISKI; // poprzedni stan przełącznika

pusta konfiguracja () {

pinMode(startEmulation, INPUT); // pin przełącznika pinMode(mouseMiddleButton, INPUT); // środkowy przycisk myszy pinMode(mouseLeftButton, INPUT); // pin lewego przycisku myszy pinMode(mouseRightButton, INPUT); // szpilka prawego przycisku myszy

Mysz.początek(); // przejmij kontrolę nad myszą

}

pusta pętla () {

// odczytaj przełącznik: int switchState = digitalRead(startEmulation);

// jeśli jest zmieniony i jest wysoki, przełącz stan myszy:

if (switchState != lastSwitchState) { if (switchState == LOW) { mouseIsActive = !mouseIsActive; } }

// zapisz stan przełącznika dla następnej pętli:

lastSwitchState = switchState;

// odczytaj i wyskaluj obie osie:

int xReading = readAxis(A1); int yReading = readAxis(A0);

// jeśli stan kontroli myszy jest aktywny, przesuń mysz:

if (mouseIsActive) { Mouse.move(xReading, yReading, 0); // (x, y, przewijanie kółkiem myszy) }

//LEWO

// odczytaj przycisk myszy i kliknij lub nie kliknij: // jeśli przycisk myszy jest wciśnięty: if (digitalRead(mouseLeftButton) == HIGH) { // jeśli mysz nie jest wciśnięta, naciśnij ją: if (!Mouse.isPressed (MOUSE_LEFT)) { Mysz.naciśnij(MOUSE_LEFT); opóźnienie (100); // opóźnienie włączenia pojedynczego i podwójnego kliknięcia Mouse.release(MOUSE_LEFT); } }

// w przeciwnym razie przycisk myszy nie jest wciśnięty:

else { // jeśli mysz jest wciśnięta, zwolnij ją: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

//PRAWIDŁOWY

// odczytaj przycisk myszy i kliknij lub nie kliknij: // jeśli przycisk myszy jest wciśnięty: if (digitalRead(mouseRightButton) == HIGH) { // jeśli mysz nie jest wciśnięta, naciśnij ją: if (!Mouse.isPressed (MOUSE_RIGHT)) { Mysz.naciśnij (MOUSE_RIGHT); opóźnienie (100); // opóźnienie włączenia pojedynczego i podwójnego kliknięcia Mouse.release(MOUSE_RIGHT); } }

// w przeciwnym razie przycisk myszy nie jest wciśnięty:

else { // jeśli mysz jest wciśnięta, zwolnij ją: if (Mouse.isPressed(MOUSE_RIGHT)) { Mouse.release(MOUSE_RIGHT); } }

//ŚRODKOWY

// odczytaj przycisk myszy i kliknij lub nie kliknij: // jeśli przycisk myszy jest wciśnięty: if (digitalRead(mouseMiddleButton) == HIGH) { // jeśli mysz nie jest wciśnięta, naciśnij ją: if (!Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) { Mouse.press(MOUSE_MIDDLE); mouseMiddleState = 1; //aktualizacja stanu bota } }

// w przeciwnym razie przycisk myszy nie jest wciśnięty:

else { // jeśli mysz jest wciśnięta, zwolnij ją: if (Mouse.isPressed(MOUSE_MIDDLE) && mouseMiddleState == 1) { Mouse.release(MOUSE_MIDDLE); mouseMiddleState = 0; } }

opóźnienie(opóźnienie odpowiedzi);

}

/*

odczytuje oś (0 lub 1 dla x lub y) i skaluje zakres wejścia analogowego w zakresie od 0 do */

int readAxis(int thisAxis) {

// odczytaj wejście analogowe: int reading = analogRead(thisAxis);

// mapowanie odczytu z zakresu wejścia analogowego na zakres wyjściowy:

czytanie = mapa(odczyt, 0, 1023, 0, cursorSpeed);

// jeśli odczyt wyjścia jest poza

// próg pozycji spoczynkowej, użyj go: int distance = reading - center;

if (abs(odległość) < próg) { odległość = 0; }

// zwróć odległość dla tej osi:

odległość powrotu; }

Krok 3: Montaż prototypu

Montaż prototypu
Montaż prototypu
Montaż prototypu
Montaż prototypu
Montaż prototypu
Montaż prototypu

Pierwszym krokiem jest przyszycie rzepu do rękawicy, należy przyszyć cztery paski rzepu po jednym na każdy palec. Uszyliśmy miękką część rzepu.

Każdy przycisk ma dwa przewody, jeden, który zaczyna się na odpowiednich kołkach i łączy się z dodatnią odnogą przycisku, a drugi z odnogą ujemną. Na drugim końcu przewodu ujemnego lutujemy rezystancje każdego przycisku plus przewód ujemny joysticka do ostatniego przewodu, który łączy się z GND płytki Arduino. To samo połączenie równoległe działa po stronie dodatniej. (3 przyciski i pozytywna noga joysticka)

Po zlutowaniu zworek założymy twarde paski z rzepami, tak aby przewody wbijały się pomiędzy. Na koniec przykleiliśmy moduł joysticka do wydrukowanego elementu 3D. Poniżej znajdziesz plik. STL.

Krok 4: Zacznij używać dłoni jako myszy

Image
Image
Zacznij używać dłoni jako myszy!
Zacznij używać dłoni jako myszy!
Zacznij używać dłoni jako myszy!
Zacznij używać dłoni jako myszy!

Zagłosuj na nas w konkursie Assistive Tech Contest, jeśli podobał Ci się projekt.

Zalecana: