Pull to refresh

Comments 12

А не проще ли взять nfc-ридер и на каждую грань наклеить по карте?

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

Интересная мысль. Приму во внимание. Спасибо.

Когда мне нужно было понять на что и сколько уходит времени я взял 10 билетиков от метро и какое-то бесплатное приложение на телефоне, которое добавляло строку в гуглдок мне. Но разве это спортивно?) Да и на статью не потянуло бы, а тут и интересно, и поучительно!))

А как справится код с проблемой, если додекаэдр будет лежать на не ровной поверхности, либо находится на движущемся объекте?

На счет неровной поверхности, если в рамках значения epsilon (погрешность используемая при сверке) то, это будет приемлемо и все будет работать.

Если речь идет о поезде, где ускорение пропадает через короткое время и объект движется со стабильной скоростью, то проблем не возникнет.

М. Гарднер "Крестики-нолики", гл.10 "Складывание многогранников" - рассказывается как складывать 5 правильных многогранников из одинаковых полосок бумаги. При некотором "скилле" можно обойтись и без клея.

NIH, очередная самостоятельная реализация, хотя возможно кому-нибудь действительно будет интересно.

Сдвигаем и добавляем последнее значение (dodecahedron_side):

лучше использовать кольцевой буфер

Превосходная статья! Спасибо за ваш труд! Не рассчитывали время автономной работы, если перевести на аккумулятор?

Рад, что труд был оценён вами.

Еще руки не дошли, но в планах. Как рассчитаю, дам вам знать.

Чингиз, вы молодец.

Тема тайм трекинга очень близка моему сердцу :) Я в свое время изучал рынок подобных девайсов и даже покупал TimeFlip первой версии (https://timeflip.io/). У него была какая-то аппаратная проблема, проявлялась в том, что он "забывал" про переворачивания, если ты не держал приложение на телефоне включенным. Я связывался с разработчиками, они мне даже выслали второй такой девайс, но без толку. Проблему они признали и, как я понимаю, починили во второй ревизии устройства, но покупать его я не стал. К тому же они бросили поддержку первой версии и мобильное приложение для него пропало из маркетов андройда и аппла. Это вообще было удручающе, остаться с неработающим устройством и без поддержки. Но с точки зрения железной начинки, устройство казалось очень крутым: Bluetooth low energy, питание от CR2032 которого должно было хватить на год, возможно RTC и точно была заявлена память на какие-то тысячи переворачиваний, без синхронизации с приложением + достаточно удобное приложение с продуманным UI. Разведено все на миниатюрной платкес каким-то микроконтроллером, маркировка которого в интернете так и не нашлась (возможно делали свой чип или перемаркировывали).

Потом я рассматривал варианты типа Zei (https://www.kickstarter.com/projects/timeular/zeio-the-most-simple-time-tracking-solution) но там цена какая-то заоблачная. Был еще такой опен сорс вариант на ардуине - https://learn.adafruit.com/time-tracking-cube Я даже хотел его повторить довернув пару своих функций, даже заказал акселерометр под это дело :)

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

Во первых я хочу open source и полную самодостаточность гаджета. Это прям мой личный фетиш. Я, [грубое матерное слово], досыта наелся vendor-lock-in, неработающими / отваливающимися / полусырыми сервисами, забрасываемыми мобильными приложениями.То есть мой идеальный time tracking device должен не просто трекать время в разных задачах, но и показывать это время без участия каких-либо сторонних устройств / сервисов. Поэтому в идеале у устройства дб собственный дисплей / индикатор. Опционально свой веб интерфейс (кивок в сторону NodeMCU ESP8266 / ESP32), откуда можно будет выгрузить CSV или посмотреть красивую статистику и аналитику.

Девайс должен обладать приличной автономностью (энергосбережение), удобной зарядкой (беспроводной или от встроенной солнечной батареи например) и сигнализировать об уровне низкого заряда встроенного аккумулятора.

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

Лично у меня нет острой необходимости трекать отдельные задачи, для меня хватит и разбивки на состояния более высокого уровня, типа "работаю над своими задачами", "помогаю коллегам", "кофе / обед / отвлекся / отдыхаю". Хорошо, если там будет Real Time Clock, чтобы кроме суммарного времени, сколько я провел в разных задачах, были еще и временные отрезки, но можно и без них. Учет переключений (context switching, который мы все так не любим) можно вести и в обычном int счётчике.

Так же, поигравшись с TimeFlip, я скажу что реализованная схема взаимодействия с девайсом путем его переворачивания на разные грани это безусловно прикольно, но совсем не must have. К тому же, у меня есть подозрение, что при таком взаимодействии с девайсом будет трудно использовать глубокий сон с просыпанием по прерыванию, если девайс тронули. Я еще не изучал подробно акселерометры, на тему можно ли с них получить подобное прерывание, но подозреваю, что может еще понадобиться и геркон. Вообще, физический интерфейс можно с успехом можно заменить куда более простой - N кнопкок + N светодиодов (или кнопки со встроенными светодиодами) + опциональный экран.

Устройство должно быть дешевым, компоненты стандартными и легкодоступными, чтобы любой желающий мог его повторить + можно было собрать с десяток и подарить друзьям. А если будет интерес, то и продавать готовые киты / собранные устройсва с минимальной маржой или вообще без нее. В конечном итоге если кому-то не зайдёт конкретно этот тайм трекинг девайс, устройство можно будет разобрать и использовать для других ардуино-поделок, у человека на руках будет и ардуино/esp, и аккум, и сонлечная батарея, и bms и куча другой рассыпухи - самое то для автономных проектов.

Увлекшись этой идеей, я поназаказывал себе разного ардуино-добра с Али, и за пару вечеров склепал свою поделку. Физический интерфейс, как и описал - несколько кнопок и соответствующее количество светодиодов. Взаимодействие с девайсом такое - нажал кнопку, замигал соответствующий led, значит работаешь над этой задачей - идет учет времени. Нажал другую - замигал другой. Комбинации одновременного нажатия разных кнопок дают дополнительные функции - сохранение текущей статистики и начало нового "дня", показ остатка батареи,показ статистики текущего дня (пока морганием, дисплеи и 7 сегментники еще едут :) ). Я полюбил ардуино за возможность быстро спрототипировать свою простую железку, которую так давно хотел. Сейчас изучаю тему беспребойного питания и зарядки, уже приехали пару BMS, едет buck-boost DC-DC converter и солнечная батарея. Если будет время, опубликую все детали в отдельном посте. Но в принципе в интернете и так ифы море.

Sign up to leave a comment.

Articles