Графический интерфейс для дуни

Тема в разделе "Глядите, что я сделал", создана пользователем Mactep8, 30 ноя 2014.

  1. Mactep8

    Mactep8 Нерд

    Для ардуины есть TFT дисплеи. Штука приятная во всех отношениях - Во-первых, это удобно - устройство вывода оно же устройство ввода. Нет нужды паять и перепаивать кучу кнопок на регистрах - любое нужное количество можно просто нарисовать. Во-вторых, это красиво - дисплей цветной и может отображать достаточно большое кол-во цветов и оттенков (1000+ - зависит от модели).

    А теперь о грустном... Попробуйте нарисовать для своего проекта на экране клавиатуру... Получится эдак кнопок под 80. Это сколько же кода понаписать придется. А ведь и каждой кнопочке свои координаты дать надо! Сразу как-то муторно становится, руки опускаются и лень одолевает. Но лень, как известно, двигатель прогресса. Клавиатурку то хочется... Да и не только ее.

    Как-то так и родилась идея создать динамический GUI для Ардуино. Первые тесты показали реальность этой идеи. Суть такова: на компе в специальном редакторе рисуем экран как в Visual Studio - бросаем на него кнопочки, надписи... Сохраняем все это добро в файл на флешку и скармливаем дуне. Та в свою очередь читает файл и воспроизводит на экране.
    Активные области (кнопки) имеют каждая свой уникальный идентификатор. При нажатии на экран возвращается идентификатор области, куда нажали.
    Проект пока в самом начале - решил поделиться идеей. Может кто что еще на эту тему подкинет...

    Тут будет описалово.
    Тут будут исходники.
     
    Nedd нравится это.
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Если идти до конца, то можно научить редактор вставлять обработчики кнопок в исходник. Тогда на выходе получится файл, в котором останется только прописать реакцию на события интерфейса.
    А вот хватит ли у контроллера памяти на все это дело - большой вопрос.
     
  3. Mactep8

    Mactep8 Нерд

    Ну вся фишка в том, чтоб расходовать ее аккуратно. Статические массивы идут курить в сторонку - на структуры элементов выделяем память ручками. Чистить тоже не забываем. Если вспомнить все, что творили на 286-х машинах в 90-х годах и не разгильдяйничать как нынче на винде модно, то памяти хватит и еще останется. Где-то 12 байт на структуру элемента. В памяти только то, что используется.

    Я думаю, 1к - за глаза хватит. Проект в первую очередь ориентирую на Arduino Mega. А у нее аж 8к имеется...
     
  4. geher

    geher Гуру

    В худшем случае придется задействовать одну дополнительную мощную (Mega, Due или Teensy) плату как отдельный контроллер дисплея.
     
  5. ANV

    ANV Гуру

    Чтобы снова изобрести FT800/Gameduino2? :)
     
  6. я всё жду когда начнут прикуривать не спичками или зажигалкой, а с помощью огнива и кресала
     
  7. Megakoteyka

    Megakoteyka Оракул Модератор

    И ведь дождетесь :)
     
    ИгорьК нравится это.
  8. Mactep8

    Mactep8 Нерд

    Ну посмеялись и будет...
     
  9. ANV

    ANV Гуру

    В каждой шутке есть доля шутки. Когда кто-то взялся сделать удобную библиотеку для графического интерфейса, то это похвально и правильно.
    Замечание касалось только того момента, когда одна Ардуино целиком уходит на контроллер видео - лично мне не нравится когда проблема с Ардуино решается еще одной Ардуиной при наличии готового решения с графикой, контроллером тач-скрина и звуком, при этом написана хорошо задокументированная библиотека. Даже с учетом этого замечания я не говорил что Вы занимаетесь ерундой.
     
  10. Mactep8

    Mactep8 Нерд

    Вот мне тоже это не нравится. И идея как раз состоит в том, чтоб в условиях меги сделать графический интерфейс для проектов на той же самой меге. Идея родилась из того, что пришлось мне создавать пульт управления для робота - массивный ящик с кучей ручек, тумблеров, передачей управляющего сигнала туда, телеметрии и видео обратно. Экранчик там послужил своего рода клавиатурой и меню настроек. Ясное дело, что городить весь огород с меню ради этого самого меню нет смысла. МК отвечает за опрос элементов управления, прием-передачу сигнала и прочие мелочи. И тратить кучу времени на одноразовую работу мне стало лень. Особенно при условии, что я точно знаю - это не последний мой интерфейс на подобном экране.
     
  11. Графический интерфейс. О да !!! Нам поставили задачу, сделать радио-управляемые конструкции и мы сразу полезли гуглить TFT дисплеи, чтобы сделать шикарный пульт. Но как оказалось на практике, пришлось использовать опять Windows. И в будущем, все проекты я буду делать только через комп, к которому подключен ардуино.

    В машине под сидением будет Foxconn, на торпеде IPS матрица, через HDMI, а ардуишка в бардачке.....
     
  12. Mactep8

    Mactep8 Нерд

    От части Вы правы - Вам именно туда!
    Для тех, кто в танке: дисплеи применяются часто, код для построения GUI на них однотипен, далее к Вирту...
    Визуальный редактор написан от лени и для ускорения процесса разработки. То, что он на винде еще ни о чем не говорит - его можно было бы сделать и под Unix/Linux/AIX/Solaris.... Да хоть под ведроид....