Как самому сделать танцевальную платформу для Dance Dance Revolution
Здравствуйте, уважаемые хабровчане. Долго размышлял о названии поста, но в конечном счёте решил, пусть и длинно, но написать в нём суть. Под катом пойдёт речь о том, как с нуля создать неплохой игровой контроллер для ритм-игры, при этом не сильно потратившись. И пусть в последнее время периодически проскакивают комментарии, мол, «Хабр уже не «торт», надеюсь, мой «рецепт» придётся вам по вкусу.
СодержаниеО чём пост Подготовительный этап Хроники короеда (разметка и фрезеровка) Паяй меня, паяй меня полностью (делаем датчики) Святая пара (делаем проводку) Тяп-ляп и в продакшн (сборка) USBсексуал (дружим танцевальную платформу с компьютером) Что дальше? Вместо итогов. О чём пост Но сначала небольшое вступление, дабы все понимали, о чём пойдёт речь ниже. Отличная статья из Википедии внесёт ясность. Dance Dance Revolution (DDR) — серия музыкальных видеоигр от Konami Digital Entertainment, Inc, также известная как Dancing Stage. Игра проходит на танцевальной платформе с четырьмя панелями: «вверх», «вниз», «влево» и «вправо». Во время игрового процесса по экрану перемещается последовательность стрелок, которая соответствует музыкальному ритму исполняемой песни. Игрок должен нажимать ногами в такт музыке соответствующие панели в тот момент, когда стрелки совпадают с полупрозрачным трафаретом, расположенным обычно в верхней части экрана. При каждом правильном нажатии у игрока постепенно пополняется уровень «шкалы жизни». За каждый промах от шкалы отнимается определённое количество энергии. Раунд считается проигранным, если игрок хотя бы один раз во время прохождения песни допустил падение уровня «шкалы жизни» до нуля.
Ну, а если объяснять наглядно, то лучше воспользоваться услугами Жана Рено и фильмом «Васаби».[embedded content]Исторически игра в России, Украине и Беларуси набрала популярность в среде любителей аниме, постепенно выделившись в отдельное спортивное направление. Постепенно вместо «някающих» девочек возле игровых автоматов появились парни, что-то усиленно чёркающие в «To Do List«ах», обсуждающие преимущества той или иной техники «танца» и отчаянно спорящие о выборе правильной обуви «для степа». Вскоре на горизонте замаячили первые чемпионаты.И вот тут появилась проблема. Успехи в игре напрямую зависели от количества тренировок. Качественно тренироваться можно было только на игровом автомате. Но так как большинство игроков было школьного и студенческого возраста, позволить себе полноценные тренировки могли лишь единицы. Ведь всё стоит денег, и жетоны не исключение.
Выход из ситуации был очевиден: найти «домашнюю» версию DDR. Увы, надеждам не суждено было сбыться. Нет, домашние версии существовали, но были либо некачественные, либо не по карману. Кроме того, доставка порой увеличивала стоимость самой танцевальной платформы в 2 и более раз. И это в России. Про Беларусь даже речи не шло.
Вот с таким положением дел оказались я и jsirex, проживавшие в славном городе Минске. Не найдя адекватного варианта за разумные деньги, мы решили построить свою собственную танцевальную платформу с манчкином и гейшами. Цели поставили амбициозные. Танцевальная платформа\коврик\пад должна была быть:
дёшева; долговечна; не слишком тяжёлой (лёгкой) и не слишком громоздкой. По точности нажатий и ощущениям от игры не должна отличаться от аркадного автомата. Конструкция, о которой сейчас пойдёт речь, является плодом двухлетней совместной работы. Сохранив изначальный форм-фактор, внутри коврик кардинально менялся несколько раз. Инструкцией по сборке финальной версии я и хотел бы поделиться с сообществом.Для наглядности процесс сборки был заснят на видео. Поэтому все, кто хочет сначала увидеть итоговый результат, а уж потом читать простыню текста с фотографиями, прошу сюда:[embedded content]Тем временем, приступим к сборке.
Подготовительный этап Время, затраченное на сборку коврика, можно разделить на два периода: теоретический и практический. Под первым подразумевается то время, которое вы затратите на приобретение необходимых расходных материалов и инструментов. Под вторым — непосредственно время сборки. Если не лениться, то в одиночку коврик собирается за 4 дня.
Вернёмся к покупкам. Вам понадобится:
Струбцины (2 шт); Шуруповёрт; Сверло по дереву; Пила; Dremel; Ножницы по металлу; Тестер; Угольник; Карандаш; Отвёртка; Паяльник; Припой; Канифоль; Витая пара; Молоток Промышленный фен; Пистолет клеевой. Всё перечисленное выше было у меня в наличии. Поэтому цены не привожу. Остальное пришлось докупить. Цены актуальны для Беларуси на август 2014 года. Переводил в USD из расчёта 1 USD = 10 000 BYR.Как видите, не указаны цены для нержавейки и оргстекла. В моём случае покупать их не пришлось — помог jsirex. Тем не менее, вместо нержавейки можно взять любой проводящий материал (не обязательно металл) с памятью формы. Например, текстолит.С оргстеклом сложнее. Продавцы обычно не хотят продавать маленькие куски. Но можно пойти на хитрость. Из оргстекла нам нужно будет сделать 4 кнопки размерами 28×28 см. Следовательно, можно взять как «квадрат» 60×60 см, так и «прямоугольник» 30×120 см. Брать стекло впритык или с запасом? Зависит от того, каким способом его разрезать:
Вручную с помощью специального ножа для резки оргстекла (похож на канцелярский нож). Стекло берётся ровно по размеру. Процесс разрезания напоминает работу со стеклорезом. Этот способ весьма бюджетный, но по неопытности можно плохо отломать заготовку и свести на нет всю экономию. Лазерная резка. Режет идеально в размер, но стоит дорого. Особенность работы лазера требует «минимального отступа» от края заготовки. То есть для того, чтобы вырезать кнопку 28×28 см, нужна заготовка минимум 28,5×28,5 см. На этом подготовительный этап закончен.Хроники короеда (разметка и фрезеровка) Можно приступать к распилу фанеры. Толщина в 15 мм подобрана неслучайно. Одной из целей, как вы помните, является вес. Слишком лёгкий коврик при интенсивной нагрузке будет проскальзывать по полу. Слишком тяжёлый будет неудобен в транспортировке. По первой причине не стоит рассматривать фанеру в 10 мм и меньше. По второй — 18 мм и толще. К тому же, зависимость стоимости фанеры от её толщины, оказывается, нелинейная. Таким образом, остаётся два «финалиста»: 12 мм и 15 мм. Не знаю как в других городах, но в Минске 12 мм оказалось редкостью. Забегая вперёд скажу, собранный из 15-миллиметровой фанеры коврик весит 18 кг.Определившись с толщиной фанеры, нужно этот лист распилить на «запчасти». Из одного стандартного листа должны получиться:
основание размерами 90×90 см; 5 кнопок размерами 28×28 см; 2 рейки размерами 3×90 см; 2 рейки размерами 3×84 см. Пилить фанеру можно ножовкой или циркулярной пилой. В первом случае получится не очень ровно, а во втором важно учесть тот факт, что циркулярка «съест» 2–3 миллиметра. Поэтому все ваши размеры должны «подрасти» на соответствующую величину.Также при распиле неизбежно останутся заусенцы.От них можно избавиться наждачкой или с помощью подходящего инструмента.
Помните, при работе с деревом будет много стружки. Очень много. Поэтому позаботьтесь о том, чтобы родные не выгнали вас из дома. Если всё завершилось благополучно, смело приступайте к следующему этапу.
Паяй меня, паяй меня полностью (делаем датчики) За годы увлечения DDR мы с jsirex не раз копались в аркадных автоматах.С одной стороны, была необходимость (автомат всегда приводится в порядок перед чемпионатом), с другой — было интересно, что ж там эти японцы понапридумывали. Всё гениальное, как известно, просто.Датчик представляет собой простейшую конструкцию: две токопроводящие пластины, разделённые диэлектриком по краям и замыкающиеся в центре от веса игрока. В каждой кнопке имеется 4 датчика, по одному на каждую сторону. Таким образом, вне зависимости от того, на какую часть кнопки наступает игрок, нажатие срабатывает всегда.
Но довольно слов. Приступим к сборке.Расчерчиваем текстолит квадратами 1×1 см. Нержавейку — полосами 1×15 см. Самое сложное — нарезать нержавейку. Проблем нет, если под рукой есть болгарка. Единственный нюанс — необходимо подкорректировать размеры. Вместо 1×15 см будет 1,1×15,1 см. лишнее «съест» болгарка.
А вот если такого замечательного инструмента в вашем арсенале не имеется, начинаются «пляски с бубном». Сначала я решил воспользоваться дремелем. В его арсенале как раз имелся отрезной диск.
Однако нержавейка в 1 мм толщиной плевать хотела на модные диски и сточила его после 8 см пропила. Поэтому нехотя пришлось лезть за «аналоговым» инструментом — ножницами по металлу.
Им нержавейка оказалась вполне по зубам. Но ещё ни одна бочка мёда на моей памяти не обходилось без ложки дёгтя. И этот случай не стал исключением.
Ножницы нарезают металл весёлыми завитушками с заусенцами. Поэтому сначала пришлось ровнять их молотком (заготовки, а не ножницы) до вменяемого состояния.
А затем «сбривать» заусенцы дремелем. С этой задачей он справился на отлично и без потерь расходных материалов.Тем временем разогревается паяльник. Нет, мне никто не был должен денег. Просто наступил следующий этап изготовления датчика.
С точки зрения пайки никаких тонкостей нет. Лудим провода, капаем ортофосфорной кислотой на зачищенный край полоски нержавейки и паяем.
Может выглядит и не очень эстетично, зато фиг оторвёшь.
К получившимся заготовкам с помощью изоленты приматываются квадратики текстолита. Он выступает в роли диэлектрика. На одну заготовку приматывается со стороны пайки, на другую — со стороны «хвоста».Каюсь, использовал вместо синей чёрную изоленту, поэтому за долговечность датчиков не ручаюсь.
Затем две заготовки скрепляются по краям изолентой. Итоговый вариант ниже.
Самое время делать красиво. Для этого понадобится термоусадка. При размерах датчика 1×15 см отлично подойдёт термоусадка с диаметром 15 мм.Ужимается термоусадка промышленным феном. Если фена нет, подойдёт и газовая плита. Нужный эффект будет достигнут. Бонусом можно получить запах горелых волос. Кстати, если чуть сильнее разогреть «хвост» датчика, а потом быстро зажать его плоскогубцами или отвёрткой, получится практически герметичный корпус. Этот момент есть в видео.
На всякий случай, плоды трудов проверяем тестером. В свободном состоянии контакта, естественно, быть не должно.
Теперь настал черёд разъёмов «папа-мама».
Напаиваем нечто (если честно, я не знаю, как это правильно называется) на свободные концы проводов. Здесь важное замечание. Если у вас толстый многожильный провод, имеет смысл часть жил откусить. Другими словами, не делайте так, как показано на фото ниже, не оставляйте все жилы.Посыл простой: припаять вы сможете, но затем не сможете вставить «папу» в «маму», т.к. не останется свободного пространства.
Правильно сделанный датчик в меру красив и прекрасен.
К тому же не испытывает никаких проблем при соединении с платой.
Пару слов о плате. Если честно, из личного опыта могу сказать, что городить огород с разъёмами и платами не обязательно. Можно все датчики в кнопке взять на «скрутку», залить припоем, а потом термоклеем. И такая конструкция будет нормально работать. По крайней первые образцы ковриков до сих пор работают, а прошло уже лет 6.
Но вернёмся к платам. Травятся они по всем известному методу кнута и пряника принтера и утюга. После травления имеют следующий вид:
После разрезания, в стратегических местах миллиметровым сверлом просверливаются не менее стратегические отверстия.
В итоге, после пайки, получается даже красиво. Вид сзади.
Вид спереди:
Святая пара (делаем проводку) И вот мы вплотную подошли к проводке.Дотошные читатели рассмотрят сложный вариант, представленный на фото выше. Я же расскажу про упрощённый вариант, реализуемый через витую пару.
Всё начинается с «муфты» с разъёмом RJ-45. В ней 8 выходов, следовательно к нему идёт 8 проводов. Выбираем 4 «плюса» и 4 «минуса». Так как «минус» общий — скручиваем 4 провода в один. Хотите верьте, хотите нет, но витая пара тоже содержит 8 проводов. На «плюсы» и «минусы» они разделяются абсолютно аналогично. Я, к примеру, все цветные назначаю «минусами», а все бело-цветные — «плюсами». В конечном счёте, на каждую кнопку в коврике должен прийти 1 »+» и 1 »-».
Для сохранности проводки прокладывать её следует не по верхуоснования, а по заранее проделанным канавкам в нём. Есть 2 способа:
Дешёвый. Берём стамеску и молоток. Долбим канавки. Получается действенно, но не особо красиво. Берём фрезерный станок и выпиливаем всё, что нужно за 10 минут. Я пошёл модифицированным вторым способом. Фрезерного станка у меня не было, а покупать на 1 раз не очень хотелось. Зато был дремель с набором всякой всячены. Среди прочего там нашлись универсальные свёрла. Их особенность в заточке. Сверло может выполнять функцию фрезы. В видео заснят процесс, поэтому на словах описывать нет смысла. Лучше один раз увидеть.Когда все канавки пропилены, наступает время термоклея. Штука крайне полезная для мелкого быстрого ремонта. С помощью термопистолета прокладываем проводку, приклеивая датчики. Не забываем периодически «прозванивать» конструкцию, чтобы потом не пришлось разбирать готовый коврик до основания.
Тяп-ляп и в продакшн (сборка) Ну что ж, уже виднеется свет в конце тоннеля. Финишная прямая — сборка. Помните 5 деревянных кнопок, 4 оргстеклянных и 4 рейки? Настало их время.
Любопытно, что как бы вы ни старались распилить всё ровно, какими бы прямыми и квадратными ни казались вам заготовки, на этапе сборки вас будет преследовать чувство всеобщей кривизны и неказистости. Не пугайтесь, это парадокс искривления пространства-рук-времени. Без дополнительных 7 измерений исправить его всё равно нельзя, поэтому смиритесь.
Хотя нет, маленькие хитрости всё равно есть. Если допустить, что все кнопки и рейки немного криво распилены, то есть шанс собрать их в такую комбинацию, когда всё встанет ровно. В общем, берёте и начинаете пробовать. Когда итоговая расстановка будет найдена, подписываете на обратной стороне кнопки её место и направление. Например, ЛН — левая нижняя, Ц — центральная.
Начинать выстраивать эту «икебану» лучше с какого-нибудь угла. Как только получилось — наживляете на саморезы. Оргстекло наживлять на саморезы не обязательно.
Чтобы оргстекло не выпадало, закрепляем его мебельными уголками. Нюанс: уголки по высоте больше, чем нужно. Варианта два:
Стачивать каждый уголок. Сделать углубления в основании. Я выбрал второй вариант, всверлившись дремелем.По ходу сборки не забывайте прозванивать конструкцию.
Наконец, самый важный компонент, без которого ничего работать не будет — скотч на пенной основе. Можете смеяться, но это так. Даже в оригинальных японских аркадных автоматах мы его находили.
Наклеивается он небольшими полосками 3–4 сантиметра в длину по центру каждого датчика. Так как датчики мы делали сами, а не купили на заводе, может понадобиться несколько слоёв. Обычно 2–3. В конечном счёте кнопка должна нажиматься при некотором усилии руки. Не от прикосновения, а именно от усилия! Это важно!
USBсексуал (дружим танцевальную платформу с компьютером) Параллельно со сборкой коврика, собирается и его связующее звено с компьютером. Так как Windows не понимает протокол ЁПРСТ\ЁКЛМН, придётся «дружить» деревяжку с компьютером традиционным способом, то есть через USB.
Для этих целей покупается самый дешёвый геймпад. На его плату и предстоит напаять конец витой пары. На всякий случай напомню порядок.
Сигнал начинается с замыкания на датчике; Передаётся на плату, закреплённую в центре кнопки; Затем передаётся на «муфту»; И выходит на разъём RJ-45. Всё это уже сделано. Далее.Вставляем обжатого «папу» в «маму» RJ-45; По витой паре сигнал передаётся на геймпад; С геймпада сигнал по USB уходит в компьютер. Так вот, напаиваемся на плату следующим образом.Как видите, «плюсы» напаяны к кнопкам действий. «Минусы» скручены-спаяны вместе и припаяны к «земле».В принципе, всё готово. Но можно и навести красоту. Например, запихнуть плату в корпус. Его я купил на развалах радиорынка. Правда, затем оказалось, что это просто две крышки, которые никак не предназначены для соединения хотя бы в подобие чего-то целого. Пришлось немного подшлифовать.
В целом, получилось вменяемо. С помощью наждачки для дремеля снял излишки, а с помощью фрезы сделал выемку под провод.
Наконец, все части мозаики готовы и можно подключить коврик к компьютеру для тестирования в игре.
Пару слов о ней. Для игры на компьютере добрые люди написали симулятор аркадного автомата DDR под названием Stepmania. Затем не менее добрые люди на основе Stepmania создали модифицированную версию — In The Groove (ITG). Именно с ней, а точнее с проектом OpenITG я и работаю. Скачать дистрибутивы можно здесь. Можно и самостоятельно собрать из исходников. Вообще, настройка игры, закачка треков и даже создание собственных — тема для отдельного поста. Если сообщество за, то дайте знать об этом в комментариях. А пока же возвращаемся к коврику.
Окончательный вид пациента.
Вытворять на таком коврике можно многое. К сожалению, я уже давно не в форме и на видео выдаю лишь вялые трепыхания. Но когда-то было так:[embedded content]
Что дальше? Вместо итогов Нельзя не заметить, что внешний вид коврика не эстетичен. Это не беда. Во-первых, его можно покрасить.Деревянные части откручиваются и красятся. Оргстекло красится с внутренней стороны.
Во-вторых, если не хочется работать с краской, можно напечатать наклейки.Придумываете рисунок из расчёта 9 квадратов 29×29 см. Я не ошибся, кнопки 28×28 см, а наклейки больше. Но вы же помните, что кнопки бывают не совсем квадратными?
На этом всё. Вопросы, комментарии и предложения приветствуются.
P.S. В хаб DIY пока не могу перенести, извините.