Arduino qt creator windows

В связи с тем что намечаю создание собственного робота управляемого через XBee, мозгом которого будет является компьютер, возникла надобность освоить заранее управление Arduino с помощью USB-интерфейса.

В результате будет создана программа управляющая светодиодом имеющая 4 режима — светиться, не светиться, помигать, помигать n раз.

Будет использоваться русская Qt библиотека qserialdevice. Скачать её можно здесь: qserialdevice

Просто введите в консоль git clone gitorious.org/qserialdevice и она появится в текущей папке. Далее следуйте инструкциям в файле Readme_ru.txt.

Сразу стоит сказать что Arduino имеет встроенный преобразователь USB-UART FT232R который обеспечивает виртуальный COM-порт, поэтому управлять платой не сложно. Всю сложную работу по коммутации ПК->Arduino за вас сделает преобразователь и драйвер для него, который обычно уже есть на вашей ОС.

Ещё стоит наверное знать что если вы используете Linux вы можете посылать данные следующим образом: echo _SIGNAL_DATA_ >> /dev/ttyUSB0

Начнём создавать Qt приложение. Сперва нужно создать интерфейс, оболочку и потом реализация посылки данных в Arduino по запросу пользователя.

Заметка для пользователей Linux

Если при компиляции библиотека не будет найдена тогда зайдите в директорию библиотеки qserialdevice через терминал qserialdevice/src/build/release и скопируйте в папку с библиотеками /usr/lib/: sudo cp libqserialdevice.a /usr/lib

2. Файлы заголовков тоже нужно скопировать. Создайте директорию sudo mkdir /usr/include/qserialdevice. Зайдите в /qserialdevice/src/qserialdevice и скопируйте в /usr/include/: sudo cp * /usr/include/qserialdevice

Потом переходите на уровень выше и копируете другой важный файл: cd… && sudo cp qserialdevice_global.h /usr/include/

Теперь можно полноценно использовать библиотеку.

Создаём Qt GUI проект обычным методом без формы. В конструктор MainWindow пишем:

Будем считать GUI готовым. Весь код целиком с комментариями доступен по этой ссылке:

Теперь пора реализовывать работу с USB-интерфейсом. Сначала я хотел сделать для работы свой класс-обёртку, но библиотека qserialdevice и так достаточно абстрагирована поэтому нужды в этом нет.

Начнём с создания функции инициализации initSerial():

Функция инициализирует объект AbstractSerial — указывается устройство dev, скорость baudRate. В случае успеха возвращает — true, иначе — false.

Использование функции в конструкторе MainWindow выглядит так:

Далее создаём функцию для отправки данных.

Очень простая функция. Всего-то навсего отправляет массив байтов QByteArray на порт. Массив данных QByteArray — очень удобный класс. Имеет много удобных методов для работы с байтовыми массивами — clear, resize и т.д.

Теперь осталось только сделать обработчики нажатий на кнопки(слоты) и соединить их с кнопками.

ShowLigth — включить светодиод, HideLigth — выключить, Blink — дать команду помигать(да, эта функция у меня реализована в самом arduino, но это не важно, каждый сам выбирает способ реализации), BlinkN — дать команду на мигание и послать требуемое количество миганий.

Соединение кнопок с обработчиками в конструкторе MainWindow:

Всё, теперь желаемая функциональность программы реализована!

Теперь в качестве бонуса я создам обработчик получения данных и вывода их в терминал.

Создаём слот для получения данных:

Опять же очень просто. Я использовал функцию qDebug(), у неё немного специфический вывод, но для демонстрации подойдёт.

Связываем слот с событием в функции initSerial:

Вот и всё! Теперь вы можете создавать полноценные Qt приложения которые могут иметь возможность связи с вашей Arduino платой либо другим устройством.
Стоит выразить уважение создателю qserialdevice т.к. на самом деле очень удобная и простая библиотека.

Источник

Arduino qt creator windows

Qt Creator Arduino configuration

This repository creates a template that allows you to configure Qt Creator as your Arduino’s IDE.

Portuguese spearks / Pessoal de lingua portuguesa: Postei uma série de videos no youtube de como configurar todo seu ambiente de desenvolvimento, confira em https://www.youtube.com/user/cleitonsouza01/playlists

Qt Creator is a cross-platform IDE where you can develope on Windows, Linux or Mac. Qt Creator is advanced IDE that provides a lot of smart things to help you to develop more quickly and easily. Some main features of Qt Creator:

Читайте также:  Mb officecenter 427 драйвер windows 7

With all these and many more features, Qt Creator can be lightweight, and for me, is one of the best IDE’s available.

This repository provides a template that allows you to configure Qt Creator as your Arduino’s IDE.

What you need to use (pre-requisites):

Boards supported and tested

Theoretically this template can support all boards that Arduino-MakeFile support, it means:

I already tested successfully with:

If you have tested any other boards, please tell me about your experience!

In this repository you will find two folders:

Execute the following commands in Terminal:

You should see something similar to this:

Note:

/Qt then hit [TAB] to get the shell to auto-complete stuff for you.

Click on: File > New File or Project Select Arduino project

I found one Qt template created by Philippe Lucidarme (http://5lair.free.fr) but it is based on an old version of Qt Creator / Arduino-Mk version, and it seems that Philippe no longer updates this template.

About

Template to setup QT Creator as your Arduino IDE

Источник

Шаблон для быстрого старта на Arduino Due в QtCreator

Вот уже 3-й год как я нарадоваться не могу на Qt. В нем нахожу только достоинства. Он позволяет почти все. А что не позволяет, но очень надо — можно добавить и пользоваться. Так получилось и в этот раз.

Предыстория

Почему-то у меня к Arduino было отношение как к игрушке. До тех пор, пока не набрел на Arduino Due. Зацепила строчка в описании к модулю, что он построен на контроллере ATSAM3X8E (ядро Cortex M3). Дело в том, что с данным контроллером (вернее, с его младшей версией) я знаком не понаслышке.

Второе — и это заставило его уже купить — это цена. У меня есть опыт разработки железа на похожем контроллере (разрабатывал автомобильный трекер), и этот опыт настойчиво зашептал, что цена за модуль с доставкой в 15$ при стоимости только контроллера на Диджикее в 12$ — это очень выгодно. Бонусом шел интегрированный источник питания c диапазоном входного напряжения от 18В до 7В, 2 USB (Programming и Native).

Постановка задачи

Модуль пришел достаточно быстро. Дальше начались танцы.

Дело в том, что в бытность свою инженером-конструктором основной IDE для меня был IAR, а системой — Windows. Сейчас же основная работа связана с написанием приложений под Linux. То есть, Qt и Ubuntu соответственно. Пойдя по пути наименьшего сопротивления, установил IDE от Arduino. Запустил и сразу понял, что это не для меня. Общее впечатление — блокнот.

Решил разработку как-то вести в Qt Creator’e. Исследовав интернет на тему «может это есть и можно применить у себя», понял: очень много информации касательно Arduino написано для AVR-based модулей. По Arduino Due информации кот наплакал. А нужной и совсем нет. Это одна из причин, по которым я пишу эту статью. Разочаровавшись, стал копать в сторону связки Qt — Cortex-M3/M4. Взяв на вооружение статьи «Программируем микроконтроллеры в QtCreator» и «Программируем микроконтроллеры stm32 при помощи QtCreator». Стал творить. Скажу сразу — статьи задали только направление.

Как и любой программист — я немного ленив. Поэтому решил сделать шаблон для Qt, чтобы всегда под рукой был.

Решение
Подготовка

Для начала установим Qt Creator и Arduino IDE. Как ставить — информации море. Останавливаться не буду.

В Arduino IDE устанавливаем поддержку модулей Arduino Due. В дальнейшем я буду вести повествование для Linux. Sapienti sat, как говорится. Почему-то она (поддержка) устанавливается в скрытую папку [home_path]/.arduino15. Исправляем этот недочет — копируем (или переносим — кому как нравится) папку [home_path]/.arduino15/packages/arduino/hardware/sam/1.6.4 в папку [arduino_path]/hardware/sam,
папку [home_path]/.arduino15/packages/arduino/tools в папку [arduino_path]/hardware/tools
. В папке [arduino_path]/hardware/arduino/sam/cores/arduino удаляем (переименовываем) файл main.cpp. Если необходимо, скачайте порт FreeRTOS и положите в папку [arduino_path]/libraries. Далее, стягиваем с гитхаба шаблоны и копируем в папку [qt_path]/Tools/QtCreator/share/qtcreator/templates/wizards. На этом подготовка закончена.

Читайте также:  Error code 0xc0000428 windows 10

Присоединяем Arduino Due через Programming Port (через Native Port надо будет вручную стирать и сбрасывать чип). Запускаем QtCreator. Жмем «Новый проект» и наблюдаем слева новый пункт меню «Arduino ARM» (см. верхний скрин). Выбираем необходимый пункт и жмем «Выбрать. »:

Здесь прописываем пути:

Открываем qbs-файл и проверяем пути. В принципе, если все было сделано так, как говорилось на предыдущих этапах — все должно быть в порядке. Но лучше перепроверить:

Далее идем в «Проекты» вкладка «Запуск» текущего комплекта:

На этом подготовка к использованию завершена. Можно жать на «Запустить»:

Источник

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

Nikanor

Nikanor

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

IamNikolay

зачем вы усложняете себе жизнь со всеми этими путями и прочими настройками которые в ардуино готовые?!

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

сравните количество строк и файлов блинка в ардуино иде, платформио, Qt Creator и т.д.
в итоге окажется что «шуруповёрт» это ардуино, а вы пользуетесь «отверткой»

IamNikolay

ТехнарьКто

При целенаправленной доработке 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 но в любом случае ассемблер будет круче.

Источник

Arduino в Linux: настраиваем Qt Creator в качестве среды разработки

Платформа Arduino популярна, независимо от того, ругают её или хвалят. Её создателям удалось снизить порог вхождения до уровня несколько кликов мышью + пара строк кода и вуаля — вот вам моргающий светодиодик. И вообще, для быстрого прототипирования поделок на AVR, Arduino вещь крайне удобная. Единственное что им не удалось это IDE, которую и IDE-то назвать сложно. Среди функций IDE она обеспечивает только одну — автоматизацию создания и сборки проекта.

Для пользователей Windows существует альтернатива: MS Visual Studio Community + плагин vMicro который позволяет писать скетчи, но уже со всеми вкусностями, предоставляемыми IDE. Плагин без проблем качается в самой студии через меню «Инструменты» и в триале работает сколько угодно. Платная версия в теории поддерживает пошаговую отладку, но меня, как владельца лицензионной копии vMicro они не очень-то и впечатлили.

Для пользователей Linux всё как всегда: хотим хорошую IDE — выбираем «жертву» и пытаемся прикрутить к ней нужный функционал. Существуют решения на базе Eclipse, но я не люблю эклипс, о чём уже однажды писал. Я мирюсь с ним как с неизбежным злом, когда под рукой нет вообще ничего подходящего. Из всех бесплатных IDE я больше всего уважаю мощный и замечательный Qt Creator, в котором я и моя команда работаем уже больше года. Поэтому и рассказывать буду о том, как превратить его в среду разработки для Arduino.

Читайте также:  Windows 10 lite 32 bit iso

1. Подготовка почвы

Qt Creator имеется в репозиториях любого более-менее уважающего себя дистрибутива Linux. Например в арче его получают так

Кроме того, нам понадобятся пакеты, касающиеся самой Arduino

В тот день, когда мы наконец забудем Arduino нам понадобятся ещё компилятор, ассемблер, компоновщик и стандартная библиотека C для AVR, поэтому ставим и их

Отладчик и эмулятор мы опробуем уже в этой статье, поэтому установим ещё такие пакеты

2. Создаем проект в Qt Creator

Запускаем Qt Creator и создаем новый проект без Qt на языке C++

Выбираем расположение проекту и даем ему имя

В качестве системы сборки берем штатный qmake

Рабочий комплект оставляем по-умолчанию, поправим это потом

Под контроль версий добавляем проект по желанию

Получаем стандартный C++ проект

В проекте всего два файла: main.cpp и led-blink.pro. Первый удаляем, второй вычищаем от всего что там написано, получая совершенно пустой проект

Теперь ручками начинаем писать текст в *.pro файл, формируя структуру проекта для Arduino

Исключаем из проекта всё что касается Qt и выбираем шаблон проекта

Задаем каталог для собранного бинарника и его имя

Дальше подключим директории поиска заголовочных файлов

Задаем компилятор C и его ключи

и компилятор C++ и его ключи

задаем компоновщик и его ключи

Настраиваем постобработку ELF-файла, с целью перекрутить его в Intel HEX для последующей прошивки в плату

Указываем, какие заголовочные файлы включаются в проект

Задаем файлы исходных текстов Arduino Core

Так, ну а когда мы собственно начнем писать скетч? Сейчас и начнем, но то что мы проделали, благородные доны, это необходимый минимум для того чтобы код скетча заработал.

Теперь добавляем в проект исходник скетча. Правой кнопкой щелкаем по проекту в дереве и выбираем «Добавить новый. » Добавляем файл исходных текстов C++

Чтобы упорядочить исходники внутри проекта, в следующем окне

жмем «Обзор» и создаем папку src для файлов *.cpp

Теперь даем файлу имя

Жмем на следующем окошке «Завершить». Получаем такую картинку

IDE добавит этот файл в скрипт сборки led-blink.pro

но, чтобы не делать длинных списков исходников, я обычно делаю так

Теперь сделаем то, что Arduino IDE нам никогда не обеспечит: добавим к скетчу заголовочный файл, проделав действия аналогичные вышеописанным

В этот файл добавим необходимые проекту заголовки

настроим пути к заголовкам и исходникам

и вот теперь, наконец, напишем скетч

Теперь щелкаем правой кнопкой по дереву проекта и выбираем «Собрать»

Идем в папку проекта. У нас появился каталог bin/, в котором лежат продукты работы компилятора

Всё ок, присутствует ELF, который пригодится при отладке и hex для прошивки в контроллер. Теперь напишем очередную моргалку светодиодом на пине 13

Собираем проект, заходим в bin/. Втыкаем в усб вашу плату. В моем случае это Uno, в моей системе она выставляет для программирования порт с именем /dev/ttyACM0. Выполняем команду

сообщает нам, что процесс прошел нормально. Светодиодик будет моргать с частотой 2 Гц.

В принципе, можно настроить прошивку и в IDE. Для этого делаем настройки запуска такими

и, выбрав запуск проекта (нажав Ctrl + R) мы выполним прошивку и запуск так же точно, как это делает Arduino IDE.

Выводы

Описанный процесс настройки — довольно трудоемкая процедура. Но взамен мы получаем всю мощь одной из самых замечательных IDE, существующих в системах на базе ядра Linux (да и Windows это тоже касается). Автодописывание, рефакторинг, удобная навигация по коду — всё это теперь можно с успехом использовать.

Этот пример сделан, что называется, «в лоб». На деле Arduino IDE компонует Arduino Core в отдельную статическую библиотеку core.a и линкует с исполняемым файлом. В итоге прошивки собранные в стандартной среде выходят меньше по размеру, чем в описанном в статье методе. С этими нюансами мне ещё предстоит разобраться. А заодно в следующей заметке на эту тему мы поговорим о:

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector