Уронил квадрокоптер, опять...
Очередные испытания квадрокоптера окончились падением. Причем, довольно дурацким. В определенный момент, квадрокоптер просто завалился набок и камнем полетел вниз. Хорошо, что летал я не высоко, на высоте около пяти метров, если бы взлетел повыше результаты были бы гораздо более плачевные.
Падение пришлось на прозрачную полусферу, защищавшую плату управления и антенну GPS. В результате антенна сильно покалечилась, полусфера поломала ушко крепления а сама рама квадрокоптера треснула поперек. Думаю, это не смертельно, раму я всё равно планировал рано или поздно заменять -- уж больно неудачная конструкция.
Скорее всего, причиной падения послужил вылетевший от вибраций контакт мотора, а возможно, дело в том, что, то ли, из-за падений различной тяжести, то ли из-за неправильной калибровки ESCов обмотки моторов сильно почернели и обуглились, что могло вызвать короткое замыкание. Два из трех поврежденных моторов я уже перемотал, а третий все не как не решался, ну вот теперь уже точно будет повод.
Тяпничное вино
Купил в Магните вино напопробовать. Чем-то оно меня зацепило. На полке где оно стояло из трех бутылок осталась только одна, вот я и подумал, что, возможно, кто-то что-то знает, чего не знаю я... Попробовал и... вылил обратно в бутылку. Гадость редкостная. Сначала, было, хотел вылить совсем, но жена отговорила, мол, пойдет для готовки. В общем, название говорит само за себя, любуемся:
Будете выбирать вино в Магните - Ниебла - не покупайте - фигня - фигней. Впрочем, кому-то же оно нравиться, так, например, знаменитая Жопа Шене сейчас в Магните тоже стоит. Её я как то раз тоже купил - тоже пошло на кулинарные цели, только потом узнал, что не мне одному оно не понравилось... Но кто-то же это покупает, так что будьте внимательнее.
Умный свет на Arduino
Продолжаем тему плавного включения света, начатую ранее.
В выходные, наконец, собрал вместе все компоненты управления светом в моей новой квартире в кухне, гостиной и лоджии. Основная идея - реализовать управление светом при помощи простых кнопочных выключателей. Что может быть проще и естественней при входе в комнату нажать на выключатель - щелк и свет горит. Соответственно для этого не нужно хитрых ручек, кнопочек, сенсорных панелей - просто кнопка. Разумеется, в будущем, все будет дублироваться с планшета и можно будет управлять светом и с планшета и голосом, но сейчас, пока в жилище ремонт -- контроллер должен работать автономно, но при этом, обеспечивать все те же возможности управления светом, что и у готовой системы используя лишь простой кнопочный выключатель.
Наиболее нетривиальной задачей было организовать управление точечными светильниками с плавным включением. Её я успешно решил, выкинув "родные" блоки питания, замнив их на управляемые ШИМ источники тока и запитав всю схему от одного мощного блока питания. Светильники на 3 Ватта питаются от блока питания 12 вольт, светильники на 6 Ватт - от блока питания на 24 вольта.
Сам контроллер собран в корпусе на дин-рейку, заказанном на чипе&дипе. Корпус, кстати, оказался весьма удобным с макетной платой, на которой и были размещены маломощный блок питания для ардуины и три семисторных ключа с оптронной гальванической развязкой - безопасность превыше всего! Сама плата arduino pro mini и микросхема max485 для шины модбас размещены на отдельной макетной плате и помещенны в тот же корпус, благо место позволяет.
Прошивку написал с нуля - она пока не совсем такая как я хочу, но уже не вызывает рвотного рефлекса при взгляде на код - оказывается, ардуино позволяет писать программы на вполне приличном C++ с объектами, наследованием и виртуальными функциями. Все это делает код вполне читаемым и, главное, поддерживаемым в будущем. Код выложил на github - замечания и дополнения приветствуются!
Основная фишка - одна кнопка. Тут я вполне согласен со Стивом Джобсом - одна кнопка рулит!
В кухне одной кнопкой включается основной свет и свет над рабочей зоной. На лоджии плавно включается четыре шестиваттных потолочных светильника. В гостиной - одной кнопкой управляем двумя светильниками общего света. При этом есть возможность управлять яркостью светодиодных светильников - делать их ярче или тусклее.
Конечно, ремонт пока еще в самом разгаре и в будущем на кухню я планирую добавить подсветку с светодиодной лентой по периметру потолка. В гостиной планируется добавить отдельную зону из светодиодных светильников, как на кухне.
Как говориться, начало положено и схема доказала свою реализуемость, что не может не радовать.
Резервная копия для Google Authenticator
Двухфакторная аутентификация сейчас пользуется заслуженной популярностью. Аутентификация с использованием Google Authenticator - отличная альтернатива аутентификации на основе SMS сообщений.
Но вот вопрос - что делать если устройство потеряется? А как просто будет перенести данные для авторизации если у вас новое устройство?
Сейчас для того чтобы перенести авторизацию с одного устройства на другое нужно обнулить токены авторизации на одном устройстве и настроить их на другом. Хорошо если у вас только один аккаунт под управлением Google Authernticator - а если десять? У меня сейчас пять таких аккаунтов и их перенос для меня сильно проблематичен.
Не так давно я решил вопрос с потерей устройства регистрируя ключ на двух устройствах одновременно. Но вот у меня появился новый телефон. Проблема встала с новой остротой.
Хочется иметь возможность в любое время развернуть токены с одного телефона на другом. Желательно также, чтобы в любое время я бы имел возможность снести Google Authenticator и заменить его на любой другой, например, на FreeOTP.
Сел разбираться как это, вообще, работает. Оказалось, все до банальности просто. В момент, когда вы настраиваете двухфакторную аутентификацию с использованием Google Authenticator - генерируется секретный ключ, который запоминается на сервере и одновременно вы его фотографируете в виде баркода своим телефоном. Позднее, в момент авторизации - к секретному ключу добавляется текущее время округленное до тридцати секунд и от этого выражения рассчитывается sha1 контрольная сумма. Первые шесть чисел контрольной суммы и есть секретный код отображаемый на мобильном устройстве.
Оказалось, что задача резервного копирования решается не просто просто а очень просто! Значит, чтобы получить на двух телефонах одинаковые коды, нам всего лишь нужно знать этот "секретный" код. А ведь когда мы настраиваем аккаунт нам этот код показывают на экране! Дополнительно, его можно скопипастить в виде текста и сохранить в надежном месте! Далее, просто вводим этот код в ДРУГОЙ телефон и вуаля! Мы имеем ДВА телефона с одинаковыми кодами! Более того, теперь, в случае, если мы сбросили наш телефон до заводских настроек, мы всегда можем восстановить наш Google Authenticator как было!
Таким образом, алгоритм подключения телефона дополняется дополнительным шагом - а именно - сохранением секретного ключа в секретном же месте. После чего, данный секретный ключ может быть введен на любом устройстве, в любое время! Кроме того, вы можете попробовать использовать любые другие OTP программы, например FreeOTP. Который, в отличие от Google Authenticator - полностью открытый и не имеет разрешений ходить в интернет. Да я теперь даже смогу использовать Pebble для авторизации!
Конечно, такая практика несколько снижает криптостойкость всей схемы, ведь теперь секретный ключ хранится в нескольких местах, но тут уж каждый должен сам решать что ему важнее - надежность или проблемы в случае утери устройства.