Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Танцевальная платформа для Dance Dance Revolution и Pump It Up

Автор делится с читателями описанием конструк­ции универсальной танцевальной платформы для игр серий Dance Dance Revolution и Pump It Up и её контроллера. Благодаря сочетанию оригинальных технических решений платформу уда­лось сделать лёгкой, несложной в сборке без применения каких- либо специфических инструментов, но в то же время весьма прочной и пригодной для игр высокого уровня сложности. Он хочет, чтобы как можно больше читателей открыли для себя мир танцевальных игр. Ведь это так весело и увлекательно, да ещё и полезно для здоровья.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». Его широко применяют для сня­тия сигналов с высокоомных цепей. Ссылки на конкретные источники ин­формации приводить не буду, посколь­ку их очень много. Интересующийся читатель без труда сможет отыскать их в Интернете самостоятельно.

Идею активного экранирования ил­люстрирует рис. 1. Оно достигается с помощью повторителя напряжения DA1 с хорошей нагрузочной способностью. Выход повторителя соединён с экраном сигнального провода, идущего от дат­чика, а экран этого провода — с экра­ном самого датчика (проводящей пла­стиной, идентичной по размерам пла­стине датчика и прикрывающей ее ниж­нюю сторону). Благодаря повторителю напряжение на экране всегда равно на­пряжению на датчике. Поскольку теперь разность потенциалов между датчиком и его экраном равна нулю, ток через ём­кость между ними не течёт. За счёт низкого выходного сопротивления повто­рителя нижняя сторона пластины-дат­чика и идущий от датчика экранирован­ный провод теряют всякую чувствитель­ность к окружающим предметам, даже металлическим.

Рис. 1

Рис. 1

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

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

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

Упрощённая схема измерения ёмко­сти по принципу переноса заряда изоб­ражена на рис. 2, где приняты следую­щие обозначения: Сд — ёмкостный дат­чик; Сн — накопительный конденсатор; S1—S3 — ключи, управляемые микро­контроллером; DD1 — компаратор на­пряжения.

Рис. 2

Рис. 2

В первый момент времени ключ S1 замкнут, ключи S2 и S3 разомкнуты. Конденсатор Сд заряжен до напряжения питания Uпит. Ключ S1 размыкают, а ключ S3 замыкают одновременно. Этим конденсаторы Сд и Сн соединяют парал­лельно, в результате чего большая часть заряда перетекает из Сд в Сн. Так происходит цикл «зарядка—перенос». Поскольку ёмкость накопительного кон­денсатора Си много больше ёмкости датчика Сд, чтобы зарядить Сн до напря­жения, близкого к Uпит требуется много циклов «зарядка—перенос».

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

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

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

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

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

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

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

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

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

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

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

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

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

tabl

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

Рис. 3

Рис. 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.

ЛИТЕРАТУРА

  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).

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

Источник: журнал Радио №10, 2015

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *