LaserTag - прошивка,схема и описание


В последнее время у нас в стране стали популярны различного рода военно-спортивные игры. Эти мероприятия хороший повод собратся с друзьями пообщаться или просто развлечься. Распространено четыре вида таких игр: пейнтбол, страйкбол, хардбол,лазертаг.

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

Лазертаг - новая для нашей страны игра, придумана в США, имеет довольно много разновидностей и представляет собой игру, суть которой в поражении игроков-противников световыми выстрелами из бластеров-автоматов. Поражение игрока происходит путём регистрации луча бластера-автомата специальными светочувствительные датчиками, закреплёнными на одежде игрока.

Самое главное достоинство лазертага, применение в качестве "пуль" световых импульсов, при этом полностью отсутствуют какие-либо болевые ощущения и травматизм при попадании «выстрела» в игрока. Отсутствие необходимости перезарядки картриджей и пуль, бесконечное количество зарядов, делают подобное развлечение особенно подходящим для детей.

В этой конструкции для излучения световых "пуль" используются ИК светодиоды, а в качестве светочувствительных датчиков применяются интегральные приёмники ИК систем дистанционного управления бытовой техникой [1]. Светодиоды ИК безопастнее лазерной техники, но требуют дополнительной оптики для существенного увеличения дальности действия оборудования.

Современные ИК светодиоды и датчики достаточно дешевы чтобы даже без оптики обеспечить дальность действия 10-15 метров от одного светодиода, если установить 3-4 излучающих светодиода, дальность составляет около 20метров (не на прямом солнечном свете), для игрушки вполне достаточно.

Схема в хорошем качестве, для печати.


Все функции игрушки обеспечивает микроконтроллер AVR Atmega8. Рисунок 1 Использование микроконтроллера упрощает схему и отсутствуют какие либо операции по настройке. Сейчас поведение оборудования определяется очень простым сценарием, сменой прошивки он может быть изменён. В схему заложен разёъм XS1, для подключения программатора. Хорошо работает, в том числе и под Windows XP, программа-программатор AVReAl, автор Александр Редчук [2].

Перед началом игры игроки подходят к судье, который магнитным ключом замыкает геркон SB1 "Новая игра" и этим сбрасывает оборудование игроков. Более сложная защита ненужна, это будет напрасное усложнение программы. Индикация состояния игрушки для игрока звуковая, это удобнее чем анализировать свечение светодиодов.

При нажатии на курок SB3 "Огонь", в громкоговорителе BF1 появляется условный сигнал выстрела и одновременно ИК светодиоды HL3,HL4 производят посылку "выстрела". Светодиод HL3 передаёт ИК сигнал, НL4 сверхяркий светодиод имитирует вспышку от выстрела. Чтобы обеспечить дальность "выстрела" ИК светодиод подключаются через транзисторный ключ VT2, ток через современные ИК светодиоды может в импульсе достигать несколько ампер. На применённом диоде по документации падает 5В у нас питание 6-9В, остальное напряжение будет рассеиватся на транзисторе, КПД уменьшается, и диод работает с перегрузкой. Ничего не сгорит, токи небольшие и импульсные, но со временем ИК диод будет работать хуже. Надо ставить резистор R14 сопротивлением порядка 2 Ом = 7в(батарея)-5В(диод)/ 1А примерный ток через диод. Можно вообще резистор не ставить, это страховка, по теории если считать :) Использование готовых приёмников ИК, требует модулирования световых импульсов с частотой несущей. Программа микроконтроллера обеспечивает необходимую частоту. Частота несущей зависит от типа микросхем приёмников ИК, в данной схеме используется 36кГц.

Когда кончаются патроны, выдаётся звук осечки и зажигается светодиод HL1 "Обойма", требуется нажать на кнопку SB2 "Перезарядить", для перезарядки обоймы. Количество обойм сейчас бесконечное, но между выстрелами происходит задержка, что вносит разнообразие в игру. Переключатель с фиксацией SA1 "Очередь/одиночные" изменяет режим стрельбы.

При попадании в игрока, сигнал с фотоприёмника U1, обрабатывается микроконтроллером и если это не помеха выдаётся в громкоговорителе BF1 сигнал о попадании "пик". Приёмников ИК может быть несколько, они собираются по одинаковой схеме (обозначена пунктиром) и подключаются паралелльно. Одновременно вспыхивает светодиод HL2 "Попадание". Светодиод HL2 включается через транзисторный ключ VT1, что позволяет подключить паралельно светодиоду виброзвонок от сотового телефона.

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

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

На рисунке показан вариант компоновки одного комплекта игрушки, из двух узлов, соединённых между собой гибким кабелем - Оружие и Приёмная система. Электроника помещена в отдельный корпус, лучше переставить внутрь макета. Рисунок 2 (All.jpg)



Оружие макет пистолета или винтовки, внутри содержит ИК светодиоды, громкоговоритель для имитации звука выстрелов, переключатель Очередь/одиночные и кнопки управления: Огонь, Перезарядка,Новая игра, Рисунок 4 (intro.jpg).



Излучающие ИК светодиоды помещаются в пластиковую трубку длинной 10-15см и диаметром 6..15мм, что позволяет реализовать прицельную стрельбу световыми импульсами. Рассеяние луча, полученое опытным путём составляет пятно диаметром примерно 0,5 метра на 10 метров, то есть нужно прицеливаться, стрелять "в ту сторону" недостаточно. После первых опытов конечно захочется увеличить дальность и точность, тут уже понадобится оптика. Пример конструкции оптического излучателя

Приёмная система распологается на голове как налобный туристический фонарь, возможны и другие варианты, расположения датчиков (жилет). По периметру на тканевой эластичной ленте закреплены светочуствительные датчики ИК 2-3шт, включаются паралельно. Двух датчиков мало,с определённых углов иногда не срабатывают, очень редко но бывает, лучше три. Для соединения с основной платой используется три провода свитых между собой: питание, общий и сигнал. Можно также применить любой тонкий гибкий кабель. Датчики выполняются на небольших платах из фольгированного стеклотекстолита, Рисунок 5 (Sensor.jpg).



На плате находятся детали фильтра питания и микросхема ИК приёмника. Детали припаиваются к поверхности фольги, без пропускания выводов через отверстия, микросхему приёмника нужно приклеить к поверхности платы. После сборки и присоединения проводов, плату рекомендуется покрыть нитрокраской,для защиты от воды. Перед покраской наклейте на микросхемы малярный скотчь, чтобы не закрасить окно фотоприёмника. По краям плат предусмотрены отверстия за которые их пришивают к ткани как пуговицы, Рисунок 6 (pugv2.jpg).



Для питания схемы можно использовать аккумуляторы и батареи на различные напряжения. Если применены четыре батарейки формата АА, то интегральный стабилизатор напряжения U3 допускается исключить,вместо него поставить диод КД 522 в прямом включении. Микроконтроллер хорошо работает при напряжении от 3в до 6в, в документах фирмы производителя гарантируется работа от 5,5в. При использовании например батареи типа "Крона" на 9В микроконтроллер в схеме без стабилизатора U3 будет гарантированно повреждён. Некоторые интегральные датчики ИК заметно теряют чуствительность при падении напряжения меньше 4,5 вольт, поэтому подключены к батарее напряжением 6в без стабилизатора. Эти микросхемы имеют выход открытый коллектор, что позволяет соединять их паралельно и согласовать уровни сигналов при питании датчиков и микроконтроллера от разных напряжений. При использовании батареи питания на 9 вольт, увеличить резистор R1 в цепи фильтра питания приёмников ИК до 600-700 ом, или использовать для питания стабилизированное напряжение 5В.

Ток потребления от батарей напряжением 6в:
Два датчика 2-3ма.
Всё устройство в режиме ожидания 14-20ма.
Всё устройство в режиме сигнализации о попадании ~80ма.
Всё устройство в режиме выстрел(очередь) + звук ~200ма(средний ток).

Игрок с подсевшими батареями может получить преимущество в виде менее чутких датчиков попадания, для исправления такой ситуации, в схему введены элементы R9, R10, C8. Встроенный в микроконтроллер АЦП измеряет напряжение питания, если оно опустится ниже заданного порога, звуковой сигнал сообщит о необходимости заменить батареи и отключит возможность стрельбы. Прошивка с этой фукцией, пока не отлажена, можно не устанавливать эти детали.

В устройстве можно использовать, микроконтроллер AVR ATMEGA8 или ATMEGA8L (U2), любые ИК светодиоды SHF485,АЛ147А или даже АЛ107А (HL3), отлично работают TSAL6200, За мощностью светодиодов гонятся ненадо, два светодиода ARL-5013IRAB с мощностью 30мВт обеспечивают дальность без оптики 15-20 метров, а в описанной оптике 100метров, на свежих батареях ;) микросхемы ИК приёмника на несущую частоту 36 кГц, любые имеющиеся в наличии аналоги SFH506-36,TFMS5360,536AA3P,TSOP1736,V4836 (U1), светодиоды любого цвета и любой марки (в пределах разумного) HL1,HL2,HL3. стабилизатор напряжения с напряжением стабилизации 5В и малым падением 78L05 (U3), транзисторы КТ315,КТ3102 или любые другие маломощьные n-p-n (VT1,VT3), транзистор КТ972,КТ961,КТ829 (VT2),Резисторы — МЛТ-0,125, Конденсаторы С1,С2,С3 - любые малогабаритные электролиты, Остальные конденсаторы любые малогабаритные керамические.

В качестве громкоговорителя используется телефонный капсуль с сопротивлением 50-60 ом. Звук для игрока обеспечивается достаточно громкий, если возникнет желание чтобы звуки выстрелов слышали и другие игроки тогда понадобится подключение дополнительного усилителя и динамика. Некоторые телефонные капсули с высокой добротностью обмотки при выводе звука дают сильную помеху по цепям питания, что вызывает сбой в работе микроконтроллера особенно если батареи питания сильно разряжены. Для устранения параллельно с телефонным капсулем установлен диод точечный VD2 катодом к плюсу (+) питания и резистор R12 от 220 Ом или больше. Чем больше сопротивление тем лучше, при маленьких сопротивлениях падает громкость звука, подберите по надёжному подавлению помехи. Величина помехи сильно зависит от использованных батарей, для свинцовых аккумуляторов можно вообще ничего не ставить. Параллельно мотору виброзвонка, для устранения помех, тоже включен диод VD1, катодом к плюсу (+) питания.

Выключатели и кнопки — любые малогабаритные. Для кнопки SB1 "Новая игра", подойдёт любой имеющийся в наличии геркон. Он размещается в корпусе макета оружия, включается путём поднесения внешнего магнита. Хорошо работают герконы из кнопок ПКМ-1Б. Разобранные детали кнопки (магнит-геркон) внутри макета оружия закрепляются в нужных местах с помощью термоклея (смолы), так чтобы при движении курка, ручки перезарядки и тд герконы надёжно срабатывали на размыкание. Если используются длинные провода для подключения кнопок могут возникнуть помехи, для уменьшения этих помех кнопки работают на размыкание, можно подключить блокировочные конденсаторы, или увеличить время проверки дребезга контактов в программе.

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

Все детали игрушки, кроме кнопок управления, датчиков, ИК светодиодов и батарей размещены на макетной плате, Рисунок 9.1 (plata.jpg). Плату можно выполнить и меньшего размера(25х80мм), Рисунок 9.2 (plata2.jpg). Проводами на плате сделан только провод питания. Остальные детали соединяются собственными загнутыми выводами, стабилизатор 78L05 заменён на диод.





Для желающих повозится с хлорным железом, развели печатную плату. Плата сделана односторонней, удобно для изготовления дома, размер основной платы 82х27 мм, платы сенсоров 23х19 мм. Плату можно сделать с помощью утюга и лазерного принтера, но монтаж очень плотный. Архив с рисунком платы в хорошем качестве и пара шаблонов.


Програмное обеспечение

Программа микроконтроллера написанна на С без использования ассемблера. Пока будет распростронятся только прошивка, хотелось чтобы заинтересованные разработчики сами написали несколько вариантов под указанное расположение выводов. А потом выложили прошивки в свободное обращение для сравнения и соревнования у кого получилось лучше.

Основные функции программы: передача выстрелов-генерация ИК сигналов с несущей 36 кГц, звуковая индикация выстрела - для игрока, учёт патронов, задержка при перезарядке - кнопка "Перезарядить", приём сигналов-выстрелов,учёт попаданий, индикация поражения игрока, блокирование выстрелов при "выходе из игры" игрока, восстановление на базе - кнопка "Новая игра".

В прошивке реализована обработка сигналов только от одной группы датчиков - контакт PD2(INT0). Контакт PD3(INT1) - зарезервирован для подключения второй группы датчиков. Эти выводы микроконтроллера обладают аппаратной возможностью генерации прерывания. В настоящей прошивке прерывания вообще не использованы, связанно с особенностью кодирования сигнала, но если применять общепринятые способы кодирования то эта функция возможно понадобится.

Обычно используются вариации двухфазного кодирования, типичный представитель Манчестерский код. Время существования канала порядка 20мс, за это время можно надёжно передать максимум 2-3 байта. В самом простом случае передаётся первым байтом номер команды вторым номер/вид оружия. Есть ещё группа служебных команд и инструментов, для управления оборудованием: например аптечки.

Особеность ИК канала на природе - практически не содержит помех (от ламп,эл/м двигателей и тд), дождь и снег влияют очень слабо, сигнал или есть или нет, ветки листья и тд. между передатчиком и приёмником особено портят ситуацию. Помехи также начинаются на пороге дистанции срабатывания оборудования, когда интегральные датчики уже немогут принять слабый сигнал.

В реализованном кодировании не применяется двухфазное кодирование, используется ШИМ, простыми словами это аналогоцифровой гибрид, ближайший пример такого кодирования серийные рулевые машинки пропорционального управления. Можно кодировать мощность "повреждения", но нельзя закодировать номер команды и тд. Основное приемущество, очень простой программный приём, нереагирует на имульсные помехи, при прерывании импульса (ветка/листок закрыла на мгновение), уменьшается "повреждение" но сигнал всё равно приходит. Для передачи полностью цифровым кодом при такой помехе, нельзя даже примерно сказать из чего "попали" и сколько "жизни" убавить. Обычно если код принят с помехами, то выдаётся сигнал "близкое попадание". В нашем случае можно издалека стрельнуть 10 раз и все десять раз будет зафиксированно пропорциональное ранение, или два раза в упор и игрок выходит из игры. Как будто "пуля" от расстояния теряет силу ;) Конечно нет разделения на команды, соответственно игрок будет поврежден при попадании от игрока из своей команды, на игровом процессе практически не сказывается.

В схеме можно применить кварц не ровно на 8000кГц, для этого потребуется изменение в программе константы, через неё задаётся частота несущей для ИК сигналов. Несущая и звук генерируется с использованием аппаратных возможностей микроконтроллера, поэтому применённые выводы тоже не будут изменены в будущем. Вы также можете использовать любые другие датчики ИК с несущей отличной от 36кГц, соответственно предварительно скорректировав программу. Напишите мне и я поправлю константы в программе специально для вас, абсолютно бесплатно :D

Прошивка игрушки написанна и откомпилированна в бесплатной пробной версии программы CodeVisionAVR [3]. Имеются ограничения на размер программы, но для нашей прошивки удалось не превысить этот размер. Отладка производилась в программе Visual Micro Lab (VMLAB) [4].

Незабудте запрограммировать биты настройки чипа, для использования внешнего кварца.
Прошивка с программой программатором
Драйвер LPT для программатора


О безопасности ИК излучения

В предлагаемом устройстве импульсный ток через ИК диоды может достигать 1...1,5А. При таком токе излучаемая мощность одного диода может достигать 500 мВт/ср [5]. Файл с сайта Vishay Siliconix, о безопасности ИК излучения, 75кб.

Лазертэг за рубежом существует достаточно давно и считается безопасным. Однако есть потенциальная опасность ИК-излучения для человека [6]. В основе вредного действия ИК-радиации на человека и особенно орган зрения лежит тепловой эффект. Мы не можем долго смотреть на солнце или яркие предметы и рефлекторно отводим взгляд, в то же время ИК излучение невидимо и наши рефлексы не работают. Поэтому для безопасности нужно обеспечить, чтобы тепло не накапливалось в сетчатке и других частях глаза, для этого ограничена частота выстрелов в очереди (3 выстрела/сек) и длительность посылки ИК сигнала выбрана максимально короткой, которую может воспринять приёмное оборудование (16мс).

Примерный расчёт параметров
Средний человек может перемещается со скоростью примерно 5м/с (100 метровку за 20секунд почти все смогут пробежать ), при ширине ИК пятна 10 см (использование оптики на расстоянии 5м), время существования канала передачи данных будет примерно 20 мс. Длинна посылки ИК "выстрела" сейчас 16 мс.

Мощность выстрела 500мВт * 20мс = 10мВт для одного выстрела в секунду,
3 выстрела в секунду 30мВт, примерно как обычный светодиод 1,5в*20ма

Несмотря на предпринятые предосторожности нерекомендуется смотреть непосредственно в излучатель во время выстрела, например с целью посмотреть "как мигает светодиод" !

Разрешено копирование и всяческое распространение без извлечения коммерческой прибыли. При копировании обязательно сохранить предупреждение об опастности ИК излучения и информацию об авторе :) (с) Сергей Токаревских, г.Киров 7.02.2009


Литература


1. Компоненты для ИК, сайт Vishay Siliconix
приёмники http://vishay.ru/ir-receiver-modules/
передатчики http://vishay.ru/ir-emitting-diodes/
Документация ИК диод TSAL6200.
Документация ИК приёмник TSOP322.

2. AVReAl v1.25rev5 - программирование AVR через LPT
http://www.ln.com.ua/~real/avreal

3. CodeVisionAVR is a C cross-compiler, Integrated Development Environment and Automatic Program Generator designed for the Atmel AVR family of microcontrollers.
Version: 1.25.7a Evaluation
Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

4. Visual Micro Lab (VMLAB) is a hardware-software co-verification tool. Something where you can design and debug "virtual prototypes". http://www.amctools.com

5. http://www.trigger.ru/include/tsal6200.pdf.

6. Российская энциклопедия по охране труда,ИНФРАКРАСНОЕ ИЗЛУЧЕНИЕ
http://slovari.yandex.ru/dict/trud/article/ot1/ot1-0765.htm

 
Главная страница, вернутся
 

Hosted by uCoz