Як зробити вібромишь v2.0.


Такий мишкою прикольно грати у стрілялки, особливо CS - калаш так і вириває миша з рук, і розкид по реальніше - треба не тільки цілитися, а й постаратися утримати мишку, що дуже непросто, не дивлячись на маленький вібродвіжок !

Інструкція Рівень складності: Непросто 1 крок

Свого часу спантеличився змусити мишку працювати сабом - вібрувати на НЧ звуки (гранати, постріли в контр). Орієнтовна схема була продумана, але в підсумку забив - не так вже й важливо це, а складність, кількість переробок і налаштувань хоч і відносно мале, але воно того явно не варто було.

Але вібру вирішив все-таки зробити - хоч оцінити, як воно. У рунеті знайшов різні варіації але всього лише однієї схеми вібромиші - з прямим підключенням движка до кнопки миші. Що мене трохи засмутило - одна схема це дуже мало.
Схема гранично проста, але мене не влаштувала відразу: потрібно корпус дірявити під вимикач, та й кнопки миші сильно гвалтує.
Схема планувалася як тимчасова, на пару тижнів , кнопки могли і потерпіти (тим більше їм можна було значно полегшити життя будь-яким транзистором), а от з вимикачем не виходило:

  • Без вимикача неможливо працювати - по кнопках потрапляти важко, про більш тонкий операціях взагалі мовчу.
  • З вимикачем всередині миші можна працювати, але швидко набридне розбирати мишку при кожному запуску контри.
  • З вимикачем на корпусі взагалі все ідеально, але не хотілося псувати корпус

Шляхом мозкового штурму вдалося придумати гранично просту й універсальну схему, для управління якої не потрібні ніякі зайві кнопки. Все досить просто - все навантаження поклав на мікроконтроллер - один якраз валявся. Заодно і трохи досвіду з ними поимел.

У результаті після складання схема в незмінному вигляді живе вже близько 3-х років (хто там казав, що немає нічого більш постійного, ніж тимчасове:)), але з періодичною зміною прошивок: 1-2 рази на рік руки доходять че-нить підкрутити, оптимізувати або додати.

Схема проста і перевірена, так що вирішив їй поділитися - кому небудь та стане в нагоді.

Що ж дасть МК конкретно тобі, ALL ? Чимало:

  • більший час життя контактів
  • можливість програмувати реакції миші різної складності без втручання в схему
  • неушкоджений корпус (ніяких додаткових вимикачів і дірок)
  • корисний досвід: ти прокачати Скіл електронщика, і досягнеш 1-го рівня в цій нелегкій професії:)
  • і на десерт можна грабувати коровай змусити мишку зіграти хоч гімн РФ, змінивши плейлист (мотив природно, СЧ/ВЧ не потягнемо)

Торкнемося тему бездротових мишей:
препарувати таку мишку погана ідея:

  • Вони дорожчі - при пошкодженні більше збитку
  • Місця в них мало - більше складність монтажу і налагодження
  • Пристрій дещо складніше звичайних - важче розбирати/збирати
  • Харчування 2.4-3V замість 5V - щоб контролер запустився, треба шукати вихід перетворювача напруги на платі миші або перенастроювати контролер на знижене харчування.
  • Запас енергії батареї обмежений, а контролер буде сьедать по 1-4ма постійно, а під час роботи вібро аж до 40ма. Звичайно це несуттєво, але все-одно батареї сядуть визначено раніше.

Детальніше зупинимося на часі життя - для багатьох це не очевидно:
великий модуль з тієї статті, та ще з таким важким грузиком, їсть порядку підлогу ампера, і пускає цей струм через контакти кнопки, яким і так нещадно дістається в іграх:)
Плюс багато перешкод по бортової мережі своїми іскристими щітками розкидає (хоч би діод впаяли!) - контролер миші напевно переглючівает пристойно з такого щастя:)
Що таке полампера? При 5V це 2.5W. Це багато. Лазер потужністю всього в 0.5W ріже пластмасу, шкіру, запалює сірники (очі виносить геть).
Або подивися на резистори - вони потужністю 0.125Вт.
А тепер подивись на порівняння резисторів на верхньому написано 2Вт, нижній - 0.125Вт.
Так що думаю зрозуміло, яка пічка з кнопок виходить.

Звідси слідства:

  • USB (PS/2) контролери працюють на межі і рано чи пізно отгорят:)
  • Нестабільність роботи (постійний скидання контролера миші від просідання напруг або перешкод, створюваних потужним двигуном)
  • Найголовніше наслідок - такий великий струм йде через ніжні контакти кнопки, розжарений їх, змушуючи окислюватися і іскрити, значно знижуючи їм термін життя ... Мало того, такий струм і самі щітки на движку сьедает досить швидко (у мене в дитинстві багато таких движків на смітник з огризками щіток вирушило)
Але не бійся, не все так страшно:
  • Максимальний струм usb-порту 0.5A, і то тільки якщо в біосі на максимум харчування usb розігнано, так що межі є (у крайньому випадку порт отгоріт, але батьківщину мати в образу не дасть).
  • при підключенні мишки вона повинна домовиться з контролером порту про харчування. Моя запитує 100мА на все. Так що контролер порту більше не повинен віддавати. У реалі швидше за все це не так або всі на це забивають ... Треба міряти, чи віддасть порт полампера при КЗ, але влом:) Але захисний діод в контролері при переплюсовке гріється дуже сильно - якщо не встигнеш швидко вийняти, доведеться чіпляти викруткою - такий гарячий ..

Поняття не маю, наскільки ти шариш в електроніці. Буду вважати, що погано. Навіть якщо це реально так, не бійся - для цієї схеми знань треба по мінімуму ... А ось рухів тіла доведеться зробити дуже багато, і трохи напружити соображалка.

Етапи збирання:
  • огляд миші
  • покупка деталей
  • збірка програматора
  • підключення програматора та прошивка
  • переробка миші
  • настройка параметрів прошивки
  • відновлення миші

Деякі етапи можуть бути зайвими. Так, якщо у тебе є програматор, паяльник і дохла мати/БП, то тобі не треба купувати деталі (крім контролера звичайно) і збирати програматор.
.
.

У загальному випадку тобі потрібні:
  • хоча б початкові знання електроніки або прокачаних кмітливість (або везіння +2) (щоб прочитати схему програматора і знайти куди чого тикати паяльником)
  • "поціент" - мишка з перемикачем чутливості (дозволу, DPI ) (її і будемо препарувати)
  • будь-яка запасна мишка, нехай навіть напівубитий - головне щоб курсор ворушився і ліва кнопка працювала (сильно полегшить прошивку, але особливо не потрібна, якщо вмієш компом без мишки управляти)
  • програматор (хоча б найпростіший "5-проводков"). Якщо ні, доведеться і його зібрати:
    • обов'язкова наявність Com-порту в компі або у друзів, або наявність перехідника usb2com або хоча б lpt (схема-то аналогічна):)
    • 8 - пінів DIP панелька (застромимо в програматор)
    • резистори: 7 штук по 1кОм (будь-якої потужності, можна понадергать з убитої електроніки, якщо тестер є)
    • діоди: 3 будь-яких, наприклад КД522 або КД510 або 1N4148 (думаю згодяться абсолютно будь-які, насмикати з убитої електроніки не проблема. Я взагалі переходи транзисторів КТ315 використовував:))
    • разьем DB-9F мама ( будемо програматор в com-порт встромляти)
    • разьем usb-тато (зрізати з убитою мишки або клави) або (для екстремалів - феєрверк може бути) molex-тато
    • Дроти - шлейф, на зразок цього (4 жили кожна зі своїм екраном), довжиною 1-2 метри, і трохи тонкого одножильного проводу (будь-якого)
  • шматочок паперу і ручка (треба все записувати і замальовувати . Хоча досвідченим можна і в умі)
  • тонка хрестова викрутка (розкрити поціента миша)
  • будь тестер або світлодіод з батарейками (шукати нафту +5 V в мишці)
  • будь-паяльник, олово і каніфоль (це така штука бурштинова, що так смачно пахне:)) До речі, дуже зручна олов'яна дріт з каніфоллю
  • мікроконтроллер ATtiny13 в DIP корпусі (саме в DIP )
  • вібродвігатель від стільникового, він маленький, і виглядає приблизно так так чи так чи так чи навіть так
  • 8-пінів DIP панелька (застромимо на мишку)
  • Algorithm Builder завантажити 3Мб для редагування прошивок
  • uniprof завантажити 430Кб для заливки прошивок
  • Прошивка (опис в кінці статті)
2 крок Огляд миші Основна мета:

знайти куди підпаяти харчування контролера і де забирати сигнали з кнопок

Що потрібно:
  • миша
  • тонка хрестова викрутка
  • папір, ручка

.
.
Розбирав мишку і:

  • уважно оглянь зворотну сторону плати в зоні головних кнопок: лівою і правою
  • знайди де плюс і мінус, подивися як працюють кнопки
  • намалюй на папері схему цієї частини

Перевір тестером або світлодіодом контакти кнопок при підключеній до комп'ютера мишці - де там "+", а де "0", що буде при натиснутій і не натиснутій кнопці? Всі записуй і замальовують на папір!
Якщо тестера немає, юзай світлодіод.


У нього є 2 ніжки: "+" і "-". Світлодіод горить тільки тоді, коли на його "+" йде напруга +5 V, а "-" з'єднаний з нулем миші. Так що час від часу змінюй ніжки місцями - якщо в обох положеннях не горить - на обох ніжках "0", якщо в одному з положень горить - на одній з ніжок є +5 V.
.
.
Як правило схеми цій частині у мишок стандартні: кнопки - звичайні мікроперемикачі, до одного контакту підключений "+", а до іншого "0".
При натисканні кнопки "+" замикається на "0" і на всій лінії виходить напруга 0V. Контролер миші це бачить і говорить комп'ютера, що ти щось натиснув ...
.
"0" або на землі ( GND ) можна ще пізнати по характерній рисі - вона, як правило, займає більшу площу, тобто найширша доріжка, яка заповнює весь вільний простір
.
.
Намалював? повинно вийти щось у цьому роді:

.
.
Для прикладу розберу ще одну фотку зі статті в заголовку:

Навіть без тестера, на око, видно, що на вході "0" (найширша доріжка), один з виходів підключений до "+" (центральний, тоненький, там же вхід контролера миші), інший до "0"
.
Тобі треба знайти в себе такий-же тоненький висновок - там напевно буде "+". Він йде від контактів кнопки кудись у нетрі схеми (не треба шукати куди саме - скажу відразу - до контролера миші)
Знайшов? Заміряв сигнал? Замалював? А тепер запам'ятай це місце: сюди будеш врізати новий контролер (в сигнальну доріжку, ту, на якій "+", і яка йде до контролера миші) ...
.
.
Виміру напруги на вхідному разьеми мишки - тобі треба знайти +5 V і 0.

На цій фотці це білий роз'єм справа внизу - до нього підключений кабель з комп'ютера
З іншого боку плати його можна побачити на попередній фотці - там 5 контактів рядком і червона стрілочка ...
Автор фотки пише, що "+" у нього виявився червоним центральним контактом
.
У мене мишка інша - Oklick 765L. У моєму випадку разьема як такого не було - проводи були безпосередньо упаяні в плату ... Але потрібні виявилися на мою самими крайніми: з одного краю +5 V (червоний провід), з іншого 0 (зелений). Але за точність не ручаюсь - це було давно, і з тих пір мишка не перепаював.
Так що тут треба обов'язково всі проміряти тестером або светодіодіком ...
.
Спростити цю процедуру допоможе такий факт:
Поряд з цим роз'ємом бувають написи на платі: + Vcc, GND , так от, + Vcc це і є +5 V, а GND - це 0.
заміряв, знайшов, замалював? Звідси буде харчуватися новий контролер

.
.
І наостанок визнач схему роботи кнопки перемикання чутливості:

.
У мене це окремий блок кнопок , на якому 3 кнопки: Forward, Back, Dpi
Ось що вийшло:

Як видно зі схеми, кнопки Fwd і Bck працюють стандартно: замикають "+" на "0" ...
.
У тебе схема буде трохи відрізнятися, але підключати контролер будемо все-одно до тієї-ж кнопці (Dpi), з того боку, де до неї "+" підходить (верхня частина, після діодів )

.
.
Все! Збирай мишку і уклади замальовки в таке місце, де їх гарантовано можна буде відшукати через місяць, коли у тебе будуть деталі.
Хоча якщо у тебе контролер і програматор під рукою, можеш пропустити наступні 2 кроку і відразу приступити до складання.

3 крок Купівля деталей Основна мета:

отримати контролер і/або деталі для програматора

Що потрібно:
  • час
  • гроші

Тут варіантів мало - магазин, ринок або інтернет
Купуй, що є, в магазині чи на ринку, решта - через інтернет. Частина деталей взагалі можна з убитою електроніки спаяти.
Паяльник і тестер купувати зовсім необов'язково - це дорого, та й потрібні вони всього лише на час роботи. Розпитай друзів - напевно у кого-небудь є. А тестер взагалі можна замінити лампочкою (або светодіодіком) з батарейками
.
В інтернеті є кілька сайтів, де продають, і навіть висилають поштою, радіодеталі ...
У загальному випадку дивіться тут
Ну а я перерахую відомі:

  • Чіп і Діп - Є майже всі, але вчетверо дорожче, ніж скрізь
  • Терраелектроніка - є майже все, недорого
  • кельми - у списку є недорогі магазини
  • Контест - є не всі, але недорого, і доставка теж недорога
  • Деякі навіть примудряються робити замовлення на аукціонах, на зразок молотка і eBay

.
Отже, вибирай, де будеш замовляти, але особливу увагу зверни на доставку: деякі магазини пропонують вкрай невигідні або дорогі форми доставки, і часто є якийсь мінімальний поріг замовлення (магазин відішле тобі замовлення, тільки якщо він перевищить цю суму) ... Зазвичай він у межах 200-500р, природно чим менше, тим краще ... Сам око поклав на Радіо-Хіт - недорого, і начебто без порога ...
.
Щодо оплати: деякі магазини приймають безготівку, деякі квитанції висилають на e-mail, деякі посилають післяплатою - тут варіантів багато ...
І зверни увагу на повернення - у більшості випадків все нормально, але іноді можуть надіслати що-небудь не те, як дешевше, так і дорожче того, що ти замовив (як пощастить:)) - скрізь працюють люди, так що помилки неминучі ...

4 крок Збірка програматора Основна мета:

отримати програматор :)

Що потрібно:
  • паяльник, олово, каніфоль
  • пінцет (щоб пальці не відгоріло)
  • кусачки (або маленькі ножиці)
  • дроти
  • Com-роз'єм (DB-9F)
  • резистори
  • діоди
  • одна з 8-ми пінових DIP панельок
  • usb (або molex) разьем ...

.
Так само потрібно трохи інформації:

  • терморегулятори контролера
  • терморегулятори Com-порту
  • схема програматора
  • терморегулятори usb (або molex)
  • як навчитися паяти
  • поради з пайки
    Останні два пункти вчити і пробувати до повного просвітлення

.
.
Приступимо ...
Для початку розклади всі схеми і визнач куди і чого паяти:

.
Спочатку зверни увагу на Com-порт - по фотографії видно, що він показаний з лицьового боку, а при пайку ти його будеш спостерігати з іншого, внутрішньої сторони - тут головне не переплутати, де яка ніжка - з внутрішньої сторони номери ніжок, природно, зміняться на дзеркальні - все це і так ясно, але тут все-одно легко помилку зробити.
.
Потім подивися на схему - зліва підпису DB-9F і DB-25F - це Com-порт, і LPT - порт, відповідно ... Тобі потрібен буде перший, тому дивися тільки на цифри під написом DB-9F. Ці цифри - номери ніжок, до яких ти будеш паяти дроти ...
.
І тут же подивися на праву її частина - що це там під написом CHIP ? А це - інтерфейс контролера, шукай такі-ж написи на схемі контролера і переводь їх в номери ніжок:
Reset = 1
Mosi = 5
Sck = 7
Gnd = 4
Miso = 6
.
І остання фішка - паяем не до контролеру, а до DIP -панелі - Пронумеруй її ніжки так-же, як і у контролерів.
Щоб не заплутатися, стеж за виїмкою на одному з торців панельки.
Коли будеш визначати номери ніжок, стеж, щоб виїмка на панелі теж дивилася вгору (як у контролерів точка на малюнку) - це дасть можливість безпомилково встромляти контролер в панельку завжди правильною стороною!
.
І зверни увагу на 8-у ніжку контролера (Vcc) - її немає на схемі програматора, але вона знадобиться - це "+" контролера:
Vcc = 8
Сюди подаватимеш +5 V.
.
Тепер на рахунок дроти: чим коротше, тим надійніше. Але якщо провід екранований - можна довше робити. Рекомендують між комп'ютером і контролером довжину кабелю не більше 1 метра. Але в багатьох і при 2-х метрах працює - тут вже як пощастить. А от від програматора до контролера краще не ризикувати - в межах 20-30 см.
Довжину дроти вибирай сам, як буде зручніше.
.
І визначся з діодами, знайди де у них "+ ", а де" - ".
Тут описано, як це можна зробити
Можна використовувати тестер або світлодіод/лампочку з батарейками ...
Треба підключити батарейку до світлодіоду/лампочці, так, щоб вони загорілися . Якщо вони не загорілися - переверни світлодіод або батарейку ...
Якщо загорілися - йдемо далі - відключаємо одну сторону батарейки від лампочки і включай між цією стороною батарейки і лампочкою звичайний діод.
Лампочка не загорілася? Перевертаємо звичайний діод - повинна спалахнути.
Якщо не горить у будь-якому положенні, або навпаки горить у будь-якому положенні - викидай цей діод - він несправний.
Потрібен такий діод, з яким в одному положенні лампочка горить (тестер пищить або показує опорі до 1000 Ом), а в іншому не горить (тестер показує опір більше 100000 Ом і не пищить)
Знайшов такий? Підібрав те положення, коли лампочка горить? Тепер дивись: та ніжка діода, що йде до "-" батарейки теж буде "-", а та, що йде до "+" батарейки - буде теж "+". Все!