Файл: С чего начинаются роботы. О проекте Arduino для школьников (В.Н. Гололобов, 2011).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1227
Скачиваний: 3
Приложение Б. Работа с модулем Arduino в других средах разработки
этого служит опция (в самом низу), разрешающая редактировать makefile. Но, отредактировав всё, сохранив файл рядом с исходным, я не могу выполнить трансляцию. Всё та же ошибка. Проверяю, перезагружаясь, как работает программа в ALTLinux и openSUSE. Всё работает. Возвращаюсь в Fedora, повторяю всё от начала и до конца. И... работает, включая загрузку программы в микроконтроллер. Что я могу сказать? Программа для Windows и, если с ней чудеса в Linux, то это мои трудности.
В Windows работала программа FlowCode для AVR. Интересно, будет ли она работать в Linux.
Рис. 36. Программа Flowcode в Linux
Работает. Правки, которые я делаю для программатора, повторяют те, что сделаны для Windows, но указываю я COM1. На диске C:\ (от Wine) я создаю в корневой директории папку с именем avrdude, куда копирую файлы из проекта Arduino-0022. Программа загружается.
Я не проверял Windows программы в Linux в больших форматах. Скажем, Flowcode, похоже, не будет поддерживать работу встроенных макросов и, возможно, вставок на Си. Но простые программы должны работать. И программы, не следует забывать, созданы для Windows.
ВLinux есть своя программа для работы с AVR-контроллерами. Называется она kontrollerlab. В ALTLinux программа есть в репозитории. В Fedora и openSUSE её можно установить из исходных файлов.
ВFedora проблема возникает при использовании команды make. Появляются ошибки. Проще показать, что к чему, чем долго об этом рассказывать. Итак, скачиваем с сайта проекта исходный код:
http://www.cadmaniac.org/projectMain.php?projectName=kontrollerlab§ion=download
Я его распаковываю в домашнюю папку, где он расположен в папке kontroller.
В терминале вначале переходим в эту папку: cd /home/vladimir/kontroller .
приложение | 175
Приложение Б. Работа с модулем Arduino в других средах разработки
Следом даём команду: ./configure. Эта команда в Fedora проходит успешно, но в openSUSE требуется установить ещё ряд библиотек, касающихся X и Qt. Их можно отыскать по ключевым словам devel, X11, Qt и т.п.
Но (и в Fedora, и в openSUSE) после команды make появляются ошибки.
Рис. 37. Ошибки при создании программы kontrollerlab из исходного текста
Первая ошибка возникает в строке 235 файла kontrollerlab.cpp. О характере ошибки есть
сообщение. Откроем этот файл...
Рис. 38. Файл в исходном тексте программы, который нуждается в правке
...и найдём нужную строку.
приложение | 176
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 39. Строка, которую нужно править
Заменим KShortcut::KShortcut( "" ) на KShortcut(). Аналогично, просмотрев все указанные в перечне ошибок строки, вносим исправления. Запускаем make ещё раз, убеждаемся, что всё прошло без ошибок. И командой sudo make install устанавливаем программу. Устанавливается она по адресу: /usr/local/kde/bin/kontrollerlab. Именно эту команду следует ввести в терминал, чтобы запустить программу.
Рис. 40. Запуск программы kontrollerlab в дистрибутиве Fedora 14
А для удобства при последующем использовании программы можно создать то, что называется ярлыком в Windows и ссылкой на приложение в Linux, где прописывается команда запуска на закладке «Приложение».
приложение | 177
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 41. Командная строка запуска программы Подобрав подходящую картинку, кнопку запуска приложения располагаем на рабочем столе.
После запуска kontrollerlab в разделе «Project» выбираем «New Project», а появившемся диалоге указываем имя проекта и место, где он будет храниться.
Устанавливаем конфигурацию проекта (Project-Configure Project):
Рис. 42. Установка устройства и частоты в конфигурации проекта
На закладке «Compiler» устанавливаем опцию поддержки скорости работы процессора.
приложение | 178
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 43. Задание опции поддержки строки определения частоты в тексте программы
Если эту опцию не установить, то проходит компиляция, можно загрузить программу, но работать она будет так, как если бы тактовая частота была той, что установлена в программе по умолчанию, а записанное в исходном тексте определение частоты игнорируется. Перед тем как закрыть диалог, следует нажать кнопку «Set as default». Закрываем диалог кнопкой «ОК».
Теперь следует настроить программатор (Project-Configure programmer): на первой закладке добавляем модель программатора, с которой работает модуль Arduino.
Рис. 44. Настройка программатора для работы с модулем Arduino
На закладке «AVR DUDE» устанавливаем две опции. Нажимаем кнопку «Set current settings as default» и затем кнопку «ОК».
приложение | 179
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 45. Настройка на закладке программатора
Создаём новый файл (File-New, или кнопка на инструментальной панели), выбирая в окне диалога исходный файл на языке Си.
Рис. 46. Диалог создания нового файла
В окно текстового редактора текст программы можно перенести копированием, а затем сохранить файл. После сохранения он приобретает вид, который можно было видеть на рисунке в начале рассказа о программе kontrollerlab. Если в свойствах проекта поставить опцию «-g» (чуть выше опции поддержки тактовой частоты), то файл будет содержать информацию для отладчика.
Запустив компиляцию и компоновку проекта командой «Build project» раздела «Project» основного меню, мы получаем (если всё правильно) сообщение об удачном построении.
приложение | 180
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 47. Успешная трансляция и компоновка проекта
Загрузка программы в программатор выполняется командой «Upload» раздела «Project» основного меню, или можно использовать иконку с изображением ракеты на инструментальной панели. При удачной загрузке вы получите в окне вывода сообщение.
Рис. 48. Успешная загрузка программы в модуль Arduino
Чтобы убедиться, что всё правильно, можно изменить время паузы на 5 секунд и повторить операции по трансляции и загрузке.
Настройки программы kontrollerab в ALTLInux имеют больше особенностей, чем в других дистрибутивах. Хотя и avr-gcc, и сама программа загружались из репозитория ALT, при попытке оттранслировать программу сразу появляется сообщение, что файлы включённых заголовков не найдены.
Проблема решается, если указать место, где эти файлы находятся, явным образом. Заходим в пункт «Configure Project» раздела «Project» основного меню, открываем закладку «Compiler» и добавляем в команду несколько слов, указывающих к нужному месту в файловой системе.
приложение | 181
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 49. Изменение команды вызова компилятора в ALTLinux
Строка должна выглядеть так:
avr-gcc -I/usr/include/avr
Попутно устанавливаем опцию «Define F_CPU symbol». Эта проблема касается всех дистрибутивов: без этой опции тактовая частота остаётся равной заданной по умолчанию.
Теперь компиляция (Prolect-Build project) проходит. В настройках программатора, помимо выбора, сделанного в основном окне, установлены опции на закладке «AVR DUDE».
Рис. 50. Окончательная настройка программатора в ALTLinux
Хотя kontrollerlab имеет отладчик, но с ним у меня отношения не сложились. Конечно, можно
приложение | 182
Приложение Б. Работа с модулем Arduino в других средах разработки
было бы выяснить причину этого, но средства отладки модуля Arduino достаточно обширны и без поиска причин неудачи с отладчиком этой программы.
Почти все среды разработки на базе микроконтроллеров AVR, о которых рассказано выше, используют компилятор AVR-GCC, полнофункциональное СПО. Прочитать о компиляторе можно, например, на сайте:
http://electrons.psychogenic.com/modules/arms/art/3/AVRGCCProgrammingGuide.php
Можно загрузить руководство по использованию языка в формате pdf на сайте:
http://nettopdf.info/en/pdf/+AVR-GCC+Manual-.html
Оба описания на английском языке. Но, во-первых, основа – это язык Си, а книг на русском об этом языке программирования более чем предостаточно; во-вторых, если вы решили использовать язык Си, то как-то нужно приспосабливаться к английскому языку; и, наконец, если вы только начинаете работать с микроконтроллерами, с модулем Arduino, то пройдёт достаточно времени до того момента, когда вам потребуется программирование на языке Си, и вы успеете освоиться с английским языком.
Когда, работая над рассказом, я коснулся темы AVR Studio, я обнаружил, что появилась новая версия этой среды разработки. Чтобы скачать программу, требуется регистрация. Не вполне ясно, отчего обязательными являются пункты, которые относятся только к пользователям в США, но, как получилось, я заполнил бланк. Если возможность скачать программу реализуется, я постараюсь рассказать немного о новой версии. Если же нет, то на нет и суда нет…
Однако всё получилось. Пакет весит изрядно, но, будем надеяться, оно того стоило. Запускаем установку программы, которая начинается с установки необходимых компонентов Microsoft Visual Studio.
Рис. 51. Установка компонентов от Microsoft
По окончании этой части процесса начинается установка AVR Studio.
приложение | 183
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 52. Начало установки программы
Хотя время в таких ситуациях тянется невыносимо долго, но всему неприятному приходит конец.
Рис. 53. Завершение установки AVR Studio 5
После того, как вы нажмѐте кнопку «Finish», благодаря установленной опции, запускается сама программа.
приложение | 184
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 54. Первый запуск программы
Собственно, это ещѐ не запуск программы, а диалог выбора: вы можете создать проект (New Project), использовать проект примера или открыть существующий проект (Open Project). Всѐ это вы выбираете слева. А на основных закладках можете выбрать знакомство с программой на закладке «Get Starting», ознакомиться с инструментарием для работы с AVR-контроллерами (AVR Tools Help) и подписаться на новости.
При выборе знакомства с программой следует учесть, что файл будет получен из Интернета, то есть компьютер должен быть подключѐн к сети.
приложение | 185
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 55. Руководство по начальным шагам работы с программой
Выбрав новый проект, вы можете продолжить выбор создания проекта: я, например, выбираю пустой проект для GCC компилятора. Там же выбираю имя проекта, а предлагаемое место хранения проекта оставляю без изменений. Далее есть возможность, об этом позаботился помощник создания нового проекта, выбрать модель микроконтроллера.
Рис. 56. Выбор модели контроллера
Если вам лень продвигаться по списку вручную, можете ввести модель в окно поиска. Выбор завершѐн, вы получаете окно редактирования с готовым шаблоном, куда можете сразу скопировать текст вашей программы, если он, конечно, есть (у меня так).
приложение | 186
Приложение Б. Работа с модулем Arduino в других средах разработки
Рис. 57. Добавление текста программы копированием готового варианта
В окне меню вы можете выбрать режим работы: Debug для отладки, Release для готового проекта. В любом случае программа создаст необходимые папки для работы с файлами. Следует проверить свойства проекта, в разделе «Project» основго меню есть команда «test Properties». На первой закладке вы устанавливаете опции файлов, которые хотите получить в результате трансляции. А на последней закладке выбираете отладчик. Нажав кнопку подтверждения выбора, сохраните всѐ, используя, например, иконку на инструментальной панели с множеством дискет. Можно запустить трансляцию (BuildBuild <имя вашей программы>). Если в программе есть ошибки – вы могли не добавить включение нужного файла заголовков – вы получите сообщение в окне выхода в нижней части экрана. Это полезно, когда вам нужно выяснить причины неудач.
Новая версия стала мощнее, интереснее, несомненно, но меня более всего устраивает то, что теперь я могу использовать еѐ непосредственно с модулем Arduino.
Заходим в раздел «Tools» основного меню и открываем «External Tools…». Предварительно скопировав два файла avrdude (исполняемый и конфигурации) в папку с документами, где программа создаѐт новую папку «AVRStudio», я прописываю в окне диалога название программатора, место, где находится исполняемый файл программатора и те аргументы, которые будут переданы в программу avrdude.
приложение | 187