Шрифт:
Интервал:
Закладка:
— Сегодня будет большая демонстрация?
Лемми рассмеялся:
— Ты бы, дружок, почаще отдыхал. Слышал, что вчера происходило? Так вот, похоже, что все, кто вчера был там, решили выйти снова да еще и прихватить своих друзей. Весь центр города перекрыт. Я тут как раз возился с квадрокоптерами и решил, что могу с их помощью отснять классное видео. К тому же все они способны раздавать вайфай и настроены на разные сети 4G, так что поможем народу бесплатно выходить в интернет. А в придачу три из них оснащены программно-определяемыми радиостанциями и могут триангулировать местонахождение полиции и машин скорой помощи. Я их настроил так, чтобы они отыскивали места самой плотной концентрации полицейских радиопереговоров. Интересно будет послушать. Но, сам знаешь, в программировании я не силен, поэтому для испытательного полета мне нужен помощник, который сможет на ходу устранить ошибки в коде.
Лемми обожал дроны, хотя, опять же на мой взгляд, предпочел бы создавать беспилотные автономные танки или квадроциклы, обвешанные тяжелым блестящим металлом. Я вгляделся в экран, тот вгляделся обратно в меня, заманчиво демонстрируя все, что я хотел знать о Кэрри Джонстон, и даже намного больше.
Я не мог оторвать глаз от ноутбука, однако не желал погружаться в эти материалы с головой. Поэтому захлопнул крышку и сунул Зверя в рюкзак.
— Идем. Ты прав, старик, программист из тебя никакой.
— Ага, — бодро подтвердил он. — Программы — это мелочи. А я люблю действовать с размахом.
Лемми решил добираться на машине — нелегко было бы пару миль тащить на себе четыре миниатюрных квадрокоптера. Однако улицы были наглухо забиты тачками, направлявшимися туда же, куда и мы, — к местам демонстрации, поэтому мы ползли с черепашьей скоростью. Чтобы не терять времени, я решил познакомиться с программами, которые разработал Лемми. Это оказалось нетрудно — большей частью они базировались на хорошо знакомых мне стандартных библиотеках. В основном это были системы для управления беспилотниками и для работы программно-определяемого радио.
Программно-определяемое радио появилось сравнительно недавно и проникло в мир так тихо, что мы почти и не заметили. Обычное традиционное радио работает на маленьких кристаллах кварца, примерно таких же, как в электрических часах. Кварц имеет свойство вибрировать, то есть колебаться туда и обратно с частотой, заданной при его изготовлении. Выбирайте кристалл, настроенный на нужную частоту, соорудите вокруг него электронную схему, и радио готово — оно может настроиться на любые сигналы, частота которых попадает в пределы колебательных частот кристалла. Одни радиоприемники настраиваются на спутники GPS, другие — на сотовые телефонные сигналы стандарта CDMA, третьи — на FM-радиостанции, и так далее, и тому подобное.
Но SDR — это программируемое радио. Вместо кристалла в нем работает аналого-цифровой преобразователь, небольшой электронный прибор, который принимает любые аналоговые сигналы с датчиков, например световые колебания с фотоэлементов или звуки с микрофона, и превращает их в нули и единицы. Подключаете преобразователь к радиоантенне, сообщаете ему, к какому диапазону прислушиваться, а потом с помощью стандартных программ извлекаете информацию из принимаемых им сигналов.
Это означает, что одно и то же устройство способно считывать сигналы воздушного транспорта, полицейских каналов, любительской радиосвязи, аналогового телевидения, цифрового телевидения, АМ-радио, FM-радио, спутникового радио, GPS, радионянь, одиннадцать стандартов вайфая и все, какие существуют, стандарты сотовой связи, и делать все это одновременно. Главное условие — чтобы преобразователь был достаточно быстрым, антенна — достаточно большой, а программы — шустрыми. Представьте себе, что вы изобрели автомобиль, который путем загрузки нужных программ может превращаться в велосипед, реактивный самолет, дирижабль, океанский лайнер или гоночный мотоцикл. Вот так это и происходит в мире радиоволн. Гениальная штука.
На своих дронах Лемми установил готовые SDR-приемники, купленные у нью-йоркской компании Adafruit, специализирующейся на электронных компонентах с открытым исходным кодом. Adafruit продает устройства с полным открытым кодом и подробными схемами, то есть вы имеете возможность переделать их под свои задачи. В Нойзбридже все обожали их SDR-приемники и другие детали. И, поскольку тысячи хакеров и рукастых умельцев по всему миру пользовались станциями, выпущенными этой компанией или ее конкурентами по тем же чертежам, то, разумеется, по сети гуляло очень много чистых, хорошо задокументированных программ для работы с ними.
Сидя на пассажирском кресле, я вникал в тонкости программного кода, лишь краем глаза замечая, как Лемми то трогается с места, то тормозит, то сворачивает из переулка в переулок, пытаясь выбрать местечко поближе к демонстрации.
— Ну что, док, каков вердикт? — спросил он, ставя машину на стояночный тормоз. — Годятся мои программы?
Я пожал плечами:
— На мой взгляд, все нормально. Осмелюсь предположить, ты просто скопировал примеры кода из руководств и добавил пару строк, привязывая каждый модуль к предыдущему. Так?
— Ага, — усмехнулся он. — Для меня написать программу — это как приготовить кекс из готовой сухой смеси: высыпаешь в миску, добавляешь яйцо и чашку воды, перемешиваешь и ставишь в духовку. Кекс все равно получится, а красивый или нет — это уже другой вопрос.
— Ну что ж, тогда посмотрим, испекся ли наш кекс.
Я вышел из машины. Это далось нелегко, потому что мы припарковались на уходящем вверх склоне крутого холма. Не сразу понял, куда нас занесло, а сообразив, удивился:
— Это же обратная сторона Ноб-Хилл!
— Ага. Я не смог ближе подобраться к демонстрации. Она огромная.
— Но нам же надо быть в миле отсюда? Или вроде того?
— Да нет, меньше. К тому же, насколько я вижу, протесты разрастаются. К концу дня дотянутся и досюда. Там происходит что-то несусветное. Люди злы как черти. Я тут живу с восьмидесятых годов и ни разу не видел таких масштабов.
Лемми достал из багажника квадрокоптеры. Они представляли собой крестообразные конструкции из легкого гибкого пластика, с четырьмя вертолетными винтами по концам крестовины. Посередине в круглой капсуле находились аккумуляторы, электроника, радио и системы управления. Без аккумуляторов каждый дрон весил меньше полкило, но с аккумуляторами этот вес удваивался. Лемми вручил мне два дрона. Я взял их в обе руки, кое-как пристроив пальцы между датчиками и антеннами центрального диска, стараясь ничего не погнуть и не заляпать линзы объективов.
Потом он протянул мне еще один. Лемми вообще обращался с дронами гораздо грубее, чем осмеливался я. Что ж, хозяин барин, хочет ломать — пусть ломает. Я неуклюже подхватил третий дрон под мышку. Оставшийся аппарат Лемми взял в одну руку, а другой стал водить по экрану телефона. Винты закрутились, застрекотали по-стрекозьи, квадрокоптер пару раз дернулся у