Бинарные часы

Ddrown
Солнце 17 января 2016 г. 3:32 утра
Я создал двоичные часы*, используя красную таблетку STM32F103 и ST7735 1.8 "ЖК -дисплей

Видео: https: // www.YouTube.com/watch?V = QE03CFNGCJA
код: https: // github.com/ddrown/бинарная коробка

Я также хочу добавить:
- Поддержка часового пояса с автоматическим временем сэкономить на дневном свете
- либо клиент Wi -Fi, либо Ethernet NTP, чтобы установить время / исправить тактовую частоту
- Хороший случай

* «двоичный», как в бинарном кодированном десятичном значении - каждое поле разделено на два столбца: первая - это цифра TENS, а вторая - такая цифра. Видео начинается в 17 января 2016 г. 02:59:49

Rogerclark
Солнце 17 января 2016 г., 4:48
Спасибо за публикацию

КСТАТИ. Если это публичное видео, вы можете написать несколько заметок, включая какую плату и отображение вы используете, а также библиотеку, а также загрузили репо STM32 на GitHub.

Mrburnette
Солнце 17 января 2016 г. 16:32
DDROWN написал: <...>
Я также хочу добавить:
- Поддержка часового пояса с автоматическим временем сэкономить на дневном свете
- либо Wi -Fi, либо Ethernet Клиент NTP установить время / исправить частоту тактовой частоты
- Хороший случай

* «двоичный», как в бинарном кодированном десятичном значении - каждое поле разделено на два столбца: первая - это цифра TENS, а вторая - такая цифра. Видео начинается в 17 января 2016 г. 02:59:49

Ddrown
Солнце 17 января 2016 г. 18:58
Rogerclark написал:КСТАТИ. Если это публичное видео, вы можете написать несколько заметок, включая какую плату и отображение вы используете, а также библиотеку, а также загрузили репо STM32 на GitHub.

Mrburnette
Солнце 17 января 2016 г. 8:54 вечера
DDROWN написал: <...>
Кроме того, я бы хотел использовать GPS, чтобы установить время для этого проекта, но место, которое я имею в виду, имеет нулевой прием GPS. Спасибо за предложение!

Ddrown
Пн 18 января 2016 г., 16:22
Mrburnette написал: «Zero GPS» - это окончательное утверждение, например, 0. Или вы можете не получить блокировку GPS? Часто люди путают их. У меня здесь несколько часов GPS, один в подвале в моей лаборатории, рядом с центром структуры. Я не могу получить навигационный 3D -замк, но я получаю один или два из спутников наверху даже во время дождя и штормов. Мой код не требует 3D -блокировки, только серийный вывод $ rmc. Но, если вы действительно получите 0, то я не могу вам помочь с GPS : шок:

Луча

Стевех
Вт 19 января 2016 г. 12:45
Samsung S6 Phone.
GPS Essentials App. Отличное приложение для Android.

На нижнем этаже моего двухэтажного дома. Не рядом с окном. Без горов поблизости (небо окклюзия).
Плотная пригородная область.

Экран показывает
10 SAT Visible, 6, используемые в исправлении. Меняется, конечно, по мере изменения и условий SATS изменяются.

GPS -приемники работают с очень низкой силой сигнала, например, -120DBM из -за «усиления корреляции», которое происходит от использования сигналов спектра спреда с длинной длиной кода.

Ddrown
Вт 19 января 2016 г. 2:36 утра
Стевех написал:Samsung S6 Phone.
GPS Essentials App. Отличное приложение для Android.

На нижнем этаже моего двухэтажного дома. Не рядом с окном. Без горов поблизости (небо окклюзия).
Плотная пригородная область.

Экран показывает
10 SAT Visible, 6, используемые в исправлении. Меняется, конечно, по мере изменения и условий SATS изменяются.

GPS -приемники работают с очень низкой силой сигнала, например, -120DBM из -за «усиления корреляции», которое происходит от использования сигналов спектра спреда с длинной длиной кода.

Стевех
Вторник 19 января 2016 г. 2:54
Это маловероятно, что проблема, но на моем телефоне, если я перехожу в настройки и выключу «местоположения»,
Тогда мое приложение: GPS Essentials говорит «Нет исправления» и «Отключено сетевые местоположения», что означает, что оно не будет использовать GPS или Wi -Fi или сотовой связи для оценки.
Графика с спутниками в поле зрения по-прежнему показывает последний набор спутников, хотя я бы подумал, что они будут возражать.

Ddrown
Пт 22 января 2016 г., 4:31
Хорошо, теперь я пытаюсь решить между двумя разными дизайнами для этих часов, и я хотел бы услышать вклад людей в это.

Мой выбор:
1. Используйте модуль ESP8266 только для NTP и используйте STM32F103 в качестве RTC & ЖК -драйвер
2. Используйте ESP8266, чтобы сделать NTP&ЖК -дисплей, и не используйте RTC

У меня есть LCD -библиотека, работающая на ESP8266. По сравнению с STM32, между каждым переведенным байтом SPI больше простоя. Я предполагаю, что из -за прерываний, хотя эти тесты отключено все остальное. Но это все еще кажется достаточно быстро, чтобы выполнить работу.

Я запустил свое приложение на обеих платформах и сравнил, сколько времени потребовалось для каждого из трех обновлений экрана. Обновления экрана приложения: Полный экран RedRaw (AT *: 00 секунд), TENS&Столбец второго перерыва (AT *: *0 секунд) и только один столбец RedRaw (каждый раз).

ESP8266: полный экран ~ 300-400 мс, десятки&один ~ 52 мс, один ~ 30 мс
STM32: полный экран ~ 50-70 мс, десятки&один ~ 16 мс, один ~ 12 мс

Таким образом, вы можете видеть, что STM32 намного быстрее управляет ЖК -дисплеев, и время перекраски полноэкранного перерыва является проблемой на ESP8266.

Что бы вы сделали? Два микроконтроллера или один?

Rogerclark
Пт 22 января 2016 г. 10:27 утра
В этом случае,...

Я предположил, что, поскольку вам нужна функциональность Wi -Fi, и ESP8266 может сделать все это, то технически лучшее решение - просто использовать ESP8266 ..
Если скорость SPI не вызывает заметного влияния на дисплей.

Похоже, вам не нужно использовать RTC, так как ваша система будет иметь доступ к сети достаточно часто и постоянно питаться, поэтому она не должна сохранять время при удалении питания (основное использование RTC ИМХО)


КСТАТИ. Если вы используете SPI для ЖК -дисплее.E Software SPI не аппаратный SPI

Если у вас есть ESP-12E, он раскрывает контакты HW SPI, но я не обнаружил, что код Arduino для их использования (есть параллельный поток, в котором также обсуждается SPI на ESP8266, который Рэй опубликовал некоторую полезную информацию)

Ddrown
Пт 22 января 2016 г. 15:19
Rogerclark написал:В этом случае,...

Я предположил, что, поскольку вам нужна функциональность Wi -Fi, и ESP8266 может сделать все это, то технически лучшее решение - просто использовать ESP8266 ..
Если скорость SPI не вызывает заметного влияния на дисплей.

Похоже, вам не нужно использовать RTC, так как ваша система будет иметь доступ к сети достаточно часто и постоянно питаться, поэтому она не должна сохранять время при удалении питания (основное использование RTC ИМХО)


КСТАТИ. Если вы используете SPI для ЖК -дисплее.E Software SPI не аппаратный SPI

Если у вас есть ESP-12E, он раскрывает контакты HW SPI, но я не обнаружил, что код Arduino для их использования (есть параллельный поток, в котором также обсуждается SPI на ESP8266, который Рэй опубликовал некоторую полезную информацию)

Mrburnette
Пт 22 января 2016 г., 17:14
DDROWN написал: <...>
Я использую доску Nodemcu, у которой есть ESP-12E. Библиотека Arduino Spi от ESP8266 использует периферийное 4 HSPI: https: // github.com/esp8266/arduino/blob ... PI/SPI.CPP

Я проверил, что он может сделать 80 МГц, 40 МГц и 26.6 МГц SPI скорость на прицеле, так что это очень быстро, когда он выбивает кусочки. У него даже есть функция writebytes/writepattern, чтобы отправлять до 64 байтов за раз.

Ddrown
Сб 23 января 2016 г. 11:19
Mrburnette написал: Отличный! Как вы используете порт (для какого периферийного устройства?) Если для ILI9341, вы работали через какой -либо пример кода? Я спросил, потому что форум опубликовалСкоростная диаграмма с использованием тестового набора в прошлом году и было бы неплохо, если бы ESP8266 был добавлен.

Mrburnette
Сб 23 января 2016 г. 11:35
[QUOTE = "DDROWN"] [/QUOTE]

@ddrown,

Спасибо.

Ddrown
Пн, 01 февраля 2016 г. 1:52 утра
Хорошо, может быть, мне больше не следует обновлять здесь, так как это больше не проект STM32 :) Какое мнение каждого об этом?

Я добавил новую функцию в LCD -библиотеку (ADAFRIT_ST7735): Pixelarray. Это требует x/y, ширина/высота и указатель на данные о цвете пикселей. Он выпускает это SPI на экран. Я создал растровые карты в Flash в правильном цветовом формате. С этими вещами ESP8266 может транслировать растровые карты непосредственно от Flash в SPI без обработки. Это было огромное ускорение по сравнению с использованием комбинации DrawCircle/FillCircle:

До: Полный экран+Текст = 300-400 мс, десятки секунд = 52 мс, один секунды = 30 мс
After: Full Screen+Text = 72 мс, полный экран-текст = 11 мс, tens Seconds = 2 мс, один секунды = 1 мс

Примерно в 4 раза быстрее. Это также дает мне свободу определять другие растровые карты. Полноэкранная растровая карта будет ~ 40 кб, а мои растровые карты 16x16 пикселей - 512 байт. Таким образом, 1MB Flash может содержать много изображений.

Итак, я бросил некоторые праздничные иконы США. В этом видео он просто переключается между ними каждые 4 секунды, но обычно это будет только в день праздника.



Кроме того, я немного поработал над частями хронометража. Я создал функцию, чтобы настроить скорость часов, добавив/удалив миллисекунд. Я измерил дрейф часов моего устройства, а затем жестко закодировал эту скорость (динамическое обнаружение и регулировка скорости в моем списке дел). Он делал запрос NTP каждые 64 секунды за 24 часа и регистрировал смещения.

Первый запуск против локального NTP -сервера: Изображение

Второй запуск, против моего NTP -сервера в Интернете: Изображение

Высота фиолетового стержня является неопределенностью в каждом измерении (время, которое это переходило из запроса NTP до ответа). Голубая линия - моя приблизительная оценка скорости дрейфа часов. Каждый пробег был выполнен в разные ночи, поэтому разница в температуре, вероятно, заключается в том, почему они оказались с разными скоростями.

Еще много вещей, которые нужно было сделать!