Штука очень симпатичная. Есть плата, к которой "бутербродиком" подключаются платы расширения, причем их полно всяких разных - ethernet, радио, что-то для роботов и т.п.
И есть среда разработки, в которой полно готовых примеров и библиотек для работы с самой ардуинкой и платами расширения. Там используется некий язык processing - по факту это с++ с некоторыми библиотеками и скрытой от пользователя функцией main()
В плату ардуино встроен usb-usart преобразователь, компьютер определяет ее как com-порт. В процессоре уже сидит загрузчик, который позволяет залить свою программу с компьютера без использования аппаратных программаторов.
Все это очень удобно для быстрого старта.
Однако редактор очень уж примитивный - даже до нотепад++ не дотягивает. Нет фолдинга, нет перехода от ошибок к строчке кода, я уже молчу про автокомплит и подобные фичи.
Ну и программа состоит из 1 файла и библиотек, что не всегда удобно.
На работе для мег я пользуюсь связкой eclipse + scons + avrstudio. Но дома у меня отладчика нет, avrstudio не нужна. Для заливки программы в ардуино воспользуемся avrdude.
Итак, задача минимум - сделать программу вывода "hello world" в порт, построить проект, залить его на плату. Дальше прикрутить eclipse - и уже можно жить.
scons - это аналог make. В отличие от make - это программа на питоне и билд-файл также является программой на питоне, в которой доступны примитивы сконса. Это приводит к некоторым тормозам в процессе выполнения билд-файла, однако открывает широчайшие возможности - нам доступны все возможности языка программирования общего назначения и куча готовых библиотек для питона.
Компилятор и avrdude можно взять из установленной среды arduino, я скачал актуальные версии. avr-gcc у меня 4.9.2, со всей мощью с++11 :)
Сразу перейдем к результату.
Файл Sconstruct очень простой
e = Environment(tools=[(
'build', {
'board':'UNO'})],
toolpath=["../common"],
COM='COM8')
e.ObjectH("test.cpp")
e.Libraries(['Ethernet', 'SPI'])
e.Prog('test')
Команда scons в папке с проектом собирает программу. scons write=1 собирает программу и записывает ее на плату. Также эклипс настроен так, что информацию о путях и макросах он берет автоматически, вызывая тот же scons. Эклипс фактически используется как (очень) продвинутый редактор, все настройки компиляции - через scons.
Основная работа делается в файле build.py. Я выдрал из установленной среды файлы библиотек и ядра - мне так проще с точки зрения последующих модификаций. Также я вручную преобразовал в питоновские структуры информацию о платах из файла boards.txt. Можно было бы пойти по другому пути и сделать разбор файлов среды - брать оттуда ключи компиляции и т.п. - но мне пока это не нужно.
Готовый реп со всем этим добром доступен по ссылке
И есть среда разработки, в которой полно готовых примеров и библиотек для работы с самой ардуинкой и платами расширения. Там используется некий язык processing - по факту это с++ с некоторыми библиотеками и скрытой от пользователя функцией main()
В плату ардуино встроен usb-usart преобразователь, компьютер определяет ее как com-порт. В процессоре уже сидит загрузчик, который позволяет залить свою программу с компьютера без использования аппаратных программаторов.
Все это очень удобно для быстрого старта.
Однако редактор очень уж примитивный - даже до нотепад++ не дотягивает. Нет фолдинга, нет перехода от ошибок к строчке кода, я уже молчу про автокомплит и подобные фичи.
Ну и программа состоит из 1 файла и библиотек, что не всегда удобно.
На работе для мег я пользуюсь связкой eclipse + scons + avrstudio. Но дома у меня отладчика нет, avrstudio не нужна. Для заливки программы в ардуино воспользуемся avrdude.
Итак, задача минимум - сделать программу вывода "hello world" в порт, построить проект, залить его на плату. Дальше прикрутить eclipse - и уже можно жить.
scons - это аналог make. В отличие от make - это программа на питоне и билд-файл также является программой на питоне, в которой доступны примитивы сконса. Это приводит к некоторым тормозам в процессе выполнения билд-файла, однако открывает широчайшие возможности - нам доступны все возможности языка программирования общего назначения и куча готовых библиотек для питона.
Компилятор и avrdude можно взять из установленной среды arduino, я скачал актуальные версии. avr-gcc у меня 4.9.2, со всей мощью с++11 :)
Сразу перейдем к результату.
Файл Sconstruct очень простой
e = Environment(tools=[(
'build', {
'board':'UNO'})],
toolpath=["../common"],
COM='COM8')
e.ObjectH("test.cpp")
e.Libraries(['Ethernet', 'SPI'])
e.Prog('test')
Команда scons в папке с проектом собирает программу. scons write=1 собирает программу и записывает ее на плату. Также эклипс настроен так, что информацию о путях и макросах он берет автоматически, вызывая тот же scons. Эклипс фактически используется как (очень) продвинутый редактор, все настройки компиляции - через scons.
Основная работа делается в файле build.py. Я выдрал из установленной среды файлы библиотек и ядра - мне так проще с точки зрения последующих модификаций. Также я вручную преобразовал в питоновские структуры информацию о платах из файла boards.txt. Можно было бы пойти по другому пути и сделать разбор файлов среды - брать оттуда ключи компиляции и т.п. - но мне пока это не нужно.
Готовый реп со всем этим добром доступен по ссылке

Комментариев нет:
Отправить комментарий