Поворотна клавіатура
У мене є колега, який любить згадувати старі добрі часи, коли в його бабусі й дідуся на стіні був поворотний телефон, який вони орендували в телефонній компанії. Поєднайте це з його відданістю десятиклавішній клавіатурі на повнорозмірній клавіатурі та тим фактом, що в моєму кошику для запчастин був старий поворотний циферблат, і шлях до цьогорічної першоквітневої витівки був очевидним. /p>
Звичайно, я маю на увазі, що купити дешеву механічну клавіатуру за 13 доларів на eBay і зламати поворотний диск було найрозумнішим рішенням.
ПрошивкаХоча найпростіший шлях із подібним проектом виготовлення лише для естетичної повноти, я вважав вкрай важливим, щоб циферблат справді працював для цифрового введення – тим більше, що я також планував видалити рядок цифр, таким чином змусивши використання поворотного диска для введення цифр або символів.
Мій поворотний диск має дві основні пари контактів. Один відкривається, коли циферблат переміщується за положення 1, а інший створює характерну серію імпульсів після відпускання (один імпульс на цифрове положення). Незважаючи на те, що можна використовувати переривання зміни контакту, часовий масштаб настільки великий, що очікування зайнятості є прийнятним. Для цього я використав DFRobot Beetle, оскільки його вбудований ATMega32u4 забезпечує власну функцію USB HID.
while (digitalRead(ACTIVE)) // Active-low { ціле число = 0; while (!digitalRead(ACTIVE)) { if (numericRead(PULSE)) { рахунок += 1; затримка (50); } } якщо (рахунок >= 2) { кількість /= 2; кількість = (рахунок == 10) ? 0: підрахунок; Keyboard.print(count); } }Через проблеми з усуненням дребезгу здається, що кожен імпульс зчитується двічі. У якийсь момент я мав би поглянути на нього, щоб переконатися, у чому проблема, але він працює досить добре, як є. (Моя перша спроба мала затримку лише 10 мс, що емпірично призвело до семикратного зчитування кожного імпульсу…)
ЕлектричнийДля живлення цієї клавіатури мені, здається, потрібні два кабелі, один для Arduino, а інший для оригінального контролера клавіатури. Однак це дещо незручно. Найбільш доцільною для мене була топологія — вставити USB-концентратор у клавіатуру, припаявши Arduino та контролер клавіатури до входів пристрою концентратора.
Це дозволило мені припаяти вбудований порт USB клавіатури до вихідного з’єднання концентратора. Отже, коли я підключаю фізичну клавіатуру до комп’ютера, я підключаю USB-концентратор, який дозволяє з’єднувати обидва пристрої, зберігаючи ілюзію USB-пристрою з одним кабелем. Найдешевший хаб із корисним форм-фактором, який я міг знайти, — це дивний трипортовий звір.
Як цікаво, верхній тригерний порт цього концентратора справді сумісний зі SuperSpeed: пари SSRX+/- і SSTX+/- є повністю незалежним інтерфейсом до пари D+/-, яка використовується для Full-Speed або Висока швидкість. ШвидкістьUSB, тому її можна направляти безпосередньо до порту без проміжного концентратора.
Чіп, який виконує всю важку роботу в цьому концентраторі, — це монолітний HS8836A, який нібито розроблений для високошвидкісного трафіку USB і має неймовірно низьку кількість допоміжних компонентів.
У моєму випадку мені довелося відпаяти наявні порти досить чисто, щоб уникнути розплавлення мікросхеми концентратора (я точно не розплавив перший, який замовив), і підключити сигнали USB від клавіатури та Arduino. Зверніть увагу, наскільки ця плата компактна завдяки HS8836A:
Я використовував екрановані диференціальні лінії від джгута дисплея LVDS iMac для підключення даних до Arduino, тому що вони сиділи в моїй купі сміття та не втікали досить швидко. Я підозрюю, що імпеданс зовсім вимкнений, але USB 1.1 надзвичайно надійний.
КлавіатураЩоб замінити клавішу на поворотний циферблат, мені довелося видалити всі перемикачі з цифрової клавіатури, що було відносно легко через те, що ця клавіатура має односторонню друковану плату, а мій паяльний присосок добре піднесений вгору.
Заміна основи циферблата на друковану плату була б...
![Поворотна клавіатура](http://squidgeefish.com/assets/rotary-keyboard/banner.jpg)
![](https://squidgeefish.com/assets/rotary-keyboard/banner.jpg)
У мене є колега, який любить згадувати старі добрі часи, коли в його бабусі й дідуся на стіні був поворотний телефон, який вони орендували в телефонній компанії. Поєднайте це з його відданістю десятиклавішній клавіатурі на повнорозмірній клавіатурі та тим фактом, що в моєму кошику для запчастин був старий поворотний циферблат, і шлях до цьогорічної першоквітневої витівки був очевидним. /p>
Звичайно, я маю на увазі, що купити дешеву механічну клавіатуру за 13 доларів на eBay і зламати поворотний диск було найрозумнішим рішенням.
ПрошивкаХоча найпростіший шлях із подібним проектом виготовлення лише для естетичної повноти, я вважав вкрай важливим, щоб циферблат справді працював для цифрового введення – тим більше, що я також планував видалити рядок цифр, таким чином змусивши використання поворотного диска для введення цифр або символів.
Мій поворотний диск має дві основні пари контактів. Один відкривається, коли циферблат переміщується за положення 1, а інший створює характерну серію імпульсів після відпускання (один імпульс на цифрове положення). Незважаючи на те, що можна використовувати переривання зміни контакту, часовий масштаб настільки великий, що очікування зайнятості є прийнятним. Для цього я використав DFRobot Beetle, оскільки його вбудований ATMega32u4 забезпечує власну функцію USB HID.
while (digitalRead(ACTIVE)) // Active-low { ціле число = 0; while (!digitalRead(ACTIVE)) { if (numericRead(PULSE)) { рахунок += 1; затримка (50); } } якщо (рахунок >= 2) { кількість /= 2; кількість = (рахунок == 10) ? 0: підрахунок; Keyboard.print(count); } }Через проблеми з усуненням дребезгу здається, що кожен імпульс зчитується двічі. У якийсь момент я мав би поглянути на нього, щоб переконатися, у чому проблема, але він працює досить добре, як є. (Моя перша спроба мала затримку лише 10 мс, що емпірично призвело до семикратного зчитування кожного імпульсу…)
ЕлектричнийДля живлення цієї клавіатури мені, здається, потрібні два кабелі, один для Arduino, а інший для оригінального контролера клавіатури. Однак це дещо незручно. Найбільш доцільною для мене була топологія — вставити USB-концентратор у клавіатуру, припаявши Arduino та контролер клавіатури до входів пристрою концентратора.
Це дозволило мені припаяти вбудований порт USB клавіатури до вихідного з’єднання концентратора. Отже, коли я підключаю фізичну клавіатуру до комп’ютера, я підключаю USB-концентратор, який дозволяє з’єднувати обидва пристрої, зберігаючи ілюзію USB-пристрою з одним кабелем. Найдешевший хаб із корисним форм-фактором, який я міг знайти, — це дивний трипортовий звір.
Як цікаво, верхній тригерний порт цього концентратора справді сумісний зі SuperSpeed: пари SSRX+/- і SSTX+/- є повністю незалежним інтерфейсом до пари D+/-, яка використовується для Full-Speed або Висока швидкість. ШвидкістьUSB, тому її можна направляти безпосередньо до порту без проміжного концентратора.
Чіп, який виконує всю важку роботу в цьому концентраторі, — це монолітний HS8836A, який нібито розроблений для високошвидкісного трафіку USB і має неймовірно низьку кількість допоміжних компонентів.
У моєму випадку мені довелося відпаяти наявні порти досить чисто, щоб уникнути розплавлення мікросхеми концентратора (я точно не розплавив перший, який замовив), і підключити сигнали USB від клавіатури та Arduino. Зверніть увагу, наскільки ця плата компактна завдяки HS8836A:
Я використовував екрановані диференціальні лінії від джгута дисплея LVDS iMac для підключення даних до Arduino, тому що вони сиділи в моїй купі сміття та не втікали досить швидко. Я підозрюю, що імпеданс зовсім вимкнений, але USB 1.1 надзвичайно надійний.
КлавіатураЩоб замінити клавішу на поворотний циферблат, мені довелося видалити всі перемикачі з цифрової клавіатури, що було відносно легко через те, що ця клавіатура має односторонню друковану плату, а мій паяльний присосок добре піднесений вгору.
Заміна основи циферблата на друковану плату була б...
What's Your Reaction?
![like](https://vidianews.com/assets/img/reactions/like.png)
![dislike](https://vidianews.com/assets/img/reactions/dislike.png)
![love](https://vidianews.com/assets/img/reactions/love.png)
![funny](https://vidianews.com/assets/img/reactions/funny.png)
![angry](https://vidianews.com/assets/img/reactions/angry.png)
![sad](https://vidianews.com/assets/img/reactions/sad.png)
![wow](https://vidianews.com/assets/img/reactions/wow.png)