Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

DIY USB-трекпад на Arduino: превращаем старый ноутбучный тачпад в современное устройство ввода

Компоненты и материалы

Arduino Micro×1

Приложения и онлайн-сервисы

О проекте

Каждый раз, когда выходит новая Raspberry Pi, я смотрю характеристики и думаю: «Хочу сделать из неё ноутбук», но всегда встает одна проблема — не найти отдельный USB-трекпад. В этом проекте мы спасаем трекпад из старого сломанного ноутбука и превращаем его в USB-устройство с помощью Arduino Pro Micro.

Шаг 1: Детали

DIY USB-трекпад на Arduino: превращаем старый ноутбучный тачпад в современное устройство ввода

Нужны: трекпад от старого ноутбука, Arduino Micro и провода. Важно: подходят только Arduino Micro, Pro Micro и Leonardo — их можно запрограммировать как HID (устройства ввода), чтобы они определялись компьютером как мышь или клавиатура. Arduino Uno это не умеет. Arduino Pro Micro можно купить здесь. Если хотите купить трекпад — можно найти здесь.

Шаг 2: Почему это работает

DIY USB-трекпад на Arduino: превращаем старый ноутбучный тачпад в современное устройство ввода

Большинство старых ноутбучных трекпадов общались с компьютером через PS/2-интерфейс — у трекпада есть выходы PS/2: данные (Data) и такт (Clock). Arduino считывает эти данные и конвертирует в USB-протокол мыши. Не все трекпады одинаковые: почти все старые — PS/2, но некоторые новые — USB. Если нашли USB-трекпад, просто найдите его распиновку и подключите к USB — будет работать. Здесь мы используем обычный PS/2-трекпад и Arduino для превращения в USB-мышь.

Шаг 3: Проводка

DIY USB-трекпад на Arduino: превращаем старый ноутбучный тачпад в современное устройство ввода

Нужно найти 4 контактные площадки на трекпаде. Они обычно подписаны: T10 (Data), T11 (Clock), T20 и земля — большой открытый металлический участок. Аккуратно припаяйте провод к каждой площадке и соедините с соответствующими пинами Arduino Micro:

Важно: После пайки не давите на площадки — даже легкое давление может сдернуть их, и трекпад станет бесполезен. Лучше сразу зальте соединения горячим клеем.

Шаг 4: Установка библиотек

Нужны две библиотеки для Arduino IDE:

Скачайте, откройте папку libraries в Arduino IDE и положите их туда. PS/2 Library считывает данные с трекпада, Mouse Library превращает их в команды мыши для USB.

Шаг 5: Код

DIY USB-трекпад на Arduino: превращаем старый ноутбучный тачпад в современное устройство ввода

Загрузите код (ниже). Важно: В меню Tools → Board должен быть выбран Arduino Micro или Leonardo, иначе код не скомпилируется/не загрузится. После загрузки Arduino перезагрузится как HID-устройство и определится компьютером как мышь.

Код (thistouchpad.ino)

#include <Mouse.h>
#include <ps2.h>

#define PS2_DATA 10
#define PS2_CLK 9

byte mstat1, mstat2, mxy, mx, my, mz;
int msval[2];
int repeatCnt;

PS2 moose(PS2_CLK, PS2_DATA);

void setup() {
  Mouse.begin();
  moose.write(0xff); moose.read(); moose.read(); moose.read();
  moose.write(0xf0); moose.read(); delayMicroseconds(100);
  moose.write(0xe8); moose.read(); moose.write(0x03); moose.read();
  moose.write(0xe8); moose.read(); moose.write(0x00); moose.read();
  moose.write(0xe8); moose.read(); moose.write(0x01); moose.read();
  moose.write(0xe8); moose.read(); moose.write(0x00); moose.read();
  moose.write(0xf3); moose.read(); moose.write(0x14); moose.read();
  Serial.begin(9600);
}

void ms_read() {
  moose.write(0xeb); moose.read();
  mstat1 = moose.read(); mxy = moose.read(); mz = moose.read();
  mstat2 = moose.read(); mx = moose.read(); my = moose.read();
  msval[0] = (((mstat2 & 0x10) << 8) | ((mxy & 0x0F) << 8) | mx);
  msval[1] = (((mstat2 & 0x20) << 7) | ((mxy & 0xF0) << 4) | my);
  msval[2] = int(mz);
}

void loop() {
  ms_read();
  if (msval[0] > 0 && msval[2] > 10) { repeatCnt++; }
  else { repeatCnt = 0; }
  if (repeatCnt > 2) {
    msval[0] = map(msval[0], 580, 5164, -1023, 1023);
    msval[1] = map(msval[1], 1120, 5967, 1023, -1023);
    Mouse.move(msval[0]/200, msval[1]/200);
  }
}

Шаг 6: Завершение и устранение неисправностей

Теперь при касании трекпада должен двигаться курсор. Arduino работает как USB-устройство — вставляйте в любой компьютер, он сразу определится как USB-мышь независимо от ОС.

Если не хотите программировать и паять — можно купить PS/2→USB преобразователь, но не рекомендую: читал, что он портит данные трекпада и может сделать его непригодным. С Arduino можно полностью настроить всё под себя: скорость мыши, действия двойного тапа, прокрутка — см. страницу Arduino Mouse.

Если трекпад не шлет данные — посмотрите на обратную сторону, найдите номер детали, погуглите его с словом «pinout» — покажет, где Data, Clock и 5V.

Спасибо за чтение! Вопросы — в комментариях, постараюсь ответить.

Производственный процесс

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Настольная RGB-лампа с управлением жестами – Интерактивное беспроводное освещение
  3. Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
  4. Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
  5. Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
  6. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  7. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  8. MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона
  9. Голосовое управление бытовыми приборами: Bluetooth-управление через Google Assistant
  10. PiBot: Робот-пианист на Arduino для точного исполнения музыки