Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #107, НОЯБРЬ 2007 г.

Длинная рука контроля

Di Halt (di_halt@mail.ru)

Хакер, номер #107, стр. 107-122-1

Рулим мобилой через микроконтроллер

Как иногда хочется быть богом, быть одновременно везде, все видеть, все слышать, держать все под контролем, но, к сожалению, мир наш сугубо материален, телепортацию еще не изобрели, а перемещение по земле сопряжено с колоссальными потерями времени и сил. Да что там говорить, все жители мегаполисов знают, что такое «быстро добраться» из одной точки города в другую. Наверняка не раз и не два тебе хотелось сделать что-либо на расстоянии, например проконтролировать работу сервака или следить за тем, чтобы никто не смел покуситься на твое имущество. Есть ли выход? Конечно! Можно загнаться по полноценному радиоуправлению, но чем изобретать велосипед, лучше под свои нужды заюзать уже готовое и проверенное решение, работающее везде и имеющее все необходимое для выполнения поставленной задачи. Я говорю о сотовой связи - дешево, удобно, надежно, не требует сложного оборудования, а самое главное - делается на коленке из подручного хлама за один вечер.

Выбор аппарата

Поскольку все коммуникации мы будем вести через сотовые сети, нужна мобила-исполнитель, которая бы обрабатывала запрашиваемые сигналы или, наоборот, выдавала какую-либо инфу нам, в зависимости от обстоятельств. В принципе, вполне сгодится любой агрегат, все зависит лишь от способа подключения к нему. Можно тупо припаяться к кнопочкам и, замыкая их, делать с аппаратом все, что заблагорассудится, словно ты сам им рулишь, но гораздо удобнее и эффективнее подрубиться к телефону посредством интерфейсного разъема, и вот тогда нам будет доступно все, ну почти все.

Итак. Телефон должен обладать следующими качествами.

  1. Быть недорогим, поскольку лишние навороты нам совершенно ни к чему - мы же не для понта будем его использовать, а почти со всеми функциями справится мобила с минимумом функций.
  2. Быть максимально дубовым изнутри. То есть нам совершенно не подходят разного рода смартфоны и телефоны со сложной ОС-подобной прошивкой. Чем проще программное обеспечение телефона, тем меньше вероятность того, что оно даст сбой или повиснет. А надежность в нашем деле - это главное.
  3. Очень желательно, чтобы девайс мог подключаться к компу и управляться с компа. Проверяется это просто - достаточно полазать по форумам и поспрашивать, есть ли для интересующего телефона софт, позволяющий посредством дата-кабеля сгружать с телефона sms, записную книжку, лазить по файловой системе, добавлять мелодии, имитировать нажатия клавиш и прочие управляющие воздействия. Если есть, то этот агрегат нам подходит, если нет, то этот пункт не выполняется, а значит, возможности такой системы контроля резко сокращаются. Впрочем, возможно, для решения твоей задачи хватит и самого простого агрегата.

Я же сам использую и рекомендую заюзать тебе телефоны Siemens. Может, мобильное подразделение фирмы и обанкротилось, но они делали мегарулезные агрегаты - истинно фрикерские девайсы. Советую обратить внимание на 35-ю серию и выше. Оптимальный вариант - это Siemens ME45. Он дубовый, надежный и полностью управляемый. Недаром его активно используют различные охранные агентства в своих GSM-сигнализациях. Если же тебе не удастся его найти, выбери девайс из серии 65, например С65. Сейчас он весьма дешев и продается на любом гопорынке.

Короче, выбор мобилы-исполнителя должен основываться на характере решаемых задач, а перспективы и возможности применения мы рассмотрим чуть ниже.

Инструмент

Для работы тебе потребуется правильный паяльник. Обычно в каждом доме есть здоровенное лудило от 40 ватт и более. Тебе такое не подойдет – сожжешь микросхемы. Нужен маломощный паяльничек ватт на 20 желательно с тонким жалом, а лучше вообще паяльная станция. Но станцию для одно-/двухразового применения покупать глупо, поэтому я рекомендую паяльник СТ-96 с регулятором температуры. Стоит он рублей 200, а по возможностям не сильно отстает от станции, даже сменные жала подходят.

 

Ставь перед собой реальные цели!

Итак, что мы можем решить посредством мобильника?

Самое простое, что приходит в голову, - это оповещение о каком-либо событии. Например, младший брат залез в твой ящик стола, чтобы стырить и просмотреть до дыр диски с коллекционной немецкой порнухой. А может, кто на заначку позарился? Ты узнаешь об этом первым! Все просто, датчик, нацепленный на объект, сработает, и мобила позвонит тебе сама. Алярма! В простейшем случае это реализуется, например, кнопкой, установленной в ящике так, чтобы при открытии ящика происходило ее нажатие, замыкание контакта, и телефон получал приказ о звонке.

А можно и наоборот – работать на прием управляющего сигнала. Например, заметил ты, что твой сервер наглухо повис и не пытается сам подняться, а пнуть его некому, - позвонил на спецномер и устроил ему аппаратный Reset. И это далеко не все, что можно вытворять посредством мобильного телефона.

АТатат ему по попе, АТатат!

Как управлять мобилой? В простейшем случае, как я уже говорил, можно просто припаяться к кнопкам и не мудрить. Открыл брательник ящик – сработал датчик, замкнулась, например, кнопка «3» в телефоне, и пошел дозвон на фиксированный номер, забитый на тройку. Просто и без геморроя. А в случае с сервером можно повесить реле на виброзвонок, вместо моторчика, и при входящем звонке оно замкнет свои контакты и вызовет перезагрузку. Но тут есть ряд проблем, таких как случайные звонки и регулярный спам от оператора, который в последнее время сильно мешает. Поэтому лучше не ограничиваться простым использованием железных сигналов, а подключаться к телефону через штатный интерфейс, то есть по дата-кабелю.

Что можно сделать посредством кабеля? О, да тут целый список возможностей. Во-первых, почти все мобилы поддерживают стандартные АТ-команды, уже знакомые тебе по использованию модема. Так что набор номера можно устроить засылкой в порт команды «АТDxxxxxxx;», где хххххх заменяется нужным номером, а по вернувшемуся ответу определить, дозвонился телефон или нет. Если, например, в ответе пришло BUSY или ERROR, значит вызываемый недоступен и нужно перезвонить. Это может сделать практически любой телефон, поскольку команды модема стандартны для всех. Кроме стандартных АТ-команд есть еще узкоспециализированные команды для конкретного телефона, управляющие его функциями. Так как я работал в основном с Siemens, то описывать я буду именно сименсовскую систему команд, хотя мне доподлинно известно, что управлению поддаются и Nokia, но там все несколько сложнее.

Так вот, сименсы имеют на редкость богатую систему управления посредством АТ-команд, позволяющих, например, написать и отправить sms’ку, выцарапать и обработать пришедшую sms’ку, эмулировать нажатия любых клавиш и управлять почти всеми функциями телефона. Также с помощью AT-команд можно узнать о состоянии сотовой сети и телефона на данный момент, проконтролировать заряд батареи и многое другое. На диске ты найдешь справочник по АТ-командам для модели 45-й серии. Я работаю с 65-й серией, но, в принципе, мне всегда хватало команд от 45-х, поскольку уже там все есть. А если чего и не хватает, можно эмулировать нажатиями клавиш.

Сделай это сейчас!

Чувствую, у тебя уже зачесались ручки проверить мою телегу на практике. Отлично, все, что тебе потребуется на данном этапе, - это мобила (я юзаю Siemens SK65) и дата-кабель. Эти девайсы без проблем покупаются и стоят весьма недорого.

Хватай дата-кабель и втыкай его в комп. Скорее всего, кабель у тебя USB’шный, а значит, нужно установить драйвер виртуального COM-порта. Он должен быть на диске, прилагающемся к шнурку. После того как дрова встанут на место, у тебя в системе появится еще один COM-порт. Обычно он следующий по номеру после уже имеющихся физически. Залезь к нему в настройки и выстави там скорость 9600 бод (в моей практике мне удавалось подцепить телефон только на скорости 19 200 кб/сек - прим. dlinyj). Почему так мало? Нам надо проверить, как мобила будет работать на такой скорости, а поскольку мы не собираемся гонять много данных, то и высокая скорость нам ни к чему. Зато с понижением скорости возрастает помехозащищенность и надежность передачи данных, так как снижается точность временных задержек протокола.

После настройки порта можешь смело юзать любую терминальную программу, например имеющуюся в стандартной поставке Винды – Hyper Terminal, и коннектить ее к телефону. Запускай Hyper Terminal; в выскочившем меню, в имени соединения, пиши что хочешь; далее выбирай СОМ-порт (реальный или виртуальный), к которому у тебя подключена мобила. Потом нажми ОК и в свойствах соединения укажи скорость 9600, а биты данных выставь в 8 (стандартный RS232), Отмени проверку четности и выставь один стоповый бит и аппаратное управление потоком. У меня все эти значения уже стоят по дефолту, кроме разве что скорости. Опять жми ОК, и если все правильно, то произойдет коннект с телефоном.

Для начала проверь, жив ли телефон: зашли ему команду AT, он должен ответить ОК. Если ответа нет, значит проблемы в связке «телефон – кабель – драйвер – терминал». Проверь, подключена ли терминалка к телефону, переподключи терминалку. Не поможет - перезагрузи телефон; возможно, придется поиграть с номерами портов, а также проверить кабель на каком-либо заведомо исправном телефоне и специальной софтине для него. Но, думаю, все будет хорошо, так как убитые дата-кабели встречаются довольно редко, тем более что там и ломаться-то особо нечему.

Дальше можно уже попробовать начать активные действия. Набери командой номер – забей в терминалку «ATDxxxxxxxxx;», где вместо порнушных иксов напиши какой-нибудь номер. Нажми <Enter> и внимательно посмотри на экран мобилы - там должен начаться набор номера. Получилось? Отлично! Результатом действия команды будет ответ телефона. Например Busy, что значит «занято». Поэкспериментируй со звонком на свой домашний или второй мобильный и посмотри на разные ответы. Положить трубку можно командой АТ+CHUP. Но это не так интересно, поскольку подобными фишками обладает любой модем, так что дистанционному оповещению можно научить и его. Нам же желательно добраться до функций сотового телефона.

Дальнейшее повествование относится только к мобильным телефонам марки «Сименс», поскольку неизвестно будет ли это работать на моделях других производителей.

Для доступа к сервисным АТ-командам телефона нужно перевести его в режим терминальной сессии. Для этого выполни команду «AT+CMEC=2,0,0». Как ясно из мануала по АТ-командам Siemens, эта хреновина переводит телефон в режим мобильного терминала, а число 2 в параметрах означает, что телефоном можно управлять теперь и с клавиатуры, и с порта. Все, теперь тебе доступен весь спектр команд управления, можешь экспериментировать от души уже самостоятельно, а я расскажу еще об одной команде – эмуляторе клавиш.

«AT+CKPD=1,100» - эта строчка, засланная в порт телефона, эмулирует нажатие кнопок телефона. В данном случае происходит нажатие кнопки «1» с длительностью в одну секунду. Параметр 1 - это код кнопки, а 100 - длительность в сотых долях секунды. Описание всех кодов кнопок ты найдешь в том же мануале, а я лишь упомяну основные:

  • 0..9 – цифровые клавиши;
  • E или e – завершить соединение (красная трубка);
  • S или s – сделать вызов (зеленая трубка);
  • < - джойстик влево;
  • > - джойстик вправо;
  • ^ - джойстик вверх;
  • V или v – джойстик вниз;
  • [ - левая софт-клавиша
  • ] – правая софт-клавиша
  • # - решетка - она и в Африке решетка, ей же можно снять блок с Siemens :), надо только задержку в команде подольше указать;
  • * - эмуляция самой звездатой из всех кнопок.

Ну а дальше - гонишь по порту в телефон пачки нажатий, словно ты сидишь и сам тычешь по кнопкам. Телефон это воспримет на ура и даже не поймет, в каком его месте кинули. Таким образом можно, особо не заморачиваясь со сложными командами, делать с телефоном все, что душе угодно.

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

Нам нужен мозг!

Но рулить мобилой посредством компа - это моветон. Система должна быть полностью автономной, как подводная лодка, потому для управления будем использовать… Правильно - микроконтроллер. В прошлом номере Длинный уже рассказывал, как правильно подключать контроллер и заливать в него программу, поэтому я ограничусь лишь кратким напоминанием, а саму статью ты найдешь на диске. В качестве контроллера я юзаю ATMEL AT89C51 архитектуры MSC-51, так как благодаря стараниям Длинного у меня их ну просто завались, за что ему огромное спасибо. Тебе же советую использовать Atmega 8535, так как это наиболее удобный вариант для программирования и изучения. Atmega обладает аппаратным обработчиком протокола UART, который логически ничем не отличается от RS232 (протокол COM-порта), разница тут лишь в уровнях напряжения между контроллером и телефоном. Контроллер рассчитан на 5 вольт, а в мобиле в целях снижения энергопотребления используется 3,3 вольта. Грузить тебя описанием протокола UART я не буду, поскольку это нудно и неинтересно, да и инфа по нему валяется на каждом углу, а почти все микроконтроллеры умеют его обрабатывать аппаратно – нужно только заслать байт данных в необходимый регистр, и начнется передача данных.

Персональная охранная система

Итак, теории достаточно, пора приступать к решению конкретных задач. Скажи, тебя не бесит, к твои родственники шарят по твоим ящикам? Меня лично это ужасно бесит! Особенно когда мой младший брат тырит мои презеры, накачивает их водой и кидается в прохожих, а я в самый ответственный момент имею нехилый гемор, щедро приправленный обломом :). Брательник, естественно, получает по ушам, но это уже ситуации не меняет. Будем бороться с актами хищения личной собственности. Юзание мобилы в системе управления я продемонстрирую на примере охранной сигнализации, навешанной на ящик стола.

Ингредиенты

Для начала тебе нужен датчик. Сойдет обычный геркон, который ты без проблем купишь в любом магазине, торгующем охранными системами и сигнализациями. Стоит он гроши, а пользы от него много. Геркон представляет собой этакий кирпичик из пластика, внутри которого спрятан намагниченный контакт. При поднесении магнита этот контакт замыкается, при его удалении - размыкается. Или наоборот, все зависит от типа геркона. Тип геркона определяется с помощью магнитика и мультиметра. Нам подойдет любой, разница будет лишь в обрабатывающей программе контроллера, да и то незначительная – в пару байт. Геркон и магнитик крепятся на ящик стола так, чтобы при открывании ящика магнитик удалялся от геркона. Крепить можно шурупами, а можно и ленивым способом – с помощью термоклея, как я.

Затем тебе потребуется контроллер. Как я уже говорил, я рекомендую взять Atmega 8535. Во-первых, она легко программируется (программатор из пяти проводков, втыкающихся в LPT-порт). Во-вторых, внутри нее куча разной периферии, порядочно памяти, а значит, для опытов она подойдет идеально. В-третьих, Atmega 8535 очень популярна и стоит относительно недорого (я купил за 80 рублей). Ну и в-четвертых, она, как все AVR, практически не требует обвеса из других компонентов – подал питание и все, работает! Так что намек понял? Бегом в радиомагазин или на барахолку за процом! Мегу бери в DIP-корпусе – легче паять. Также прикупи там грошовый керамический конденсатор на 100 пикофарад в количестве двух штук и кусок макетки. Макетка - это такая плата, с дырками. На ней удобно паять разные девайсы, чтобы не травить плату. Также тебе нужна будет парочка стабилитронов на 3,3 вольта и десяток резисторов на 10 килоом мощностью 0,25 ватт. Еще не помешает припой и флюс. Припой бери самый дешевый, в виде тонкой проволоки, а в качестве флюса отлично сгодится гадость под названием ЛТИ-120 (есть везде, в любом радиомагазине) или, что намного удобнее, канифоль-гель (не перепутай с простой канифолью, ее тоже можно использовать, только гораздо сложнее). Все это барахло тебе будет стоить, если не зажлобят продавцы, максимум 200 рублей. А часто и того меньше.

Твой горячий друг

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

Итак. Для начала вставляешь деталь в дырку на макетке. Выводы деталей и дырки макетки уже облужены на заводе, потому паяться будет отлично. Затем посредством кисточки наносишь на это дело ЛТИ-120 или намазываешь канифоль-гель. Далее, пока ЛТИ-120 окончательно не засох (кстати, канифоль-гель не сохнет, можно не спешить), нужно подцепить жалом паяльника маленький, с пол спичечной головки, кусочек припоя (я обычно заранее коцаю проволоку припоя на гранулы) и поднести его к месту пайки. Раздастся адское шипенье, флюс испарится, а детальки будут намертво спаяны вместе. Вуаля! Только делать все надо быстро, держать паяльник на ножке микросхемы желательно не более 1-3 секунд, а то есть риск перегреть ее и сжечь. Если ты не уверен в своих силах и боишься пожечь микросхемы, то сначала потренируйся на всяких левых медных проводках. Ну а идеальный вариант – регулируемый паяльник (вроде того, что на врезке) или паяльная станция. Выставил температуру жала 220 градусов и паяй сколько влезет – такую температуру микруха выдерживает долго.

Схемотехника

Чтобы проиллюстрировать свое повествование, я набросал принципиальную схему девайса с комментариями на полях, а также сделал вагон и маленькую тележку его фотографий. На фотках схема сделана навесным монтажом, чтобы было видно, какой провод куда идет. Тебе же рекомендую делать на монтажке – так надежнее. Готов? Тогда поехали!

Для начала зафигачь контроллер в макетку. Аккуратно вставь в дырочки и пропаяй. После этого открывай datasheet на Atmega 8535 и смотри, какие ноги отвечают за прошивку программы. Для Atmega 8535 это выводы 6-MOSI, 7-MISO, 8-SCK, 9-RESET, 10-Vcc, 11-GND. Нумерация выводов идет от метки на корпусе слева направо по нижнему ряду выводов, а потом справа налево по верхнему. Аккуратно впаяй шесть проводков в дырочки на макетке напротив указанных ножек. Длина проводков должна быть не больше 20 сантиметров, чтобы не глючило. Потом снизу платы припаяй перемычки на ножки, как указано на фото, чтобы соединить проводки с микросхемой. Главное - не забыть сделать перемычки - я вот вечно забываю, а потом долго туплю, не въезжая, почему не работает. Проводки от ножек GND и Vcc сделай длиннее и заведи их на комповый блок питания, на любую свободную колодку – это будут провода питания контроллера. Vcc - на красный провод, а GND - на черный. Остальные провода засунь в LPT-порт: 2 – Reset, 3 – MOSI, 4 – SCK, 10 – MISO и любой от 18 до 25 – GND.

Запусти UniProof и проверь, определился ли контроллер прошивающей программой. В левом верхнем углу, над окном кода, должно быть написано Mega 8535. Взгляни на скриншот, там я тебе кратенько изложил что к чему. Если не работает, проверь провода, пайку, правильность подключения. Может, где-то что-то оборвалось. Если все получилось, значит самое сложное у нас позади - контроллер поддается прошивке, а это для начинающего половина дела. Осталось только подключить мобильник, датчик и написать прогу управления.

Датчик подключается не просто, а очень просто. Берешь и припаиваешь выводы от геркона на эту же макетку, скажем, рядом с ногой порта PA0, расположенной на 40-й ножке контроллера. Далее один из выводов геркона перемычкой соединяешь с 40-й ножкой (порт PA, нулевой бит), а второй вешаешь на землю, то есть соединяешь с GND, просто припаяв перемычку к 11-й ножки контроллера.

Кроме того, выводы геркона нужно зашунтировать конденсатором, чтобы импульсные помехи, возникающие от зарядника мобилы, не вызывали ложных срабатываний. Для этого аккуратно припаяй кондер на ножки. Не помешает напайка конденсатора между ножками 10 и 11 микроконтроллера – защита от импульсных помех по питанию микросхемы.

Теперь найди по datasheet выводы UART. Они обозначаются так же, как и выводы COM-порта: RxD и TxD. Это пины 14-го и 15-го микроконтроллера. Так как у Меги питание - 5 вольт, а в мобилах рабочее напряжение – 3,3 вольта, то надо сделать схему согласования напряжений. Для этого нам потребуется стабилитрон и резистор. Резистор одним концом напаяй на вывод 15 – TXD, а вторым - на катод стабилитрона. Катод обозначается либо точкой, либо цветным ободком. Второй конец стабилитрона паяй на GND. Что получилось? Да ничего особого – обычный ограничитель напряжения. Стабилитрон подобен клапану, который распахивается при увеличении давления сверх нормы. Как только напряжение превысит 3,3 вольта, стабилитрон откроется и стравит излишки напруги на землю, оставив на себе всего лишь 3,3 вольта. Теперь надо припаять проводки для связи с мобилой. Один проводок напаяй на 14-й вывод - это у нас будет принимающий порт (RxD), а второй - на соединение стабилитрона и резистора, прямо туда. Это будет передающий порт (TxD).

Так, проводки к UART припаяны, пора бы их завести на порт мобилы. Тебе потребуется разъем под дата-кабель телефона. Его можно добыть в радиомагазине, в ларьке по ремонту мобил или на радиобарахолке. На худой конец его можно оторвать от родного дата-кабеля или сделать из подручного хлама (например, для сименсов 45-й серии разъем для дата-кабеля делали из распиленного коннектора от RJ-45 витухи).

Итак, посмотрим на распиновку разъема сименса. Если смотреть на контакты сверху, выводами к себе, то порядок такой:

1 - Vpp. Плюс питание зарядника. Напруга там скачет от 3 до 8 вольт, редкостная лажа :).

2 – GND. Земля, она же общая точка. Ее надо объединить с GND контроллера. Иначе ничего работать не будет.

3 – Tx. Передающая линия UARTa телефона.

4 – Rx. Принимающая линия UARTa телефона.

5 и 7 надо объединить и через резистор в 10 килоом припаять на GND. Это даст мобиле понять, что в нее засунули кабель.

Теперь берешь и аккуратно припаиваешь проводок RxD от микроконтроллера на вход Tx мобилы. Затем таким же макаром сажаешь проводок TxD на вход телефона Rx. От точки GND контроллера кидаешь проводок на вывод GND мобилы, чтобы они имели общий нуль, иначе ничего работать не будет. Кстати, заметил, как часто юзается точка GND? Советую сразу где-нибудь в удобном месте платы напаять длинную перемычку и завести на нее минус питания, он же GND, чтобы не создавать на плате логово Ктулху с торчащими во все стороны щупальцами. Сделал? Отлично! Сигнальные выводы мы навесили, осталось подать корм.

Для начала накормим мобилу. Отрезай от зарядника штатный штекер и с помощью тестера определяй полярность. Делается это просто. Красный провод тестера, подключенный к гнезду V, сажай на один вывод зарядника. Черный провод тестера, подключенный к СОМ, сажай на другой. Включай зарядник. На табло тестера будет показано напряжение зарядника, порядка 8 вольт. Так вот если число без минуса, то красный провод висит на плюсе зарядника, а черный - на минусе; если на табло горит минус – все наоборот. Припаивай минус зарядника на GND всей нашей конструкции, а плюс - на разъем штекера дата-кабеля на контакт 1 (Vpp). Теперь тебе нужен второй блок питания, вольт на 5. Им будем кормить контроллер. Для опытов можно взять комповый БП, там как раз на колодке 5 вольт (черный провод – GND, красный - плюс 5 вольт). Сажай минус, он же GND, на GND нашей схемы. Логично, правда? А плюс 5 вольт подавай на Vсс контроллера ака 10-я нога. Все, теперь схема готова. Осталась только пара штрихов.

Итак, теперь надо:

  1. Написать прошивку.
  2. Залить ее в контроллер.
  3. Отпаять от LPT-порта компа все проводки.
  4. Припаять к 9-й ножке микроконтроллера (это RESET) резистор на 10 килоом, а второй его конец припаять на 10-ю ногу – Vcc.
  5. Воткнуть блоки питания контроллера и мобилы в сеть.

После всех этих нехитрых манипуляции проц начнет яростно выполнять заложенную в него программу.

Кодинг

Так, с аппаратной частью покончили, пора бы сваять прошивку контроллера. Эх, если сейчас ты подумал о С builder или Delphi, то оставь эти детские фантазии в сторонке. Суровые фрикеры уважают только ассемблер :). И мы будем строгать прошивку именно на нем! Исходник проги получился весьма жирным, поэтому выкладывать его на страницы журнала я не буду, его ты найдешь на диске. Прокомментирован он подробно и толково, так что, думаю, ты сообразишь, что к чему. В качестве рабочей среды я заюзал AVR Studio. Там есть и отладчик, и компилятор, а также она поддерживает все виды процессоров AVR.

Запуск!

Ага, настал тот момент, котором я так долго и красочно расписывал в начале статьи - пришла пора проверить систему в действии. Питание заведено, контроллер прошит. Открываем ящик… геркон срабатывает, и тревожная алярма несется на твой мобильник. Ахтунг! Презеры в опасности! Немецкое порно под угрозой!

Каково, а? А ведь почти точно такие же конструкции, только с добавленным обработчиком Dallas-ключа (таблетки на домофонах - это и есть тот самый Dallas-ключ), продает и устанавливает множество охранных фирм, получая за это некислое бабло. Не позволь им тебя надуть – сделай сигналку сам! А я откланиваюсь.

Пиши мне мылом, а если возникнут общие вопросы или ты захочешь развить тему дальше, то регайся в LiveJournal и пиши в сообщество ru_radio_electr или кидай коммент мне в журнал (di_halt.livejournal.com). А я уж туда спецов подтяну, и придумаем что-нибудь сообща.

Ну а в следующих номерах ищи статью об аппаратном затроянивании мобильных телефонов. Удачи!

 

Содержание
ttfb: 18.990993499756 ms