Здравствуйте, гость ( Вход | Регистрация )

10 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Hardware UO Pilot, Аппаратный UO Pilot
Александр85
сообщение 20.5.2013, 8:50
Сообщение #1


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Всем привет =)
Предлагаю на рассмотрение аппаратную клавиатуру UOkeyboard - usb устройство эмулирующее нажатие клавиш клавиатуры.
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/9089/211554415.0/0_10f302_e4c1343e_L.jpg)
UOkeyboard, это usb устройство гаджет которое работает как usd-hid клавиатура и посылает нажатия клавиш, по заданному алгоритму. UOkeyboard довольно полезная штука в ситуациях, когда нужно долго и монотонно кликать по одним и тем же кнопкам.
Теперь не требуется судорожно жать на все кнопки! Стоит просто подключить данное устройство в свободный USB разъем компьютера, и нажатие клавиш клавиатуры будет автоматическое по заданному вами алгоритму!
Одной из приятных особенностей является то, что UOkeyboard не "палится" системой защиты.
Поскольку он не требует драйвера, и определяется как обычная клавиатура. Для HID-устройств USB не нужны драйвера в операционных системах Windows, драйвер находиться уже в самой ОС.
При первом подключении, ПК автоматически распознает UOkeyboard, занимает несколько секунд.
Прикрепленное изображение
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/9164/211554415.0/0_10f2ef_2930a705_M.jpg)
(IMG:http://img-fotki.yandex.ru/get/9153/211554415.0/0_10f2f0_3d1dbc81_M.jpg)
В дальнейшем при использовании UOkeyboard, гаджет начинает сразу же работать при подключении в USB.
Возможные варианты использования UOkeyboard:
I.Отлично помогает в пвп.
II.Прокачивать персонажа.
III.Cпам сообщений в чат.
Схема UOkeyboard
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/9090/211554415.0/0_10f301_2d3939c9_L.jpg)
Данный девайс UOkeyboard был разработан на основе МастерКидовского набора MP1505 - Клавиатурная шутка Мастер Кит. Был перепрограммирован микроконтроллер написанной мною программой, задан алгоритм нажатия клавиш клавиатуры.
Теперь по порядку:
1. Описание схемы:
Основой данного девайса является микроконтроллер фирмы Atmel AVR - ATtiny45, ножки которого 5 и 7 подключены через резисторы 68 Ом к USB разъему. Эти резисторы 68 Ом несут защитную функцию. Диоды D2, D3 необходимы для согласования требования стандарта USB по уровням сигналов. Светодиод D1 нужен для индикации работы устройства UOkeyboard. Для программирования микроконтроллера стоит разъем ISP. (в Мастер Китовском наборе его нет.)
2. Описание программы для прошивки UOkeyboard:
Прошивка для UOkeyboard основан на коде AVR USB и доступен на условиях лицензии GNU (Универсальная общественная лицензия). Микроконтроллер ATtiny45 не поддерживает аппаратного USB протокола, поэтому пришлось писать программный интерфейс USB. Из-за этого программа выросла в размерах. Я выкладываю исходник прошивки с комментариями.
При написании программы использовались программа AVR Studio — интегрированная среда разработки (IDE) для разработки 8-ми и 32-х битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7. А также программный пакет WinAVR — включающий в себя кросс-компилятор и инструменты разработки для микроконтроллеров серий AVR и AVR32 фирмы Atmel. Прошивка для UOkeyboard написана на язике Си для AVR микроконтроллеров.
Желающих ознакомиться с основами программирования на язике Си под AVR микроконтроллеры советую почитать тут.
3. Как прошить UO keydoard.
После того как готова прошивка с заданным алгоритмом работы UO keydoard нам понадобиться программатор для микроконтроллера ATtiny45. Я использую вот этот AVR программатор . Вы можете использовать любой другой. Думаю с прошивкой микроконтроллера проблем не будет, там все тривиально.

Теперь все готово, подключаем UO keydoard в свободны разъем USB и наслаждаемся работой =)

Эта разработка абсолютно бесплатная (Freeware), распространяется "как есть" ("As is"),
то есть вы используете ее на свой страх и риск! И я, как автор, не несу никакой ответственности
за последствия, связанные с использованием этого устройства на Вашем компьютере.

Жду ваших отзывов о данной разработке, замечаний, предложений ....

Желающих собрать схему самостоятельно, выкладываю полный список комплектации:
1. МК ATtiny45
2. макетная плата
3. USB разъем
4. 2 резистора 68 Ом (0.25 Вт)
5. 1 резистор 2.2к Ом и 1 резистор 470 Ом (0.25 Вт)
6. 2 диода DL4148 (или любой другой маломочный)
7. 1 светодиод (любой по вашему желанию)
8. Конденсатор 0.1 мкФ
9. Разъем ISP
10. Панелька под контроллер если будете брать в корпусе DIP8.

Схему лучше собрать на монтажной плате, и вкинуть в подходящий корпус.
Выглядит это примерно так =)
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/9110/211554415.0/0_10fbb6_bcad132a_M.jpg)

Выкладываю прошивку которую, я брал за основу. Исходный код прошивки распространен на условиях лицензии GNU (Code and Life=) Данная прошивка эмулирует USB-клавиатуру и генерирует нажатия на кнопки. Файл для прошивки микроконтроллера Haunted-USB.hex находиться в папке default.
СКАЧАТЬ
Тут прошивка, исходный код программы на Си, весь проект в AVRstudio. (архив желательно распаковать на диск С в корневик)

ПОСТ ЕЩЕ НЕ ДОПИСАН.....


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 19:14
Сообщение #2


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Отличная работа!

Сразу скажу, что я далек от разработки электрических схем и вряд ли самостоятельно смогу собрать подобный девайс для тестирования )

Однако вопросы есть:
1) где же прошивка? (IMG:style_emoticons/default/smile.gif)
2) поясните, как это работает? Воткнули в комп, опозналось. Что с этим делать дальше- как посылать команды для нажатия/отжатия отдельных кнопок/комбинаций кнопок? )
3) почти п.2. Как из скрипта пилота посылать команды на девайс?
4) можно ли его впоследствии перепрограммировать?
5) есть ли подходящие программаторы (за разумные деньги) не виде отдельных плат, а в виде девайса, подключаемого к USB-порту ноута? Или этот программатор так и работает?
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

Сообщение отредактировал Zeleax - 20.5.2013, 19:41


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.5.2013, 19:52
Сообщение #3


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

Я бы даже немного иначе выразился. Можно ли считывать какой-нибудь уникальный ид чипа, которой нельзя изменить?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 20:32
Сообщение #4


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(Zeleax @ 20.5.2013, 20:14) *

Отличная работа!

Сразу скажу, что я далек от разработки электрических схем и вряд ли самостоятельно смогу собрать подобный девайс для тестирования )

Однако вопросы есть:
1) где же прошивка? (IMG:style_emoticons/default/smile.gif)
2) поясните, как это работает? Воткнули в комп, опозналось. Что с этим делать дальше- как посылать команды для нажатия/отжатия отдельных кнопок/комбинаций кнопок? )
3) почти п.2. Как из скрипта пилота посылать команды на девайс?
4) можно ли его впоследствии перепрограммировать?
5) есть ли подходящие программаторы (за разумные деньги) не виде отдельных плат, а в виде девайса, подключаемого к USB-порту ноута? Или этот программатор так и работает?
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

Большое спасибо что оценили мой труд =)
Отвечаю по порядку.
1. Прошивку, я постараюсь выложить завтра, нада ее причесать и написать комментарии для понимания обычным человеком далекого от программирования микроконтроллеров. Прошивка написанная на языке Си.
2. Работает очень просто. Запрограммировал микроконтроллер нужным алгоритмом нажатия клавиш, воткнул в USB и пошло нажатие клавиш по заданному алгоритму.
3. На данном этапе никак. Эта перспектива на будущее, интеграция Пилота и моего девайса. Совместными усилиями это реально сделать.
4. Конечно можно! Программировать можно около 100 000 раз, пока не сотрешь энергонезависимую память микроконтроллера.
5. Да это внутрисхемный программатор, он подключается к USB-порту. Можно купить любой другой за меньшую сумму, я написал которым сам пользуюсь. В дальнейшем если приложить усилия к развитию данного девайса программатор не потребуется вообще. Если выход программировать напрямую через USB разъем устройства. Для этого нада дописать программу микроконтроллера.
6. Да каждое устройство USB имеет свой уникальный номер, и данный девайс не исключение.
Можно считать, но этот вопрос больше к программистам.


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 20:43
Сообщение #5


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата
2. Работает очень просто. Запрограммировал микроконтроллер нужным алгоритмом нажатия клавиш, воткнул в USB и пошло нажатие клавиш по заданному алгоритму.

Я правильно понял, что сейчас для того чтобы задать новую последовательность нажатия клавиш нужно заново перепрограммировать (перепрошить программатором) устройство?


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.5.2013, 20:44
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



да


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 20:48
Сообщение #7


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(Zeleax @ 20.5.2013, 21:43) *

Я правильно понял, что сейчас для того чтобы задать новую последовательность нажатия клавиш нужно заново перепрограммировать (перепрошить программатором) устройство?

Да.
Микроконтроллер программируется 1-2 секунды.


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 20:50
Сообщение #8


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(Александр85 @ 20.5.2013, 20:48) *

Да.

Значит нам предстоит большая коллективная работа )


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.5.2013, 20:55
Сообщение #9


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Причем перспективная и интересная (IMG:style_emoticons/default/smile.gif)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 20:55
Сообщение #10


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



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

Хотя если при отправке данных на устройство шифровать их уникальным _закрытым_ ключем устройства (не поддающимся программному чтению), то может что-то и выгорит...

Сообщение отредактировал Zeleax - 20.5.2013, 20:58


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 20:56
Сообщение #11


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(Zeleax @ 20.5.2013, 21:50) *

Значит нам предстоит большая коллективная работа )

Для интеграции данного устройства нам предстоит согласовать работу программы и железа, эта задача очень интересная в свое развитии. Ждем ваших идей и предложений (IMG:style_emoticons/default/rolleyes.gif)


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.5.2013, 20:59
Сообщение #12


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
защиту от него так же реализовать будет несложно

Где-то видел интересную заметку по этому поводу. Взаимодействие через лан. Минимальное шифрование траффика и понять кому и зачем идут пакеты будет не под силу защите.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 21:06
Сообщение #13


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(Александр85 @ 20.5.2013, 20:56) *

Для интеграции данного устройства нам предстоит согласовать работу программы и железа, эта задача очень интересная в свое развитии. Ждем ваших идей и предложений (IMG:style_emoticons/default/rolleyes.gif)

1) Что нужно для того, чтобы устройство принимало и обрабатывало входящие по USB данные?
2) Что нужно сделать, чтобы перепрограммировать мастеркитовскую "нажималку"? Выпаивать микросхему?

Сообщение отредактировал Zeleax - 20.5.2013, 21:08


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 21:16
Сообщение #14


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(Zeleax @ 20.5.2013, 22:06) *

1) Что нужно для того, чтобы устройство принимало и обрабатывало входящие по USB данные?
2) Что нужно сделать, чтобы перепрограммировать мастеркитовскую "нажималку"? Выпаивать микросхему?

Отвечаю:
1. Для этого нужно иметь прошитый загрузчиком кода по USB - usbasploader. Это позволяет программистам загружать в микроконтроллер программу без использования программатора. Все, что Вам нужно - только макетная плата и подключение по USB к компьютеру.
2. Нет, выпаивать не нада, нужно припаять 4 проводка как показано на схеме и подключить к программатору.

из форума
-Возможна ли прошивка контроллера по USB?

-можно прошивать только по ISP и debugWire (оба способа через коннектор ISP). Через USB прошивать нельзя, так как готового загрузчика (bootloader) для чипа ATtiny нет, и архитектура этого чипа вообще загрузчик не предусматривает (нет секции бутлоадера, в отличие от чипов ATmega16 и ATmega32, например). Теоретически такой USB бутлоадер сделать все равно можно, однако программа пользователя (которая работает в памяти и будет загружена по USB) должна поддерживать его наличие.


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.5.2013, 21:52
Сообщение #15


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



К устройству можно сформулировать следующие требования: )
1) прошивка через программатор
2) умение принимать разнообразные входящие по USB сигналы (последовательности нажатий кнопок, время задержки между нажатиями и т.п.) и обрабатывать их соответствующим образом.
3) умение сохранять часть принятых данных в своем "ОЗУ", хотя бы на время подключения к компьютеру

С п.1 всё в порядке после небольшой доработки, как я понимаю.
А вот с п.2 и 3 непонятно... Получается, что обработка входящих данных пока что вообще никак не реализована в прошивке?


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 22:01
Сообщение #16


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(DarkMaster @ 20.5.2013, 20:52) *

Я бы даже немного иначе выразился. Можно ли считывать какой-нибудь уникальный ид чипа, которой нельзя изменить?

ИД у микроконтроллера нету, а вот в прошивке МК для работы программной эмуляции USB нужно задавать два идентификатора VID и PID. Каждое устройство USB их имеет,их можно изменять.
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/6703/211554415.0/0_10fb2f_88467c76_L.png)
Можно погуглить Смотреть


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 20.5.2013, 22:23
Сообщение #17


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(Zeleax @ 20.5.2013, 22:52) *

К устройству можно сформулировать следующие требования: )
1) прошивка через программатор
2) умение принимать разнообразные входящие по USB сигналы (последовательности нажатий кнопок, время задержки между нажатиями и т.п.) и обрабатывать их соответствующим образом.
3) умение сохранять часть принятых данных в своем "ОЗУ", хотя бы на время подключения к компьютеру

С п.1 всё в порядке после небольшой доработки, как я понимаю.
А вот с п.2 и 3 непонятно... Получается, что обработка входящих данных пока что вообще никак не реализована в прошивке?


По очереди:
1. С прошивкой через программатор проблем нету. Но желательно обойтись вообще без программатора (прошивать через bootloader).
2. На данном этапе этого нет. Но это вполне реально, нада дописывать прошивку.
3. Это тоже вполне реально сделать. Даже записывать в энергонезависимую память, если это требуется.


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 21.5.2013, 8:52
Сообщение #18


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Вот подобные устройства для размышлений:
1. Подключение джойстика от 8-битных приставок к ПК на МК ATtiny45 - Сайт
2. Смотрим буржуйскую реализацию DIY USB password generator (USB генератор паролей). Сайт


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.5.2013, 11:33
Сообщение #19


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
10. Панелька под контроллер если будете брать в корпусе DIP8.

Можно этот момент разжевать?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр85
сообщение 21.5.2013, 11:52
Сообщение #20


**

Neophyte
Сообщений: 46
Регистрация: 17.5.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.071



Цитата(DarkMaster @ 21.5.2013, 12:33) *

Можно этот момент разжевать?


Микроконтроллеры ATtiny45 есть как минимум в двух вариантах исполнения корпуса:
DIP и SMD. Для самостоятельной сборки лучше использовать корпус ДИП в МАСТЕР КИТовском наборе используют СМД исполнение.
Прикрепленное изображение
(IMG:http://img-fotki.yandex.ru/get/9169/211554415.0/0_10fbd4_890c5d04_L.jpg)
DIP SMD


--------------------
Консультации Hardware UO Pilot
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

10 страниц V  1 2 3 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 14:39
Designed by Nickostyle