В дороге
Я привык выключать все электроприборы, когда уезжаю на несколько дней. Однако, очень часто хочется узнать, всё ли в порядке дома: не сгорел ли, не рухнул ли, не ограбили ли. Увы, но мне не удалось найти на рынке полностью автономное устройство, способное наблюдать за помещением и отсылать фотографии хозяину.
Опыта работы с микроэлектроникой у меня не было, так что сперва пришлось изучить азы этой науки. Меня грела мысль о том, что я соберу уникальное устройство, которого ещё никто не делал. То, что получилось после пяти месяцев работы, я бы хотел предложить сегодня на ваш суд.
Принцип работы
Камера устроена достаточно просто. Большую часть времени она спит. Раз в час она просыпается, регистрируется в GSM сети, соединяется с POP3 сервером и проверяет, если ли новые письма. Если новые письма есть, то устройство включает камеру, сохраняет изображение в JPEG на SD-карточку, соединяется с SMTP сервером и отправляет изображение на заданный адрес. После этого – спать.
Конфигурация устройства находится в файле настроек на SD-карточке. В качестве сотового оператора мне пришлось использовать AT&T.
Процесс сборки
Первым шагом стал выбор компонентов. Я решил пойти по пути наименьшего сопротивления и остановился на следующих частях:
ATmega 328P с Arduino на борту. Для этого контролера есть очень много библиотек, примеров кода и т. п. Я решил работать с частотой 16Mhz.
LinkSprite JPEG Camera. Это очень простая в использовании камера: она сама делает снимок 640x480 и сжимает его в JPEG. Устройство поддерживает обычный последовательный протокол.
GSM-модем MTSMC-G2-IP. Этот GSM-модем подкупил меня встроенной поддержкой POP3 и SMTP. В остальном он не сильно отличается от конкурентов.
MicroSD карточка для хранения информации.
Всякая инфраструктурная мелочь: 74HC4052 чтобы управлять беседой с разными устройствами, несколько регуляторов напряжения и отличный выключатель TPS2020.
Самым сложным было сделать так, чтобы схема потребляла как можно меньше электричества во время сна. Питание каждого компонента управляется TPS2020. Таким образом, работает лишь ATmega. В результате моя схема потребляет 0.14mA во время сна. Это значит, что устройство сможет работать до месяца без смены батареек (я использовал батарейки типа CR123A в основном из-за их размера).
Теория разработана? Давайте соберём прототип. Во-первых, докажем себе, что всё работает, как мы ожидаем, а во-вторых, почувствуем себя кулхацкерами.
Выглядит отлично. Следующий этап – написать и отладить код. Программировать для ATmega 328P так же просто, как и для любого Arduino. Я настроил свой Eclipse для работы с этим чипом и программатором AVRISP mkII. Плагин AVR Eclipse Plugin пришелся очень кстати: билд проекта и его прошивка делались за пару щелчков мыши.
Код контроллера разрабатывался в течении двух-трёх месяцев.
Никогда не подумал бы, что 12Kb – это очень много памяти, а 16Mhz – это очень быстро.
Когда код был более или менее стабильным, а стол вполне завален прототипом, пришло время спаять всё вместе. Я решил использовать формат Arduino: уж больно просто найти дешевые компоненты. Вот что вышло:
Настала пора приступать к последней части – корпусу. Увы, но DIY-проекты не всегда имеют привлекательную оболочку. Поэтому я решил воспользоваться сервисом трёхмерной печати и сделать ровно то, что мне хочется.
Программы 3D моделирования мне не понравились. Как-то неестественно это – в в трёхмерном пространстве двухмерной мышкой водить. К счастью, я нашел OpenSCAD, бесплатную программу, где модели задаются на простом скриптовом языке. Например, сфера радиусом 5 это sphere (r=5). Красота.
Штангенциркуль, несколько недель моделирования, заказ на Ponoko.com и вот результат:
Модель была напечатана с удивительной точностью: детали сошлись без каких-либо доработок. Исходный код моделей можно найти на code.google.com.
Камера в сборе. Вот что получилось:
Вот видео, демонстрирующее работу камеры и качество снимков:
Заключение
Теперь я могу быть спокоен за дом: камера будет пристально следить за ним. Батарейки должно хватить где-то на месяц, если почту проверять раз в час.
Хочется надеяться, что этот пост покажет, что микроэлектроника – это не так сложно, как кажется на первый взгляд. Разобраться в ней мне помогли сперва «Make: Electronics» Чарльза Платта и, позже, «The Art of Electronics» Хоровица и Хилла. Ну и, конечно, бесчисленные онлайн-ресурсы и медитация на спеках.
Мне очень интересно ваше мнение: что было сделано правильно, что можно улучшить, что почитать и на что надо медитировать.
Свежие комментарии