GPS часы на Arduino

    image

    Здравствуйте, меня зовут Дмитрий, сегодня я расскажу как я создал GPS часы. В конце статьи будет ссылка на прошивку и CAD 3D модель.

    Итак захотелось мне сделать что нибудь на Arduino и при этом что нибудь полезное. И выбор мой пал на часы но не просто часы а часы с синхронизацией времени по GPS ну и будильником заодно.

    Описание конструкции


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

    1. Ardurino Uno центр всей системы — Цена 3.45$.
    2. GPS модуль VK2828U7G5LF — Цена 6.21$.
    3. CD4026BE драйверы для цифровых индикаторов 5 шт. Цена 2.20$.
    4. Разъемы под драйверы 16Pins. Купил их чтобы не повредить драйверы при пайке. Цена 0.51$.
    5. 7 сегментные цифровые индикаторы 1,8 дюйма с общим катодом на это нужно обратить внимание, индикаторами с общим анодом нельзя управлять при помощи CD4026BE. 4 шт. Цена 3.63$.
    6. Разъемы под цифровые индикаторы 5Pins 10 шт. Эти разъемы выпили у меня много крови дело в том что ноги цифровых индикаторов немного тоньше обычных штырьков которые в них вставляются, поэтому обязательно подогните концы ног у цифровых индикаторов в сторону. Цена 1.57$.
    7. Резисторы 220 Ом. Нужны для ограничения тока в цепи светодиодов 40 шт я по неопытности заказал на 2 Вт но конечно-же подойдут и на 0,5 Вт. Цена 2.22$.
    8. Резисторы на 12 кОм. Покупал я их как «подтягивающие» для кнопок но потом узнал что у Ardurino есть встроенный резистор который активируется в режиме PullUp. Но они мне пригодились когда надо было подогнать яркость 2 центральных светодиодов под яркость цифровых индикаторов. Спаяв 5 штук параллельно я получил 2,3 кОм. Так что они все таки пригодились 20 шт. Цена 0.68$.
    9. Динамик пищалка активный. Цена 0.82$.
    10. Светодиод красный 10 шт. Цена 1.25$.
    11. Шлейф из проводов dupont line 20 см. Я использовал его как источник проводков для соединения компонентов. Цена 1.13$.
    12. Энкодер нужен для выставления времени будильника и настройки. Энкодер я выбрал поскольку при помощи него процесс установки времени упрощается в сто раз. Почему энкодеры не применяются повсеместно в всех часах ума не приложу. Цена 0.98$.
    13. Ручка для энкодера. Стандартная ручка ужасна. Цена 1.31$.
    14. Кнопка со встроенным в неё светодиодом. Цена 0.87$.
    15. Датчик освещенности BH1750 (я выбрал тот который короткий). Естественно я захотел чтобы часы автоматически регулировали свою яркость. Цена 0.81$.
    16. Мосфет модуль 2 шт. Почему 2 штуки? Первый как вы понимаете я использую для управления яркостью циферблата, а второй я использую чтобы отключать GPS модуль, конечно у него есть спящий режим но в этом режиме он отключается не полностью, поэтому я устроил ему «спящий режим» при помощи мосфета. Стоит ли отключать GPS модуль? Да стоит при включенном GPS часы потребляют 120 миллиампер а при выключенном только 80. Почему модуль? Потому что мосфеты продаются только партиями по 10 шт а мне столько не надо. Цена 1.06$.
    17. Индуктивный сенсор CJMCU-0101. Цена 1.73$.
    18. Набор разъем гнездо 40Pin 5 шт. Нужен чтобы при помощи них подключать провода к плате. Вы спросите почему я не использовал эти разъемы для цифровых индикаторов? Потому что я с начало заказал те разъемы а потом понял что их мне будет недостаточно. Цена 1.56$.
    19. Акрил из него сделан корпус. Я взял 2 куска. Первый 200x200x4 мм Полупрозрачный из них я сделал переднюю и заднюю панели. Второй 200x200x3 мм полностью черный из него я сделал боковые панели. Панели между собой я склеил термоклеем. Цена 13.03$.
    20. Специальный нож крюк для резки акрила. Цена 2.01$
    21. Две монтажные двусторонние платы 9x15 см. Цена 4.18$.
    22. Силиконовые само-клюющиеся ножки 4 шт. Цена 0.88$.
    23. Шестигранные латунные стойки для плат М3X12 20 шт формата папа мама. И М3x20 10 шт формата мама мама. Цена 3.67$.
    24. Винты черные с головкой под внутренний шестигранник 20 шт. Цена 2.06$.
    25. Макетная плата и перемычки для неё. Она вам понадобится чтобы проверить работа-способность ваши компонентов перед их установкой. Цена 3.77$.

    Возможно вам понадобится блок питания как я уже сказал часы во время синхронизации потребляют 120 миллиампер когда GPS модуль отключен только 80 миллиампер но у меня он был.

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

    Итак в результате мы имеем 60,72$ или 4007 рублей по курсу на момент написания статьи. При этом если у вас нет паяльника мультиметра и других паяльных принадлежностей то вам придется отдать за них примерно столько-же.

    Принцип работы


    При включении часы показывают количество спутников которое видит GPS модуль. После того как синхронизация происходит часы начинают показывать время. При нажатии на энкодер можно устанавливать будильник. Кнопка включает и выключает будильник при этом она отображает включен-ли будильник.При срабатывание будильника если положить руку сверху на часы то можно перевести их в режим снуз (индикатор будильника будет при этом мигать).
    Если нажать на энкодер при зажатой кнопке включения будильника можно установить нужный часовой пояс (по умолчанию +3). Последующее нажатие на энкодер позволяет выставить задержку режима снуз у будильника.

    Ну и поскольку это GPS часы то у них есть «секретный» режим. Если их включить зажав кнопку включения будильника, часы перейдут в режим когда, они пересылают данные с GPS модуля через USB порт. При помощи программы u-center можно просматривать эти данные. Кроме того когда загорится индикатор работы будильника это будет означать что часы нашли координаты. После этого вращая энкодер можно увидеть сначала широту а потом долготу.

    Фотосесия


    image
    Вид сзади со снятым корпусом.

    image
    Задняя плата с другой стороны.

    image
    Плата с цифровыми индикаторами спереди.

    image
    Плата с цифровыми индикаторами сзади.

    Вывод


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

    Прошивка вместе с CAD 3D моделью.

    Данная модель сделана при помощи программного пакета Creo Parametric (бывший ProEnginer) для её просмотра вам понадобится либо сам Creo Parametric либо просмоторщик который называется Creo View Express его можно скачать с сайта ptc но вам придется у них зарегестрироваться.

    Обновление



    Конвертировал модель в формат PDF 3d теперь можно просмотреть модель через Acrobat Reader файл находится в папке CAD-3D-Model/01_clock.pdf.

    Обновление 2



    Добавил возможность узнать время последней сихронизации. Если в обычном режиме повернуть энкодер в право то можно сначала узнать время последней синхронизации а затем время будильника. Через 10 секунд отображение опять сбросится на время.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 97

      0

      А есть ли какой-то модуль для подключения к компьютеру? Хочу NTP сервер без интернета.

        0
        Ardurino сам легко подключается к компьютеру. Другое дело что вам придется разработать программу на компьютере которая будет передовать время Ardurino через последовательный порт.
          0
          вам придется разработать программу на компьютере

          вопрос, как я понял, о том, чтобы ардуина сама работала NTP-сервером.
          0

          Я почти уверен что должны существовать готовые решения без необходимости писать свои драйвера.

            +1
            Существуют GPS модули для подключения через serial или USB (c драйверами), есть также программы для установки времени использующие эти модули. Есть много проектов NTP серверов использующих Raspberry/Arduino/ESP8266/ЕSP32 (без интернета).
          0
          Есть модуль Ethernet. Собирайте Arduino + Ethernet Shield + GPS, пишите прошивку — и вот готов ваш собственный time-server. Не факт, что потянет по точности как stratum 1, но для большинства нужд хватит.
            0
            Есть вариант NTP часов на ESP8266 + TM1637.
              0
              Есть вариант на распбери. www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
                0
                Так это не интересно, готовый девайс жеж, макетку пихнуть некуда кучу проводов то-же, на борту линух который это умеет считай из каробки :)
                  0
                  За то работает

                  ^ на скрине тест сигнала PPS. Цифра показывает чему было равно системное время в тот момент когда был получен сигнал PPS. Для бытовой точности как по мне весьма недурственный результат. Гораздо лучше чем я бы смог получить с какого то сервера из интернета.
                0
                Если к компьютеру, то Ардуино не нужен. Достаточно копеечного GPS модуля на USB подключенного напрямую.
                Есть опыт сборки и эксплуатации таких серверов, и там ничего сложного нет.
                  0
                  А зачем модули городить? Берём почти любой GPS приёмник для компа (RS232/USB). Ставим ntpd, ставим gpsd. В конфиге gpsd прописываем порт и тип GPS приёмника. В конфиге ntpd прописываем то, что время тянуть локально с gpsd. Готово, у вас свой автономный NTP сервер. Как это на виндах сделать — увы не знаю, мне такое нужно не было.
                    0
                    И… держим постоянно включенным комп?
                      0
                      >А есть ли какой-то модуль для подключения к компьютеру? Хочу NTP сервер без интернета.
                      А зачем подключаемый модуль для выключенного ПК?
                        0
                        Тогда и NTP не нужен, если время нужно для одного ПК. Точное время многим потребителям нужно — ноутбуки, роутер, планшеты, телевизор…
                        Для единственного ПК который перманентно в оффлайне, проще синхронизироваться вручную по сигналам точного времени раз в месяц.
                          +1
                          Точное время многим потребителям нужно — ноутбуки, роутер, планшеты, телевизор


                          Зачем им точное время от специальных часов? Пока вся эта техника работает оффлайново — точности их внутренних часов на их срок службы больше чем достаточно. Если они умеют в интернет — там есть NTP.
                            0
                            Я давал ответ на тот комментарий. В нём упоминался модуль для компьютера. В условии не стояло десятка девайсов.
                    +1
                    Столько проводочков паять! А если один отпаяется — найти неисправность будет очень сложно. Неужели не проще ЛУТом плату развести, заодно убрав туда линейники и прочие детальки.

                    Сколько спутников ловится в помещении? Обычно у GPS с этим туго.
                    Ловятся ли одновременно GPS и GLONASS?
                    Чем на пол статьи перечислять перечень элементов, лучше бы схему. Как говориться, лучше один раз услышать.

                    В проекте на GITHUB скетч поместите в отдельный каталог, а то будет он цеплять всякие README.md и пр.
                    Зачем там 3Д модель? Если бы корпус на принтере печатался.
                      0
                      Качество приема напрямую зависит от расположения часов. Если они стоят на окне то спутники находятся секунд за десять. Если часы как у меня стоят далеко от окна то могут минуты три обновляться. Правда для часов это не критично. Спутники у меня ловятся только GPS возможно это зависит от настроек модуля, я их не менял какие были такие и оставил.

                      3D модель нужна чтобы понять поместиться всё внутрь. Представ те вы сделали корпус стали вставлять внутрь компоненты и поняли что они немного не влезают. Или например прорезали отверстия для портов а они оказались немного выше или ниже. Вы же не будете прорезать отверстия в уже готовом корпусе.

                      А по поводу проводчиков а мультиметр на что.
                        0
                        По поводу цепляния файлов. Я конечно делал проект в VS но я сейчас проверил в IDE от arduino все нормально ничего лишнего не цепляется.
                          0
                          GPS не требует фиксации для определения времени, достаточно всего 1 спутника, даже отраженного сигнала, чтобы приемник начал выдавать корректное время.
                            +1
                            Только есть проблема понять, корректное ли оно.

                            Хотя если есть достоверное знание, что фиксация уже была ранее и с её момента прошло T±t секунд, то можно смотреть на попадание разности времени с GPS и внутренних часов в интервал ±t.

                            А вот после перезагразки системы таки придётся ждать фиксации.
                              0
                              Корректность времени проверить легко — если год в дате вменяемый — значит время ±20 секунд корректное. Идеально — если принята коррекция Leap Second, но оно не особо нужно в часах без отображения секунд.
                                +1
                                Для устройства, которое неизвестно сколько пролежало на полке в выключенном виде (может полчаса, а может пять лет), вменяемый год — это какой?..
                                  0
                                  На сколько я помню, при старте он выдает 2034 год, или около того.
                                  Более того, при холодном старте отсчет времени у G7020 начинается с 23:59:44, где 44 потому, что вшитый Leap Second равен 16. Как только время и дата резко перескочат — приемник получил точное время (кроме Leap Second) и можно его использовать. Фиксация координат, кстати, не означает получения коррекции Leap Second и время в этот момент может оставаться неточным даже при корректных координатах.
                                    0
                                    Модуль который я использую не выдает ни какого времени пока не подключится к спутнику. Так что просто ждете когда он выдаст время и это и будет правильное время.
                                      0
                                      Ну так надо включить в настройках вывод времени и даты даже без фиксации. И ещё можно включить предложение PUBX,04, которое выдает и время, и дату, и Leap Second.
                                +1
                                От схемы, приемника и нужной точности зависит. Если у приемника есть батарейное питание, то обычно есть и часы в CMOS. Уход у них — как у часов персоналки, 1-2 секунды в сутки. Как пример - GEOS-5M.

                                Если приемник пишет старые координаты во flash, то по одному спутнику мы получим время с точностью (СКО) метров 15, то есть 50нс. Разумеется, если приемник не перемещался. Пример — тот же GEOS-5М.

                                Про GPS и ему подобные (GALILEO, QZSS) лучше забудьте, без детального разбора протокола сложно понять, принял ли приемник leap second (сейчас это смещение на 18 секунд). Намного лучше ГЛОНАСС, где leap second просто нет (зато в минуте иногда 61 секунда), зато практически напрямую передается год. И суперкадр ЭФИ короче в 5 раз (2.5 минуты вместо 12.5 у GPS).

                                Даже если приемник не хранит ваши координаты, по одному спутнику ошибка будет до 70 мс (время полета сигнала). То есть для часов — незначащая.

                                Мораль — оставить прием только по ГЛОНАСС и можно верить первому же полученному времени. Да и дате тоже, у ГЛОНАСС-М биты с номером четырехлетия (N4) в соседних строках с битами номера дня в четырехлетии (NT), принимаются вместе, в одном 30секундном кадре.

                                P.S. Это так, ворчание насчет «инженерного» подхода. Выдумали проблему на почти пустом месте.
                              0
                              Да тут проводочки то цветные, поэтому схема как на ладони.
                              Одноцветный МГТФ — наше все!
                              image
                              image
                                +1
                                «Pentagon»
                                Pentagon

                                А «Специалист» и вовсе одножильным лакированным самозалуживающимся проводом паяли.
                                  0
                                  Вот блин, хотел «Нравится» нажать, а рука дрогнула — и все :(
                                  И исправить — не дает.
                                    +1
                                    Вот! Не зря раньше мышек и прочих тачскринов не было :)
                                    Подозреваю, многим знакома попытка ответить на важный звонок мыльными руками.
                                  0
                                  Arduino здорового человека ;)
                                +4

                                Запятых не хватает по всему тексту.

                                  –2

                                  deema35, так обиделся, что даже мне в профиль заглянул?

                                    +1
                                    Нет я ничего не делал.
                                  +3
                                  Первый как вы понимаете я использую для управления яркостью циферблата, а второй я использую чтобы отключать GPS модуль, конечно у него есть спящий режим но в этом режиме он отключается не полностью, поэтому я устроил ему «спящий режим» при помощи мосфета. Стоит ли отключать GPS модуль? Да стоит при включенном GPS часы потребляют 120 миллиампер а при выключенном только 80


                                  Опять двадцать пять, вас там под копирку что ли размножают?..

                                  $PMTK225,4 — и модуль в перманентном backup mode с потреблением меньше 10 мкА, пока ему ногу FORCE_ON не дёрнут.

                                  Ещё лучше — $PMTK225,1,3000,30000,30000,1800000 — и GPS сам просыпается каждые полчаса, чтобы уточнить координаты и время.
                                    0
                                    Более того, часы с питанием от сети… какая экономия энергии?
                                      +3
                                      Нет, ну я могу понять желание не тратить лишние милливатты, если их можно не тратить.

                                      Но редкий ардуинщик долетит до середины даташита на GPS, хоть он даже на русском у «Навиа» уже есть давно.
                                      +6
                                      А я всё ждал когда же бомбанёт у тебя, уже тегнуть хотел :D
                                        0
                                        Не, там нет таких команд — приемник там G7020 от UBlox :)
                                          0
                                          Есть другие команды для энергосбережения. Изучаем документацию глава 11 «Power Management».
                                          0
                                          Зачем каждые полчаса? Цель какая? Если у нас часовой кварц, то это уход на 1-2 секунды в сутки, то есть раз в 6 часов достаточно для полусекундной точности. Если у нас кварц похуже, то уход может быть на уровне 10PPM, то есть на секунду раз в 3 часа. Даже в этих условиях раз в полтора часа хватит.

                                          А зачем вам раз в полчаса — в упор не понимаю.

                                          P.S. А что чипсет и протокол перепутали — это детали.
                                          +1
                                          Я бы сделал несколько иначе. Во-первых, управление одной кнопкой — это зло, добавить ещё кнопок сверху для функций. Корпус ведь позволяет, а удобство настройки повышает многократно.
                                          Во вторых, вам повезло что внутри помещения GPS хоть как-то да работает, не везде такое прокатит. Поэтому… делается система первичные-вторичные часы, датчик с GPS висит возле окна и передаёт в эфир широковещательно при помощи nrf24l01 данные по времени ежеминутно. Остальные часы принимают, повинуются и отображают. Преимущество: GPS один а часов много, причем в них можно отказаться от кварцевой стабилизации частоты, брать голый контроллер и пускать его без кварца на внутреннем генераторе.
                                          В третьих. GPS модуль зачем отключать? Часы работают от батареек? Экономия того не стоит… при включении модуль перейдёт в режим холодного запуска, будет заново искать спутники потребляя повышенный ток — экономия не стоит таких неудобств, даже если это просто работает.
                                          Использовать драйверы CD4026BE… ну то такое, на любителя. Лучше использовать stp16cp05, там сразу светодиодные драйверы и сразу отпадает необходимость в токоограничительных резисторах, управление яркостью всего индикатора по одному входу(туда можно вообще напрямую фоторезистор подключить и будет работать аппаратно)… но это лишь регистры, поэтому переводить двоичный код цифры в сегменты надо будет в коде а это пара дополнительных строчек и огромный + в опыт.
                                            0
                                            Во внешнем модуле заодно ставится BME280 или SHT21 — и готова метеостанция. При этом с GPS с просыпанием раз в пару часов (NB: auto periodic mode — до 35 минут, так что надо руками будить) оно даже на батарейках какое-то разумное время проживёт.

                                            Ну или вообще без всякого GPS — DCF77 какой-нибудь ловить, если территориальное расположение позволяет.
                                              +1
                                              DCF77 слишком капризен вне Германии. Уже на расстоянии до Москвы его можно принять только ночью с прохождением и при отсутствии индустриальных помех. Или городить узкополосные фильтры на эту частоту, буквально с шириной полосы в 5...10Гц. Ага, и обеспечить стабильность параметров. При этом локальные часы должны держать темп автономно по меньшей мере сутки, а если им добавить элементарный ЦКХ то можно обойтись уже и без GPS.
                                                0
                                                У меня внешний модуль Oregon Scientific для BAR800 принимал вполне неплохо — правда, девятый этаж, окна на запад. Но там и антеннка в нём невыдающаяся по чувствительности.
                                                  0
                                                  А если «экономную» лампочку включить в комнате с приемником? И соседи пусть включат…
                                                  В нём магнитная антенна?
                                                    0
                                                    Приёмник на улице, это внешний блок метеостанции.
                                                      0
                                                      Так не важно где он, лампочка для него фонит одинаково. У меня одна лампочка закрывает часть диапазона КВ в пределах квартиры… на длинных волнах проверить просто нечем из подручного.
                                                        0
                                                        Я встречал лампочки, которые глушат близко расположенный приёмопередатчик на 433 МГц, но а) это были единичные марки и б) от лампочки до приёмопередатчика было сантиметров в пределах двадцати.

                                                        DCF77 же совершенно стабильно принимался. Я вообще за него нежно любил BAR800 (а вот за то, что все три сдохли из-за врождённой болезни — отказа ЖК — не любил).
                                                +1
                                                Ну или вообще без всякого GPS — DCF77 какой-нибудь ловить, если территориальное расположение позволяет.

                                                Имхо. GPS универсальнее чем DCF77. Возможно если бы мы жили в германии, то да, DCF77 круто. Но на большей части территории России DCF77 ловится чуть менее чем ни как. А там где ловится очень много чего зависит от состояния атмосферы (будет проходить сигнал или нет), расположения приемника, наличия источников помех поблизости, погоды на марсе и т. д. И как бы да, вроде бы одной успешной синхронизации скажем в неделю достаточно чтобы часы показывали точное время (даже на дерьмовом кварце часы без синхронизации за неделю не так сильно уйдут чтобы это создало бы проблему). С дрогой стороны есть GPS который стабильно раз в секунду дает точное значение времени плюс PPS сигнал.
                                                  0
                                                  Пробовал найти DCF77 модуль за вменяемые деньги — не нашел.
                                                  0

                                                  Если это часы для дома, и в доме уже есть интернет, то NTP-часы на esp8266 это то что нужно.

                                                    0
                                                    управление одной кнопкой — это зло
                                                    А морзянка на что?

                                                    Автору спасибо за тёплые светодиодные часы и статью.
                                                      0
                                                      тёплые светодиодные часы


                                                      Тёплый сведодиод идёт на смену тёплой лампе!
                                                      0
                                                      Поэтому… делается система первичные-вторичные часы, датчик с GPS висит возле окна и передаёт в эфир широковещательно при помощи nrf24l01 данные по времени ежеминутно.


                                                      По мойму все очень громоздка. Хочется ведь чтобы все было в удобном маленьком корпусе.

                                                      Я написал про потребление оно подскакивает на 50%. И у меня например синхронизация происходит раз в сутки. Так что я считаю экономия должна быть.
                                                        +1
                                                        Это экономия на спичках. У вас потребление подскакивает раз в сутки, а то что они жрут 80мА круглосуточно, это ничего… не там экономите!
                                                        nrf24l01 это платка 1x2см и самое габаритное там это выводы… GPS модуль и тот больше, не говоря об ардуине. Туда кстати можно вариант NANO без USB-интерфейса.
                                                      0
                                                      Хм… GPS модуль есть, а в чем проблема часовой пояс по умолчанию не +3 делать, а по координатам определять?
                                                        0
                                                        А что по координатам определить? Зоны часовые имеют сложную конфигурацию, в контроллере надо держать все эти полигоны… а где их взять(координаты точек полигонов)? что делать на границах полигонов?
                                                          0
                                                          Также нужно помнить о постоянных изменениях в законодательстве. Зимнее время то отменяют то оно снова возвращается.
                                                            0
                                                            А как же! Обновления прошивки и т.п.
                                                            0
                                                            Ну да. Полигоны с непонятно какой точностью. Думаю, точность будет ограничена размером памяти. Где координаты взять — вопрос интересный. Если озаботиться, думаю, проблем не будет. Это же границы стран-областей.
                                                            В любом случае будет нужна ручная корректировка, а результата никто не заметит — у тебя просто с самого начала правильное время. Да. Продуманный GUI он такой. Его не видно :-)
                                                            +1
                                                            Имхо. Излишний функционал для дома. Для этого тебе нужно будет в память устройства занести карту часовых поясов. При этом это должна быть именно карта, а не просто если долгота больше 50 и меньше 60 то часовой пояс такой то, это так не работает.

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

                                                            А теперь вопрос, зачем нужен этот функционал для часов которые в течении всего срока службы скорее всего даже не покинут пределы квартиры? Не проще ли один раз при запуске ввести поправку и навсегда об этом забыть?
                                                              +1
                                                              Поправку все равно надо допускать. Неоднозначности возможны в любом случае.

                                                              И да. Это штука, которая работает один раз — при первом запуске. В разработке стоит дорого, эффекта не много. Ну, в общем, для единичного экземпляра смысла нет, но если хочется сделать устройство уровня яблочной компании, то стоит задуматься :-)
                                                                0
                                                                Гаджет полезный, но уровень яблочной сейчас — это умный дом, в котором информация следует за человеком, предугадывающий запросы обитателей.
                                                                  0
                                                                  Согласен на 100%!

                                                                  Именно поэтому, если делать часы, то они не должны спрашивать про часовой пояс. Они должны его предугадать. :-)
                                                                    0
                                                                    Заодно, кстати, при разработке можно математику подтянуть и геометрию. Хотел бы посмотреть код попадания точки в замкнутый произвольный многоугольник, запасся попкорном. Учитывая что в этих поясах есть анклавы…
                                                                      0
                                                                      Хотел бы посмотреть код попадания точки в замкнутый произвольный многоугольник


                                                                      Ну это довольно простая задача. Берем точку заведомо внутри (можно ее задавать вместе с многоугольником) и ищем пересечения отрезка от нашей точки до той, что «заведомо внутри» со всеми сторонами многоугольника. Если число пересечений 0 или четное — мы внутри. Если нечетное — снаружи. Анклавы при этом учитываются как отдельные области.
                                                                        0
                                                                        Выглядит как-то сомнительно. Точку ещё брать, пересечение со сторонами… разбить на треугольники и искать попадание интересующей точки в них. Нашли хотябы один — можно заканчивать перебор досрочно.
                                                                          0
                                                                          Выглядит как-то сомнительно. Точку ещё брать, пересечение со сторонами… разбить на треугольники и искать попадание интересующей точки в них. Нашли хотябы один — можно заканчивать перебор досрочно.


                                                                          Треугольники не учитывают аклавы. Кроме того, треугольники хорошо работают с выпуклыми многоугольниками и гораздо хуже в впуклыми. Ну и последнее — как определять попадание точки внутрь треугольника?
                                                                            0
                                                                            Как раз в случае треугольников не надо беспокоится об анклавах — надо только правильно описать многоугольник разделив его на треугольники, а для треугольника форма только одна и попадание более определённое. Конкретные алгоритмы можно уже найти в интернете, или посидеть немного в математике.
                                                                          0
                                                                          Ну это довольно простая задача.


                                                                          На ардуине? ;)
                                                                            0
                                                                            Ну а какие проблемы? Для анализа одного отрезка надо всего лишь решить уравнение — одно деление и штук 5 умножений/сложений и 4 сравнения максимум.
                                                                              0
                                                                              Да никаких, памяти просто мало. А карту координат вершин многоугольников надо где-то хранить.
                                                                                0
                                                                                Это от точности зависит. Если как-то грубо, то не особо много и нужно :-)
                                                                                  +1
                                                                                  Если грубо — можно резать глобус по параллелям и не морочить голову ;). Кому повезло — система угадает таймзону правильно. Кому не повезло — зададут вручную.
                                                              0
                                                              Интересный GPS модуль вы взяли. У меня опыт только с NEO-6 имеется. В принципе неплохой. Как с качеством приема у вашего? Он значительно дешевле, а я люблю дешевое )
                                                                0
                                                                А можно было просто взять самый дешёвый смартфон с жпс на борту, где уже всё есть. Найти подходящую софтину с отображением большего циферблата и всё. Или вообще планшет.
                                                                  0
                                                                  Ну это-же очень скучно.
                                                                    +1
                                                                    Ну это-же очень скучно.

                                                                    В современных часах самое интересное это корпус. Нескучные часы без лютого оверинжениринга сложно придумать.
                                                                    +1
                                                                    И лицезреть тонны рекламы, выгоревший дисплей через пол года и вспухший аккумулятор…
                                                                      0
                                                                      Ну если так хочется, то ПО для отрисовки часов можно написать своё и без рекламы.
                                                                        0
                                                                        Многие вон не осиливают даташит на транзистор прочитать а-то они будут в разработку под мобильные ОС чот вникать :)
                                                                          0
                                                                          Красивые точные часы из старого смартфона
                                                                          habr.com/ru/post/443052
                                                                      +1
                                                                      deema35, схему электрическую другие любители DIY для повторения должны разбирать по фотографиям с цветными проводками?
                                                                        0
                                                                        А как же получение навыков по реверс-инженерингу? В конце концов, там стандартные шилды, подключение стандартное а к каким выводам(там где есть выбор) подсмотреть можно в коде программы или назначить более удобные свои.
                                                                          0
                                                                          Электрическая схема в подобных устройствах просто будет показывать куда какая нога arduino подключена. Но эту информацию можно узнать и из прошивки. Смотрите файл define.h на гитхабе.
                                                                          0
                                                                          Опередили. Можно опубликовать статью «Реверс-инжиниринг GPS часов на Arduino»
                                                                            0
                                                                            Alexeyslav и drWhy, вы знаете толк в извращениях;)
                                                                          +2
                                                                          Парни. :) Человек сделал для себя ИГРУШКУ. Как хотел. Не надо ему рассказывать, как ее лучше было сделать с оптимальной точки зрения, не превращайте игрушку в работу.
                                                                            0
                                                                            Если он её сделал для себя, то зачем он нам рассказывает все эти душещипательные подробности про стоимость электронных компонентов на алиэкспрессе? Он предполагает, что нам это будет интересно?
                                                                              0
                                                                              Он предполагает, что нам это будет интересно?


                                                                              Вы обратили внимание — значит вам интересно ;)
                                                                              Считайте это экономической частью пояснительной записки к проекту :D
                                                                                0
                                                                                Считайте это экономической частью пояснительной записки к проекту :D


                                                                                Я стартаперов, выходящих с очередного их конкурса радостными «такой-то сказал, что у нас всё отлично и пожелал не останавливаться!», всегда спрашиваю — «а денег при этом дал?».
                                                                                0
                                                                                Вам или мне — не будет. Кому-то другому — вполне может быть. :)

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

                                                                            Самое читаемое