Cyborg компьютерлік тінтуірі: 4 қадам (суреттермен)
Cyborg компьютерлік тінтуірі: 4 қадам (суреттермен)
Anonim
Cyborg компьютерлік тышқаны
Cyborg компьютерлік тышқаны

Көптеген зерттеулер кәдімгі компьютерлік тінтуірдің позасы қауіпті болуы мүмкін екенін көрсетеді. Компьютер қолданушылары тышқанды пернетақтадан үш есе көп пайдаланады. Экспозиция жылдамдығы жоғары болғандықтан, компьютерлік тінтуірді пайдалану кезінде жоғарғы аяқтың қалпын жақсарту өте маңызды.

Бұл дерексіз жоба үшін біз адамдарға сыртқы технологияны қажет етпестен компьютердің экраны арқылы өтуге мүмкіндік беретін киінетін құрылғы жасаймыз. Осылайша біз көлденең бетке құрылғыны басудың орнына қолды табиғи қозғалыстармен қолдана аламыз. Бұл сонымен қатар экрандарды тұру кезінде қолдануға мүмкіндік береді, бұл ауызша презентацияны жағымды етеді.

Прототипке келетін болсақ, индексті джойстик ретінде, ортаңғы саусақты сол жақ шерту үшін, саусақты оң жақ шерту үшін және құрылғыны қосу мен өшіру үшін қызғылт түсті етіп қолдану керек. Бас бармақ батырмалар басылатын бет ретінде әрекет етеді. Мұның бәрі қолғапқа қосылады.

Жабдықтар

  • (x1) Ардуино Леонардо
  • (x1) Protoboard
  • (x1) джойстик модулі
  • (x3) батырмасы
  • (x20 ±) Сым секіргіштері
  • (x3) 1KΩ резисторлары
  • (x1) Қолғап тігуге арналған жинақ
  • Velcro ыстық силикон
  • Сымдарды дәнекерлеу жиынтығы
  • 3D басып шығарылған бөлік

1 -қадам: Жабдықты орнатыңыз

Жабдықты орнатыңыз
Жабдықты орнатыңыз

Біз дизайнды жақсы түсіну үшін Fritzing эскизін енгіздік. Алдымен компоненттерді протон тақтасына орнатуды ұсынамыз. Осылайша сіз дәнекерлеу алдында бәрі жұмыс істейтінін тексере аласыз.

2 -қадам: кодты жүктеңіз және тест жасаңыз

Байланыс орнатылғаннан кейін USB A (M) микро USB B (M) -ге компьютерден Arduino Leonardo қосылып, эскизді жүктеңіз. Эскизді көшіруге, өзгертуге және жетілдіруге болады.

ЕСКЕРТУ: Mouse.move () пәрменін қолданғанда, Arduino тінтуірді қабылдайды! Пәрменді қолданар алдында сізде бақылау бар екеніне көз жеткізіңіз. Ол тек Arduino Leonardo, Micro немесе Due үшін жұмыс істейді

Міне, бұл жобаның коды:

// Pins#include анықтаңыз; const int mouseMiddleButton = 2; // тінтуірдің ортасына енгізу түйрегі Түймесі const int startEmulation = 3; // тінтуірдің эмуляциясын қосу және өшіру үшін ауысу const int mouseLeftButton = 4; // тінтуірдің кіріс түйрегіші сол жақ Button const int mouseRightButton = 5; // тінтуірдің оң жақ штыры үшін түйреуіш батырмасы const int joystickX = A1; // джойстик X осі const int joystickY = A0; // джойстик Y осі

// джойстикті оқу параметрлері:

int cursorSpeed = 10; // X немесе Y қозғалысының шығыс жылдамдығы int responseDelay = 5; // тінтуірдің жауап беруінің кешігуі, ms int threshold = cursorSpeed / 4; // демалыс шегі int center = cursorSpeed / 2; // демалыс орны мәні int mouseMiddleState = 0;

логикалық mouseIsActive = жалған; // тышқанды басқару керек пе, жоқ па

int lastSwitchState = LOW; // алдыңғы ауысу күйі

жарамсыз орнату () {

pinMode (startEmulation, INPUT); // pinMode коммутаторы (mouseMiddleButton, INPUT); // pinMode (mouseLeftButton, INPUT) тінтуірдің ортаңғы түйме түйрегіші; // pinMode (mouseRightButton, INPUT) тінтуірдің сол жақ батырмасы; // тінтуірдің оң жақ батырмасы

Тышқан.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, айналдыру тінтуір дөңгелегі)}

//СОЛ

// тінтуірдің батырмасын оқыңыз және шертіңіз немесе баспаңыз: // егер тышқан түймесі басылса: егер (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); }}

// ДҰРЫС

// тінтуірдің батырмасын оқыңыз және басыңыз немесе баспаңыз: // егер тышқан түймесі басылса: егер (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); }}

// ORDLE

// тінтуірдің батырмасын оқыңыз және шертіңіз немесе баспаңыз: // егер тышқан түймесі басылса: егер (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; }}

кешіктіру (кешіктіру);

}

/*

осьті оқиды (x немесе y үшін 0 немесе 1) және аналогты енгізу диапазонын 0 -ден */ дейін ауқымдайды

int readAxis (int thisAxis) {

// аналогтық кірісті оқу: int reading = analogRead (thisAxis);

// оқуды аналогты енгізу диапазонынан шығыс диапазонына салыстырыңыз:

оқу = карта (оқу, 0, 1023, 0, cursorSpeed);

// егер шығыс көрсеткіші сыртында болса

// демалыс позициясының табалдырығы, оны қолданыңыз: int қашықтық = оқу - орталық;

if (abs (қашықтық) <шекті) {қашықтық = 0; }

// осы оське дейінгі қашықтықты қайтарыңыз:

қайтару қашықтығы; }

3 -қадам: прототипті орнату

Прототипті орнату
Прототипті орнату
Прототипті орнату
Прототипті орнату
Прототипті орнату
Прототипті орнату

Бірінші қадам - қолғапқа велкро тігу, әр саусаққа бір жолақтан төрт жолақты тігу керек. Біз велкроның жұмсақ бөлігін тіктік.

Әр түймеде екі сым бар, олардың біреуі тиісті түйреуіштерден басталып, түйменің оң аяғына, екіншісі теріс аяғына қосылады. Теріс сымның екінші жағында біз әр түйменің кедергісін плюс джойстиктің теріс сымын Arduino тақтасының GND -не қосылатын соңғы сымға қосамыз. Дәл сол параллель байланыс оң жақ үшін жұмыс істейді. (3 түйме және джойстиктің оң аяғы)

Секіргіштерді дәнекерлеп болғаннан кейін, біз сымдардың арасында тұрып қалуы үшін қатты велкополонды киеміз. Ақырында біз джойстик модулін 3D баспаға термо-желіммен жапсырдық. Төменде. STL файлын таба аласыз.

4 -қадам: Қолыңызды тышқан ретінде пайдалануды бастаңыз

Image
Image
Қолыңызды тышқан ретінде пайдалануды бастаңыз!
Қолыңызды тышқан ретінде пайдалануды бастаңыз!
Қолыңызды тышқан ретінде пайдалануды бастаңыз!
Қолыңызды тышқан ретінде пайдалануды бастаңыз!

Егер сізге жоба ұнаған болса, Assistive Tech байқауында бізге дауыс беріңіз.

Ұсынылған: