Arduino Framework Simulator

Chismicro
Пт, 07 июля 2017 г. 14:11
Я запустил программное обеспечение для симулятора, чтобы я мог скомпилировать код Arduino в Eclipse CDT и запустить его на моем ПК Linux (он использует X11).
Сначала я перенес adafruit_gfx в рамку, чтобы я мог использовать общие функции TFT, чтобы нарисовать на экране моего рабочего стола.
Существует также симуляция сенсорного экрана с мышью.
Может ли это быть интересным для кого -то?

Исходный код здесь

Изображение

Universam10
Пт, 07 июля 2017 г. 14:48
Абсолютли!
Как это будет работать?

victor_pv
Пт, 07 июля 2017 г., 16:04
+1 Даже если бы это было только для экрана и прикосновения, это было бы очень полезно для всех, использующих дисплеи.

Chismicro
Пт, 07 июля 2017 г., 16:07
Хорошо, завтра начну на GitHub.
Если вы знакомы с Eclipse, это довольно просто в использовании.

ZMEMW16
Пт, 07 июля 2017 г., 16:21
+1
Если вы добавили в SPI, i2c, ... ... кому нужна таблетка или мм : D

Даниэфф
Пт, 07 июля 2017 г., 16:25
Разместите результат GraphicStest!

Zoomx
Пт, 07 июля 2017 г., 18:19
Единственный симулятор, которого я знаю, - это тот, который находится в CodeBloq. Но он подражает только MCU и серийному принту.

Спасибо!

Chismicro
Сб 8 июля 2017 г. 5:32 утра
Здесь это.

Дайте мне знать, если он без проблем компилируется на ваших затмениях.

Я назвал примеры примера Arduino *_ino.H, потому что кажется легче всего иметь файл эскиза без каких -либо накладных расходов.
На данный момент набросок, который будет скомпилирован, выбран с «#include» в главном.CPP.

Chismicro
Сб 8 июля 2017 г. 7:49
Разместите результат GraphicStest! Он выглядит точно так же Adafruit Picutres

При составлении проекта "tft_demo_ino.H " - эскиз по умолчанию. Итак, вы увидите непосредственно GraphicStest.

Chismicro
Сб 8 июля 2017 г. 8:52 утра
Вот фотография Flappy Game который я использую в качестве эталона (и работает в моем симуляторе Linux).
Я внедрил миллисы и задержку, где задержка, кажется, работает правильно.

Изображение

Chismicro
Сб 8 июля 2017 г. 18:33
по ZMEMW16 » Пт, 07 июля 2017 г., 18:21 +1
Если вы добавили в SPI, i2c, ... ... кому нужна таблетка или мм : D
Наверное, было бы хорошо объединить симулятор (или это больше эмуляция ? ) с проводка чем экран HDMI можно использовать в качестве TFT -дисплея :ржу не могу:

Стивестронг
Сб 8 июля 2017 г., 19:06
[Chismicro - СЕД 8 июля 2017 г. 8:52 утра] - Вот фотография Flappy Game который я использую в качестве эталона (и работает в моем симуляторе Linux).
Я внедрил миллисы и задержку, где задержка, кажется, работает правильно.
https: // www.YouTube.com/watch?v = ihvvigyvojg
: mrgreen:

Chismicro
SAT 8 июля 2017 г. 8:15 вечера
https: // www.YouTube.com/watch?v = ihvvigyvojg Вы сделали это?
Вы можете попытаться запустить его в эмуляторе, если у вас есть Linux и Eclipse.

Я думаю, что это должно быть легко для порта, потому что я только что сделал обертки для примера Adafruit Touchpaint и импортировал его в репо.
Единственная модификация - это включение в начале файла.

Изображение

Стивестронг
Сб 8 июля 2017 г. 22:34
Я хотел бы попробовать это, но без «как» я не могу понять, как это должно работать...
Кстати, я использую только Windows, но я знаю Eclipse.

Chismicro
Солнце 9 июля 2017 г. 3:52 утра
Хм .. Проект создан для Linux с использованием x11.
В любом случае, я добавил "Howto in the Readme"

Zoomx
Солнце 9 июля 2017 г. 15:15
Может использование Cygwin/x?

Chismicro
Солнце 9 июля 2017 г., 17:34
Может использование Cygwin/x? Это также пришло мне в голову, но я не уверен, что Eclipse-CDT для Windows напрямую интегрирует GCC и Cygwin.

Я использую компьютеры: быстрый с Win10 и виртуальной машиной с Xubuntu, где я начал разрабатывать этот проект.
Другой очень медленный 1.Ноутбук 8 ГГц с Ubuntu
На ноутбуке Win10 с виртуальной машиной. На медленном он также работает, но не так приятно, как в виртуальной машине под Win10.

Немного о структуре программного обеспечения проекта:
Основной интерфейс для ПК находится внутри файла "posixWrapper.c ". Существует доступ к PC-TIMER для Mills () и Delay (), а также основные функции чертежа для окна X11.
PosixWrapper.c файл используется TFT_LINUXWRAPPER.H Файл, который является производным класса ADAFRIT_GFX.
В связи с предоставлением отсутствующих виртуальных функций для AADFRIT_GFX теперь все функции ADAFRIT_GFX могут использоваться с классом TFT_LINUXWRAPPER.

Zoomx
Пн 10 июля 2017 г. 9:36 утра
Да, я прочитал код, так что, возможно, будет лучше использовать некоторые графические библиотеки, которые делают то же самое, а не использовать Cigwin.
Но я никогда не использовал C ++ или C с каким -либо графическим интерфейсом, поэтому я не могу этого сделать.

Universam10
Пн 10 июля 2017 г. 12:01
[Chismicro - Солнце 9 июля 2017 г., 17:34] - Немного о структуре программного обеспечения проекта:
Основной интерфейс для ПК находится внутри файла "posixWrapper.c ". Существует доступ к PC-TIMER для Mills () и Delay (), а также основные функции чертежа для окна X11.
PosixWrapper.c файл используется TFT_LINUXWRAPPER.H Файл, который является производным класса ADAFRIT_GFX.
В связи с предоставлением отсутствующих виртуальных функций для AADFRIT_GFX теперь все функции ADAFRIT_GFX могут использоваться с классом TFT_LINUXWRAPPER.
Я поражен, работает почти мгновенно из коробки на виртуальной машине! : o
Спасибо за то, как это также позволяет легко начать с!

Таким образом, общие функции Arduino еще не включены, что не имеет большого значения, если будет ясно, как добавить их по требованию. Не могли бы вы опубликовать немного информации или руководствовать, как этот эмулятор может быть продлен, где это необходимо?
Просто возможность отладки и шага через код уже такой отличный вариант использования!
Спасибо!

Chismicro
Пн 10 июля 2017 г. 14:31
Я поражен, работает почти мгновенно из коробки на виртуальной машине! : o Привет Universam10,

Большое спасибо за тестирование : D
Таким образом, общие функции Arduino еще не включены, что не имеет большого значения, если будет ясно, как добавить их по требованию. Не могли бы вы опубликовать немного информации или руководствовать, как этот эмулятор может быть продлен, где это необходимо? На данный момент реализованы только самые основные функции.
Эн.глин. Сериал реализован и сериал.Печать переходит на вывод консоли ПК, который также полезен для отладки.
Digitalwrite ... Analogwrite пока отсутствует, но его можно просто добавить, поместив их в папку
ядра/arduino
и добавление файла заголовка в Arduino.час.
Я просто пытался сохранить структуру папок, как настоящий Ардуино.

Что такое иерархия вызова?
Все доступные функции Arduino включены в «Arduino.H ", который включен в основную.CPP перед включением файла эскиза (e.глин. мигание.Ино).
Я только что скопировал некоторые базовые процедуры Arduino, образуя STM32GERIERIER в ядра/arduino

Я думаю, что постараюсь прокомментировать код немного лучше, чтобы сделать его более понятным.
Если у вас есть какие -либо вопросы, не стесняйтесь задавать :)

Chismicro
Вт 11 июля 2017 г. 7:09 утра
по Zoomx » Пн 10 июля 2017 г. 11:36 утра Да, я прочитал код, так что, возможно, будет лучше использовать некоторые графические библиотеки, которые делают то же самое, а не использовать Cigwin.
Но я никогда не использовал C ++ или C с каким -либо графическим интерфейсом, поэтому я не могу этого сделать.
Я не использовал графическую библиотеку, потому что это своего рода «учебный проект» для меня, где я пытаюсь улучшить свои знания C ++.
Например, было бы возможно использовать QT, но я хотел выполнять свои собственные графические процедуры с нуля.

Тем временем я добавил "мигание.INO "для проекта.

Это хороший пример на «Howto» добавить новые функции.
Что я должен был сделать:
1. Добавить Arduino File "Wiring_digital" как *.Файл CPP в репо.
(Вы сразу поймете, что он делает, глядя на код)
2. Добавить шаблоны функций в «arduino.час"
3. Добавить "мигание.INO "в папке примеров и изменить включение в" Main.CPP "

Кстати.: кто должен идти глубже, вот Очень интересная статья об истории "проводки".

Universam10
Вт 11 июля 2017 г. 7:25 утра
Сервис : D

Приятно, теперь это имеет смысл.

Как вы решили пройти через код? С .INO не признается в качестве файла CPP, он не доступен для прохождения, но если я объявляю .INO как файл CPP, тогда он не будет компилироваться. У вас есть идея об этом?

Спасибо и продолжайте эту крутую идею!

Chismicro
Вт 11 июля 2017 г. 13:44
Первоначально я назвал INO-файл в качестве файла заголовка:

эн.глин. вместо мигания.Ино это может быть моргнуть.час

Вероятно, это может помочь для отладки.

Проблема с snprintf ()

Массивный размер эскиза