Оглавление:

Компьютерная мышь Cyborg: 4 шага (с изображениями)
Компьютерная мышь Cyborg: 4 шага (с изображениями)

Видео: Компьютерная мышь Cyborg: 4 шага (с изображениями)

Видео: Компьютерная мышь Cyborg: 4 шага (с изображениями)
Видео: Тормозит, глючит, лагает, зависает мышка Windows 10, Windows 8 или Windows 7 - РЕШЕНО! 2024, Ноябрь
Anonim
Компьютерная мышь Cyborg
Компьютерная мышь Cyborg

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

Для этого абстрактного проекта мы создадим носимое устройство, которое позволит людям перемещаться по экрану компьютера без необходимости использования внешних технологий. Таким образом, мы могли использовать естественные движения рук вместо того, чтобы щелкать устройством по горизонтальной поверхности. Это также позволяет использовать экраны стоя, что делает устные презентации более приятными.

Что касается прототипа, будет использоваться указатель в качестве джойстика, средний палец для щелчка левой кнопкой, безымянный палец для щелчка правой кнопкой мыши и мизинец для включения и выключения устройства. Большой палец будет действовать как поверхность, на которой нажимаются кнопки. Все это будет добавлено в перчатку.

Запасы

  • (x1) Ардуино Леонардо
  • (x1) Протоборд
  • (x1) Модуль джойстика
  • (x3) Кнопка
  • (x20 ±) Проволочные перемычки
  • (x3) резисторы 1 кОм
  • (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; // входной контакт для левой кнопки мыши const int mouseRightButton = 5; // входной контакт для правой кнопки мыши const int joystickX = A1; // ось X джойстика const int joystickY = A0; // ось Y джойстика

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

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

логическое значение mouseIsActive = false; // нужно ли управлять мышью

int lastSwitchState = LOW; // предыдущее состояние переключателя

void setup () {

pinMode (startEmulation, ВХОД); // контакт переключателя pinMode (mouseMiddleButton, INPUT); // контакт средней кнопки мыши pinMode (mouseLeftButton, INPUT); // контакт левой кнопки мыши pinMode (mouseRightButton, INPUT); // контакт правой кнопки мыши

Mouse.begin (); // взять под управление мышь

}

void loop () {

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

// если он изменился и он высокий, переключить состояние мыши:

если (switchState! = lastSwitchState) {если (switchState == LOW) {mouseIsActive =! mouseIsActive; }}

// сохраняем состояние переключателя для следующего цикла:

lastSwitchState = switchState;

// считываем и масштабируем две оси:

интервал xReading = readAxis (A1); int yReading = readAxis (A0);

// если состояние управления мышью активно, переместите мышь:

если (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; // actualiza el estado del botón}}

// иначе кнопка мыши не нажата:

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, скорость курсора);

// если выходное чтение находится за пределами

// порог положения покоя, используйте его: int distance = reading - center;

если (абс (расстояние) <порог) {расстояние = 0; }

// возвращаем расстояние для этой оси:

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

Шаг 3: Установка прототипа

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

Первым делом пришиваем липучку к перчатке, вам нужно пришить четыре полоски липучки по одной к каждому пальцу. Сшили мягкую часть липучки.

Каждая кнопка имеет два провода, один из которых начинается от соответствующих контактов и подключается к положительному полюсу кнопки, а другой - к отрицательному. На другом конце отрицательного провода мы припаиваем сопротивления каждой кнопки плюс отрицательный провод джойстика к последнему проводу, который подключается к GND платы Arduino. Такое же параллельное соединение работает и для положительной стороны. (3 кнопки и положительная ножка джойстика)

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

Шаг 4: Начните использовать свою руку как мышь

Image
Image
Начни использовать свою руку как мышь!
Начни использовать свою руку как мышь!
Начни использовать свою руку как мышь!
Начни использовать свою руку как мышь!

Голосуйте за нас в конкурсе Assistive Tech Contest, если вам понравился проект.

Рекомендуемые: