Охранно-пожарная GSM-сигнализация для гаража или
небольшого
дачного дома
1. Введение
Уважаемые читатели! Предлагаемый
мною вариант охранно-пожарной GSM-сигнализации
не является чем-то революционным. За последние несколько лет было разработано
немало устройств подобного рода, отличающихся друг от друга способами
постановки/снятия с режима охраны,
способами оповещения о случившемся событии, типом используемых датчиков.
Их авторы, безусловно, заслуживают уважения за свой нелегкий труд.
Создавая свою сигнализацию, я
больше рассчитывал на то, что радиолюбителям будет интересно самим повторить и,
может быть, даже усовершенствовать её.
2. Описание основных
функций сигнализации
Управление сигнализацией
осуществляется с помощью ключей iButton
DS1990A.
Работа данных ключей основана на интерфейсе 1-Wire. Описание данного интерфейса легко найти в Интернете.
Но я рекомендую работу 1) .
Использование в моей работе
именно этого интерфейса связано, прежде всего, со “спортивным” интересом при
его реализации, так как существует множество устройств, использующих его.
Сигнализация может работать в трех
режимах:
- режим “Программирования ключей”
- режим “Ожидания постановки под
охрану”
- режим “Охраны”.
В режиме “Программирования ключей” производится запись
уникального 64-битного номера ключа DS1990A в память микроконтроллера. Сразу оговорюсь,
что в энергонезависимую память микроконтроллера может быть записано до 8
ключей. В случае, если часть ключей, например, была утеряна, то есть
возможность стереть информацию обо всех ранее записанных ключах и записать
новые. Эта операция выполняется нажатием кнопки
“ Сброс ключей” на лицевой панели.
Переход в режим “Программирования
ключей” возможен только из режима “Ожидания постановки под охрану”.
В режиме “Ожидания постановки
под охрану” хозяин помещения может беспрепятственно передвигаться во всей
охраняемой зоне. Сигнализация не будет реагировать на это.
В режиме “Охраны” сигнализация
выполняет следующие функции:
1.
Контроль
состояния датчика охранной сигнализации. В случае срабатывания датчика
производится дозвон по 2-4 телефонным номерам, считанным из SIM карты (количество номеров для дозвона определяется словом настроек, записываемым на SIM карту). Абоненту предоставляется 20-30 сек. на прослушивание объекта.
2.
Контроль
состояния датчика пожарной сигнализации. В случае срабатывания датчика пожарной
сигнализации производится отправка SMS
сообщения с текстом “Fire” (“Пожар”)
абоненту 1 или абонентам 1 и 2 (количество номеров для отправки соответствующей
SMS определяется
словом настроек).
3.
Контроль
состояния аккумуляторной батареи. При снижении напряжения на аккумуляторной
батарее ниже 11,4В производится отправка SMS с
текстом “Zaryadite batareyu” (“Зарядите батарею”) абоненту 1 или
абонентам 1 и 2 (количество номеров для отправки соответствующей SMS определяется
словом настроек).
4.
Подача
звукового сигнала в случае срабатывания датчика охранной сигнализации. Время
звучания звукового извещателя определяется значением, записанным в слове
настроек.
5.
Дистанционное
прослушивание охраняемого помещения только при осуществлении звонков с номеров,
записанных на SIM карте.
6.
Защита от
подбора ключей. При попытке подбора 3-х ключей подряд отправляется SMS с текстом “Popitka podbora kluchei” (“Попытка подбора ключей”) абоненту 1 или абонентам 1 и 2 (количество
номеров для отправки соответствующей SMS
определяется словом настроек). При этом
производится подача звукового сигнала.
3. Описание принципиальной схемы сигнализации
Основными компонентами принципиальной схемы
сигнализации являются микроконтроллер PIC16F628A
и GSM модуль SIM900D. Выбор микроконтроллера PIC16F628A основан на том, что он имеет модуль USART (Universal Synchronous/Asynchronous Receiver/Transmitter – универсальный синхронный/асинхронный
приемопередатчик) и напряжение питания микроконтроллера лежит в пределах 2 - 5В.
Так как сигналы управления на входе модуля SIM900D должны иметь уровень не более 3В, то питание
микроконтроллера от стабилизированного источника 3,3В позволяет легко, без
дополнительных преобразователей уровня сигналов, согласовать уровни сигналов
управления между PIC16F628A
и SIM900D.
Так как сигнализация может быть установлена в местах с
нестабильным электроснабжением, то основным источником питания является
аккумуляторная батарея +12В. Параллельно батарее подключается автоматическое
зарядное устройство, необходимое для заряда разрядившейся батареи. Его
параметры должны соответствовать параметрам используемой аккумуляторной
батареи. Аккумуляторная батарея подключается к разъему АБ, а автоматическое зарядное устройство к разъему
Х4.
Напряжение +12В через диод D5 поступает на вход стабилизатора +3,3В (LM7833) и через диод D6 на схему контроля состояния аккумуляторной батареи. Основным компонентом схемы контроля является компаратор MAX922. Данная микросхема представляет собой двухканальный микромощный низковольтный компаратор. Он идеально подходит для применения в системах с однополярным питанием 3В или 5В.
При напряжении аккумуляторной батареи +12В на обоих
выводах 1 и 8 компаратора присутствует лог.1. При снижении напряжения на аккумуляторной
батарее ниже 11, 4В на выводе 1 MAX922 появляется
лог.0, а при напряжении ниже 10,5В лог.0 появляется и на выводе 8. При этом МК отключает GSM модуль
для того, чтобы не допустить глубокого разряда батареи.
При появлении напряжения 220 В МК вновь включает GSM модуль, и через 30с сигнализация вновь начинает выполнять свои функции.
Сигналы с выходов 1 и 8 компаратора поступают на выводы 18 и 1 микроконтроллера
PIC16F628A.
На входы микроконтроллера 9 и 10 поступают сигналы состояния шлейфов пожарной и охранной сигнализации соответственно. Сигнализация рассчитана на работу с датчиками, имеющими нормально разомкнутые контакты. При замкнутом шлейфе через диод оптопары DA1 (DA2) протекает ток, открывающий транзистор оптопары. На выходе DA1 (DA2) (вывод 5) присутствует лог.0. При нарушении контролируемой зоны контакты датчика охранной (пожарной) сигнализации разрываются. На выводе 5 DA1 (DA2) появляется лог.1, что является сигналом для микроконтроллера.
Питание датчиков охранной и пожарной сигнализаций
осуществляется через разъемы J1, J2
(RJ12). В
том случае, если датчик пожарной сигнализации не используется, то
устанавливается перемычка JP1.
Узел D3D4R13 представляет собой ограничитель напряжения
и предназначен для подключения считывателя ключей iButton типа IBR.
Теперь немного о самом GSM модуле. Модуль SIM900 был запущен в серийное производство относительно недавно. Он выпускается в трех модификациях. Все они имеют 4 диапазона 850/900/1800/1900 МГц, умеют передавать/принимать голосовые вызовы, работать с SMS, делать USSD- запросы и работать с сетью через GPRS, с поддержкой ftp, http, tcp/udp:
1.
SIM900 –
небольшой 24х24 мм. Единственный модуль, который поддерживает протокол I2C.
2.
SIM900B – размер 40х33 мм. Крепление к плате через
60-контактный разъем с очень мелким шагом. Весьма неудачный вариант для
домашнего применения.
3.
SIM900D – размер 33х33 мм. Предназначен для замены
модулей SIM300(340)DZ, с которыми полностью совместим по выводам. Хорошо
подходит для пайки на плату. Имеет цепи контроля и заряда для литий-ионных
аккумуляторов.
В своем проекте я использовал
модуль SIM900D.
Для питания этого модуля необходимо напряжение в диапазоне 3,2-4,8В.
Номинальное значение – 4,0В. Питание подается на выводы Vbat. Ток потребления сильно зависит от текущего
режима работы и может колебаться в пределах от 20-30мА до 500мА. При этом также
возможны кратковременные скачки до 2-3А, особенно в процессе поиска сети или
при приеме/передаче данных. Поэтому схема стабилизатора напряжения питания
модуля реализована на управляемом стабилизаторе LM2576T-ADJ 2).
Также необходима дополнительная
поддержка часов реального времени (вывод VRTC). Для этого я использовал емкость С19.
SIM карта подключается к соответствующим выводам модуля по схеме из datasheet 3).
Лучше всего использовать специальные держатели SIM карт
(например, MOLEX SD-91228-01, SIM0424).
Вывод GSM модуля NETLIGHT
предназначен для визуального отображения состояния SIM900D. Во
время включения модуля светодиод, подключенный к данному выводу через Q4
мигает с интервалом 1с. В это время происходит поиск сети и регистрация в сети.
При успешной регистрации в сети светодиод мигает один раз в 3с.
В модуле реализован
аудиоинтерфейс для подключения микрофона и динамика. Так как в моей схеме
необходимость в динамике отсутствует, то я использовал схему включения
микрофона, взятую из 3).
Для корректного выключения
модуля (например, для изменения слова настроек на SIM карте,
проверке счета) предусмотрена кнопка “Выкл. GSM”.
Перейду теперь к описанию
разъемов на принципиальной схеме.
X1 – предназначен для подключения программатора
Pickit по интерфейсу ICSP (in-Circit Serial Programming – внутрисхемное последовательное программирование).
X2 – предназначен для подключения панели
индикации, на которой установлены кнопки “Программирование ключей”, “Сброс ключей”, “Выкл.GSM”, “Сеть +12В”
и “GSM”.
X4 – предназначен для подключения зарядного
устройства.
J3 – предназначен для подключения считывателя
ключей iButton типа IRP-01 (IRP-02).
J1, J2
– предназначены для подключения датчиков охранной и пожарной сигнализации
соответственно.
Сигнализация выполнена в корпусе Z104K. Конструктивно она состоит из двух плат – основной и панели индикации. На основной плате размещены микроконтроллер, схема контроля состояния аккумуляторной батареи, SIM900D, стабилизаторы напряжения +3,3В и 4,0В, внешние разъемы. На панели индикации расположены кнопки ”Сброс ключей”, ”Программирование ключей”, ”Выкл. GSM”, светодиоды ”+12В” и ”Состояние GSM модуля”.
Тип корпуса микроконтроллера – SOIC,
а MAX922 - SO.
Все резисторы и конденсаторы
емкостью менее 10uF имеют типоразмер 1206.
Светодиод D2 конструктивно расположен в корпусе
считывателя ключей IBR.
В качестве звукового извещателя
можно использовать любой извещатель с напряжением питания 12В.
4.
Описание
слова настроек
Итак, с принципиальной схемой мы
немного разобрались. Теперь пришло время поговорить о настройке SIM карты. На SIM карту в следующей последовательности должна быть
записана следующая информация (предварительно SIM карта
должна быть полностью очищена от всех телефонных номеров и сообщений SMS, записанных на ней и должен быть отключен
запрос PIN кода ):
1.
Слово
настроек.
2.
Телефонный
номер абонента 1.
3.
Телефонный
номер абонента 2.
4.
Телефонный
номер абонента 3.
5.
Телефонный
номер абонента 4.
Слово настроек имеет 7 позиций и
обязательно должно заканчиваться значком #.
_1_ _2_ _3_ _4_ _5_ _6_ _7_ #
Позиция1 – количество доверенных
телефонных номеров, записанных на SIM карте. 2 – 4 телефонных
номера.
Позиция 2 – время звучания
звукового извещателя в режиме “Тревога”:
0 – сигнал звукового извещателя
не подается
1 – 10 сек 4 – 100 сек 7 – 190 сек
2 – 40 сек 5 – 130 сек 8 – 220 сек
3 – 70 сек 6 – 160 сек 9 – 250 сек
Позиция 3 – задержка при
постановке/снятии сигнализации с режима ”Охрана”:
0 – задержки нет
1 - 5 сек 4 – 20 сек 7
– 35 сек
2 – 10 сек 5 – 25 сек 8 – 40 сек
3 – 15 сек
6 – 30 сек 9 – 45 сек
Позиция 4 – отправлять SMS при пожаре?
0 – не отправлять
1 – отправлять абоненту 1
2 – отправлять абонентам 1 и 2
Позиция 5 – отправлять SMS при снижении напряжения на аккумуляторной батарее?
0 – не отправлять
1 – отправлять абоненту 1
2 – отправлять абонентам 1 и 2
Позиция 6 – разрешение
одиночного сигнала звукового извещателя при постановке/снятии с режима ”Охрана”:
0 – сигнал не подается
1 – сигнал подается
Позиция 7 – отправлять SMS при попытке подбора ключей?
0 – не отправлять
1 – отправлять абоненту 1
2 – отправлять абонентам 1 и 2
В случае, если слово настроек не
будет записано, то программа автоматически подставит свое слово настроек со
следующими параметрами:
4 6 2
2 2 1
2 #
Номера телефонов следует
обязательно записывать на SIM карту в формате:
+38 – код оператора – номер
телефона.
5. Порядок работы с сигнализацией
Итак,
уважаемый читатель, если ты читаешь эти строчки, значит мой труд не остался незамеченным.
Теперь я постараюсь кратко и доступно
описать порядок действий при работе с сигнализацией.
1.
Вставляем
SIM карту в любой мобильный телефон, удаляем все записи и, затем, записываем на нее свое
слово настроек.
2.
Вставляем
карту в держатель SIM карты на плате сигнализации.
3.
Подключаем,
соблюдая полярность, аккумулятор к
разъему ”Battery” (аккумулятор должен быть предварительно заряжен),
зарядное устройство к разъему ”ЗУ”, считыватель к разъему J1,
охранный и пожарный датчики к разъемам J2 и J3
соответственно, звуковой извещатель к разъему
”Сирена”.
4.
Тумблером
”SW1” подаем +12В. При правильно собранной схеме
на плате индикации загорается светодиод
”+12В”. Через 5сек с интервалом 1 раз в 1 сек начинает мигать светодиод ”GSM”. В этот момент происходит поиск сети и
регистрация в ней GSM модуля SIM900D. По
окончании регистрации (примерно 10-20 сек) светодиод ”GSM” будет мигать с интервалом 1раз в 3 сек. Через 30 сек после включения микроконтроллер
считывает информацию о слове настроек и записанных телефонных номерах из SIM карты в свою энергонезависимую память, и дает
команду GSM модулю
записать на SIM карту тексты SMS сообщений.
Таким образом осуществляется настройка SIM карты.
5.
По
окончании настройки SIM карты звучит 2 коротких сигнала и сигнализация
переходит в режим ”Программирования ключей”.
В это время необходимо
прикоснуться к считывателю ключом, который вы желаете записать в память.
Время нахождения в этом режиме
составляет примерно 60 сек. Светодиод D2
мигает с интервалом 1 сек. Затем сигнализация переходит в режим ”Ожидания постановки под охрану”. Светодиод VD12 при этом дублирует шлейф охранного датчика.
Перейти в режим “Программирования ключей” можно и потом из режима “Ожидания
постановки под охрану”, нажав кнопку “Программирование ключей”. Можно
запрограммировать до 8 ключей.
Кнопка “Сброс ключей” предназначена для удаления всех ключей из памяти
микроконтроллера и перехода в режим “Программирования ключей”.
6.
Для
постановки сигнализации в режим ”Охраны” необходимо прикоснуться к считывателю
запрограммированным ключом. Время, через
которое охраняемый объект будет взят под охрану, определяется позицией 3 слова
настроек. При этом прозвучит короткий звуковой сигнал.
7.
При
наступлении режима ”Тревога” производится автоматический дозвон на номера,
записанные на SIM карте с возможностью прослушивания охраняемого
помещения в течение 30 сек. В этот промежуток времени происходит кратковременная
подача звукового сигнала между наборами номеров. По окончании дозвонов
включается сирена на время, определенное позицией 2 слова настроек.
8.
При
поступлении в режиме ”Охраны” сигнала с датчика пожарной сигнализации
происходит отправка SMS с текстом“Fire” (”Пожар”).
9.
При
попытке подбора ключей отправляется SMS с текстом“Popitka podbora kluchei”
(”Попытка подбора ключей”).
HEX файл программы можно скачать с сайта издательства "Радиоаматор" [4].
Рисунок платы выполнен в Kicad.
Рисунок платы выполнен в Kicad.
Ссылки:
2.
http://pdf1.alldatasheet.com/datasheet-pdf/view/167375/MOTOROLA/LM2576-ADJ.html - описание LM2576T-ADJ
4. http://www.ra-publish.com.ua/ - сайт издательства "Радиоаматор".
HEX file:
:020000040000FA
:10000000012883123130A00007309F00850186014E
:1000100083163F3086001E308500033081000A259C
:100020008312D92183161930990004309800831265
:100030009817012583162330840083120330A20011
:10004000E121A20B20280330A200F021A20B2528D9
:10005000E624F021E624F0210A252022E62453227A
:10006000E6247D22E62483160C309B0000309A00A3
:10007000BA2683160D309B0740301B06031D362819
:100080008312831600309B0083122230A1000A25C0
:10009000A722EF222330A1002A3084000008210685
:1000A000031D8928233084000008343C031C5C288D
:1000B0000008023EB5005E2836305A283030D500A0
:1000C00024060319082C0A30D600D50A5508240640
:1000D000031D0A2C5608B600253084003030D500A8
:1000E000000603190D2C0530D600D50A5508000668
:1000F000031D0F2C560880002508B7002608B800FD
:100100002708B9002808BA002908BB00A00AE6247D
:1001100045288312313020060319D12A8316233053
:10012000840000089A00BA2683169B0A840A0408F1
:10013000303C031D91288312A00A35082006031DB8
:1001400045283130A0005327E624E624E624013078
:10015000B30083169816831600309B0083120D306F
:10016000B2003923E62404303306031DAB280430E3
:10017000B30083160D309B0083120D30B20045236F
:10018000E62407303306031DB92883169812FC2392
:10019000831635309B00B026FF3A0319122C8316C4
:1001A00034309B00B026F03A03195C2983163430B2
:1001B0009B000F309A00BA2619240618A32CD424C9
:1001C0002B24492470249524031DDC28C427CD2723
:1001D00000084C06031DF128D327BF0BE7288B1717
:1001E000FB284D08083ECB0041084B07CD007D3C65
:1001F000031DE728DC2830303A0603190229FC23C6
:10020000E624FC2325255C29061A0A298617051AE7
:100210000C29202986130729851ADC2883163630F5
:100220009B00FF309A00BA2683169B0A1B08753C78
:10023000031D132935309B0036309A00BA26202939
:1002400083123230CE0006170000000000000613B3
:100250000A2506170000000000000613861719245F
:100260000618AC2CD4242B24492470249524031D77
:100270003A293F298613E624CE0B2E29DC28C427F1
:10028000CD2700084C06031D4A29D327BF0B402960
:100290008B173A294D08083ECB0041084B07CD008B
:1002A0007D3C031D402941255F2506178613E62462
:1002B0000613CE0B2E29DC286400831634309B00F5
:1002C000F0309A00BA260330D7000030B400013075
:1002D000E0000130B2000130D8000130D000D1017F
:1002E0008617851D792D003060060319AE2D851CFB
:1002F000C12D0000003032060319DE2D8619EA2DCB
:100300000000003050060319072E061A132E192478
:100310000618C52CD4242B24492470249524031DAD
:100320007029C427CD2700084C06031D9C29D3271C
:10033000BF0B92298B17D1294D08083ECB004108ED
:100340004B07CD007D3C031D9229A6297E30CD00B0
:100350000830BF00493084004D0883169B00B0264A
:10036000CC000008CC06031DBA298403CD03BF0BC3
:10037000AC2970290830BF004230840083167730E2
:100380009B00000883169A00BA2683169B0A8312E4
:10039000840ABF0BC129D70B70290330D700061779
:1003A000912E30303A060319D629FC23E624E624A0
:1003B000D628640083120514E624E624E6240510FA
:1003C0000800640083169816831241309900C926EC
:1003D00054309900C9269A24831698128312080073
:1003E000640083169816831241309900C926543050
:1003F0009900C9262B309900C92649309900C92691
:1004000050309900C92652309900C9263D309900D4
:10041000C92639309900C92636309900C9263030AE
:100420009900C92630309900C9260D309900C92697
:100430000A309900C9269A2483169812831208005C
:10044000640083169816831241309900C9265430EF
:100450009900C9262B309900C92643309900C92636
:100460004D309900C92649309900C926433099007A
:10047000C9263D309900C92630309900C9262C3054
:100480009900C92631309900C92630309900C92613
:100490000D309900C9260A309900C9269A2483167E
:1004A0009812831208006400831698168312413054
:1004B0009900C92654309900C9262B309900C926C5
:1004C00043309900C9264C309900C926493099001B
:1004D000C92650309900C9263D309900C9263130CF
:1004E0009900C9260D309900C9260A309900C926FD
:1004F0009A248316981283120800640083169816B3
:10050000831241309900C92654309900C9262B30F6
:100510009900C92643309900C9264D309900C92653
:1005200047309900C92646309900C9263D309900C8
:10053000C92631309900C9260D309900C9260A30E4
:100540009900C9269A248316981283120800640021
:1005500083169816831241309900C92654309900A9
:10056000C9262B309900C92643309900C92650303E
:100570009900C92642309900C92652309900C926EF
:100580003D309900C92620089900C9260D309900F0
:10059000C9260A309900C9269A2483169812831214
:1005A000080064000130DE00353084003530800002
:1005B000840AA0308000840A0A308000840A323025
:1005C0008000840A32308000840A31308000840A3E
:1005D000323080002230A100A722EF228E28640052
:1005E0008312FE30DF0023308400181664008C1E56
:1005F000F62A1A082106031DF62A64008C1EFD2A1D
:100600001A08A2002106031D062B0A2B22088000CF
:10061000840AFD2A181208006400831241309900F0
:10062000C92654309900C9262B309900C926433079
:100630009900C9264D309900C92647309900C9262E
:1006400057309900C9263D309900C92622309900BB
:10065000C926B0269900C92683169B0A8312B20BBD
:10066000292B22309900C9260D309900C926E6248D
:10067000080064000C2301303306031D402B512B6E
:1006800002303306031DAB2B692B64000C230430AE
:100690003306031D4C2B512B05303306031DAB2BAA
:1006A000692B640046309900C92669309900C92633
:1006B00072309900C92665309900C9261A30990010
:1006C000C9260D309900C9260A309900C926B30AF7
:1006D000080064005A309900C92661309900C92683
:1006E00072309900C92679309900C9266130990085
:1006F000C92664309900C92669309900C92674302A
:100700009900C92665309900C92620309900C9266C
:1007100062309900C92661309900C9267430990069
:10072000C92661309900C92672309900C926653002
:100730009900C92679309900C92675309900C926D3
:100740001A309900C9260D309900C9260A3099003F
:10075000C926B30A0800640050309900C9266F30DA
:100760009900C92670309900C92669309900C926B8
:1007700074309900C9266B309900C9266130990000
:10078000C92620309900C92670309900C9266F30DB
:100790009900C92664309900C92662309900C9269B
:1007A0006F309900C92672309900C92661309900CE
:1007B000C92620309900C9266B309900C9266C30B3
:1007C0009900C92675309900C92663309900C92659
:1007D00068309900C92665309900C92669309900AA
:1007E000C9261A309900C9260D309900C9260A3049
:1007F0009900C926B30A0800640083120130A200E0
:1008000086170617F82486130613A20B002C08007F
:1008100000306B281E30D607652800307B28053055
:10082000D6077528831634309B000F309A00BA26FD
:1008300020296400831203108B1342308400831636
:1008400006148312061083160610D4248316061489
:100850008312CB240034640083120830BF0033308D
:10086000C0000830C10083120610831606108312E0
:10087000000000000000C00C831603180614CB24EF
:1008800083160614831200000000C10B332CC00134
:1008900000346400831203100830BF000830C10028
:1008A0008312061083160610831200000000000059
:1008B00000000000000083160614831200000000F0
:1008C0000000000006080139FF3EC00CDD24C10B0A
:1008D000502C40088000BF0B6E2C0034840A4E2C34
:1008E000640083120310CA010730BF004230840045
:1008F0000830C1000008CB004B084A06CC004C1859
:10090000872CCC01CA0C0310CB0C03108F2CCC010C
:100910001830CA06CA0C0310CA17CB0C0310C10B3F
:100920007C2C840ABF0B782C003464000008CA06B3
:10093000CA080800640083120B11053081000B1DEA
:100940009F2C0B110800640083121330B0009A240E
:10095000B00BA72C8B170429640083121330B0004E
:100960009A24B00BB02C8B173A29640083121330F1
:10097000B0009A24B00BB92C080064008312133025
:10098000B0009A24B00BC12CBE2F6400B5248B1785
:100990008613E6247029640083120B11FA3081005B
:1009A0000B1DD02C0B110800640083120B11E030DA
:1009B00081000B1DD92C0B110800640083120B1150
:1009C000FC3081000B1DE22C0B1108006400831227
:1009D000FA30B0009A24B00BEA2C8B1708006400A0
:1009E00083127D30B0009A24B00BF32C8B170800D3
:1009F000640083120330B0009A24B00BFC2C8B17D8
:100A00000800640083121430B100E624B10B052DF8
:100A10008B170800640083120530B100E624B10B87
:100A20000E2D8B170800640083121E30B100E624DF
:100A3000B10B172D8B170800640083123C30B100F6
:100A4000E624B10B202D8B170800640083120030C0
:100A500037060319312D3708B100E624B10B2D2DCF
:100A6000332DE624E6240800640083120230A2003D
:100A700086170617F82486130613E624A20B382DD2
:100A8000080064008312FF30CC00353083169B00D1
:100A9000B026CC060319552D831635309B00B026A1
:100AA000CC00763C0319582D08003630CC00542D6C
:100AB0000530B400FC23E624B40B592DDC28640077
:100AC0000830BF00423084004C0883169B0083121C
:100AD000000883169A00BA2683169B0A840A83129A
:100AE000BF0B672D83161B089A0035309B00BA2672
:100AF00008006400831698168312B40A3408023C76
:100B0000031D792D02303502CF002230A100EF22E3
:100B10002F3084000C30DB000D30DC00DD015B0881
:100B200083169B00B026B40000083406031DA22DD6
:100B30008403DB03DD0ADC0B8F2DD1261C25E82680
:100B4000B401732964005B080D3E5D07DB00CF0331
:100B500030304F02031D8F2DE826A02D6400051DA7
:100B6000BE2DD10A5108FF3C031D7929D101F8247B
:100B7000F824851C79290130E00079296400D92105
:100B80004E2F640030303906031979293130390687
:100B90000319D62D3230A000FF26E624E6240430C7
:100BA000A007FF26E624E00BCA2D79296400323025
:100BB000A000FF26E624E00BD62D79296400D30A95
:100BC0005308643C031D8029D301061A8029013093
:100BD000B200802964003030380603198029313092
:100BE00038060319FF2D3130A000FF26E624E62445
:100BF0000430A007FF26E624B20BF32D8029640001
:100C00003130A000FF26E624B20BFF2D80296400BE
:100C1000D40A5408323C031D8729D001861987293C
:100C20000130D00087296400FC23FC23972F01307A
:100C30005E06031D1E2E3130A000212E3230A00092
:100C4000212E0330CE00861719240618452ED424F1
:100C50002B24492470249524031D4C2EC427CD2712
:100C600000084C06031D3A2ED327BF0B2F2E8B17DF
:100C70000613D1294D08083ECB0041084B07CD0093
:100C80007D3C031D2F2E06134C2E6400061786177D
:100C9000E6248613CE0B242E86172E2786131325C3
:100CA0008617E826A00A20083506031D6D2E192494
:100CB00006188C2ED4242B24492470249524031D3B
:100CC0007A2EC427CD2700084C06031D6F2ED3278C
:100CD000BF0B622E8B170613D1298613212E4D08C8
:100CE000083ECB0041084B07CD007D3C031D622E22
:100CF00006137A2E86138519872E6400B40A3408E9
:100D0000023C031D7D2ED1261C25E826572E051DED
:100D10008A2E572ED9214E2F64008617EF24861372
:100D20007A2E640030303B060319A42E31303B0686
:100D30000319A92E3330A000FF26E624E624033051
:100D4000A007FF26D80B9A2E0130D8000A250613DB
:100D500070293330A000FF26E624D80BA92EA42E3C
:100D600064008B1383161C141A0800000000831201
:100D70008B17080064008B1383161C1555309D00DB
:100D8000AA309D009C141C119C18C42E83128B1732
:100D90000800640083160313981CC92E83120313E2
:100DA0000800640083169816831241309900C92602
:100DB00054309900C92641309900C9260D30990058
:100DC000C9260A309900C926831698128312080092
:100DD000640083169816831241309900C926543056
:100DE0009900C92648309900C9260D309900C926B6
:100DF0000A309900C92683169812831208006400ED
:100E000083169816831241309900C92654309900F0
:100E1000C9262B309900C92643309900C9264D3088
:100E20009900C92653309900C92653309900C92624
:100E30003D309900C92620089900C9262C30990018
:100E4000C9262C309900C9260D309900C9260A30D0
:100E50009900C9268316981283120800640083162D
:100E60009816831241309900C92654309900C9263A
:100E700044309900C9263E309900C92620089900BF
:100E8000C9263B309900C9260D309900C9260A3081
:100E90009900C926831698128312080064008518E9
:100EA000012813254E2F64008316981683124130B3
:100EB0009900C92654309900C9262B309900C926BB
:100EC00043309900C9264D309900C9264730990012
:100ED000C92644309900C92641309900C9263D30C1
:100EE0009900C92622309900C92644309900C926A4
:100EF00045309900C9264C309900C9262030990008
:100F0000C92641309900C9264C309900C9264C3079
:100F10009900C92622309900C9260D309900C926AA
:100F20000A309900C92683169812831208006400BB
:100F30008312003037060319C12F3708B100E624A9
:100F400019240618BD2CD4242B244924702495245C
:100F5000031DBE2FC427CD2700084C06031DB52F47
:100F6000D327BF0BAB2FB101D1294D08083ECB00D1
:100F700041084B07CD007D3C031DAB2FB10B9F2FCC
:100F8000172EE624E624172E64003D30CD00C10163
:100F90000830BF004930840008004D0883169B00CC
:0E0FA000B026CC0008008403CD03C10A08006F
:020FAE0000340D
:020FB00000340B
:02400E000D3F64
:00000001FF
HEX file:
:020000040000FA
:10000000012883123130A00007309F00850186014E
:1000100083163F3086001E308500033081000A259C
:100020008312D92183161930990004309800831265
:100030009817012583162330840083120330A20011
:10004000E121A20B20280330A200F021A20B2528D9
:10005000E624F021E624F0210A252022E62453227A
:10006000E6247D22E62483160C309B0000309A00A3
:10007000BA2683160D309B0740301B06031D362819
:100080008312831600309B0083122230A1000A25C0
:10009000A722EF222330A1002A3084000008210685
:1000A000031D8928233084000008343C031C5C288D
:1000B0000008023EB5005E2836305A283030D500A0
:1000C00024060319082C0A30D600D50A5508240640
:1000D000031D0A2C5608B600253084003030D500A8
:1000E000000603190D2C0530D600D50A5508000668
:1000F000031D0F2C560880002508B7002608B800FD
:100100002708B9002808BA002908BB00A00AE6247D
:1001100045288312313020060319D12A8316233053
:10012000840000089A00BA2683169B0A840A0408F1
:10013000303C031D91288312A00A35082006031DB8
:1001400045283130A0005327E624E624E624013078
:10015000B30083169816831600309B0083120D306F
:10016000B2003923E62404303306031DAB280430E3
:10017000B30083160D309B0083120D30B20045236F
:10018000E62407303306031DB92883169812FC2392
:10019000831635309B00B026FF3A0319122C8316C4
:1001A00034309B00B026F03A03195C2983163430B2
:1001B0009B000F309A00BA2619240618A32CD424C9
:1001C0002B24492470249524031DDC28C427CD2723
:1001D00000084C06031DF128D327BF0BE7288B1717
:1001E000FB284D08083ECB0041084B07CD007D3C65
:1001F000031DE728DC2830303A0603190229FC23C6
:10020000E624FC2325255C29061A0A298617051AE7
:100210000C29202986130729851ADC2883163630F5
:100220009B00FF309A00BA2683169B0A1B08753C78
:10023000031D132935309B0036309A00BA26202939
:1002400083123230CE0006170000000000000613B3
:100250000A2506170000000000000613861719245F
:100260000618AC2CD4242B24492470249524031D77
:100270003A293F298613E624CE0B2E29DC28C427F1
:10028000CD2700084C06031D4A29D327BF0B402960
:100290008B173A294D08083ECB0041084B07CD008B
:1002A0007D3C031D402941255F2506178613E62462
:1002B0000613CE0B2E29DC286400831634309B00F5
:1002C000F0309A00BA260330D7000030B400013075
:1002D000E0000130B2000130D8000130D000D1017F
:1002E0008617851D792D003060060319AE2D851CFB
:1002F000C12D0000003032060319DE2D8619EA2DCB
:100300000000003050060319072E061A132E192478
:100310000618C52CD4242B24492470249524031DAD
:100320007029C427CD2700084C06031D9C29D3271C
:10033000BF0B92298B17D1294D08083ECB004108ED
:100340004B07CD007D3C031D9229A6297E30CD00B0
:100350000830BF00493084004D0883169B00B0264A
:10036000CC000008CC06031DBA298403CD03BF0BC3
:10037000AC2970290830BF004230840083167730E2
:100380009B00000883169A00BA2683169B0A8312E4
:10039000840ABF0BC129D70B70290330D700061779
:1003A000912E30303A060319D629FC23E624E624A0
:1003B000D628640083120514E624E624E6240510FA
:1003C0000800640083169816831241309900C926EC
:1003D00054309900C9269A24831698128312080073
:1003E000640083169816831241309900C926543050
:1003F0009900C9262B309900C92649309900C92691
:1004000050309900C92652309900C9263D309900D4
:10041000C92639309900C92636309900C9263030AE
:100420009900C92630309900C9260D309900C92697
:100430000A309900C9269A2483169812831208005C
:10044000640083169816831241309900C9265430EF
:100450009900C9262B309900C92643309900C92636
:100460004D309900C92649309900C926433099007A
:10047000C9263D309900C92630309900C9262C3054
:100480009900C92631309900C92630309900C92613
:100490000D309900C9260A309900C9269A2483167E
:1004A0009812831208006400831698168312413054
:1004B0009900C92654309900C9262B309900C926C5
:1004C00043309900C9264C309900C926493099001B
:1004D000C92650309900C9263D309900C9263130CF
:1004E0009900C9260D309900C9260A309900C926FD
:1004F0009A248316981283120800640083169816B3
:10050000831241309900C92654309900C9262B30F6
:100510009900C92643309900C9264D309900C92653
:1005200047309900C92646309900C9263D309900C8
:10053000C92631309900C9260D309900C9260A30E4
:100540009900C9269A248316981283120800640021
:1005500083169816831241309900C92654309900A9
:10056000C9262B309900C92643309900C92650303E
:100570009900C92642309900C92652309900C926EF
:100580003D309900C92620089900C9260D309900F0
:10059000C9260A309900C9269A2483169812831214
:1005A000080064000130DE00353084003530800002
:1005B000840AA0308000840A0A308000840A323025
:1005C0008000840A32308000840A31308000840A3E
:1005D000323080002230A100A722EF228E28640052
:1005E0008312FE30DF0023308400181664008C1E56
:1005F000F62A1A082106031DF62A64008C1EFD2A1D
:100600001A08A2002106031D062B0A2B22088000CF
:10061000840AFD2A181208006400831241309900F0
:10062000C92654309900C9262B309900C926433079
:100630009900C9264D309900C92647309900C9262E
:1006400057309900C9263D309900C92622309900BB
:10065000C926B0269900C92683169B0A8312B20BBD
:10066000292B22309900C9260D309900C926E6248D
:10067000080064000C2301303306031D402B512B6E
:1006800002303306031DAB2B692B64000C230430AE
:100690003306031D4C2B512B05303306031DAB2BAA
:1006A000692B640046309900C92669309900C92633
:1006B00072309900C92665309900C9261A30990010
:1006C000C9260D309900C9260A309900C926B30AF7
:1006D000080064005A309900C92661309900C92683
:1006E00072309900C92679309900C9266130990085
:1006F000C92664309900C92669309900C92674302A
:100700009900C92665309900C92620309900C9266C
:1007100062309900C92661309900C9267430990069
:10072000C92661309900C92672309900C926653002
:100730009900C92679309900C92675309900C926D3
:100740001A309900C9260D309900C9260A3099003F
:10075000C926B30A0800640050309900C9266F30DA
:100760009900C92670309900C92669309900C926B8
:1007700074309900C9266B309900C9266130990000
:10078000C92620309900C92670309900C9266F30DB
:100790009900C92664309900C92662309900C9269B
:1007A0006F309900C92672309900C92661309900CE
:1007B000C92620309900C9266B309900C9266C30B3
:1007C0009900C92675309900C92663309900C92659
:1007D00068309900C92665309900C92669309900AA
:1007E000C9261A309900C9260D309900C9260A3049
:1007F0009900C926B30A0800640083120130A200E0
:1008000086170617F82486130613A20B002C08007F
:1008100000306B281E30D607652800307B28053055
:10082000D6077528831634309B000F309A00BA26FD
:1008300020296400831203108B1342308400831636
:1008400006148312061083160610D4248316061489
:100850008312CB240034640083120830BF0033308D
:10086000C0000830C10083120610831606108312E0
:10087000000000000000C00C831603180614CB24EF
:1008800083160614831200000000C10B332CC00134
:1008900000346400831203100830BF000830C10028
:1008A0008312061083160610831200000000000059
:1008B00000000000000083160614831200000000F0
:1008C0000000000006080139FF3EC00CDD24C10B0A
:1008D000502C40088000BF0B6E2C0034840A4E2C34
:1008E000640083120310CA010730BF004230840045
:1008F0000830C1000008CB004B084A06CC004C1859
:10090000872CCC01CA0C0310CB0C03108F2CCC010C
:100910001830CA06CA0C0310CA17CB0C0310C10B3F
:100920007C2C840ABF0B782C003464000008CA06B3
:10093000CA080800640083120B11053081000B1DEA
:100940009F2C0B110800640083121330B0009A240E
:10095000B00BA72C8B170429640083121330B0004E
:100960009A24B00BB02C8B173A29640083121330F1
:10097000B0009A24B00BB92C080064008312133025
:10098000B0009A24B00BC12CBE2F6400B5248B1785
:100990008613E6247029640083120B11FA3081005B
:1009A0000B1DD02C0B110800640083120B11E030DA
:1009B00081000B1DD92C0B110800640083120B1150
:1009C000FC3081000B1DE22C0B1108006400831227
:1009D000FA30B0009A24B00BEA2C8B1708006400A0
:1009E00083127D30B0009A24B00BF32C8B170800D3
:1009F000640083120330B0009A24B00BFC2C8B17D8
:100A00000800640083121430B100E624B10B052DF8
:100A10008B170800640083120530B100E624B10B87
:100A20000E2D8B170800640083121E30B100E624DF
:100A3000B10B172D8B170800640083123C30B100F6
:100A4000E624B10B202D8B170800640083120030C0
:100A500037060319312D3708B100E624B10B2D2DCF
:100A6000332DE624E6240800640083120230A2003D
:100A700086170617F82486130613E624A20B382DD2
:100A8000080064008312FF30CC00353083169B00D1
:100A9000B026CC060319552D831635309B00B026A1
:100AA000CC00763C0319582D08003630CC00542D6C
:100AB0000530B400FC23E624B40B592DDC28640077
:100AC0000830BF00423084004C0883169B0083121C
:100AD000000883169A00BA2683169B0A840A83129A
:100AE000BF0B672D83161B089A0035309B00BA2672
:100AF00008006400831698168312B40A3408023C76
:100B0000031D792D02303502CF002230A100EF22E3
:100B10002F3084000C30DB000D30DC00DD015B0881
:100B200083169B00B026B40000083406031DA22DD6
:100B30008403DB03DD0ADC0B8F2DD1261C25E82680
:100B4000B401732964005B080D3E5D07DB00CF0331
:100B500030304F02031D8F2DE826A02D6400051DA7
:100B6000BE2DD10A5108FF3C031D7929D101F8247B
:100B7000F824851C79290130E00079296400D92105
:100B80004E2F640030303906031979293130390687
:100B90000319D62D3230A000FF26E624E6240430C7
:100BA000A007FF26E624E00BCA2D79296400323025
:100BB000A000FF26E624E00BD62D79296400D30A95
:100BC0005308643C031D8029D301061A8029013093
:100BD000B200802964003030380603198029313092
:100BE00038060319FF2D3130A000FF26E624E62445
:100BF0000430A007FF26E624B20BF32D8029640001
:100C00003130A000FF26E624B20BFF2D80296400BE
:100C1000D40A5408323C031D8729D001861987293C
:100C20000130D00087296400FC23FC23972F01307A
:100C30005E06031D1E2E3130A000212E3230A00092
:100C4000212E0330CE00861719240618452ED424F1
:100C50002B24492470249524031D4C2EC427CD2712
:100C600000084C06031D3A2ED327BF0B2F2E8B17DF
:100C70000613D1294D08083ECB0041084B07CD0093
:100C80007D3C031D2F2E06134C2E6400061786177D
:100C9000E6248613CE0B242E86172E2786131325C3
:100CA0008617E826A00A20083506031D6D2E192494
:100CB00006188C2ED4242B24492470249524031D3B
:100CC0007A2EC427CD2700084C06031D6F2ED3278C
:100CD000BF0B622E8B170613D1298613212E4D08C8
:100CE000083ECB0041084B07CD007D3C031D622E22
:100CF00006137A2E86138519872E6400B40A3408E9
:100D0000023C031D7D2ED1261C25E826572E051DED
:100D10008A2E572ED9214E2F64008617EF24861372
:100D20007A2E640030303B060319A42E31303B0686
:100D30000319A92E3330A000FF26E624E624033051
:100D4000A007FF26D80B9A2E0130D8000A250613DB
:100D500070293330A000FF26E624D80BA92EA42E3C
:100D600064008B1383161C141A0800000000831201
:100D70008B17080064008B1383161C1555309D00DB
:100D8000AA309D009C141C119C18C42E83128B1732
:100D90000800640083160313981CC92E83120313E2
:100DA0000800640083169816831241309900C92602
:100DB00054309900C92641309900C9260D30990058
:100DC000C9260A309900C926831698128312080092
:100DD000640083169816831241309900C926543056
:100DE0009900C92648309900C9260D309900C926B6
:100DF0000A309900C92683169812831208006400ED
:100E000083169816831241309900C92654309900F0
:100E1000C9262B309900C92643309900C9264D3088
:100E20009900C92653309900C92653309900C92624
:100E30003D309900C92620089900C9262C30990018
:100E4000C9262C309900C9260D309900C9260A30D0
:100E50009900C9268316981283120800640083162D
:100E60009816831241309900C92654309900C9263A
:100E700044309900C9263E309900C92620089900BF
:100E8000C9263B309900C9260D309900C9260A3081
:100E90009900C926831698128312080064008518E9
:100EA000012813254E2F64008316981683124130B3
:100EB0009900C92654309900C9262B309900C926BB
:100EC00043309900C9264D309900C9264730990012
:100ED000C92644309900C92641309900C9263D30C1
:100EE0009900C92622309900C92644309900C926A4
:100EF00045309900C9264C309900C9262030990008
:100F0000C92641309900C9264C309900C9264C3079
:100F10009900C92622309900C9260D309900C926AA
:100F20000A309900C92683169812831208006400BB
:100F30008312003037060319C12F3708B100E624A9
:100F400019240618BD2CD4242B244924702495245C
:100F5000031DBE2FC427CD2700084C06031DB52F47
:100F6000D327BF0BAB2FB101D1294D08083ECB00D1
:100F700041084B07CD007D3C031DAB2FB10B9F2FCC
:100F8000172EE624E624172E64003D30CD00C10163
:100F90000830BF004930840008004D0883169B00CC
:0E0FA000B026CC0008008403CD03C10A08006F
:020FAE0000340D
:020FB00000340B
:02400E000D3F64
:00000001FF






Thanks for your feedback. I hope that it will be interesting for you to bring my development to life.
ReplyDelete