Реклама

Home style lasertag (самодельный лазертаг)

Обсуждение технических нюансов лазертаговского оборудования потребительского и HSL классов

Модератор: Steavi

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение MidnightDreamer » 28 сен 2010, 21:36

egride писал(а):
lvovi4 писал(а):Всем привет!
С ореолом можно вообще не париться, т.к. плотность излучения в ореоле мала и к тому же падает в кубической зависимости от расстояния.


Категорически не согласен! Практика показывает, что вблизи (метров до 10) целиться практически не надо! А погасить ореол, я думаю одной краской не получится. По мне так лучше сделать черный тубус, а на конце диафрагму с отверстием. Должно отсечь все лишнее.


Думаю, в этом случае отсечется прежде всего полезный центральный луч, ограничив его диаметр диамертом отверстия в диафрагме (это сделает еще более сложной задачу попадания на более менее дальних дистанциях). Лучше просто сделать тубус чуть длиннее, чтобы после линзы тоже был "колодец", и чем глубже он тем уже будет видимый конус ореола. Совсем убирать его думаю не стоит, т.к. на ближних дистанция и должно быть легче попасть в противника, это имитирует вероятность попадания во ВСЮ ростовую мишень, а не только в голову. О! Можно попробовать и диафрагму, но не с отверстием посередине, а с вертикальной щелью.
MidnightDreamer
Майор
Майор
 
Сообщений: 1054
Зарегистрирован: 17 сен 2010, 15:00

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение KorSar » 28 сен 2010, 22:13

Сегодня взял камеру. Она в режиме ночной съемки (с ик подсветкой) очень хорошо показывает пятно. Даже не ожидал, что будет так видно. С прицелом одинаковая картина с ореолом, что с ик-диодом, что с видимым. И в трубочку вставлял ик-диод и с фокусом поиграл - ореол не убрать. А вот в автоматике (см. 2-юстраницу) ореол убрался и не наблюдается как с ик-диодом так и с видимым. убрал путем смещения ближе к линзе диода. Пятно, правда, чуть больше, чем когда в фокусе, зато без ореола.
Мысль с колодцем нужно проверить.
пуля - дура, луч - молодец
KorSar
Капитан
Капитан
 
Сообщений: 409
Зарегистрирован: 17 сен 2010, 06:36
Откуда: Санкт-Петербург

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение LtagKirov » 29 сен 2010, 08:10

MidnightDreamer писал(а):to LTagKirov:
Сергей, а зачем плавно регулировать дальность, если мы просто кнопкой будем врубать режим "огонь в помещении"? Чтобы имитировать разные ТТХ оружия?


Зачем - незнаю можно и для имитации разного оружия, просто ещё одна фишечка, которой пока нет в других системах 8-)


Поделал опыты с кодированием сигнала, самое удачное по помехоустойчивости гибрид модуляции длительностью пауз (Pulse Distance Modulation) и длительностью импульса (Pulse Width(length) Modulation) Итого получается сигнал с фазовой модуляцией 8-). Длина бодового интервала постоянна, это важно, можно использовать синхронное детектирование, декодирование посложнее чем в первых двух случаях, но по теории лучше быть уже неможет. Импульсы большей длительности - лог. "1" , меньшей - лог. "0". и далее дополнение паузой до одинаковой длинны бодовой посылки. То есть одновременно меняется ширина импульса и ширина паузы, а время на передачу одного бита (бод) постоянное.

Алгоритм детектирование получается примерно такой, синхронизируем часы приёмника и передатчика по появлению сигнала, отмеряем бодовый интервал интегрируя всё что попадает в приёмник, накопили больше 50% значит "1" , ненакопили "0". Накопили больше 70% значит помеха, накопили меньше 30% на "0" нехватает, можно обозначить как "свист пули" и тд. Ошибка синхронизации часов в пределе до 50%, реально понадобится защитный интервал, будет 30-40% от длины бодового интервала.


Изображение

MilesTag использует Pulse Width(length) Modulation, вторая диаграмма на картинке, а не двухфазное кодирование.

to be continued...
Последний раз редактировалось LtagKirov 29 сен 2010, 09:15, всего редактировалось 1 раз.
LtagKirov
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 260
Зарегистрирован: 20 сен 2010, 22:02
Откуда: Киров

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение KorSar » 29 сен 2010, 09:13

Если еще это в прошивке реализуешь вообще супер будет, а то пока я разберусь со всем этим.
А что будем кодировать? ID игрока? Или еще чего-то.
На мой взгляд, на первых порах ID игрока вполне достаточно в выстреле и все, да и много игроков наверное делать не нужно. 16? 32?
пуля - дура, луч - молодец
KorSar
Капитан
Капитан
 
Сообщений: 409
Зарегистрирован: 17 сен 2010, 06:36
Откуда: Санкт-Петербург

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение LtagKirov » 29 сен 2010, 09:29

KorSar писал(а):А что будем кодировать? ID игрока? Или еще чего-то.


Задачи решаемые кодированием, как определил для своих целей.

1. Выстрел: управление активными устройствами(аптечка, контрольная точка) Здесь достаточно ID Игрока, один байт без кода команды, активное устройство пусть само определяет как расшифровывать байт - кто в какой команде и тд. Выстрел по другим игрокам без контроля ID, аналоговый сигнал, мощность пули опреляется длинной хвоста пакета.

2. Приём сигнала: устранение рикошетов, распознование сигнала от помехи - регулярной структуры хвоста пакета 0101010101 и тд будет достаточно, весь пакет пуля, получается длинной 2-3 байта. Мощность поражения сильно не будет отличатся максимум 8..12 градаций. Для симуляторов достаточно, для аркадного(аренного) применения неподходит, здесь нужно делать полное кодирование (вид оружия, броня и тд) или например логарифмическую шкалу поражения в приёмнике.

3. Конфигурация оборудования, сброс статистики: это происходит у судьи протоколы произвольные без ограничения длинны пакетов и прочего. Нас пока совсем не интересует.
LtagKirov
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 260
Зарегистрирован: 20 сен 2010, 22:02
Откуда: Киров

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение KorSar » 29 сен 2010, 11:00

Возвращаясь к излучателю, отмечу, что фокус для ик лучей находится где-то на 1 сантиметр дальше от линзы чем фокус видимых лучей (прицел таско 4х20)
пуля - дура, луч - молодец
KorSar
Капитан
Капитан
 
Сообщений: 409
Зарегистрирован: 17 сен 2010, 06:36
Откуда: Санкт-Петербург

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение KorSar » 29 сен 2010, 11:03

to LtagKirov

Так будешь реализовавать последнее?
пуля - дура, луч - молодец
KorSar
Капитан
Капитан
 
Сообщений: 409
Зарегистрирован: 17 сен 2010, 06:36
Откуда: Санкт-Петербург

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение LtagKirov » 29 сен 2010, 11:22

KorSar писал(а):Так будешь реализовавать последнее?


Для начала сделаем два первых пункта, а там посмотрим. Кстати выгоднее хвост ставить в начало - работает как преамбула, настраивает ИК приёмник, а ID в конце пакета.
LtagKirov
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 260
Зарегистрирован: 20 сен 2010, 22:02
Откуда: Киров

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение egride » 29 сен 2010, 15:50

Хорошая на мой взгляд идея по комбинации цифро-аналогового кода. Грубо говоря сначала накапливаем поражение а потом решаем засчитать его или нет.

А на счет понижения мощности меня вот что смутило: хотя прямая дальность и падает с уменьшением расстояния, но фактически мощность остается прежней. Есть подозрение, что отраженный свет на пониженных частотах все равно будет поражать. Я думаю надо проверить на эксперименте.

>to LtagKirov
Слушай, поправь меня, если я неправильно понял принцип действия приема ИК твоей программы.
Значит если появилась засветка ИК, счетчик отщелкивает единицу, после чего программа исполняется дальше по кругу, пока не дойдет до конца, где время ее выполнения сравнивается с таймером и, если оно не совпадает с 36кГц, звуки не проигрываются, а нехватка времени восполняется таймером? Примерно так?

Зачем именно такая система приема? Машинное время экономит? У меня так получалось, что когда я изменения в программу вносил, звук не проигрывался. Приходилось отодвигать тот предел, где звук выключается. Если мы хотим переложить функции звука на внешнее устройство, нам надо заново откалибровать программу, либо организовать прием по другому. Т.к. получается лимит времени на каждый цикл ограничен и может так получиться, что все выполнить за него не удалось. Хотя как я понимаю, звук - самая долгая часть. Если мы его убираем, возможно времени останется с хорошим запасом. Что думаешь на счет этого?
egride
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 248
Зарегистрирован: 18 сен 2010, 10:27

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение egride » 29 сен 2010, 16:05

Еще я все-таки хочу задействовать ЕПРОМ. 8-) Вижу в этом массу плюсов (во время игры сели батарейки, случайно тумблер переключили, зависание, пропадание контакта и т.д.). Но Сохранять бесконечно, как оказываться не получится. Сделанный мной эксперимент, где все переменные лежат в ЕПРОМе жутко тормозит, т.к. время обращения к этой памяти порядка 4мс. Кроме того она имеет ресурс около 100 000 раз перезаписи. Думаю можно сохранять данные игрока в память раз в 30 или 60 секунд.

Далее идет нехитрый расчет: 4 часа игры в день, 60 минут в часе, 1 раз в минуту сохраняем результат. 4*60*1=240 раз. Делим ресурс памяти на расход ее за 1 игру получаем 100 000/240 = 416 дней. Думаю мало кому понравится такой "откровенно китайский" срок службы.
Вот у меня вопрос: Что будет, когда контроллер не сможет получить доступ к ЕПРОМу в следствие износа какой-то его области? Он запишет переменную в другом месте памяти или вообще работать перестанет? Если первый вариант, то такой метод будет работать т.к. памяти у меги8 много, а переменных - мало. Если же второй, придется отказаться от идеи с ЕПРОМ-ом. :roll:
egride
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 248
Зарегистрирован: 18 сен 2010, 10:27

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение kain » 29 сен 2010, 17:29

Нормальный ресурс.
Если учесть что в неделю мы играем пару раз, допустим 3, то хватит на 3,5 года.
На деле хватит как минимум лет на 5, т.к. для человека который работает, все выходные, в течении 3х лет убивать на игру, как то не очень, да и надоест быстро.
мыло: kain@sport.ru
kain
Сержант
Сержант
 
Сообщений: 73
Зарегистрирован: 22 сен 2010, 12:03

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение MidnightDreamer » 29 сен 2010, 21:37

LtagKirov писал(а):
KorSar писал(а):Так будешь реализовавать последнее?


Для начала сделаем два первых пункта, а там посмотрим. Кстати выгоднее хвост ставить в начало - работает как преамбула, настраивает ИК приёмник, а ID в конце пакета.


А как приемник узнает, что закончен "смертельный хвост" и начинается ID-байт? Начинать ID с заголовка (например в MILES это четыре "1" подряд)? И что будет при неполном попадании? Урон-то посчитается пропорционально хвосту, а вот ID будет срезан. А если приемники игроков будут использовать только аналоговую часть посылки (хвост), то как бороться с авторикошетом распознавая свой собственный выстрел? Только ручным понижением мощности(дальности)?
Может быть использовать сам повторяющийся ID-байт для заполнения хвоста вместо последовательности из "01" (Сергей-автор ведь как-то уже высказывал такую идею)? Сколько раз ID повторился из N максимально возможных в одном выстреле - таков и урон.
MidnightDreamer
Майор
Майор
 
Сообщений: 1054
Зарегистрирован: 17 сен 2010, 15:00

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение LtagKirov » 30 сен 2010, 13:06

egride писал(а):Есть подозрение, что отраженный свет на пониженных частотах все равно будет поражать.


Обязательно будет но на меньшей дистанции, то же самое что при уменьшении тока через диод, если не видно разницы, зачем делать дополнительные схемы. Эта функция предназначена для игры в помещении, иначе игрок будет просто стрелять в потолок, и за углом все противники будут погибать, рикошет для себя устраняем через ID.


egride писал(а):Слушай, поправь меня, если я неправильно понял принцип действия приема ИК твоей программы... пока не дойдет до конца, где время ее выполнения сравнивается с таймером и, если оно не совпадает с 36кГц, звуки не проигрываются, а нехватка времени восполняется таймером? Примерно так?


Здесь ошибка - не восполняется, а дополняется. Каждый процесс ничего "не знает" о других процессах, он просто получает управление каждые 40мкс. Если менеджер задач видит что следующий процесс может потратить времени больше чем входит в квант времени, то процесс просто не получает время - вытесняющая многозадачность.

egride писал(а): Зачем именно такая система приема? Машинное время экономит?


Нет совсем не экономит, наоборот иногда тратит попусту 8-)
Но у такой структуры программы есть огромный плюс, мы можем точно гарантировать время вызова каждой команды в любом месте программы, а для тех команд которые не важны, наоборот отложить. Программа получается детерминированной, в случае использования прерываний, этого обеспечить нельзя, например ход любой процедуры может быть произвольно прерван и управление передастся процедуре обработки прерывания, когда она завершит работу, снова может произойти прерывание и так далее - процедура из которой передали управление по прерыванию будет выполнятся неопределённое время. Это очень трудные ошибки для отладки. Две программы с прерываниями запущенные на разных экземплярах оборудования, при одинаковом внешнем воздействии в произвольный момент времени могут находится в разном внутреннем состоянии, этого недостатка нет в программе использующей автоматы. Последние американские марсоходы, использовали такой вид внутреннего ПО, можете почитать про него, ключевые слова : автоматное программирование, finite state mashin.http://en.wikipedia.org/wiki/Finite_state_machine

egride писал(а): Приходилось отодвигать тот предел, где звук выключается.

Делая так мы увеличиваем время между последовательным вызовом каждой программы, чем делаем , более медленную реакцию их на внешние события, что не есть хорошо.
В идеале нужно отказыватся от общих часов и для каждого процесса использовать свои внутренние, но у нас же не марсоход, и так достаточно ;)

egride писал(а): Если мы хотим переложить функции звука на внешнее устройство, нам надо заново откалибровать программу, либо организовать прием по другому.

Ничего не надо "калибровать", всё получится даже проще чем сейчас. Выделяем 4 ножки у нас много свободных: код звука(15штук) и один код on/off (F) , Теперь в автомате звука достаточно выставить код звука и включать выключать его, остальное решает внешнее устройство. Автомат будет содержать 3-4 строки программы и даже от вытеснения можно отказатся.


egride писал(а):Еще я все-таки хочу задействовать ЕПРОМ. Кроме того она имеет ресурс около 100 000 раз перезаписи.

Мне кажется это ненужное усложнение, достаточно в ЕПРОМ сохранять конфигнурацию и сделать разём покачественнее, это нетрудно :)


MidnightDreamer писал(а): А как приемник узнает, что закончен "смертельный хвост" и начинается ID-байт? Урон-то посчитается пропорционально хвосту, а вот ID будет срезан. Может быть использовать сам повторяющийся ID-байт для заполнения хвоста вместо


"Смертельная голова" будет состоять из одних "1" и хвосте головы "0" а затем ID.
При своём рикошете препятствие близко - весь пакет приходит без ошибок, кроме того "голова", "туловище" и "хвост" пули могут повредится с одинаковой вероятностью, неважно где будет ID. Для рикошета от противника поможет только понижение мощности его луча. Повторять ID нет смысла - весь пакет максимум 3 байта. Если приняли пакет с ошибкой, то уже неважно сколько там штук ID, биты исправления ошибок в такой короткий пакет не засунуть.
LtagKirov
Ст. Лейтенант
Ст. Лейтенант
 
Сообщений: 260
Зарегистрирован: 20 сен 2010, 22:02
Откуда: Киров

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение MidnightDreamer » 30 сен 2010, 20:51

LtagKirov писал(а):. Эта функция предназначена для игры в помещении, иначе игрок будет просто стрелять в потолок, и за углом все противники будут погибать


А какой ему резон собственноручно понижать мощность выстрела, если сам он защищен от своего рикошета?
MidnightDreamer
Майор
Майор
 
Сообщений: 1054
Зарегистрирован: 17 сен 2010, 15:00

Re: Home style lasertag (самодельный лазертаг)

Новое сообщение KorSar » 30 сен 2010, 21:46

Ага, всех укакошить одним выстрелом соблазн велик.
пуля - дура, луч - молодец
KorSar
Капитан
Капитан
 
Сообщений: 409
Зарегистрирован: 17 сен 2010, 06:36
Откуда: Санкт-Петербург

Пред.След.

Вернуться в Оборудование потребительского / HSL классов: технические вопросы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron