
Чтобы наблюдать за ростом лайков, мы поставили онлайн-камеру, направленную на счетчик, и вынесли кнопку лайков в блог. Еще мне нравится разбираться с электроникой и управлять вещами через интернет.
Это первый опыт.
Как это сделано
Электроника для получения лайков уже была собрана и опробована в проекте Амперки, её достаточно только собрать. Оказалось, что это не так просто, когда я захотел вместо Искры сделать всё на Arduino Uno. Не получилось из-за разных принципов работы с UART (через него получает сигналы WiFi-модуль). Чтобы не писать программный UART, пришлось забить на Ардуино и использовать оригинальную Iskra Neo.
Модуль не может запрашивать количество лайков напрямую у страницы fb, так как не работает с HTTPS. Чтобы обойти ограничение на сервер вешается PHP-скрипт, который узнает количество лайков и выдается в виде переменной. А модуль уже обращается к адресу этого PHP-скрипта с помощью AT-команд (помните, раньше модему можно было сказать ATDP XXX, где XXX это телефонный номер, и он начинал по нему звонить? вот это они и есть)
Электроника была готовая, оставшиеся задачи я разделил на две части:
- Привод для счетчика
- Управляющая программа
Привод для счетчика
Было бы здорово сделать элегантное решение подключения счетчика с подачей тока на оригинальные катушки. Тогда можно было и оставить вращающийся диск, и по минимуму вмешиваться в конструкцию. Но это сложно реализовать, поэтому отложили до следующей версии. Сейчас в счетчике сервомотор постоянного вращения прикреплен напрямую к шестерням, вращающим счетчик.



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

Программе нужно знать, что именно показывает счетчик, а нам хотя бы иметь возможность вручную подкорректировать его. Чтобы узнать точное количество градусов на которое мотор повернул колесики, понадобится датчик типа датчика положения дроссельной заслонки на автомобиле, это сложно.
Поэтому в первой версии для контроля правильности показаний есть электронный дисплей рядом с счетчиком и две кнопки, которыми можно вручную подкорректировать счетчик если он куда-то не туда убежал. Полу-ручной режим, а что делать.
В программе предусмотрена переменная, которая хранит количество лайков на физическом счетчике. При выключении питания она сохраняется в EPROM и при включении оттуда же берется обратно.
Это нужно, чтобы при отключении от сети знали на сколько надо поправить счетчик.
А что в итоге?
Получился классный арт-объект. Прежде чем настроить камеру и повесить его на стену у себя в комнате, мы выложили его на обозрение в общей зоне коворкинга.
Он еще сильно далек от совершенства. Не хватает точности, сервомотор при включении питания иногда начинает крутиться сам по себе и отсутствует оригинальный вращающийся диск.
Доработаем в следующей версии.
Комментарии (17)
Barsuk
29.11.2018 18:24+2Диск надо было оставить, даже не функциональным. Дыра вместо диска выглядит отстойно.
bugdesigner
29.11.2018 20:08+1При дизлайках нужно в обратную сторону диск прокручивать. Тогда будет виден "баланс"
AlexanderG
30.11.2018 14:57Никому не интересный факт: на электровозах при рекуперации счетчик действительно мотает назад. И установлен второй, который считает только «экономию».
tormozedison
29.11.2018 23:01Микроконтроллер при выключении питается полсекунды от конденсатора и успевает записать текущее значение в EEPROM?
spc
30.11.2018 09:30+1По стилю изложения напомнило «авокадо мы заменили отварным картофелем, а креветки — поджаренным салом, но в целом ваш рецепт салата из авокадо с креветками нам очень понравился», простите )
batman12345
30.11.2018 10:49— Оригинальная конструкция, — сказал наконец один из них, — заря автомобилизма. Видите, Балаганов, что можно сделать из простой швейной машинки Зингера? Небольшое приспособление — и получилась прелестная колхозная сноповязалка.
evgenij_byvshev
Ожидал в конце статьи увидеть видео :(
Anton23
Не могу плюсануть комментарий выше, поэтому пишу +