Компютърна мишка Cyborg: 4 стъпки (със снимки)
Компютърна мишка Cyborg: 4 стъпки (със снимки)
Anonim
Компютърна мишка Cyborg
Компютърна мишка Cyborg

Много проучвания показват, че позата на използване на конвенционална компютърна мишка може да бъде опасна. Мишката е стандартна компютърна техника. Потребителите на компютри използват мишката почти три пъти повече от клавиатурата. Тъй като процентът на експозиция е висок, подобряването на стойката на горните крайници при използване на компютърна мишка е много важно.

За този абстрактен проект ще направим носимо устройство, което позволява на хората да се движат през компютърен екран, без да е необходима външна технология. По този начин бихме могли да използваме естествените движения на ръцете, вместо да щракваме върху устройство върху хоризонтална повърхност. Това също позволява да се използват екрани в изправено положение, което прави устните презентации по -приятни.

Що се отнася до прототипа, той ще използва индекса като джойстик, средния пръст за ляв бутон, безименния за десен бутон и мизинец за включване и изключване на устройството. Палецът ще действа като повърхността, където бутоните се натискат. Всичко това ще бъде добавено в ръкавица.

Консумативи

  • (x1) Ардуино Леонардо
  • (x1) Protoboard
  • (x1) Модул на джойстика
  • (x3) Бутон
  • (x20 ±) Джъмпери
  • (x3) Резистори от 1KΩ
  • (x1) Комплект за шиене на ръкавици
  • Горещ силикон с велкро
  • Комплект за запояване с тел
  • 3D печатна част

Стъпка 1: Настройте хардуера

Настройте хардуера
Настройте хардуера

Включихме скица на Fritzing за по -добро разбиране на дизайна. Препоръчваме първо да монтирате компонентите на протоборд. По този начин можете да проверите дали всичко работи преди запояване.

Стъпка 2: Качете кода и тествайте

След като връзките се осъществят, свържете USB A (M) към micro USB B (M) от компютъра към Arduino Leonardo и качете скицата. Чувствайте се свободни да копирате, променяте и подобрявате скицата.

ВНИМАНИЕ: Когато използвате командата Mouse.move (), Arduino превзема мишката ви! Уверете се, че имате контрол, преди да използвате командата. Работи само за Arduino Leonardo, Micro или Due

Ето нашия код за този проект:

// Дефиниране на щифтове#include; const int mouseMiddleButton = 2; // входен щифт за средата на мишката Button const int startEmulation = 3; // превключване за включване и изключване на емулация на мишка const int mouseLeftButton = 4; // входен щифт за лявата мишка Button const int mouseRightButton = 5; // входен щифт за мишката отдясно Бутон const int джойстикX = A1; // джойстик X ос const int джойстик Y = A0; // джойстик Y ос

// параметри за четене на джойстика:

int cursorSpeed = 10; // изходна скорост на X или Y движение int responseDelay = 5; // забавяне на отговор на мишката, в ms int праг = cursorSpeed / 4; // праг на почивка int center = cursorSpeed / 2; // стойност на позиция в покой int mouseMiddleState = 0;

булева мишкаIsActive = false; // дали да се контролира мишката или не

int lastSwitchState = НИСКО; // предишно състояние на превключване

void setup () {

pinMode (startEmulation, INPUT); // превключвателят pinMode (mouseMiddleButton, INPUT); // средният бутон на мишката pinMode (mouseLeftButton, INPUT); // щифта на левия бутон на мишката pinMode (mouseRightButton, INPUT); // щифт на десния бутон на мишката

Mouse.begin (); // поеме контрола върху мишката

}

void loop () {

// прочетете превключвателя: int switchState = digitalRead (startEmulation);

// ако е променено и е високо, превключете състоянието на мишката:

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

// запазваме състоянието на превключвателя за следващия цикъл:

lastSwitchState = switchState;

// четене и мащабиране на двете оси:

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

// ако състоянието на мишката е активно, преместете мишката:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, превъртете колелото на мишката)}

//НАЛЯВО

// прочетете бутона на мишката и щракнете или не щракнете: // ако бутонът на мишката е натиснат: if (digitalRead (mouseLeftButton) == HIGH) {// ако мишката не е натисната, натиснете го: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); забавяне (100); // забавяне за активиране на еднократно и двукратно щракване върху Mouse.release (MOUSE_LEFT); }}

// иначе бутонът на мишката не е натиснат:

else {// ако мишката е натисната, освободете я: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

// ПРАВО

// прочетете бутона на мишката и щракнете или не щракнете: // ако бутонът на мишката е натиснат: if (digitalRead (mouseRightButton) == HIGH) {// ако мишката не е натисната, натиснете го: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); забавяне (100); // забавяне за активиране на еднократно и двукратно щракване върху Mouse.release (MOUSE_RIGHT); }}

// иначе бутонът на мишката не е натиснат:

else {// ако мишката е натисната, освободете я: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// СРЕДНА

// прочетете бутона на мишката и щракнете или не щракнете: // ако бутонът на мишката е натиснат: if (digitalRead (mouseMiddleButton) == HIGH) {// ако мишката не е натисната, натиснете го: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // актуализиране на имота дел ботон}}

// иначе бутонът на мишката не е натиснат:

else {// ако мишката е натисната, освободете я: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

забавяне (responseDelay);

}

/*

чете ос (0 или 1 за x или y) и мащабира диапазона на аналоговия вход до диапазон от 0 до */

int readAxis (int thisAxis) {

// чете аналоговия вход: int read = analogRead (thisAxis);

// картографиране на показанията от обхвата на аналоговия вход към изходния диапазон:

четене = карта (четене, 0, 1023, 0, cursorSpeed);

// ако изходното отчитане е извън

// праг на положение на покой, използвайте го: int разстояние = четене - център;

if (abs (разстояние) <праг) {разстояние = 0; }

// връща разстоянието за тази ос:

обратно разстояние; }

Стъпка 3: Монтиране на прототипа

Монтиране на прототип
Монтиране на прототип
Монтиране на прототип
Монтиране на прототип
Монтиране на прототип
Монтиране на прототип

Първата стъпка е пришиването на велкро към ръкавицата, трябва да шиете четири ленти велкро по една към всеки пръст. Зашихме меката част на велкро.

Всеки бутон има два проводника, един, който започва от съответните щифтове и се свързва с положителния крак на бутона, а друг от отрицателния крак. В другия край на отрицателния проводник запояваме съпротивленията на всеки бутон плюс отрицателния проводник на джойстика към един последен проводник, който се свързва с GND на платката Arduino. Същата паралелна връзка работи и от положителната страна. (3 бутона и позитивен крак на джойстика)

След запояване на джъмперите ще сложим твърдите велкро ленти, така че проводниците да се забият между тях. Накрая термолепирахме модула на джойстика към 3D отпечатано парче. По -долу можете да намерите. STL файла.

Стъпка 4: Започнете да използвате ръката си като мишка

Image
Image
Започнете да използвате ръката си като мишка!
Започнете да използвате ръката си като мишка!
Започнете да използвате ръката си като мишка!
Започнете да използвате ръката си като мишка!

Гласувайте за нас в конкурса за помощни технологии, ако проектът ви хареса.

Препоръчано: