Написание кода для ардуино среде разработки С++ Qt Creator

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Для тех кто устал от блокнота называемым IDE для Ардуино.
Можно наконец выбрать С++17 стандарт и пользоваться всеми его плюшками.
Например Structured binding declaration
Пример Проекта для Arduino-UNO
 
Изменено:

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
60
на каждом форуме всегда появляется умник, который не понимает разницы между хобби, увлечением, одноразовыми проектами и профессиональной работой....
здесь тусуются не программисты, а любители.
 
  • Лойс +1
Реакции: ТехнарьКто

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Я тоже не профессионал и работаю контролёром ОТК. Мучу всякие прибамбасы для проверки всякого на Ардуине. Мне понравился Креатор и Qt в целом когда мне его показали наши разрабы. Здесь хотя бы все ошибки подсвечивает во время написания кода и говорит где я не прав. Здесь указывает на приоритет операций && и ||.
Снимок.PNG
 
Изменено:

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
60
кто хочет расти, тот читает книжки и двигается вперёд.
кто не собирается становиться профи, тот не будет тратить время на освоение профессиональных инструментов.
в иде все ошибки указываются при компиляции.
и этого большинству достаточно.
но , конечно, каждый волен поступать как хочется.
 
  • Лойс +1
Реакции: ТехнарьКто

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Тут дело не в росте, а в инструментарии. Есть отвёртки и отвёртки с трещоткой, а ещё есть шуруповёрт - например QtCreator или VS Code. QtCreator мне больше понравился и в самом Qt есть библиотека для работы с сом портом https://doc.qt.io/qt-5/qserialport.html.

Пы.Сы.
Кто хочет попробовать помогу чем смогу.
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
785
172
property string ARDUINO_CORE: "C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino" property string ARDUINO_DIR: "C:/Program Files (x86)/Arduino/hardware/arduino/avr" property string ARDUINO_LIB_DEF: "C:/Program Files (x86)/Arduino/hardware/arduino/avr/libraries" property string ARDUINO_LIB_USER: "C:/Users/X-Ray/Documents/Arduino/libraries" property string ARDUINO_MCU: "atmega2560" property string AVR_GCC_Path:"C:/Program Files (x86)/Arduino/hardware/tools/avr/bin/"
зачем вы усложняете себе жизнь со всеми этими путями и прочими настройками которые в ардуино готовые?!

тонкая настройка требуется только в исключительных проектах.

сравните количество строк и файлов блинка в ардуино иде, платформио, Qt Creator и т.д.
в итоге окажется что "шуруповёрт" это ардуино, а вы пользуетесь "отверткой"
 
  • Лойс +1
Реакции: ТехнарьКто

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Пишется один раз, а дальше копипаса, вы же не покупаете по шуруповёрту на каждый винт.
Ну блинк с нормальным проектом это как ... с пальцем сравнивать.
 
Изменено:

IamNikolay

★★★✩✩✩✩
15 Янв 2020
785
172
Пишется один раз, а дальше копипаса, вы же не покупаете по шуруповёрту на каждый винт.
о каком копи пасте может идти речь если под разные контроллеры делать?!
в ардуино - просто в настройках выбрать плату, а здесь вам придется кучу строк менять, да еще знать где у вас какие файлы!


Ну блинк с нормальным проектом это как ... с пальцем сравнивать.
это вообще к чему?!
блинк был взят как самый простой и короткий код, если вам нечем заняться - можете взять любой другой пример и сравнить на нем.
вот код простого блинка на ардуино иде, это и есть весь код.
C++:
void setup() {
  pinMode(13, OUTPUT);   
}
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
а теперь напишите то же самое на предлагаемом вами qt и посмотрите разницу.....
 
  • Лойс +1
Реакции: ТехнарьКто

ТехнарьКто

★★★★★✩✩
13 Янв 2020
242
414
Пишется один раз, а дальше копипаса, вы же не покупаете по шуруповёрту на каждый винт.
Ну блинк с нормальным проектом это как ... с пальцем сравнивать.
Вы заблуждаетесь. Arduino IDE - это шуруповерт с автосменой насадок. Предлагаемое вами - это моторчик с кучей насадок в рядом стоящем чемодане.

Arduino IDE это не блокнотик, а интегрированная среда разработки поддерживающая работу на Windows, MacOS и Linux. В Arduino IDE нет ничего плохого или глупого, поскольку среда разработки сделана таким образом, чтобы скрыть от начинающего все механизмы, использование которых совершенно обычно для тех, кто разрабатывает программное обеспечение для голого AVR используя чистый C++ или ассемблер. Без доработки напильником, программная платформа Qt Creator создает прошивки, занимающие в два раза больше места, чем Arduino IDE. Поэтому предлагать обычный QT Creator всем подряд , просто не культурно.

При целенаправленной доработке Qt Creator-a под работу с Arduino, после компиляции получается сходный размер прошивки, что и в Arduino IDE. Поэтому допиленный до адекватной работы Qt Creator, тот же Arduino IDE, но другого цвета.

PS Если Вы за профессионализм, то почему еще на ассемблер не перешли? У Вас памяти в контроллере лишней много, или задачи сложнее мигания светодиодом отсутствуют? А если просто светодиодом мигать, то Arduino IDE удобнее. А вот если Вы давно программист знающий С++ тогда впервые увидев скетч происходит ступор. Где же любимая функция main() зачем это расширение *.ino, куда стырили расположение точки входа. И побежал программист плюясь устанавливать Qt Creator и возрадовавшись создал в креаторе программу и ради прикола сравнил с Arduino IDE, и опечален результатом был безмерно. И прозвучал выстрел пистолета для бега по граблям. И побежал программист по граблям, долго ли коротко но получил и в лоб и по детородному органу но добежал таки и получил размер файла как и в Arduino IDE, и счастлив стал программист безмерно.
По мотивам давнего разговора со знакомыми программистами об их отношении к обсуждаемому сейчас вопросу.

PPS Нету стандартов C++17 с плюшками. Есть язык C++ и новые версии этого языка программирования. И этот язык программирования будет один и тот же, что для Qt Creatora, что для Arduino IDE но в любом случае ассемблер будет круче.
 

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Вы заблуждаетесь. Arduino IDE - это шуруповерт с автосменой насадок. Предлагаемое вами - это моторчик с кучей насадок в рядом стоящем чемодане.
Ну большие скетчи в тысячи строк кода в нём писать одно мучение, нет рефракторинга, нет поиска с регулярными выражениям, нельзя перемещаться по коду (Ctrl+клик) и многое другое, короче каждый хвалит своё болото.
Но попробовав Qt Creator я не хочу туда возвращаться. Я ни кого не заставляю, я лишь даю возможность попробовать что то новое.
C++:
C:\Windows\system32>C:\Junk_Yard\Downloads\cloc-1.88.exe C:\Junk_Yard\PRO\ARDUINO\7e2_Mod_lcd1602_v8_1
      29 text files.
      27 unique files.
       6 files ignored.
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                             12            533            223           5373
C/C++ Header                    13            439            220           2406
XML                              1              0              1            344
QML                              1             33             18            165
-------------------------------------------------------------------------------
SUM:                            27           1005            462           8288
-------------------------------------------------------------------------------
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
2,572
792
Мужики, не надо горячится..
В Ардуино ИДЕ на самом деле весьма унылый набор инструментов по сравнению с любой хорошей средой разработки, с этим как-то даже смешно спорить. Другой вопрос, нафига тратить столько труда нанастройку совершенно неподготовленного для работы с микроконтроллерами пакета QTCreator, когда есть готовый Visual Studio c его плагином VMicro
Там все проблемы автора уже решены - настройки компиляции и библиотеки для любых плат VMicro автоматически подтягивает из самой Ардуино ИДЕ, поэтому в большинстве случаев размер кода в обоих ИДЕ совпадает до байта.

допиленный до адекватной работы Qt Creator, тот же Arduino IDE, но другого цвета.
Простите, но Вы похоже судите о том, чего не пробовали. Ардуино ИДЕ, конечно же, очень урезанная среда.
В частности, чем я пользуюсь в Вижуал Студио и чего очень не хватает в Ардуино ИДЕ:
- подсветка ошибок уже ПРИ НАБОРЕ кода, а не только при компиляции
- автоматическое дополнение имен переменных, дефайнов, методов и тд (при использовании длинных имен типа nightLightSensor в ардуино запаришься каждый раз набирать их целиком)
  • справка по значениям дефайнов, парметрам методов и тд. Поясню - наводите мышку на дефайн, например F_CPU - и вам во всплывающей вкладке показывается ее текущее значение. Для процедур и методов - обьявление функции с описаниюми парметров. Очень удобно чтоб не лазать по куче вложенных файлов
  • по любому методу, классу, процедуре, определению можно по одному клику мышки перейти в файл, где находится описание этой функции, класса и тд
Ну и куча других плюшек, в частности поддержка систем контроля версий, сохранение настроек для проекта , а не для всей ИДЕ как в Ардуино...
Конечно, не каждому новичку это нужно. Если человек пришел всего лишь повторить проект и не хочет ни во что вникать - это не для него. Тут все-таки нужны несколько более продвинутые знания в С/С++.И есть свои особенности.
Однако не надо думать. что это только для профессионалов. После небольшого освоения писать код становится значительно удобнее.
 
  • Лойс +1
Реакции: kostyamat и Un_ka

kDn

★★★★★✩✩
18 Ноя 2019
1,112
440
Ардуино ИДЕ убогое поделие. Работать в нем совершенно невозможно, особенно учитывая на наплевательское отношение к стандартам, порядку линковки и зависимостям. Как итог в проектах чуть сложнее блинка начинают появляться весьма странные и загадочные ошибки. Кроме того громадный минус - просто крайне долгое время компиляции проекта. Ну а редактор - он практически отсутствует в принципе, т.к. от того же блокнота не далеко ушел. В общем я промучался с этой средой месяц и более возвращаться к ней не собираюсь вообще. Нервы целее будут.

Альтернативу же нашел в связке VS Code + Platformio - работает замечательно.
 

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
Альтернативу же нашел в связке VS Code + Platformio - работает замечательно.
Тоже пробовал, но затем вернулся к QtCreator`у из-за того что под десктоп писать начал приложения в Qt до активного использования Arduino. В одном месте и то и другое, так привычнее.
Простите, но Вы похоже судите о том, чего не пробовали. Ардуино ИДЕ, конечно же, очень урезанная среда.
В частности, чем я пользуюсь в Вижуал Студио и чего очень не хватает в Ардуино ИДЕ:
...
Вот и я о том же. Предлагаю альтернативу и помощь в освоении.
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
785
172
Простите, но Вы похоже судите о том, чего не пробовали. Ардуино ИДЕ, конечно же, очень урезанная среда.
В частности, чем я пользуюсь в Вижуал Студио и чего очень не хватает в Ардуино ИДЕ:
здесь сравнивают две среды:
1 ардуино иде
2 QtCreator

вы добавляете 3 среду
Visual Studio c его плагином VMicro
и говорите что 1 хуже 3 по ряду причин....

разговор здесь не про выбор "лучшей среды программирования", а про то что QtCreator в сравнении с ардуино иде - неудобный и с громоздким кодом на выходе.

Тоже пробовал, но затем вернулся к QtCreator`у из-за того что под десктоп писать начал приложения в Qt до активного использования Arduino. В одном месте и то и другое, так привычнее.
это все и объясняет. писать в знакомой среде всегда легче чем изучать новую.
 
Изменено:

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
это все и объясняет. писать в знакомой среде всегда легче чем изучать новую.
В Ардуино ИДЕ изучать нечего, там просто вообще ни чего нет и ни чего не настроить.
Например автодополнение кода и подсветка ошибок.
Безымянный1.pngБезымянный2.png
 
Изменено:

IamNikolay

★★★✩✩✩✩
15 Янв 2020
785
172
В Ардуино ИДЕ изучать нечего, там просто вообще ни чего нет и ни чего не настроить.
нет чего?!
настроить можно, нужно только знать что и где настраивается.

P.S. что то вы название темы изменили, уже QtCreator "НОРМАЛЬНОЙ" (именно так с капсом было в названии) не считаете?
 

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
настроить можно, нужно только знать что и где настраивается.
Объясните мне дураку где настраивается дополнение кода и подсветка ошибок.
Хочу так же в Arduino IDE
Безымянный3.png
P.S. что то вы название темы изменили, уже QtCreator "НОРМАЛЬНОЙ" (именно так с капсом было в названии) не считаете?
Я не думал что здесь столько ранимых личностей.
Я его вам не навязываю, что вы ко мне пристали.
Хотите писать в блокноте - пишите дальше.
Если кто то заинтересуется расскажу и объясню что да как.
 
Изменено:

kDn

★★★★★✩✩
18 Ноя 2019
1,112
440
Если кто то заинтересуется расскажу и объясню что да как.
Шансы на это нулевые. Просто поверьте. :)
Мы вон год пилим прошивку под PIO и за это время ее используют те, которым объяснять ничего не нужно - они самостоятельно все умеют и знают и не используют другие - которым сколько инструкций не делай, сколько словами не объясняй - ответ один "все сильно сложно, без видео непонятно" :)

А в вашем случае даже проекта нет, на котором преимущества показать можно. Или есть? Тогда создавайте тему и может через годик народ подтянется. :)
 
  • Лойс +1
Реакции: X-Ray

IamNikolay

★★★✩✩✩✩
15 Янв 2020
785
172
Объясните мне дураку где настраивается дополнение кода и подсветка ошибок.
дополнения кода - нет
подсветка ошибок - при компиляции.
Я не думал что здесь столько ранимых личностей.
Я его вам не навязываю, что вы ко мне пристали.
Хотите писать в блокноте - пишите дальше.
Если кто то заинтересуется расскажу и объясню что да как.
как вы переменчивы то QtCreator "НОРМАЛЬНЫЙ", а остальные среды тогда что?!
Этим "НОРМАЛЬНЫЙ" как раз и вводите в заблуждение новых пользователей.
QtCreator мне больше понравился и в самом Qt есть библиотека для работы с сом портом https://doc.qt.io/qt-5/qserialport.html.
обычную поддержку ком порта представляете как некое достижение...
в ардуино иде, как и подобных средах, даже добавлять библиотеку не надо что бы в порт выводить.
 

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
обычную поддержку ком порта представляете как некое достижение...
в ардуино иде, как и подобных средах, даже добавлять библиотеку не надо что бы в порт выводить.
Вы похоже не поняли или не читали, то что по ссылке это для написания программ для компа или мобилы.

В QtCreator тоже добавлять ни чего не надо. Всё что надо из коробки есть.Снимок.PNG
 

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
что это?! зачем так делать?! посмотрите что делает функция lcd.setCursor
Устанавливает позицию куда будет производится ввод данных в память LCD. Зачем всю линию перетирать, когда можно писать только меняющиеся данные.Снимок.PNG
тогда какое отношение это имеет к микроконтроллерам?
Вам ни когда не надо было что нибудь поделать и считать данные на комп, или с компа по рулить устройством. Мне постоянно надо и не всем работникам объяснишь что через терминал водить, проще программу для компа написать и пусть кнопки тыкают.
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
2,572
792
Народ, давайте не будет скатываться к банальному флейму
Утверждать, что Ардуино ИДЕ - вершина творения - просто напросто смешно.
С другой стороны - утверждать, что QtCreator - это лучшее решение для всех - тоже не стоит.

Давайте лучше обсудим практическую сторону дела
@X-Ray, можете расписать, что именно нужно настроить в QtCreator, чтобы он мог компилировать сетчи для Ардуино?
 
  • Лойс +1
Реакции: kostyamat и X-Ray

X-Ray

✩✩✩✩✩✩✩
30 Ноя 2019
0
1
Moscow
@X-Ray, можете расписать, что именно нужно настроить в QtCreator, чтобы он мог компилировать сетчи для Ардуино?
Правда придётся немного углубиться в С++, так как Ардуино ИДЕ многое за нас делает и сливает файлы скетчей в один файл и затем компилирует.
Придётся писать правильно. Но это не сложно всего лишь объявлять прототипы функций заранее самому руками.