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:

Читайте также:  Windows server 2016 отключить защитник windows

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. На этом подготовка закончена.

Читайте также:  Windows phone мелодия звонка

Присоединяем 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.

Читайте также:  Sketchup pro для windows

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