Например TDA7294

Форум РадиоКот :: Просмотр темы - Часы на TFT
Форум РадиоКот
https://radiokot.ru/forum/

Часы на TFT
https://radiokot.ru/forum/viewtopic.php?f=3&t=160228
Страница 1 из 111

Автор:  GoldenAndy [ Пн янв 21, 2019 10:17:04 ]
Заголовок сообщения:  Часы на TFT

Приветствую коллег!

Интерес к часам на ГРИ и ВЛИ стабильный.
Много часов делается на 7-сегментных индикаторах и просто на массивах светодиодов...

А будет ли интересна сообществу тема часов настольных на TFT-дисплейчике ?

Если да, то вот:
Изображение Изображение

Часы сделаны для Очень Ленивого Кота, которому влом взяться за мышку и тыкнуть в правом нижнем углу рабочего стола по часам, что бы увидеть календарь.
И вообще - Коту положено мышек кушать, а не тыкать ейным носов во всякие мониторные углы.

Поскольку у Кота лапки - никаких кнопок не предусмотрено, исключительно нажатия на экран.

Часы сделаны на базе китайского дисплея с тачем - 320*240 2.4"
Изображение

Командует парадом ATMEGA 32A, точный подсчет времени ведет DS3231, а обеспечивает всю эту кухню правильным сбалансированным (рекомендуемым лучшими котоводами) питанием AMS1117-3.3.

Что умеют часы:
  • Показывать время и календарь на месяц
  • Листать календарь помесячно вперед/назад
  • Мяукать каждый час (с 7 до 22)
  • Промяукивать с разной громкостью три мелодии в 5 будильниках
    (Будильники при этом настраиваются либо на один раз, либо на нужные дни недели (мультивыбор))
  • Показывать время/календарь разными цветами - несколько предустановленных палитр - можно выбрать, либо включить рандомное переключение...
  • Отображать информацию на трех разных языках - Рус/Укр/Eng
  • Автоматически переходить на летнее и возвращаться на зимнее время (отключаемая функция)


Под спойлером - схема и рисунок ПП
СпойлерИзображение Изображение Изображение Изображение


Ну и немножко фоток
СпойлерИзображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение


В принципе, это были часы - проба пера - справится ли мега с таким дисплеем и хватит ли ресурсов для шрифтов и графики.
Хватило. Но под завязку.
В принципе, в мечтах сделать на немного большей диагонали и добавить туда ФМ-приемник.
Но это уже либо расти вширь и брать Мегу 64/128, либо расти ввысь и пробовать применить СТМ32....

Автор:  kollaider [ Пн янв 21, 2019 10:29:18 ]
Заголовок сообщения:  Re: Часы на TFT?

Изобретаем фоторамку?

Автор:  GoldenAndy [ Пн янв 21, 2019 10:57:26 ]
Заголовок сообщения:  Re: Часы на TFT?

Изобретаем фоторамку?

Почти :)

Ленивому коту облом мышкой тыкать по часам на рабочем столе, что бы увидеть календарик.....
Вот кот себе и мутит часы с календариком на тфт с тачем....

Автор:  roman.com [ Пн янв 21, 2019 15:56:29 ]
Заголовок сообщения:  Re: Часы на TFT?

Часы с подключением к Интернет? C автоматической коррекцией времени? С будильником? С таймером кофеварки? )) C прогрозом погоды на сегодня/завтра? )) ... С календарём? Часы знают когда вставать на работу? Часы играют музыку по утрам? Интернет радио... или MP3 плеер... или (на худой конец) простенький FM приёмничек... Тогда имеет смысл делать.

А если это очередные простенькие часики... без ничего (даже без "кукушки")... просто для красоты... то нет никакого смысла вообще заморачиваться))

Автор:  GoldenAndy [ Пн янв 21, 2019 16:30:40 ]
Заголовок сообщения:  Re: Часы на TFT?

Часы с подключением к Интернет? C автоматической коррекцией времени? С будильником? С таймером кофеварки? )) C прогрозом погоды на сегодня/завтра? )) ... С календарём? Часы знают когда вставать на работу? Часы играют музыку по утрам? Интернет радио... или MP3 плеер... или (на худой конец) простенький FM приёмничек... Тогда имеет смысл делать.

А если это очередные простенькие часики... без ничего (даже без "кукушки")... просто для красоты... то нет никакого смысла вообще заморачиваться))


Что на данный момент есть:
Отображение времени и календаря на текущий месяц.
Листание календаря помесячно вперед-назад.
Ежечасный биип.
5 будильников (3 мелодии, 7 уровней громкости).
Отключаемый автоперевод времени зима/лето.
3 языка (Укр/Рус/Eng).
Управление с тачскрина.

Пока функционал уперся в ресурсы АТМеги32.
Есть мысли допилить либо на 64/128 меге, либо переползти на СТМ32 (заодно и скорость отрисовки дисплея повысится), тогда можно добавить ФМ-приемник и другие плюшки.

Соответственно, вопрос - нужно ли это поделие сюда выкладывать .?... Я в прошлом году Коту статью отправил - но Кот, похоже, ушел на зимние каникулы.

Автор:  roman.com [ Пн янв 21, 2019 17:14:22 ]
Заголовок сообщения:  Re: Часы на TFT?

128 меги хватит с головой))
скорость отрисовки дисплея ? Для часиков? )) Бегущей строки достаточно, с головой)) Или будем видео смотреть с ютуба? ))
я бы напихал кучу плюшек и сделал бы отдельной статьёй. А то тут (на форуме) всё теряется))

Автор:  GoldenAndy [ Пн янв 21, 2019 18:33:47 ]
Заголовок сообщения:  Re: Часы на TFT

Обновил шапку, добавил описание, фотки

Автор:  roman.com [ Пн янв 21, 2019 23:31:44 ]
Заголовок сообщения:  Re: Часы на TFT

Лучше сделай нам экранчик для пульта... а то у нас маленький экранчик)) - https://radiokot.ru/forum/viewtopic.php?f=28&t=159826

Автор:  GoldenAndy [ Пн янв 21, 2019 23:46:17 ]
Заголовок сообщения:  Re: Часы на TFT

Лучше сделай нам экранчик для пульта... а то у нас маленький экранчик)) - https://radiokot.ru/forum/viewtopic.php?f=28&t=159826


Это какой такой экранчик ?

Кто мешает просто поставить больший экран ?
По сути только "драйвер" экрана переписать...
Если будет другое разрешение - описать новые координаты ?

ЗЫ. 128 мега на кораблик лепилась только из-за 6 каналов ШИМ ?

Автор:  roman.com [ Пн янв 21, 2019 23:58:04 ]
Заголовок сообщения:  Re: Часы на TFT

goldenandy писал(а):
Это какой такой экранчик ?

побольше))
goldenandy писал(а):
Кто мешает просто поставить больший экран ?

время)) делать всё одновременно не успеваем... ))
goldenandy писал(а):
128 мега на кораблик лепилась только из-за 6 каналов ШИМ

Нет. Больше памяти... Связь (Wi-Fi, интертет режим сервер), GPS навигатор, приложение для андроид...)) и т.д. и т.п.

Автор:  GoldenAndy [ Вт янв 22, 2019 00:21:41 ]
Заголовок сообщения:  Re: Часы на TFT

Еще раз.
У вас проект достаточно большой и сложный, вы замахнулись на универсальность и вагон функционала.
Для такого проекта у вас структура программы достаточно хорошо должна быть продумана и разделена на модули.
Один из признаков хорошего тона в программировании МК - это отделение логики от железа. Так называемый HAL - Hardware abstraction layer.
На этом уровне описываются все железные манипуляции с привязкой к портам.
В случае дисплея наружу, в основную программу, торчит 1 функция - displaySendByte().
Она только отправляет в него байт/слово. Всё.
Далее - отдельный блок - работа с дисплеем. Там уже выписаны более высокоуровневые процедуры, характерные для примененного дисплея - инициализация, вывод пикселя и т.д.
Далее, третий модуль - графика верхнего уровня. Там уже в виде блока дефайнов надо задать местоположение каждого элемента на дисплее, его размеры....
Там же - текстовые ресурсы и растры....
И наружу из модуля торчат только совсем общие функции - drawSignalLevel, showBatteryAlert, drawStickPosition.....

Тем самым замена дисплея на другой требует переписывания процедуры отправки данных в HAL и, если дисплей другой по цвету/разрешению - коррекцию в дефайнах положения графических примитивов.

Автор:  roman.com [ Вт янв 22, 2019 10:44:49 ]
Заголовок сообщения:  Re: Часы на TFT

Проект.. да какой он сложный)) Там готовые модули... Ну может только отдельно радиоканал (с цифровой обработкой сигнала)...
Отделить логику от железа не так просто. Отдельная функция для отправки байт/слово вещь интересная, только боюсь не так всё просто... Думаю будет слошком много операций для обработки и вывода каждого байта отдельно... Бумаю лучше делать через буферизацию.
В программе ещё всё привязано к таймингам.)) МК ещё болжен успевать принимать/отправлять/обрабатывать данные/считать контрольные суммы/читать писать епром с верификацией данных... по секторам/опрашивать кучу датчиков/управлять автоматическими системами (типа автопилот и т.д.)... и ещё при этом выводить данные на экран... и всё это одновременно))
Поэтому думаем над идеей отдельного экрана, на отдельном МК, на который будут отправляться данные с главного проца, а "экран" уже сам будет всё рисовать. Там же - текстовые ресурсы и растры.... Как-то так - https://www.youtube.com/watch?v=bXRNrtnK8Zc
Короче типа видеокарты в ПК ))
И частота кадров должна быть побольше, а не как на том видео... всё тормозит))
Сейчас для 64x128 время обновления 10 милисекунд... с учётом остальных операций частота кадров 32 кадра/c.
Для 320*240 2.4" = 9600 байт... при скрости SPI 2 Мбит/c... в теории 26 кадров/секунду... с учётом вычислений в 10 раз меньше))
Можно разогнать проц до 16 МГц (максимум 25 Мгц)... Тогда можно сделать развёртку максимум где то до 50 кадров/c...
(Можно смотреть видео, как в старом телевизоре). ))
...
короче, плюшек много... ))

Автор:  GoldenAndy [ Вт янв 22, 2019 21:20:21 ]
Заголовок сообщения:  Re: Часы на TFT

1. Давай переносить обсуждение в профильную тему по пульту (меня, правда, коробит от дикой помеси языков и количества ошибок у sashamelja).
2. По экрану. Смотрите. LCD-монохром 64*128 (их у китайцев навалом, на контроллере ST7920) требует килобайт видеобуффера в ОЗУ. Вывод инфы на него по параллельному 8битному интерфейсу несколько более быстр, нежели по СПИ, хотя там есть тайминги самого контроллера. Но они прекрасно алгоритмизируются и весь вывод укладывается в обработчик таймера. Т.е. таймер молотит каждые 70-75 мкс и льет данные в дисплей из буфера.
Ежели хочется бОльшего - ТФТ, особенно, если с тачем - сильно не рекомендую СПИ.
СПИ в мегах работает на максимальной частоте - 1/2 от тактовой. Для отправки 16-битного пикселя - т.е. 2 байт - нужно минимум 32 такта камня - и это не считая того, что СПИ 8-битный и нужно ждать , пока уйдет первое слово, что бы загрузить и отправить второе. Делать машину состояний на прерывание по готовности СПИ - на этих скоростях могут быть большие накладные расходы на вход/выход из прерывания и сохранение регистров.
Учитывая то, что у вас мега 128 - два свободных порта под параллельный интерфейс дисплея можно найти. тогда два байта отправляются за:
1. выставить первый байт в порт 1
2. выставить второй байт в порт 2
3. поднять строб записи
4. положить строб записи.

Вот как то так.
Т.е. 4 такта против 32 - и без ожиданий.


И плюс если дисплей с тачем, то тач тоже сидит на СПИ. Причем, если сам контроллер дисплея реально скоростной, то тач на частотах СПИ выше 500 кГц начинает безбожно врать. Т.е. делить СПИ между дисплеем и тачем - вещь неблагодарная.

--------
Соответственно, в теме про пульт рисуйте ТЗ дисплейного модуля - какой желателен дисплей (интерфейс/контроллер/разрешение, наличие тача) - и будем думать. Я могу из проекта часов надергать библиотеки и описать, как их применять.

И сильно продумывайте протоколы общения между основным блоком и дисплеем. (как вариант физического протокола - я бы попробовал предложить UART - но нужно кварцевать как мастера, так и слейва. Но есть плюс - отладку можно вести из терминала на ПК).
Логический уровень - зависит от ваших потребностей.
Ну и опять же - собирать программу когнтроллера дисплея нужно блоками - физика дисплея - один уровень, логика дисплея - второй уровень, графические примитивы - третий уровень, вывод данных по командам мастера - четвертый уровень. Причем прогу писать надо так же, как организована мафия в Японии - уровень не знает никого, кроме соседних уровней.

--------
ЗЫ. Половина контроллеров ТФТ дисплеев хоть и толерантна к 5 вольтам, но линии данных у них исключительно 3.3 вольта.
можно для увеличения скорости отрисовки тактовать дисплейную мегу от кварца 20-22 МГц, но придется питать контроллер 5 вольтами, на 3,3 вольтах 20 МГц могут не взлететь. В этом случае придется на линии данных и управления дисплея вешать резистивные делители.

Добавлено after 8 hours 50 minutes 16 seconds:
вот и статья подоспела

Автор:  musor [ Вт янв 22, 2019 22:03:19 ]
Заголовок сообщения:  Re: Часы на TFT

пусть простят авторы топика но фсе это и болше умент заурядный планшет и каждая 2 фоторамка...

из +планшета куча готовых часоф и ещедневникоф с погодой голосовым напоминанием анимацией в виде картинки дождя снего ветра... и прочими вкусняшками..
ну и +можно ингда юзать и ка планшет тоже например для скайподобных прог
городить такое разве чтоиз самоутвердения ЯСМОК!

Автор:  GoldenAndy [ Вт янв 22, 2019 23:41:26 ]
Заголовок сообщения:  Re: Часы на TFT

Да не вопрос, уважаемый musor, простят. И мнение простят, и орфографию, и ретросленг падонкафф...
Идите с миром.

Автор:  GoldenAndy [ Ср янв 23, 2019 11:28:51 ]
Заголовок сообщения:  Re: Часы на TFT

прошивка, схема, фотографии, изображения, проект Eagle 7 - из статьи.

Автор:  Kotto [ Пт янв 25, 2019 17:47:46 ]
Заголовок сообщения:  Re: Часы на TFT

Схемка просто шикарная :) Есть множество идей что можно сделать с таким дисплеем.

Просьба к автору, посоветуйте руководства по этому дисплею, в идеале примеры на codevision :oops: :beer:

Еще раз респект за схему!

Автор:  GoldenAndy [ Пт янв 25, 2019 18:12:25 ]
Заголовок сообщения:  Re: Часы на TFT

Kotto писал(а):
посоветуйте руководства по этому дисплею

Даташит - наше все. В гугле - по поиску ILI9341 первая же ссыль - ДШ
Спойлерhttps://cdn-shop.adafruit.com/datasheets/ILI9341.pdf


Я перед покупкой дисплея просто погуглил что то типа "Работа с TFT дисплеем ILI9341" - попал на несколько статей про подключение дисплея к МК, к андурине и т.д. (Без ссылок, не знаю, можно ли тут ссылки на внешние ресурсы, надеюсь, за ссылку на ДШ не побьют)
На основе этих данных и накидал библиотечку.

Тут главное найти полную последовательность "магических цифр" - пакета команд и их аргументов для инициализации контроллера дисплея.

Kotto писал(а):
в идеале примеры на codevision

Простите, а что такое кодвижн ? Это язык такой ?
Если мне не изменяет память - кодвижн - это IDE, а пишут там на асм/с/с++.

Так вот, волей случая для такого же дисплея, только с SPI-подключением в соседней ветке просили библиотеку. (Самое интересное, что библиотеку просили для CVAVR :) )

Так что вот библиотека - милости прошу, читайте, вникайте, пробуйте.
Это моя библиотечка, написана "по мотивам" просторов интернета. По идее, она вообще не должна зависеть ни от используемого компилятора, IDE.... И ей даже все равно, какой контроллер будет управлять дисплеем.
(единственное, возможно придется найти аналог _delay_ms(xxx) - функции, формирующей задержку в ххх миллисекунд.)
Библиотека подключается просто :
Код:
#include "ILI9341.h"

Автор:  pin1000 [ Сб янв 26, 2019 04:13:44 ]
Заголовок сообщения:  Re: Часы на TFT

Проект интересен уже тем, что это одно из немногих изделий, сделанных с цветным дисплеем. Надоели уже семисегментники, WH1206, китайские Nokia5110( с разборки).

goldenandy
Спасибо, очень подробно все изложено.
1 Не хватает только платы в SL6, не могли бы вы помочь в этом формате.
2 Поделитесь ссылкой на дисплей, чтобы не ошибиться с заказом, да и проверенный продавец- это хорошо.

Автор:  вадим1964 [ Сб янв 26, 2019 06:33:30 ]
Заголовок сообщения:  Re: Часы на TFT

хочется прикошатить сие 2.8"??возможно ли?он под мегу2560
Изображение Изображение

Страница 1 из 111 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/