Шаблон для швидкого старту на Arduino Due в QtCreator

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

image

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

Друге — і це змусило його вже купити — це ціна. У мене є досвід розробки заліза на схожому контролері (розробляв автомобільний трекер), і цей досвід наполегливо зашепотів, що ціна за модуль з доставкою в 15$ при вартості тільки контролера на Диджикее в 12$ — це дуже вигідно. Бонусом йшов інтегрований джерело живлення з діапазоном вхідної напруги від 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. На цьому підготовка закінчена.

Використання

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

image

Далі:

image

Тут прописуємо шляху:

image

Отримуємо проект:

image

Відкриваємо qbs-файл і перевіряємо шляху. В принципі, якщо все було зроблено так, як йшлося на попередніх етапах — все повинно бути в порядку. Але краще перевірити:



Далі йдемо в «Проекти» вкладка «Запуск» поточного комплекту:



У етапі «Установка» очищаємо поточний метод і тиснемо «Установка, додати етап». Вибираємо «Особливий» і пишемо в рядку «Команда» stty. У рядку «Параметри»-F your_port speed 1200 cs8-cstopb-parenb, де замість your_port підставляємо свій порт.

Переходимо до етапу «Запуск». У рядку «Команда» вибираємо програму bossac. В рядку «Параметри» -U false-e-w-v-b your_progect_name.bin-R, де замість your_progect_name підставляємо ім'я проекту.

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




І насолоджуватися миготливим світлодіодом.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.