Почему управление одни реле с помощью ARM процессора - это нормально?
alex_avr2 — 18.05.2015 Частенько вижу и слышу высказывания насчет того, что мол современные разработчики совсем обленились и разучились делать нормальную электронику и даже ради мигания светодиодиком ставят микроконтроллер, вычислительные мощности которого используются на 0.0001%. Я расскажу на примере, почему во многих случаях такое "расточительное" использование ресурсов не только плохо, но и хорошо и на самом деле экономит ресурсы.Простейший, немного утрированный, но очень жизненный пример. Приходит ко мне заказчик и говорит: есть две лампочки и две кнопки. Хочу чтобы одна лампочка горела, а другая не горела. Если нажать первую кнопку - лампочка которая горит должна тухнуть, а та которая не горит - загораться. Если нажать вторую кнопку, то все наоборот.
Замечательно, простейшая задачка. Решается с помощью одного реле. Беру реле, беру гору проводочков, обрезаю, зачищаю, паяю, обрезаю, зачищаю, паяю, обрезаю, зачищаю, паяю. Для простоты и быстроты - никаких печатных плат, все навесу, в термоусадке. Запихиваю в коробочку, подключаю, проверяю, готово. Вроде ерунда, а времени ушло час. Еду к
Проходит неделя, звонит заказчик. Все круто, говорит, но нам нужно добавить третью кнопку, чтобы пока ее хотя бы раз не нажали - первые две не работали. Начинаю чесать репу, думаю как бы это сделать. Говорю заказчику, что для этой переделки мне нужно забрать блок управления к себе минимум на день. Заказчик грустный-грустный - вся работа без кнопок да лампочек стоит, убытки идут. Но делать нечего, забираю блок, обрезаю, зачищаю, паяю, обрезаю, зачищаю, паяю, обрезаю, зачищаю, паяю. Поставил второе реле, добавил вход для третьей кнопки - все работает! Еду к
Проходит месяц и опять звонит заказчик, грустный. Говорит, все круто работает, но хотим, чтобы вторая лампочка загоралась с задержкой три секунды, а еще спрашивает, а нельзя ли как-нибудь побыстрее поставить, чтобы на день рабочий блок не снимать? Чешу репу, думаю как сделать. Ладно, говорю, ждите, приеду. Задержка на три секнды, значит, ага, поставим простейшую схемку на нескольких дискретных элементах. Транзистор да конденсатор пойдут. Обрезаю плату кое как, паяю детальки, проверяю без блока управления, но вроде работает как надо. Еду к
На следующий день звонит заказчик. Вам уже смешно? А мне нет - ехать то к черту на кулички :))
Отвалился тот резистор.
А теперь мы берем 32-х разрядный ARM микроконтроллер, с ядром работающем на частоте 48 Мгц, с оперативной и флеш памятью, с кучей всяких крутых встроенных фич и вообще, по многим параметрам существенно превосходящий, например, бортовой компьютер космических аппаратов Аполлон, которые летали на луну.
И да, кощунственно ставим его, чтобы управлять одним несчастным реле. Почему мы это делаем? Да все просто, ведь этот микроконтроллер, стоит дешевле, чем проехаться один раз на маршрутке (а уж тем более 4 раза на маршрутке и 2 раза на метро, к заказчику и обратно). Потому что использование микроконтроллера во многих случаях позволяет за считанные минуты поменять алгоритм - быстрее, чем паяльник будет греться.
Конечно, микроконтроллеры тоже нужно использовать с умом, ведь можно и под него сделать такую плату, которую не изменить, а без изменения платы часто и алгоритм менять бессмысленно. Тут я поступил следующим образом - разработал универсальную плату с микроконтроллером и минимально необходимым обвязом и сделал 4 эквивалентных разъема(физически один большой). В каждый из разъемов можно воткнуть один из стандартных модулей, всего их на текущий момент более десятка видов. А если вдруг нужно еще больше модулей, то платы без проблем связываются в сеть.
Получилась очень гибкая система. Под каждый подключаемый модуль заготавливается программный код, по сути небольшая библиотека, которая позволяет быстро и удобно работать с модулем, выполняя всю "грязную работу". Остается лишь написать простейший алгоритм работы.
В результате мы имеем хорошо отлаженный набор плат, без багов и неожиданностей, с высокой надежностью, которые паяются на потоке, за счет чего достигается большая скорость изготовления и низкая цена пайки. Себестоимость по деталям чуть выше, чем если бы каждое решение делалось бы с нуля, но окупается при первом же "нюансе" - будь то внесение изменений, повреждение платы и т.п.
И да, если мне нужно управлять одним реле от одной кнопки я ставлю такую плату. И да, у меня ARM микроконтроллер управляет одним реле и меня ничуть это не смущает, ибо в конечном счете мне это дешевле и по времени и по деньгам.
Разумеется, это решение имеет довольно ограниченную область применения и я ни в коем случае, нигде и никогда не утверждаю, что реле должны всегда управляться подобным образом. Речь лишь о том, что в ряде случаев это оправданно.
И конечно, каждое конкретное техническое решение должно быть использовано согласно своим достоинствам и недостаткам для решения задачи. Не бывает всегда "хороших" решений или всегда "плохих".
|
</> |