Для ардуины есть TFT дисплеи. Штука приятная во всех отношениях - Во-первых, это удобно - устройство вывода оно же устройство ввода. Нет нужды паять и перепаивать кучу кнопок на регистрах - любое нужное количество можно просто нарисовать. Во-вторых, это красиво - дисплей цветной и может отображать достаточно большое кол-во цветов и оттенков (1000+ - зависит от модели). А теперь о грустном... Попробуйте нарисовать для своего проекта на экране клавиатуру... Получится эдак кнопок под 80. Это сколько же кода понаписать придется. А ведь и каждой кнопочке свои координаты дать надо! Сразу как-то муторно становится, руки опускаются и лень одолевает. Но лень, как известно, двигатель прогресса. Клавиатурку то хочется... Да и не только ее. Как-то так и родилась идея создать динамический GUI для Ардуино. Первые тесты показали реальность этой идеи. Суть такова: на компе в специальном редакторе рисуем экран как в Visual Studio - бросаем на него кнопочки, надписи... Сохраняем все это добро в файл на флешку и скармливаем дуне. Та в свою очередь читает файл и воспроизводит на экране. Активные области (кнопки) имеют каждая свой уникальный идентификатор. При нажатии на экран возвращается идентификатор области, куда нажали. Проект пока в самом начале - решил поделиться идеей. Может кто что еще на эту тему подкинет... Тут будет описалово. Тут будут исходники.
Если идти до конца, то можно научить редактор вставлять обработчики кнопок в исходник. Тогда на выходе получится файл, в котором останется только прописать реакцию на события интерфейса. А вот хватит ли у контроллера памяти на все это дело - большой вопрос.
Ну вся фишка в том, чтоб расходовать ее аккуратно. Статические массивы идут курить в сторонку - на структуры элементов выделяем память ручками. Чистить тоже не забываем. Если вспомнить все, что творили на 286-х машинах в 90-х годах и не разгильдяйничать как нынче на винде модно, то памяти хватит и еще останется. Где-то 12 байт на структуру элемента. В памяти только то, что используется. Я думаю, 1к - за глаза хватит. Проект в первую очередь ориентирую на Arduino Mega. А у нее аж 8к имеется...
В худшем случае придется задействовать одну дополнительную мощную (Mega, Due или Teensy) плату как отдельный контроллер дисплея.
В каждой шутке есть доля шутки. Когда кто-то взялся сделать удобную библиотеку для графического интерфейса, то это похвально и правильно. Замечание касалось только того момента, когда одна Ардуино целиком уходит на контроллер видео - лично мне не нравится когда проблема с Ардуино решается еще одной Ардуиной при наличии готового решения с графикой, контроллером тач-скрина и звуком, при этом написана хорошо задокументированная библиотека. Даже с учетом этого замечания я не говорил что Вы занимаетесь ерундой.
Вот мне тоже это не нравится. И идея как раз состоит в том, чтоб в условиях меги сделать графический интерфейс для проектов на той же самой меге. Идея родилась из того, что пришлось мне создавать пульт управления для робота - массивный ящик с кучей ручек, тумблеров, передачей управляющего сигнала туда, телеметрии и видео обратно. Экранчик там послужил своего рода клавиатурой и меню настроек. Ясное дело, что городить весь огород с меню ради этого самого меню нет смысла. МК отвечает за опрос элементов управления, прием-передачу сигнала и прочие мелочи. И тратить кучу времени на одноразовую работу мне стало лень. Особенно при условии, что я точно знаю - это не последний мой интерфейс на подобном экране.
Графический интерфейс. О да !!! Нам поставили задачу, сделать радио-управляемые конструкции и мы сразу полезли гуглить TFT дисплеи, чтобы сделать шикарный пульт. Но как оказалось на практике, пришлось использовать опять Windows. И в будущем, все проекты я буду делать только через комп, к которому подключен ардуино. В машине под сидением будет Foxconn, на торпеде IPS матрица, через HDMI, а ардуишка в бардачке.....
От части Вы правы - Вам именно туда! Для тех, кто в танке: дисплеи применяются часто, код для построения GUI на них однотипен, далее к Вирту... Визуальный редактор написан от лени и для ускорения процесса разработки. То, что он на винде еще ни о чем не говорит - его можно было бы сделать и под Unix/Linux/AIX/Solaris.... Да хоть под ведроид....