Innehållsförteckning:

Cyborg datormus: 4 steg (med bilder)
Cyborg datormus: 4 steg (med bilder)

Video: Cyborg datormus: 4 steg (med bilder)

Video: Cyborg datormus: 4 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Cyborg datormus
Cyborg datormus

Många studier tyder på att hållningen för att använda en konventionell datormus kan vara farlig. Musen är en standard datorutrustning. Datoranvändare använder musen nästan tre gånger så mycket som tangentbordet. Eftersom exponeringsfrekvensen är hög är det mycket viktigt att förbättra hållningen i övre extremiteterna när du använder en datormus.

För detta abstrakta projekt kommer vi att göra en bärbar som gör att människor kan röra sig genom en datorskärm utan att det behövs extern teknik. På så sätt kan vi använda händerna naturliga rörelser istället för att klicka på en enhet på en horisontell yta. Detta gör det också möjligt att använda skärmar medan du står, vilket gör muntliga presentationer trevligare.

När det gäller prototypen kommer indexet att användas som en joystick, långfingret för vänsterklicka, ringfingret för högerklickning och pinky för att slå på och av enheten. Tummen fungerar som ytan där knapparna trycks in. Allt detta kommer att läggas till i en handske.

Tillbehör

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Joystick -modul
  • (x3) Tryckknapp
  • (x20 ±) Trådhoppare
  • (x3) Resistorer på 1KΩ
  • (x1) Syskit för handskar
  • Kardborreband varm silikon
  • Trådlödningssats
  • 3D -tryckt del

Steg 1: Konfigurera hårdvaran

Konfigurera hårdvaran
Konfigurera hårdvaran

Vi har inkluderat en Fritzing -skiss för en bättre förståelse av designen. Vi rekommenderar att du monterar komponenterna på ett protoboard först. På så sätt kan du kontrollera att allt fungerar innan lödning.

Steg 2: Ladda upp koden och testa

När anslutningarna har gjorts ansluter du USB A (M) till micro USB B (M) från datorn till Arduino Leonardo och laddar upp skissen. Kopiera, modifiera och förbättra gärna skissen.

VARNING: När du använder kommandot Mouse.move () tar Arduino över musen! Se till att du har kontroll innan du använder kommandot. Det fungerar bara för Arduino Leonardo, Micro eller Due

Här är vår kod för detta projekt:

// Definiera Pins#inkluderar; const int mouseMiddleButton = 2; // inmatningsstift för musens mellersta knapp const int startEmulation = 3; // växla för att slå på och av musemulering const int mouseLeftButton = 4; // inmatningsstift för musen vänster Knapp const int mouseRightButton = 5; // inmatningsstift för musens höger Knapp const int joystickX = A1; // joystick X -axel const int joystickY = A0; // joystick Y -axel

// parametrar för att läsa joysticken:

int cursorSpeed = 10; // utmatningshastighet för X eller Y -rörelse int responseDelay = 5; // svarsfördröjning för musen, i ms int tröskel = cursorSpeed / 4; // vilotröskel int center = cursorSpeed / 2; // vilolägesvärde int mouseMiddleState = 0;

booleska mouseIsActive = false; // om man ska styra musen

int lastSwitchState = LÅG; // föregående switchläge

void setup () {

pinMode (startEmulation, INPUT); // switch pin pinMode (mouseMiddleButton, INPUT); // den mellersta musknappen pin pinMode (mouseLeftButton, INPUT); // vänster musknapp pin pinMode (mouseRightButton, INPUT); // höger musknapp

Mouse.begin (); // ta kontroll över musen

}

void loop () {

// läs switch: int switchState = digitalRead (startEmulation);

// om det har ändrats och det är högt, växla musläget:

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

// spara switch -tillstånd för nästa loop:

lastSwitchState = switchState;

// läs och skala de två axlarna:

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

// om musens kontrollläge är aktivt, flytta musen:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, rulla mushjul)}

//VÄNSTER

// läs musknappen och klicka eller klicka inte: // om musknappen trycks in: if (digitalRead (mouseLeftButton) == HIGH) {// om musen inte trycks in, tryck på den: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); fördröjning (100); // fördröjning för att aktivera enkel- och dubbelklicka på Mouse.release (MOUSE_LEFT); }}

// annars trycks inte musknappen:

annars {// om musen trycks in, släpp den: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//HÖGER

// läs musknappen och klicka eller klicka inte: // om musknappen trycks ned: if (digitalRead (mouseRightButton) == HIGH) {// om musen inte trycks in, tryck på den: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); fördröjning (100); // fördröjning för att aktivera enkel- och dubbelklicka på Mouse.release (MOUSE_RIGHT); }}

// annars trycks inte musknappen:

annars {// om musen trycks in, släpp den: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MITTEN

// läs musknappen och klicka eller inte klicka: // om musknappen trycks in: if (digitalRead (mouseMiddleButton) == HIGH) {// om musen inte trycks in, tryck på den: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// annars trycks inte musknappen:

annars {// om musen trycks in, släpp den: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

delay (responseDelay);

}

/*

läser en axel (0 eller 1 för x eller y) och skalar det analoga ingångsområdet till ett område från 0 till */

int readAxis (int thisAxis) {

// läs den analoga ingången: int reading = analogRead (thisAxis);

// mappa avläsningen från det analoga ingångsområdet till utgångsområdet:

läsning = karta (läsning, 0, 1023, 0, markörhastighet);

// om utmatningsavläsningen är utanför från

// vilopositionströskel, använd den: int distans = läs - centrum;

if (abs (avstånd) <tröskel) {distans = 0; }

// returnera avståndet för denna axel:

returavstånd; }

Steg 3: Montering av prototypen

Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen

Det första steget är att sy kardborrbandet i handsken, du måste sy fyra kardborrband ett till varje finger. Vi sydde den mjuka delen av kardborren.

Varje tryckknapp har två trådar, en som börjar vid respektive stift och ansluter till det positiva benet på knappen och en till på det negativa benet. I den andra änden av den negativa tråden löder vi motstånden för varje knapp plus den negativa tråden i joysticken till en sista tråd, som ansluts till Arduino -kortets GND. Samma parallella anslutning fungerar för den positiva sidan. (3 knappar och joystick positivt ben)

Efter lödning av hopparna sätter vi på de hårda kardborrebanden så att trådarna fastnar emellan. Slutligen termolimmade vi joystickmodulen till en 3D-tryckt bit. Nedan hittar du. STL -filen.

Steg 4: Börja använda handen som mus

Image
Image
Börja använda handen som en mus!
Börja använda handen som en mus!
Börja använda handen som en mus!
Börja använda handen som en mus!

Rösta på oss i Assistive Tech Contest om du gillade projektet.

Rekommenderad: