И снова Embedded!
Понедельник, 21 ноября, 2011 
Если в офисных кофейнях рефреном слышится загадочное «еmbedded» – значит, к нам приехал Астафф.

Если в офисных кофейнях рефреном слышится загадочное «еmbedded» – значит, к нам приехал Астафф.
– Собирается ли РФ использовать для обороны своих рубежей огромных боевых человекоподобных роботов?
– Увы, нет: последние исследования показали, что они неадекватно реагируют на команду «выйти из строя».
По словам Артема Астафурова, идее уже три года, и первый бюджет под создание робота был выделен в 2008. Мой же вклад в проект начался в октябре прошлого года – именно тогда я получил первое сообщение о Роботе.
Objective
Началось все с того, что мне на день Рождения друзья подарили электрический лодочный мотор. Это очень хорошая штука для тех, кто хочет покататься на лодке «без шума и пыли», возни с бензином, маслом и подобными антиэкологическими смесями. По сравнению с бензиновыми, электромотор, конечно, слаб, но для неспешной прогулки по озеру вполне годится. Легкую обтекаемую лодку он толкает вполне уверенно. Источник энергии – обычный автомобильный аккумулятор.
Проблема с лодкой на электротяге только одна: ты никогда не знаешь, когда закончится электричество в аккумуляторе, так как на разных режимах работы (и даже в зависимости от хода по- и против течения или ветра), мотор жрет разный ток, и в уме проинтегрировать мгновенный ток по времени, чтобы получить съеденные из аккумулятора ампер-часы, оказывается совершенно нереально.
Приходится либо брать на всякий случай весла либо второй аккумулятор – увидев, что первый увядает, переключаемся на второй и едем назад.
Idea
В итоге у меня появилась идея сделать к мотору простой датчик потребленных ампер-часов, чтобы хотя бы примерно оценивать, хватит ли их на обратную дорогу. Чисто математически задача элементарная – интеграл мгновенного потребляемого тока по времени. Технически же эта задача обычно решается подсчетом числа импульсов от некоего генератора, частота которого линейно зависит от потребляемого мотором тока. Т. е., количество импульсов нам дает ампер-часы, а частота – мгновенный потребляемый ток.
Implementation
У кого что под рукой, тот из того и строит. У меня под рукой оказался микроконтроллер «крошечного» (всего восемь выводов) семейства фирмы Atmel ATTiny, на котором легко практически без всякого дополнительного аналогового обвеса программно сделать преобразователь напряжение -> частота. Но нам-то нужно ток -> частота. Что же делать? Если под рукой есть средства измерения малых (милливольты) напряжений, то ток измеряется косвенно по падению напряжения на известном сопротивлении. Если не нужна большая точность, можно измерять падение напряжения просто на части питающего мотор провода. Так я и решил сделать.
Светофор купил на eBay. Хотя по офису ходят упорные слухи, что теперь на каком-то из перекрестков НЙ теперь на один светофор меньше… Достался он мне за $ 80, выторговал на последней секунде выиграл! Как только пришла идея, решил не упускать момент и создать прецедент, чтобы дальше уже что-то с ним делать. Поэтом не выглядывал самый лучший дил, полчасика побродил по сайту, посмотрел – и купил. Должен сказать, что вообще светофор на eBay купить очень легко.