| Приставки > Джойстики и прочие манипуляторы |
| Прикручиваем мышь от PC к Dreamcast (на дому ))))) |
| (1/2) > >> |
| masyanya:
Значится так. Сначала немного теории: * Сегодня в продаже появилось великое множество дешевых мышей, которые при всей своей дешивизне внтри имеют вполне осмысленные корпусные микросхемы. Особенно радует контроллер позиции XX-YY-ZZ, самые дешевые из них A2610/A2620 и A5010/A5020, вторые лучше потому как на борту имеют CS, то бишь ногу для выбора контроля над микросхемой. Ещё более тёплая, греющая душу особенность, - это наличие SPI интерфейса на борту, последний факт освобождает вообще от интеграции в обработчик интерфейсов c датчиком X/Y ибо SPI есть сейчас в любом современном микроконтроллере. Вот собственно небольшой обзор на эту тему: Pin Number 1 2 3 4 5 6 7 8Pin OSC_IN OSC_OUT SDIO SCK LED_CNTL GND VDD REFADescription Oscillator input Oscillator output Serial data (input and output) Serial port clock (Input) Digital Shutter Signal Out System Ground 5V DC Input Internal reference * Теперь минусы, - Колесо NetScroll, сама "композиция", то бишь колесо с датчиками называется Z-Encoder, тут уж нет стандартного решения, поэтому довольно сложно понять какие принцыпы определения движения колеса сюда вложил разработчик, плюсом ещё накладывается то, что в документации по дримовской мышище указано, - позиция Z - определяется 10-ти битным значением, то есть если в PC Позиция Z определяется "по щелчкам", то на дриме это такая же полноправная координата как X/Y. * Теперь минусы со стороны дрима, первый, - эт конечно жа MapleBus, интегрировать который целиком в контроллер не удасться, а это собственно подтягивает ещё одну проблему, - доп. логика, которая тож занимает место на плате и соотв в корпусе мышки. Как минус можно добавить такую "мелочЬ" как различия между значащими битами в PC - 8 бит на координату в Dreamcast'e 10, доп конвертация и прочее. * А вот теперь немножко теории относительно того, какие требования накладываються на "изготовителя" дримовской мыши (я прям коротенечко цитатами): 1. Функциональные элементы Category code : Mouse Press buttons : A,B,W Analog coordinate axes : AC1,AC2 (ball) : AC3 (wheel) Option parameters : None 2. Детали конфигурации: A button : left button The values are: press = ‘0’, release = ‘1’. B button : right button The values are: press = ‘0’, release = ‘1’. W button : wheel (center) button The values are: press wheel = ‘0’, release = ‘1’. Ball : AC1(X),AC2(Y) Relative coordinates in both axes are detected by an optical converter. Coordinate accuracy is 10 bits. Wheel : AC3(Z) Relative coordinate is detected by an optical converter. Coordinate accuracy is 10 bits. 3. Ответы на основные команды: Fixed Device Status (112 bytes): Device ID (Capacity : 16byte) : Data: 00h-00h-02h-00h -00h-0Eh-07h-00h -00h-00h-00h-00h -00h-00h-00h-00h Destination (Capacity : 1byte): Data: FFh Connection direction (Capacity : 1byte): Data: 00h Product name (Capacity : 30byte): Data: " Dreamcast Mouse " in hankaku characters. A space code (20h) is inserted for unused space. License (Capacity : 60byte): Data: "Produced By or Under License From SEGA ENTERPRISES,LTD." A space code (20h) is inserted for unused space. Standby current consumption (Capacity : 2byte): Data: 01h-90h (40.0mA) Maximum current consumption (Capacity : 2byte): Data: 01h-F4h (50.0mA) Free Device Status (192 bytes): Fixed Device Status (112 bytes): + Device ID (Capacity : 80byte) : "Version 1.000,2000/02/25,315-6211-AT ,3 Button & X-Y Ball & Z Wheel ,400dpi " Dreamcast Mouse data formats Data transfer(Capacity : 20bytes): Data: bit 1st-Data 2nd-Data 3th-Data 4rd-Data 5th-Data 6th-Data 7th-Data 8th-Data 9th-Data 10th-Data 11th-Data 12th-Data 13th-Data 14th-Data 15th-Data 16th-Data 17th-Data 18th-Data 19th-Data 20th-Data7 1 0 0 0 AC17 0 AC27 0 AC37 0 0 0 0 0 0 0 0 0 0 06 1 0 0 0 AC16 0 AC26 0 AC36 0 0 0 0 0 0 0 0 0 0 05 1 0 0 0 AC15 0 AC25 0 AC35 0 0 0 0 0 0 0 0 0 0 04 1 0 0 0 AC14 0 AC24 0 AC34 0 0 0 0 0 0 0 0 0 0 03 W 0 0 0 AC13 0 AC23 0 AC33 0 0 0 0 0 0 0 0 0 0 02 A 0 AOV2 0 AC12 0 AC22 0 AC32 0 0 0 0 0 0 0 0 0 0 01 B 0 AOV1 0 AC11 AC19 AC21 AC29 AC31 AC39 0 1 0 1 0 1 0 1 0 10 1 0 AOV0 0 AC10 AC18 AC20 AC28 AC30 AC38 0 0 0 0 0 0 0 0 0 0 А вот собственно и пояснение к таблице. 1st-Data 2nd-Data 3rd-Data 4th-Data 5th~6th-Data 7th~8th-Data 9th~10th-Data 11th~20th-Data:BTN :OP :AOV :RES :AC1 :AC2 :AC3 :AC4~8Operating button data Option parameters (00h) Analog coordinate overflow Reserved (00h) X-axis analog coordinate region Y-axis analog coordinate region Z-axis analog coordinate region (wheel) Constant (00h-02h, fixed) Собстна To be continued... потому как выдохся, а там ещё много... Добавлено позже: А теперь собственно к теме! За основу для моего девайса я взял мышищу RX-250 от Logitech, - ~10$ в магазе стоит, значиться так: Для работы нам понадобиться: 1. МОЗГ 1шт 2. Руки 2шт 3. Мышища RX-250 1шт 4. Паяльник 1шт 5. Паяльная паста TRISTAR (Само то для лужения паяльником) 1шт 6. Припой 7. Переходник для джоев Dreamcast 8. Микроконтроллер ATMEGA851516AI/AU (TQFP) 1шт 9. SMD Резисторы 1.2к (0805 корпус) - 4шт 10. SMD Конденсатор, пленочный 0.1u (0805 корпус) - 4шт 11. Кварцевый резонатор 16MHz HZ49 - 1шт 12. Элктролитический SMD конденсатор 4,7uF (типоразмер А) - 3шт 13. Сдвоенный 4х битный сдвиговый регистр IN74HC4015 (или схожий CD4015/HEF4015 но они хуже ибо медленнее) 2шт. Значит так. 1. Разбираем мышь RX-250, внутри видим микроконтроллер от CYPRESS, - CY7С63813, выдергиваем его, на его место мы запаяем нашу плату с мозгами для MapleBUS. 2. Смотрим каким же образом у нас разведены дороги к месту пайки CY7C... и видим вот что: Где : Ноги для управления контроллером X/Y SS SCK MOSI MISO NRESETВыбрать чип Вход под клок Вход под данные Выход данных Аппаратный сброс Остальные ноги: LD1 LQ1 PB-L PB-R PB-M PB-LM PB-RMВход вкл/выкл диода на "Колесо" Выход данные от сенсора "Колеса" Выход контроля нажатия левой кнопки Выход контроля нажатия правой кнопки Выход контроля нажатия центральной кнопки Выход контроля нажатия кнопки "колесом влево" Выход контроля нажатия кнопки "колесом вправо" И что мы тут видим? Видим что кнопок 5, ну и зачем такое удовольствие теря, добавим же эти кнопки в наш обработчик MupleBUS и будет нам счастье! Соответственно вот и схема: Соотв доберусь до фотика весь процесс преобразования в картинках тут выпишу... |
| Sheb:
Интересно, жаль контроллера подходящего нет ) |
| masyanya:
Господа хорошие, можно любую мышку так переделать, я позже объясню как, ну или практически любую.. ;) |
| sergi:
Да честно говоря не в этом дело - в что играть то вот вопрос - лично для меня - я то к примеру не люблю дрим если бы для панасоника пистолет разобрался как работает и мышь, это да - это нужно, а дримовскую - ну хорошо конечно что можно, но нужно ли :-\ да и в принципе по деталям напряг и работы собственно тоже - это если только нагорит оч сильно ну и конечно же это чтобы внутрь мышы плата монтировалась, чтобы прям плату сделал и туда засунул, особенно если оптическая |
| masyanya:
--- Цитата: sergi от 06 Февраль 2009, 14:21:10 ---Да честно говоря не в этом дело - в что играть то вот вопрос - лично для меня - я то к примеру не люблю дрим --- Конец цитаты --- Это тока твое мнение. --- Цитата ---если бы для панасоника пистолет разобрался как работает и мышь, это да - это нужно, а дримовскую - ну хорошо конечно что можно, но нужно ли :-\ да и в принципе по деталям напряг и работы собственно тоже - это если только нагорит оч сильно ну и конечно же это чтобы внутрь мышы плата монтировалась, чтобы прям плату сделал и туда засунул, особенно если оптическая --- Конец цитаты --- Не нужно так не нужно, я не буду выкладывать инфу. >:( Детали там все ширпотреб. Да и для панаса я выкладывать не буду, продавать тока, панас дорогой да и пистоли в него, тож плюсом ещё разработочка и отладчики магазы не дарят.. А деньги на деревьях растут тока в мультиках про Черного Плаща, а жаль. <_< |
| Киба:
masyanya да ладно не заводись. Мы то знаем что у тебя руки из правильного места растут. Не все просто ценят это. Я считаю что ты очень важные вещи делаешь. |
| p_star:
Мышь для дрима тоже не дешовая весчь, и игр для неё на Дриме достаточно, так что пригодится людям. |
| sergi:
Да я не стараюсь обидеть, если обидел то извиняюсь я просто говорю что реально инфа то полезная, но сами соберут единицы, т.к. особо мало кому нужно да и не каждый собрать сможет а на панас видишь сам говоришь что инфу не выложишь - тогда как это более полезнее инфа, т.к. реально аксессуары не достать, поэтому тут какбы получается что хорошо все, но не совсем :-\ |
| Bugrim:
Да, на панас было бы здорово, пекаль из дендяка переделать например... |
| alex:
да че вы заладили панас да панас, чел полезное дело делает. Мышь для дрима вещь довольно редкая и эта схема я думаю многим будет полезна. --- Цитата ---Соотв доберусь до фотика весь процесс преобразования в картинках тут выпишу... --- Конец цитаты --- Ждем с нетерпением :) Тут вопрос небольшой по сабжу, а оптическую тоже можно под дрим переделать? :) |
| Ashen:
Так это и есть оптическая мышка^_^ Круто блин, огромное человеческое СПАСИБО человеку... Простенько и со вкусом сделанная схемка... Только вот прошивки не хватает... С нетерпением жду продолжения, а то Дрим совсем забросили буржуи, так хоть соотечественники не забывают славную приставку... |
| masyanya:
Значит так, решил маленько отвлечся и всётаки выложить. Вот собственно так оно выглядит, ну да и хрен с ним, закрывается крышкой сверху и как с завода, в схеме (проводки там фиолетовые всякие) ошибся поэтому в приложенном файле новая схема, печатная плата односторонняя под утюговую технологию и прошивочка, EEP и 2 штуки HEX, HEX одна с инвертированным Y-ом, другая нормальная. Проверенно на Half Life, - работает, халф лайф не поддерживает 5 кнопок, тока центральная левая и правая. Как оно работает писать вломы, тока есть одна тонкость, которая мне конкретно подкозлила, нулевое положение мыши что по Y что по X = 0x200. А не 0x0000 как на PC'шнике. Значиться так, собираем то что там у меня по схеме и припаиваем схему вместо контроллера CY... Электолиты нам нужны были для того чтоб заменить родные конденсаторы которые запаяны на заводе в мыши, иначе "буттерброд" не войдет в корпус мышки. Ну вроде и всё. P.S. Вы должны войти как зарегистрированный пользователь, чтобы иметь возможность закачать архивчик со всеми необходимыми для сборки мышищи файлами. |
| alex:
--- Цитата ---Проверенно на Half Life, - работает, халф лайф не поддерживает 5 кнопок, тока центральная левая и правая. --- Конец цитаты --- Сегодня проверил на Half Life оригинальную мышь для дрима, там все кнопки задействованы таким образом кнопка с боку-слева --присесть кнопка слева --огонь кнопка справа --альт. огонь колесо вверх --след. оружие колесо вниз --пред. оружие |
| masyanya:
--- Цитата: alex от 23 Февраль 2009, 20:03:54 ---Сегодня проверил на Half Life оригинальную мышь для дрима, там все кнопки задействованы таким образом кнопка с боку-слева --присесть кнопка слева --огонь кнопка справа --альт. огонь колесо вверх --след. оружие колесо вниз --пред. оружие --- Конец цитаты --- Во во, 3 кнопки и колесо. |
| ArhiAngel:
Эх. И почему всё так сложно ? В нашем мухосранске проще заказать откуда-нибудь оригиальную мышь, чем искать комплектующие для самопальной :( |
| masyanya:
ATMEGA8515 негде чтоли купить... <_< неожиданно... ... а кстати, "ваш мухосранск" это где? :) |
| ArhiAngel:
Беларусь/Витебск. У нас я не нашёл даже точек с резисторами и прочим. Во как. |
| masyanya:
--- Цитата: ArhiAngel от 27 Февраль 2009, 00:15:03 ---Беларусь/Витебск. У нас я не нашёл даже точек с резисторами и прочим. Во как. --- Конец цитаты --- AT mega8515-16AU - 94 руб. (на складе 5 шт) СТЭЛЛ Белоруссия, Витебск: (+375 212) 245827 ул. Ленина, д. 52, корп. Б, оф. 1Тел.: (+375 212) 245827, факс: (+375 212) 242926 stell.by А резисторов можно наковытять из мат платы нерабочей, как собстна и конденсаторы, мышь в магазе можно купить ненапрягаясь. |
| ArhiAngel:
--- Цитата: masyanya от 27 Февраль 2009, 07:02:46 ---ул. Ленина, д. 52, корп. Б, оф. 1 --- Конец цитаты --- Опа ! Впервые слышу даже про это. Нужно будет к ним наведаться. masyanya, огромное спасибо ! |
| alex:
masyanya, а где можно инфу найти по сборке программатора и прошивке микроконтроллера. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |