Терминал
- Войдите на сайт для отправки комментариев
Вместо светодиодов использую цветные экраны TFT для своих поделок. На этик экранах можно помигать квадратиками или еще чем ( цветными, иммитация светодиодов ) и выводить надписи, сообщения и цифровые данные. На таких простейших контроллеров реализовывать меню смысла нет. Это не ПК. Все эти вопросы решаются сменой ПО для нужных настроек и управлений, Простой контроллер создан для управления, а не постоянной настройки его ПО. Реально в таких контроллерах — это смена экрана отображения ( может все не поместиться на один экран ) и смена УСТАВОК, но это не меню и гораздо проще решается. А картинки и фото выводит на них вообще смысла нет
Также мне не нравиться, что к ардуино подключается толстая плата с индикатором на проводках + согласование уровней, которая ничего не умеет, пожирает ресурсы ПИНОВ его и ПЗУ — функции на обслуживание его и шрифты, считай 20 кБ пропало, да еще и библиотеки подключать и разбираться с ними. Да и пирог из плат получается неудобный, особенно при засовывании их в коробочку да еще и другими прибамбасами.
Неоднократно использую в своих поделках так называемый ТЕРМИНАЛ. Это законченное устройство с отображения информации, со своим микроконтроллером, прошитыми командами и шрифтами. Все реализую на одной печатной плате, TFT стекло своим шлейфом припаивается к pcb, на обратной стороне Atmega328P с обвязкой.
Вот здесь представлю свой макетный вариант, созданный для отладки ПО и оборудования. Дисплей стекло TFT 240х320 2,8 дм + джойстик на 5 положений ( 4 + пресс ). интерфейс связи с ардуино I2C. Библиотеки для ардуино IDE ( UNO3) написаны, оттестированы ( что придумал на данное время ) Встроены 2 шрифта 5х7 и 12х16 с кириллицей, также шрифт больших ЦИФР. Воспринимает как UTF8 так и WIN1251. Для обмена по I2C реализовал свою библиотеку, ардуиновская меня не устроила. У меня все на прерываниях и посылается/принимается все пакетами, нет ожиданий, работа по флагам готов или нет, можно наиболее полно реализовать реальное время.
Также в ТЕРМИНАЛ прошито несколько десятков АВТАТАРОК, которые пригодятся вместо слов — видно из далее, типа = СТОП, уровень вверху, внизу и т.д. фото поближе
и фото всего макета с ардуинок, макет быстренько собран из листов ПВХ и склеен + есть источник питания от 220 В для автономной работы
С использованием написанных библиотек он достаточно просто программируется. Пример самый простой использующий функции не для реального времени, проверка флагов и ожиданий их в нутри функция, но базовые функции позволяют это делать раздельно.
Terminal_SetFont(SetFont5x7); Terminal_SetColor(black,white); Terminal_ClearScreen(); Terminal_WriteStrXYC(1,1,black,blue,"- ЭТО КИРИЛИЦА"); Terminal_SetFont(SetFontDos_12x16); Terminal_WriteStrXYC(10,20,black,white,"- Latinica"); Terminal_WriteStrXYC(10,50,black,cyan,"МорВолна на черном фоне"); Terminal_DrawRectXYC( 1, 15, 180, 60, red, white); // Вывод цветного квадратика Terminal_DrawPictoXYC(120 , 25,blue,white,cF13_8x16); // Вывод пиктограммы
Реально я так тексты не храню и не вывожу, они занимают много места в ОЗУ и его просто не хватит. Тексты я храню в ПЗУ с помощью progmem и извлекаю их от туда для вывода. Также терминал можно располагать как пожелаете и менять направление вывода.
а где исходники и схема?
чтоб повторить и использовать....
скорость заполнения например всего экрана? т е сколько кадров в секунду максимум?
Не повторишь, аффтар по Микро-Паскалю прикалываеца. :)
Не повторишь
жаль :(
так тоскливо для какого нибудь проекта программировать графическую часть....а так воткнул по I2C готовое устройство.
Если есть желанье повторить - опубликую, а библиотеки для ардуино ВСЕ НА СИ - ради Вас старался
На микро паскале только внутри ТЕРМИНАЛА, но вам там и HEXа хватит, если не пожелаете разбираться.
идейка шикарная. правда реализация на Уно все портит. Надо разводить платку на отдельном контроллере и крепить сзади ТФт дисплея - получится этакий "текстовой Некстион"
Если есть желанье повторить - опубликую, а библиотеки для ардуино ВСЕ НА СИ - ради Вас старался
На микро паскале только внутри ТЕРМИНАЛА, но вам там и HEXа хватит, если не пожелаете разбираться.
это вы с Амперки моду взяли HEX выкладывать :) ?
напомню что данная ветка предназначена для похвалиться своими проектами и помочь жителям форума повторить устройство и/или внести в него какие либо изменения/дополнения.
Если надо кому прозрачности и повторяемости, я какрас щас терминал пилю, на Atmega8, с выводом по сериал и по воздуху. Нннада?
Если надо кому прозрачности и повторяемости, я какрас щас терминал пилю, на Atmega8, с выводом по сериал и по воздуху. Нннада?
больше терминалов хороших и разных :)
У атмега8 хватит ОЗУ для работы с ТФТ?
Лучше на стандартном 328-м. Хотя бы MiniPro припаять тудыть, чтобы не страдать фигней с Atmega8.
Запилить тоже на Nextion что-ли... ))
по воздуху. Нннада?
однозначно. Только хватит ли скорости uart для относительно комфортного обновления всего экрана?
на Nextion
дороже получается чем atmega328p + tft SPI
Дак у меня текстовый терминал. Ему пофиг на скорость, строчечки бегут по мере заполнения, как у православного Linux. Utf-8 перекодируется на лету в CP866, с его встроенной псевдографикой.
на выходе будет штото типа
На любом разрешении экрана, хоть TFT 480х320, хоть OLED 160х120.
Ну, не хочете - не еште.
Так что, к терминалу ещё и дойч вспоминать придётся?
на Nextion
дороже получается чем atmega328p + tft SPI
Так надо полный цикл посчитать. С печаткой, пайкой и пр.
Ну, не хочете - не еште.
Хочем, хочем! Покезывай давай!
Хочем, хочем! Покезывай давай!
Через 15 дней тада выкладу.
на выходе будет штото типа
На любом разрешении экрана, хоть TFT 480х320, хоть OLED 160х120.
он что в стиле турбо паскаля будет выводить?
это, матьтваю, TurboVision, из которого я вырос, забросив Фортран И Basic. :)
это, матьтваю, TurboVision, из которого я вырос, забросив Фортран И Basic. :)
А че он у вас такой немецкий то? Я рос на обычном паскале, который писали на бумажке, потом били текст на терминале, потом сбивали на перфоленты, а уж потом ленту засовывали в ЕС-1022... А вот когда начал писать свои первые платные программы (то есть типа уже вырос) то это уже был инглицкий турбовижн, я точно помню (середина 90-х вроде была)! А потом даже русский, но эт для ламеров, мы с такими не водились;)
это, матьтваю, TurboVision, из которого я вырос, забросив Фортран И Basic. :)
у меня ТСС 1.00 был такой, я в нем ассемблером пользовался, он выравнивал код кратно 16 или 32, забыл уж, один хрен лучше чем я ручками он не делал )))
Яж по русски написал, ТЕРМИНАЛ на отдельном микроконтроллере Atmega328P !! Это отдельное устройство, со своим ПО !! и он по I2C общается с любым оборудованием - и для отладки - подключен к АРДУИНо - что видно на фото. А выложу Все, для АРДУИНКИ библиотеки на Си для общения с терминалом. А ТЕРМИНАЛ на Микро Паскале и кому не охото в нем разбираться ( нужно только использовать ) - шьют HEXa в него и терминал готов, а хочеш расширять и модернизировать ТЕРМИНАЛ - ковыряй Паскаль или пиши свое на Си.
Схема Терминала. TFT 240х320, контроллер ILI9341 2,8 дм. Для сопряжения с ним по сигналам ( он 3 вольтовый ) применена микросхема Мк1-74LVC244AD, стабилизатор 3,3V на микросхеме М2 в корпусе SOT-23. Сам контроллер на M1 – Atmega328P в 32 выводном корпусе. Предусмотрен разъем ВГ1 для аппаратного программирования его по SPI, также предусмотрен разъем для заливки в него ПО по UART - ВГ3 ( если первично залить в него загрузчик ) ИЛИ для обмена данными с кем то вашей программы ( я использовал для отладки под монитором ПК).
Основной канал связи ( I2C + питание ) с оборудованием ( Ардуино ) выведен на разъем ВГ2. Также установлен Джойстик на 5 положение ( 4 + пресс). Имеется разъем расширения ВГ4, куда выведены 4 пина микроконтроллера и Земля. Если у вас задача маленькая и хватает ПЗУ и несколько пинов для управления, то можете чем то и по управлять/измерять не подключая ардуинку. Схема :
И перечень Элементов
Но пришлось резистор подсветки TFT R7 установить 51Ом, при 200 Ом очень тускловато смотрелся.
Ссылка на архив схема, плата, спецификация - https://cloud.mail.ru/public/5Dyr/2wHhwB1wJ
Программы Терминала. Сначала со стороны Ардуино. Написано все только для Ардуино на Atmega 328P т.к. писалось без использования ее библиотек, непосредственно работая с портами и пинами ( для ускорения и уменьшения кода), Для тестовой — демо программы использовались библиотеки
Я свои библиотеки не люблю пихать в среду ардуино, они у меня хранятся в моей отдельной папке, поэтому использую директиву #include - с путями, к папке с моими библиотеками.
Также сама тестовая программа, Она велика для форума, поэтому вместе с библиотеками упакована по ссылка - https://cloud.mail.ru/public/4qrz/yKbk6WkUT
Программу Самого терминала, к выкладке подготовлю чуть позже.
Программы Терминала. Встроенная программа Терминала. Написана на микро Паскале. Если Вам не интересно в нем разбираться и что то менять то есть уже HEX-сик для прошивки, также описаны фьюзы, даже есть проект *.wpp – для программатора WizardProg87, которым я пользуюсь. В папке uses выложены библиотечные модули и включаемые файлы шрифтом и аватарок.
Если пожелаете что-то менять в то - для работы в микроПаскале Вам потребуется полная версия, т.к. скомпилированный объем будет около 18 кБ, а демо версия до 4 кБ.
Но по моим понятиям, данная тема НЕ ДЛЯ ТОГО ЧТОБЫ СКОПИРОВАТЬ и ПОВТОРИТЬ. Я никогда этим не занимался. Интересно просто как кто решает те или иные задачи и интересно что — почерпнуть из них для себя и для своих будущих решений. Паскаль читается легко, Если есть интерес как без громоздких библиотек управлять TFT напрямую — вот вам один из способов. Также реализация помощника на TWI-I2C по прерываниям ( и мастера на Си для ардуино ) + шрифты с кириллицей двух форматов и многое другое — есть что почерпнуть и легко переноситься на Си кому надо и редактируется и делается свое. Для простого копирования тоже все есть — только не хватает описания протокола обмена -но он весь описан ПРОГРАММНО и с комментариями в программе для ардуино на Си.
Ссылка на архив - https://cloud.mail.ru/public/5GQj/5NercBpGt