Блог студии

Счетчик Фейсбук-лайков из старого электросчетчика

2018-11-27
Артем Петрович
счетчик лайков, дизайн, электроника, дизайн, дизайн-студия, блог студии, разработка

UPD 05/12/18: Похоже вышел из строя сервомотор, поэтому счетчик завис на 170 лайках. Будем разбираться.


Мы сделали физический счетчик лайков страницы студии в Facebook. Из старого электросчетчика. В основе программируемая плата Iskra Neo от Амперки (аналог Ардуино) и сервомотор постоянного вращения. Чтобы наблюдать за ростом лайков, мы поставили онлайн-камеру, направленную на счетчик, и вынесли сюда кнопку лайков (мы, конечно, хотим набрать лайков на страницу, но не только). Еще мне нравится разбираться с электроникой и управлять вещами через интернет. Это первый опыт.

В первой версии убран вращающийся диск. Позже вернем на место.

Как это сделано

Электроника для получения лайков уже была собрана и опробована в проекте Амперки, её достаточно только собрать. Оказалось, что это не так просто, если захотелось вместо Искры сделать всё на Arduino Uno. Не получилось из-за разных принципов работы с UART (через него получает сигналы WiFi-модуль). Чтобы не писать программный UART, пришлось забить на Ардуино и использовать оригинальную Iskra Neo.

Модуль не может запрашивать количество лайков напрямую у страницы fb, так как не работает с HTTPS. Чтобы обойти ограничение на сервер вешается PHP-скрипт, который узнает количество лайков и выдается в виде переменной. А модуль уже обращается к адресу этого PHP-скрипта с помощью AT-команд (помните, раньше модему можно было сказать ATDP XXX, где XXX это телефонный номер, и он начинал по нему звонить? вот это они и есть)

Электроника была готова, и оставшиеся задачи я разделил на две части:

  • Привод для счетчика
  • Управляющая программа

Привод для счетчика

Было бы здорово сделать элегантное решение подключения счетчика с подачей тока на оригинальные катушки. Тогда можно было и оставить вращающийся диск, и по минимуму вмешиваться в конструкцию. Но это сложно реализовать, поэтому отложили до следующей версии. Сейчас в счетчике сервомотор постоянного вращения прикреплен напрямую к шестерням, вращающим счетчик.

Управляющая программа

Сначала я посчитал на сколько миллисекунд нужно включать мотор, чтобы он поворачивал диск на один оборот. Получилось примерно 1650 мс. Тут же выяснилось, что эта цифра меняется от напряжения в сети (а оно почему-то иногда скачет), и от гуляния колесиков счетчика. Они были разработаны лет 50 назад и плюс-минус полцифры тогда роли не играли.

Прошивка платы.


Программе нужно знать, что именно показывает счетчик, а нам хотя бы иметь возможность вручную подкорректировать его. Чтобы узнать точное количество градусов на которое мотор повернул колесики, понадобится датчик типа датчика положения дроссельной заслонки на автомобиле, это сложно.

Поэтому в первой версии для контроля правильности показаний есть электронный дисплей рядом с счетчиком и две кнопки, которыми можно вручную подкорректировать счетчик если он куда-то не туда убежал. Полу-ручной режим, а что делать.

В программе предусмотрена переменная, которая хранит количество лайков на физическом счетчике. При выключении питания она сохраняется в EPROM и при включении оттуда же берется обратно.

Это нужно, чтобы при отключении от сети знали на сколько надо поправить счетчик.

А что в итоге?

Получился классный арт-объект. Прежде чем настроить камеру и повесить его на стену у себя в комнате, мы выложили его на обозрение в общей зоне коворкинга. Это добавило нашей странице пару десятков лайков :)

Он еще далек от совершенства. Не хватает точности, сервомотор при включении питания иногда начинает крутиться сам по себе и отсутствует оригинальный вращающийся диск.

Доработаем в следующей версии.

Вот управляющая программа, и необходимые библиотеки (TimeCheck, Bounce, QuadDisplay2).

Пока нет штатива, камеру прикрутили к тому что было под рукой. Оцените ширину угла обзора камеры.


Другие наши статьи

Ценность дизайна
2018-11-19
Артем Петрович
Как делать отличный дизайн мобильных приложений
2018-11-13
Автор: Ник Бабич, перевод Арсений Петрович
Идеальный брендбук
2018-11-06
Артем Петрович
Дизайн без правок
2018-10-29
Артем Петрович