0

La danse d'une plate-forme pour Dance Dance Revolution et Pump It Up

L'auteur partage avec les lecteurs de la description de la construction du tapis de danse universelle pour la série de jeux Danser Danser Tour et Pompe Ce En haut и её контроллера. Благодаря сочетанию оригинальных технических решений платформу уда­лось сделать лёгкой, несложной в сборке без применения каких- либо специфических инструментов, но в то же время весьма прочной и пригодной для игр высокого уровня сложности. Он хочет, чтобы как можно больше читателей открыли для себя мир танцевальных игр. Ведь это так весело и увлекательно, да ещё и полезно для здоровья.0

Начнём с краткого экскурса в исто­рию танцевальных игр. Согласно [1], Dance Dance Revolution (DDR) — серия музыкальных видеоигр, разработанных фирмой Konami Digital Entertainment. Игра проходит на танцевальной плат­форме с четырьмя панелями-кнопками “Вверх”, “Вниз”, “Влево” и “Вправо”. Во время игры по экрану в ритм исполняе­мой песне перемещается последова­тельность стрелок. Игрок должен в такт музыке нажимать ногами на соответст­вующие панели-кнопки в те моменты, когда стрелки совпадают с полупро­зрачным трафаретом, обычно располо­женным в верхней части экрана.

Впервые DDR была представлена в виде аркадного игрового автомата в 1998 г. на игровой выставке Tokyo Game Show в Японии. Наиболее яркая де­монстрация аркадного автомата DDR широкой публике произошла в фильме “Васаби” с Жаном Рено в главной роли.

Около года спустя корейская фирма Andamiro создала фактически копии DDR — игры серии Pump It Up (PIU). Игровой процесс PIU аналогичен DDR с той лишь разницей, что на танцеваль­ной платформе PIU имеются пять пане­лей-кнопок: “Центр”, “Влево-вверх”, “Вправо-вверх”, “Влево-вниз”, “Вправо-вниз”. Более подробно об играх серии PIU можно узнать в [2].

В 2004 г. фирма Roxor Games разра­ботала свой вариант аркадного автома­та под названием In The Groove (ITG), отличавшийся от DDR более сложными композициями. История In The Groove завершилась в 2006 г. получением фир­мой Konami Digital Entertainment всех авторских прав на эти игры [3]. В 2008 г. Голландская фирма Positive Gaming выпустила свою линейку игр под назва­нием iDance [4].

Уместно будет добавить, что фирмой Konami Digital Entertainment, помимо аркадных автоматов, игры серии DDR с 1999 г. и по сегодняшний день выпус­каются в вариантах для всех известных игровых консолей (Sony PS One, Sony PS2. Sony PS3, Microsoft XBOX. Microsoft XBOX 360, Nintendo 64, Nintendo Game- cube, Nintendo Wii). К сожалению, кон­сольные версии этих игр в нашей стра­не практически неизвестны. Причин этому великое множество. Упоминать их в рамках журнальной статьи не имеет смысла.

Для возможности играть на персо­нальном компьютере командой энту­зиастов был создан бесплатный симу­лятор аркадных автоматов DDR и PIU под названием Stepmania [5], распро­страняемый в том числе и в исходных кодах. На момент написания статьи вышла версия Stepmania 5.0.7. Кроме того, в Интернете есть много сайтов (например, [6, 7]), содержащих доступ­ные для скачивания композиции прак­тически всех когда-либо выходивших аркадных и консольных версий игр се­рий DDR, PIU и даже ITG. Танцевальная платформа, о которой пойдёт речь в предлагаемой статье, как раз и рассчи­тана на совместное использование с программой Stepmania на компьютере с операционной системой Windows.

Для домашнего освоения игр серий DDR и PIU существуют два варианта игровых приспособлений: танцеваль­ные коврики и танцевальные платфор­мы [6], обладающие своими достоин­ствами и недостатками.

Танцевальные коврики считают уст­ройствами начального уровня, предна­значенными для игроков, только при­ступивших к освоению игр. Они относи­тельно недороги, имеют небольшую массу, их можно хранить в свёрнутом состоянии. Из недостатков можно на­звать невысокую точность срабатыва­ния, что делает невозможным исполне­ние сложных насыщенных “стрелками” композиций, и скольжение коврика по полу во время игры. Со временем ков­рики сминаются и практически неремонтопригодны.

Танцевальные платформы ориенти­рованы на игроков, уже в значительной степени освоивших игровой процесс. Их варианты для домашнего использо­вания в основном повторяют конструк­ции платформ аркадных автоматов. Отсюда достоинства — высокая точ­ность срабатывания, отличный тактиль­ный эффект, отсутствие перемещений во время игры. За это приходится пла­тить большой массой (в среднем около 15 кг). Высокая стоимость доступных на рынке образцов платформ плюс расхо­ды на пересылку [6] также не способ­ствуют их широкому распространению Читатели, обладающие некоторыми слесарными навыками, могут изгото­вить танцевальную платформу само­стоятельно. В Интернете имеются опи­сания конструкций, разработанных как зарубежными [7, 8], так и отечествен­ными [9] авторами. Однако выбирая конструкцию для повторения, необхо­димо учитывать стоимость материалов и наличие не только навыков, но ещё и соответствующих инструментов.

Танцевальная платформа, о которой пойдёт речь, — плод примерно трёх лет изысканий. При её создании ставились следующие цели:

  • минимизировать массу платфор­мы (не более нескольких килограммов) и сделать обращение с ней доступным хрупкой девушке или даже ребенку. Под обращением подразумевается не толь­ко игровой процесс, но и установка, подключение и все другие манипуляции с платформой;
  • минимизировать расходы. Жела­тельно, чтобы стоимость набора мате­риалов и деталей для платформы не превышала средней цены танцевально­го коврика. Для сборки не должны тре­боваться какие-либо специфические инструменты;
  • добиться высокой точности сра­батываний. Платформа не должна огра­ничивать возможности игрока и должна быть пригодной для исполнения компо­зиций, по крайней мере, уровня “Diffi­cult” по шкале сложности DDR;
  • обеспечить пригодность плат­формы для игр как DDR, так и PIU, для чего предусмотреть девять активных панелей-кнопок;
  • связать платформу с компьюте­ром по интерфейсу USB-2.0.

Анализ опубликованных в [7—9] опи­саний танцевальных платформ позво­ляет сделать вывод, что в их панелях- кнопках применяются только механиче­ские контакты. Чтобы обеспечить дол­говечность, контакты и платформы в целом обладают большим запасом ме­ханической прочности, что и обуслов­ливает большую массу.

При создании предлагаемой танце­вальной платформы было принято решение отказаться от механических контактов. В результате анализа до­ступных и теоретически пригодных для использования вариантов выбор был сделан в пользу ёмкостных датчиков. В подтверждение выбора удалось отыс­кать в Интернете описания трёх, по-ви­димому, работоспособных танцеваль­ных платформ с ёмкостными датчиками [10-12].

Первый изготовленный автором макет танцевальной платформы был оборудован четырьмя ёмкостными дат­чиками. В качестве её основания использовался лист ДВП размерами 840×840 мм и толщиной 3,5 мм. На обратную сторону листа в тех местах, где должны располагаться панели- кнопки, были наклеены четыре квадра­та размерами 250×250 мм из алюми­ниевой фольги. Макет измерителя ём­кости был собран на микроконтроллере ATmega8535 [13]. Соединение с ком­пьютером было организовано через покупной джойстик, как это сделано в конструкциях [7—9].

Для измерения ёмкости использо­вался известный принцип определения продолжительности её зарядки или разрядки. Допустим, датчик (конденсатор) подключён к одной из линий порта ввода-вывода микроконтроллера. Сна­чала этот вывод конфигурируют как выход и на нём устанавливают высокий логический уровень. Поскольку выход­ное сопротивление линии порта в таком состоянии невелико, датчик (конденса­тор) практически в тот же момент заря­жается до напряжения питания микро­контроллера. После этого линию кон­фигурируют как вход. Конденсатор на­чинает разряжаться через подключён­ный параллельно ему резистор. Напря­жение на конденсаторе постепенно уменьшается, а программа микроконт­роллера отсчитывает время, за которое оно падает до логически низкого уров­ня. Чем больше ёмкость датчика, тем больше времени требуется для разряд­ки, и наоборот.

Сравнивая продолжительность раз­рядки с заранее установленными поро­гами, можно выделить два состояния “кнопки” — “нажата” и “отпущена”. Именно такой принцип использован в конструкции [12], что установлено ана­лизом исходного текста программы имеющегося в ней микроконтроллера.

Возможна небольшая модификация описанного принципа. Если спустя фик­сированное время после переконфигу­рации линии с выхода на вход запускать встроенный АЦП микроконтроллера, то результат преобразования будет про­порционален ёмкости датчика. Такой принцип использован в конструкциях [10, 11].

По результатам испытаний первого макета танцевальной платформы были выявлены следующие недостатки:

  • ёмкостные датчики одинаково чувствительны к предметам, находя­щимся сверху и снизу от них. Следова­тельно, на полу, в котором имеется металлическая арматура, играть не удаётся;
  • датчики имеют очень низкую помехоустойчивость, что обусловлено относительно большой площадью образующих их пластин и длиной иду­щих к ним проводов. Об этом написал на своей интернет-странице автор кон­струкции [11]. Это, пожалуй, самый большой недостаток, ставящий под во­прос саму идею реализации ёмкостной танцевальной платформы.

На первом макете получаемые значения продолжительности разрядки имели большой разброс. Восьмикрат­ное повторение измерения с последую­щим усреднением результатов ситуа­цию кардинально не улучшило. Частич­но помог гистерезис, введённый в характеристику переключения датчика. Но даже при индивидуальной для каж­дого датчика подстройке порогов так и не удалось добиться чёткого определе­ния “нажатий” и “отпусканий”.

Анализ источников был продолжен. Через некоторое время было найдено техническое решение, позволяющее полностью устранить чувствительность датчика снизу и существенно улучшить чёткость срабатывания. Это — активное экранирование, известное в зарубежной литературе под названием “driven shield”. Его широко применяют для сня­тия сигналов с высокоомных цепей. Ссылки на конкретные источники ин­формации приводить не буду, посколь­ку их очень много. Интересующийся читатель без труда сможет отыскать их в Интернете самостоятельно.

L'idée de spectacles de dépistage actifs Figure. 1. Оно достигается с помощью повторителя напряжения DA1 с хорошей нагрузочной способностью. Выход повторителя соединён с экраном сигнального провода, идущего от дат­чика, а экран этого провода — с экра­ном самого датчика (проводящей пла­стиной, идентичной по размерам пла­стине датчика и прикрывающей ее ниж­нюю сторону). Благодаря повторителю напряжение на экране всегда равно на­пряжению на датчике. Поскольку теперь разность потенциалов между датчиком и его экраном равна нулю, ток через ём­кость между ними не течёт. За счёт низкого выходного сопротивления повто­рителя нижняя сторона пластины-дат­чика и идущий от датчика экранирован­ный провод теряют всякую чувствитель­ность к окружающим предметам, даже металлическим.

Figure. 1

Figure. 1

Хотелось бы отметить, что помехо­устойчивость конструкций [10—12], упомянутых выше, можно существенно улучшить, применив в них активное экранирование ёмкостных датчиков. В первом макете танцевальной платфор­мы активное экранирование позволило добиться более чётких срабатываний датчиков. Но выяснилось, что это толь­ко половина решения проблемы, так как помехоустойчивость осталась всё-таки недостаточной.

В результате изучения различных интернет-источников были обнаружены серии микросхем QTouch и QMatrix [14] для работы с ёмкостными датчиками, обеспечивающими повышенную поме­хоустойчивость. Но они оказались не­способны работать с датчиками разме­рами 250×250 мм. Однако меня очень заинтересовал использованный в них принцип измерения ёмкости, карди­нально отличающийся от описанного выше.

В основе принципа, используемого в микросхемах QTouch и QMatrix, лежит перенос заряда из конденсатора-дат­чика в накопительный конденсатор, ёмкость которого должна быть во много раз больше ёмкости датчика. В зару­бежной литературе это решение из­вестно под названием “charge pump”.

Un schéma simplifié du récipient de mesure selon le principe de transfert de charges est représenté sur la рис. 2, где приняты следую­щие обозначения: С — ёмкостный дат­чик; Сn — накопительный конденсатор; S1—S3 — ключи, управляемые микро­контроллером; DD1 — компаратор на­пряжения.

Figure. 2

Figure. 2

В первый момент времени ключ S1 замкнут, ключи S2 и S3 разомкнуты. Конденсатор С chargé à la tension UFosse. Ключ S1 размыкают, а ключ S3 замыкают одновременно. Этим конденсаторы С et Cn соединяют парал­лельно, в результате чего большая часть заряда перетекает из С à Cn. Так происходит цикл “зарядка—перенос”. Поскольку ёмкость накопительного кон­денсатора Си много больше ёмкости датчика С, чтобы зарядить Сn до напря­жения, близкого к UFosse требуется много циклов “зарядка—перенос”.

В те отрезки времени, когда ключ S1 замкнут, напряжение на инвертирую­щем входе компаратора DD1 тем мень­ше, чем больший заряд накоплен в кон­денсаторе Сn. Когда это напряжение опустится ниже порога, заданного на­пряжением на неинвертирующем входе компаратора (например, 0,7 В), на вы­ходе компаратора будет установлен вы­сокий логический уровень напряжения.

Capacité capteur C определяют пу­тём подсчёта циклов “зарядка—пере­нос”, выполненных до срабатывания компаратора. Чем ёмкость С больше, тем большее количество заряда она запасает в начале каждого цикла, и меньшее число циклов “зарядка—пере­нос” требуется для зарядки конденса­тора Cn до заданного порога. Как только компаратор DD1 сработает, ключи S1 и S2 будут одновременно замкнуты, а ключ S3 разомкнут. Конденсатор Сn раз­рядится, после чего циклы “зарядка- перенос” могут быть повторены для следующего измерения ёмкости С.

Схема, представленная на рис. 2, проста в реализации с помощью совре­менных микроконтроллеров, имеющих порты дискретного ввода—вывода об­щего назначения и встроенные компа­раторы напряжения. Более того, фирма Atmel разработала реализующую опи­санный метод библиотеку QTouch Library [15] для различных серий выпус­каемых ею микроконтроллеров. Сегод­ня указанная библиотека при необходи­мости может быть подключена к среде разработки программ микроконтролле­ров Atmel Studio [16].

Почему же метод переноса заряда даёт более стабильные результаты из­мерения ёмкости датчика, чем тради­ционный метод? Дело в том, что кон­денсатор С в схеме, изображённой на рис. 2, находится преимущественно в двух состояниях: заряжен до напряже­ния питания и разряжен до текущего значения напряжения на накопитель­ном конденсаторе. В интервале вре­мени, когда происходит перекачка за­ряда из С à Cn и чувствительность к воздействию помех наибольшая, дат­чик и идущие от него провода зашунтированы конденсатором Сn большой ёмкости.

Сочетание двух технических реше­ний (активное экранирование и измерение емкости по принципу переноса заряда) позволило успешно достичь це­лей, обозначенных в начале статьи. С их использованием был собран второй ма­кет танцевальной платформы (точнее, модифицирован первый) с четырьмя кнопками-датчиками. Датчики были сделаны из фольгированного с двух сто­рон стеклотекстолита толщиной 1,6 мм. Их размеры остались прежними — 250×250 мм. С печатной платой конт­роллера датчики были соединены коаксиальными кабелями. По-прежне­му использовались микроконтроллер ATmega8535 и соединение с компьюте­ром через джойстик.

Испытания второго макета показали, что он свободен от недостатков, свойст­венных первому. Точность срабатыва­ния датчиков оказалась неотличимой от достигаемой при использовании одной из лучших покупных танцевальных плат­форм “Cobalt Flux”. К величайшему со­жалению. выпуск этих платформ пре­кращён несколько лет назад.

Здесь необходимо сделать уточнение. Мне не удалось найти отличий на уровне “Difficult” по шкале сложности DDR. Ком­позиции проходились и на “Cobalt Flux”, и на втором макете с одинаковыми резуль­татами. Быть может, на более высоких уровнях сложности отличия и проявятся, но проверить это у меня нет возможнос­ти. Те, кто знаком с DDR, меня поймут.

Были и особенности:

  • упомянутая библиотека QTouch Library оказалась слишком громоздкой и неудобной в использовании. Взамен неё была написана очень простая про­граммная реализация принципа пере­носа заряда, впоследствии проверен­ная на практике;
  • установлена необходимость опе­ративной подстройки уровней пере­ключения индивидуально для каждого датчика. Хранение уровней непосред­ственно в программе и их изменение путём её корректировки, повторной компиляции и перепрограммирования микроконтроллера, как это сделано в [12], нельзя считать лучшим решением. Лучше изменять уровни с помощью предусмотренного в рабочей программе несложного меню и хранить их в EEPROM мик­роконтроллера.

Интерфейс пользователя может быть реализован с ис­пользованием небольшого ЖКИ либо путём вывода че­рез UART микроконтроллера сообщений, принимаемых и отображаемых компьютером. Во втором макете опробова­ны оба варианта и установле­но следующее:

  • необходимо хранить в микроконтроллере несколь­ко наборов уровней пере­ключения, поскольку пользо­ватели разного возраста и комплекции по-разному из­меняют ёмкость датчиков. Реализовано хранение и оперативное переключение пяти наборов;
  • при домашнем использовании иг­рать на платформе лучше в носках (без обуви), поскольку в этом случае лучше чувствуются рельефные границы пане­лей-кнопок, хотя ёмкостные датчики оказались способны реагировать и на игрока в обуви;
  • отсутствует тактильное ощущение нажатий, но, как мне кажется по лично­му опыту, это не так уж и важно.

Ещё одно преимущество танцеваль­ной платформы с ёмкостными датчика­ми перед традиционными [7—9] — меньшая подверженность механическо­му износу (иными словами, большая долговечность), поскольку в предлагае­мой конструкции полностью отсутст­вуют подвижные части.

В целом второй макет оказался удач­ным сочетанием технических решений, пригодным для повторения читателями, поскольку вполне соответствовал по­ставленным целям (кроме универсаль­ности). Но мне захотелось сделать кон­струкцию более завершённой, повы­сить уровень технической эстетики (на­пример, для связи с компьютером по интерфейсу USB-2.0 не использовать джойстик, а подключать микроконтрол­лер непосредственно). Хотелось и опти­мизировать конструкцию с целью её дальнейшего удешевления. В результа­те после испытания двух макетов была разработана описываемая ниже кон­струкция, основные технические харак­теристики которой представлены в table Платформа структурно со­стоит из модуля контроллера, к которо­му подключены девять экранированных ёмкостных датчиков. В свою очередь, контроллер подключают к компьютеру по интерфейсу USB-2.0.

tabl

Conduire module de commande est indiqué dans Figure. 3. Его основной эле­мент — микроконтроллер DD1. Тактовая частота микроконтроллера стабилизи­рована кварцевым резонатором ZQ1 на 8 МГц. Конденсаторы С1, СЗ, С5, С7, С9, С11, С13, С15, С17 — накопительные. Их емкость выбрана равной 10 нФ, чем при выбранных размерах ёмкостных датчи­ков достигнут компромисс между их чув­ствительностью и затратами процессор­ного времени на измерение их ёмкости.

Figure. 3

Figure. 3

На счетверённых ОУ DA1 —DA3 выпол­нены повторители напряжения для активных экранов. Всего используется де­вять элементов ОУ (по числу датчиков). Резистивные делители напряжения на входах повторителей уменьшают их ко­эффициент передачи приблизительно на 2 %, что повышает стабильность, снижая риск самовозбуждения. Сами датчики и их экраны подключают к разъёму ХР1.

Светодиод HL1 сигнализирует о на­личии питания. Светодиод HL2 показы­вает режим работы интерфейса USB. Светодиоды HL3—HL11 отображают со­стояние ёмкостных датчиков и располо­жены на печатной плате согласно распо­ложению датчиков на платформе. О сра­батывании, например, датчика 0 сигна­лизирует светодиод HU3, датчика 1 — HL4 и т. д.

Кнопки SB1 (установка микроконт­роллера в исходное состояние) и SB2 (активирование загрузчика) используют при загрузке программы во FLASH-память микроконтроллера DD1 по интер­фейсу USB-2.0. Кнопки SB3—SB6 — ор­ганы управления платформой. С их помощью выбирают наборы порогов пе­реключения, а также устанавливают эти пороги индивидуально для каждого ёмкостного датчика.

Конденсаторы С23—С36 — фильтру­ющие в цепи питания, диод VD1 защи­щает устройство от подачи напряжения питания в неправильной полярности.

Разъём XS1 — розетка USB-BF. К её контактам подключены интерфейсные линии USB, с неё же берут напряжение питания +5 В для всего контроллера.

На разъём ХР2 выведен общий про­вод устройства. У меня не возникало не­обходимости в его использовании, но читатели, которые захотят ещё более повысить помехозащищённость плат­формы, могут покрыть её основание сплошным слоем металлической фоль­ги и соединить его с разъёмом ХР2, обеспечив лучшее экранирование.

Для минимизации размеров модуля контроллера в нём использованы ком­поненты в основном для поверхностно­го монтажа. В качестве DD1 можно ис­пользовать любой из микроконтролле­ров AT90USB646-AU, AT90USB647-AU, AT90USB1286-AU или AT90USB1287-AU (при этом необходимо загружать в про­граммную память каждого микроконт­роллера коды из соответствующего НЕХ-файла).

Все резисторы — типо­размера 0805. Конденсаторы С23— С27 — оксидные танталовые 293D476X0016С2 в корпусе типоразмера D. К выбору накопительных кон­денсаторов С1, СЗ, С5, С7, С9, С11, С13, С15, С17 следу­ет отнестись с особой тща­тельностью. Рекомендую при­менить плёночные конденса­торы К73-17А, обладающие по сравнению с керамически­ми лучшей температурной стабильностью, или анало­гичные импортные. На пе­чатной плате предусмотрена возможность установки этих конденсаторов различного размера. Конденсатор С37 — керамический типоразмера 1206. Все остальные конденсаторы — керамические типоразмера 0805.

LITTÉRATURE

  1. Dance Dance Revolution. — URL https://ru.wikipedia.org/wiki/Dance_Dance_Revolution (15.05.2015).
  2. Pump It Up. — URL: https://ru.Wikipedia.org/wiki/Pump_lt_Up (15.05 2015).
  3. In the Groove. —URL:https://ru.org/wiki/ln_the_Groove (15 05.2015).
  4. — URL: https://en.Wikipedia. org/wiki/IDance (15.05.2015).
  5. — URL: http://www. stepmania.com/ (15.05 2015).
  6. Танцующий Бегемотик. — URL: http:// www.dancinghippo.ru/ (15 05.2015).
  7. The DDR homepad building and softpad modding thread. — URL: https://zenius-i-vanisher.com/v5.2/viewthread.php?threadid =3350(15.05.2015).
  8. Home Built Dance Dance Revolution Arcade Style Metal Pad. — URL: http://www. com/d20/ddrhomepad/
  9. Как самому сделать танцевальную плат­форму для Dance Dance Revolution. — URL: http://habrahabr.ru/post/235323/ (15.05 2015).
  10. Capacitive Dance Pad — URL: http://simon.derr.free.fr/site/spip/spip.php?rubrique3 (15.05.2015).
  11. usbddr – V-USB — URL: http://vusb. wikidot.com projectiusbddr (15 05 2015).
  12. Кучин А. Танцевальный коврик с USB-интерфейсом (USB DANCE PAD) — URL: http://www.artem.ru/cgi-bin/news?c=v&id=744( 05.2015).
  13. 8-bit AVR Microcontroller with 8K Bytes In-System Programmable Flash ATmega8535. ATmega8535L — URL: http://www.atmel.com/ images/doc2502.pdf (15.05 2015).
  14. Dedicated Touch Devices — URL http:// www. atmel. com/products -TouchSolutions/b sw/dedicated-touch-devices.aspx
  15. Atmel QTouch Ubrary — URL: http://www.atmel.com/products/TouchSolutions/touchsoftwareatmelaspx.
  16. Atmel Studio. — URL: http://www.atmecom/tools/atmelstudio.aspx (15.05.2015).

Auteur : А. ГЕННО, г. Таганрог Ростовской обл.

Source : журнал Радио №10, 2015

administrateur

Laisser un commentaire

Your email address will not be published. Required fields are marked *