Софт

Ide для Arduino

Рейтинг: 4.4/5.0 (524 проголосовавших)

Категория: Windows

Описание

Arduino Uno: Основы программирования

Основы программирования

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

Хотя я немного разбираюсь в программировании, сегодня притворюсь, что никогда не слышал о языках программирования и постараюсь максимально доходчиво показать, как новичок осваивает новую для себя деятельность.

Во-первых, нам придётся писать примеры на C++-подобном языке. Поэтому можете похвастаться перед знакомыми, что пишите программы на C++. Во-вторых, он очень упрощённый, и вам не нужно бояться его.

Если помните, мы запускали учебный пример Blink. но на самом деле мы пропустили самый первый учебный пример BareMinimum. Давайте его откроем: File→Examples→1.Basics→BareMinimum. Откроется окно с следующим кодом:

Вам сейчас необходимо запомнить, что в программе должны быть две обязательные функции: setup() и loop(). После названия функции и круглых скобок идут фигурные скобки, внутри которых будет располагаться ваш код. Говорят, что между фигурными скобками располагается блок кода для функции или тело функции.

Функция setup() запускается один раз, после каждого включения питания или сброса платы Arduino. В теле данной функции пишется код для инициализации переменных, установки режима работы цифровых портов, и т.д. В дальнейших примерах вы увидите этот механизм.

Функция loop() в бесконечном цикле последовательно раз за разом исполняет команды, которые описаны в её теле. Т.е. после завершения функции снова произойдет её вызов.

Рекомендую создать новый пустой скетч (так называют программы в Arduino) через File | New. (Файл | Создать) и вручную написать описанный код. Это поможет вам лучше запомнить две функции, а также увидеть, как работает среда разработки.

А теперь мы можем снова открыть пример Blink и изучить его шаг за шагом.

В функции setup() мы видим три строчки:

Сначала идёт комментарий к коду, который начинается с двойного слеша (//). Всё, что идёт после двойного слеша и до конца строки считается комментарием. Вы можете писать сюда что угодно, на программу это никак не повлияет. При написании своих программ советую не скупиться на комментарии и описывать, что выполняет ваша команда. Поверьте, очень многие новички, возвращаясь к своему коду, не могут вспомнить, что они запрограммировали.

Приблизительный перевод комментариев, которые используется в функции setup() можно перевести как:

Дальше следует сам код, который делает операцию, описанную в комментариях. Обратите внимание, что команда завершается точкой с запятой:

В старых версиях код был немного другим:

Но разработчики позже написали более грамотный код, вынеся число 13 в отдельную переменную led .

Комментарий можно перевести как:

Нам встретилась новая функция pinMode(). которая устанавливает режим для портов. Функция состоит из двух параметров. В первом параметре указывается порт, с которым мы собираемся работать. Во втором параметре мы сообщаем, как должен работать указанный порт: работать на выход (OUTPUT) или вход (INPUT). В нашем примере, вывод под номером 13 должен выводить информацию (посылать сигнал), то есть давать указание мигать светодиоду.

Мы определили в функции setup() необходимые данные для начала работы и теперь можем приступить к непосредственной реализации задачи в функции loop() .

Здесь мы видим уже четыре строчки кода. Первая строчка включает светодиод при помощи функции digitalWrite(). В первом параметре мы указываем номер порта, с которым собираемся работать, а во второй указываем константу HIGH. Забегая вперед, могу сказать что константа HIGH равна 1, и можно было написать digitalWrite(13, 1). Но такая запись не очень удобна, так мельтешение цифр в большом проекте затрудняет чтение кода. А здесь вы сразу видите, что на порту под номером 13 включается светодиод.

Далее идет команда, отвечающая за паузу - delay(). которая имеет один параметр - количество времени в миллисекундах. В нашем примере мы сделали паузу в одну секунду (1000 миллисекунд = 1 сек).

Следом идёт уже знакомая нам функция digitalWrite(). но уже с параметром LOW. который выключает светодиод (значение константы LOW равно 0).

И последняя строчка снова делает паузу в одну секунду.

Посмотрим, как работает программа. Когда мы загружаем программу в микроконтроллер, то Arduino активирует порт 13 в режиме выхода (функция setup() ), а затем начинает последовательно выполнять четыре строчки из функции loop(). включает диод-пауза-выключает диод-пауза. Когда эти четыре строчки будут выполнены, то они снова будут вызваны и будут повторяться до тех пор, пока мы не выдернем кабель.

Что мы можем изменить в данной программе? По большому счету ничего - мы можем установить только собственные значения пауз. Поэкспериментируйте с этим. Другие изменения результата не принесут - нет смысла, например, сейчас использовать другой порт или использовать режим INPUT .

Если вы хотите что-то исправить в готовой программе из примеров, то лучше это делать в новом проекте. Создайте свой скетч и скопируйте код из примера Blink. Для начала измените значения микросекунд для паузы. Теперь попробуем написать свою собственную программу на её основе. Вам понадобится обычный провод. Один конец вставляем в порт под номером 7, а второй в порт с надписью GND .

Задумка следующая. Порт может не только принимать сигнал (работать на выход), но и посылать сигнал. Фактически порт пускает через себя ток. В этом случае режим устанавливается как INPUT или INPUT_PULLUP. Если через порт идёт ток, то заставим светодиод мигать быстро-быстро. Если движение тока прервано, то мигание будет редким.

Часть кода нам уже знакома. Смотрим на новый код. Для опытов мы используем порт 7, поэтому завели новую переменную switchPin. В функции setup() мы устанавливаем для него режим на вход в особом режиме INPUT_PULLUP (подтягивающий резистор). Его особенность состоит в том, что при соединении с землёй он будет выдавать значение LOW. а при разрыве - HIGH

В функции loop() мы реализуем условие с проверкой. Считываем значение с порта 7. Если ток идёт, то значение будет LOW светодиод будет мигать часто. В противном случае светодиод будет мигать редко.

Код для мигания светодиодом вынесен в отдельную функцию flashLed(). Это сэкономит нам количество кода. Кроме того, такая функция удобна, что мы можем в её параметре задавать разные значение паузы, не повторяя остальной код.

Запустив проект, убедимся, что светодиод мигает часто. Вытащим один конец провода и увидим, что светодиод стал мигать медленно. Опять вставляем провод на место и снова светодиод будет мигать часто. Чудеса!

Когда мы подключаем плату Arduino к компьютеру через USB-порт, то можем обмениваться между ними информацией с помощью сообщений, которые отображаются в Serial Monitor. О Serial Monitor мы поговорим позже в других статьях, пока поверхностно познакомимся с ним. Допустим, у нас сгорел светодиод и он не сможет нам показать своим миганием, есть ли соединение или нет. Уберём из кода строки, относящиеся к светодиоду, и напишем код для обмена сообщениями.

Лишний код закомментирован, а функция flashLed() даже удалена. Как пользоваться программой? Запустите скетч снова, затем в Arduino IDE нажмите на значок Serial Monitor. Откроется новое окно, в котором будут быстро мелькать строки Connected с новой строки. Выдерните провод и в окне сообщения сменятся на Not connected. Таким образом, плата посылает информацию компьютеру.

На следующих занятиях мы подключим свой светодиод и заставим его не только мигать, но и затухать. Оставайтесь с нами!

Реклама

Ide для arduino:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Добавляем поддержку не родных м

    Добавляем поддержку не родных м/к в среду Arduino IDE

    Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 - их так же можно программировать в Arduino.

    Обратите внимание,что обычно микроконтроллер с завода настроен на внутренний генератор и чаще всего прошивка загрузчика переключает микроконтроллер на внеший кварц - так что Вы должны позабодиться о подключении кварца к выводам микроконтроллера(выводы XTAL) по стандартной схеме.Исключение - серия attiny и некоторые другие м/к.

    Серия микроконтроллеров ATtiny

    attiny13,attiny2313, attiny45, attiny44,attiny85, attiny84, attiny25, attiny24, attiny4313

    Для программирования ATtiny 13/25/45/85 подключим его к нашему программатору согласно даташиту:

    Примечание: У ATtiny13 нет шины i2c и имеет всего 1кб под программу.У ATtiny 25/45/85 имеется последовательный порт на выводах PB4 -RX ,PB3 - TX ,но м/к не поддерживают загрузку через его,только обмен данными.

    У ATtiny 2313 и 4313 другая цоколевка,но подключается так же:

    Настройка Arduino IDE для микроконтроллеров ATtiny

    Для этого необходимо дописать нужные микроконтроллеры в файл boards.txt и распаковать архив arduino-tiny в папку папка_arduino/hardware/arduino/

    Последнюю версию arduino-tiny можно найти тут .

    Например ,чтобы добавить в список поддерживаемых контроллеров ATtiny85 необходимо добавить следущий текст в boards.txt :

    ###########################################################################
    attiny85.name=Optiboot ATtiny85 @ 8 MHz (internal osc)
    attiny85.upload.protocol=arduino
    attiny85.upload.speed=9600
    #bootloader takes up last 10 pages, so there is a limit on the max size.
    attiny85.upload.maximum_size=7616
    attiny85.bootloader.low_fuses=0xE2
    attiny85.bootloader.high_fuses=0xD7
    attiny85.bootloader.extended_fuses=0xFE
    attiny85.bootloader.path=optiboot
    attiny85.bootloader.file=optiboot_attiny85.hex
    attiny85.build.mcu=attiny85
    attiny85.build.f_cpu=8000000L
    attiny85.build.core=tiny
    attiny85.build.variant=tinyX5
    # вариант c частотой внутренного генератора 8 мгц.
    ###########################################################################

    Остальные примеры поддерживаемых микроконтроллеров можно посмотреть в файле Prospective Boards.txt архива arduino-tiny.

    Для ATtiny13 необходимо другое ядро ,для этого распакуем архив в папку hardware\arduino\cores\core13\

    и добавляем в список boards.txt.

    attiny13.name=ATtiny13 (internal 9.6 MHz clock)
    attiny13.bootloader.low_fuses=0x7a
    attiny13.bootloader.high_fuses=0xff
    attiny13.upload.maximum_size=1024
    attiny13.build.mcu=attiny13
    attiny13.build.f_cpu=9600000L
    attiny13.build.core=core13
    attiny13.build.variant=tiny8

    Сейчас мы можем программировать добавленные микроконтроллеры через плату Arduno или USBasp.

    Другие микроконтроллеры ATmega

    ATmega8 без загрузчика

    Чтобы добавить м/к ATmega8 без загрузчика добавляем в boards.txt следущий текст:

    ATmega8 имеется в списке поддерживаемых как Arduino NG or older с загрузчиком,который отнимает 1 кб ,при таком загрузчике микроконтроллер можно прошивать стандартно,установив его например в Arduino UNO. Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а.

    Для добавления данных микроконтроллеров необходимо распаковать из архива avr-netino папку hardware\avrnetio и поместить её в папку Arduiono_ide\hardware\ .Другие папки с примерами и библиотеками можно так же распаковать в соотвествующие папки при необходимости.

    Расмотрим пример на микроконтроллере ATmega32:

    Микроконтроллер ATmega32 имеет 40 ножек из них 32 - это порты ввода вывода.

    Расшифруем основные из них:

    D - это цифровые выводы в нумерации arduino.

    AI - аналоговые входы.

    PWM - выводы с возможностью ШИМ.

    Если Вы правельно скопировали папку avrnetio ,то после запуска Arduino IDE Вы увидите добавленные микроконтроллеры в общем списке.Вы можете исправить или удалить некоторые ненужные микроконтроллеры в файле hardware\avrnetio \board.txt

    Если сейчас подключить микроконтроллер к Arduno или USBasp ,то можно уже заливать скетчи из среды Arduino IDE.

    Обратите внимание,что новый м/к запрограммирован работать от внутреннего генератора и при прошивке загрузчика (через меню сервис-> записать загрузчик) поменяются фьюзы на режим от внешнего кварца.Загрузчик прошивать не обязательно,если Вы не хотите Заливать скетчи через последовательный порт.Перед прошивкой загрузчика можно поправить фьюзы в файле board.txt в строках bootloader.low_fuses и bootloader.high_fuses используя калькулятор фьзов .

    Хотя avr-netino и поставляется с загрузчиками,но загрузка через последовательный порт на ATmega32 у меня не заработала.Для загрузки через его необходимо подсунуть "правельный" загрузчик в папку /hardware/avrnetio/bootloaders/optiboot/ из архива boots.zip ,заменив в файле board.txt имя файла загрузчика в строке bootloader.file соотвествующего микроконтроллера .Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а

    Несколько причин не использовать Arduino в своих конструкциях

    Несколько причин не использовать Arduino в своих конструкциях

    Vassilis K. Papanikolaou, Греция

    На самом деле идея Arduino замечательна. Это золотое дно для новичков, т.к. на ее основе можно разрабатывать конструкции простого и среднего уровня за короткие сроки. Это великолепная микроконтроллерная платформа для отладки и прототипирования с огромным количеством готовых проектов с открытым исходным кодом, учебных материалов, форумов и пр. что очень важно для всех при изучении встраиваемых систем. Используя простую интегрированную среду разработки и код на С++-подобном языке, USB кабель и несколько пассивных компонентов, возможно в считанные секунды заставить мигать светодиод, или организовать обмен данными с ПК за несколько минут, не имея серьезного опыта в электронике.

    Это, несомненно, отличное стартовое решение, но как далеко Вы можете зайти в использовании Arduino? Ну, довольно далеко, но до определенного предела, потому что (как и вообще в жизни) всегда приходится выбирать между простотой и производительностью. Наверное, именно поэтому наблюдается появление высокопроизводительных клонов Arduino, таких как ChipKIT на микроконтроллерах компании Microchip семейства PIC32 или Netduino на микроконтроллерах ARM. Эта альтернатива может спасти разработчика во многих случаях приростом производительности, но, в конечном счете, все же остаются скрытые функции и библиотеки, которые используют ресурсы микроконтроллера, и пользователи будут вынуждены изучать аппаратную часть микроконтроллера.

    Автор лично решил полностью отказаться от Arduino после нескольких месяцев изучения. Фактически, как утверждает автор, сама платформа Arduino подтолкнула его на этот шаг. Ниже приведены причины, но сначала рассмотрим преимущества Arduino.

    Плюсы Arduino (Что замечательно):

    • Интегрированная среда разработки Arduino IDE основывается на компиляторе языка Си AVRGCC. Изучение Arduino, в конечном счете, поможет в изучении С++. Если Вам не нравятся специфические высокоуровневые Arduino команды или библиотеки, вы сможете заменить их на С++ эквиваленты (как выясняется, не всегда);
    • Питание, программирование и коммуникация с Arduino платформой осуществляется с помощью одного кабеля USB (или кабеля с адаптером на специализированной микросхеме FTDI для некоторых клонов);
    • Со встроенными библиотеками вы можете реализовать какой-то простой (и медленный) проект за считанные минуты, не задумываясь, как эти библиотеки реализованы, и как работают. Медленно происходит чтение кнопок, отображение данных на ЖК дисплее или их отправка по последовательному интерфейсу, работа с электродвигателями;
    • Коммуникация по последовательному интерфейсу и SPI превосходна и стандартна.

    Минусы Arduino (Что ужасно):

    • Arduino IDE – это самый худший и самый непригодный редактор кода после «Блокнота». В один день вы переключитесь на достойный внешний редактор, однако вам все равно придется оставить открытой Arduino IDE для программирования устройства;
    • Загрузчик Arduino. Для того, чтобы завершить какое-либо Arduino-устройство, вам придется вручную запрограммировать загрузчик в каждый «чистый» микроконтроллер ATmega. Это уменьшает доступный объем Flash-памяти программ на 2 КБайта;
    • Всего несколько вариантов: если вы будете использовать официальные платы Arduino, то выбрать вы сможете только из вариантов с 30 Кбайт или 254 КБайт встроенной памяти программ. Что будет, если ваш код занимает, скажем 42 КБайта? Единственный выбор – использование клона Sanguino, который не полностью совместим с Arduino;
    • Нет простого способа изменить тактовую частоту, не так ли? Модель микроконтроллера с питанием 3.3 В и тактовой частотой 8 МГц может безопасно работать на частоте 12 МГц;
    • Функция digitalWrite() выполняется за 56 циклов (хотя автором был получен результат в 400 циклов). По крайней мере, это легко выяснить и перейти к использованию прямого доступа к портам (второй элемент для изменения, после Arduino IDE). Как правило, Arduino не очень удобна для написания эффективного кода;
    • Вы не сможете (по крайней мере, просто) отключить библиотеку последовательной коммуникации, используемую по умолчанию, чтобы использовать TX и RX прерывания, независимо от того, была она запущена, или нет;
    • Подпрограмма обслуживания прерывания по переполнению таймера запускается через каждые 16000 циклов в фоновом режиме. Это сделано для работы функций millis() и micros(), даже когда они не используются;
    • Пустой Arduino проект для платформы Arduino UNO занимает 466 Байт и 666 Байт для Arduino Mega2560. Дополнительное расходование ресурсов не устраивает многих, в том числе и автора статьи. Также неприятно видеть ошибки компиляции проекта, связанные с вышеописанными изменениями;
    • Последнее, но не менее важное – среда разработки Arduino, без сомнения, «скрывает» важные аспекты архитектуры микроконтроллера: регистры, прерывания и таймеры. Их знание просто необходимо.

    В связи с этим автор утверждает, что настало время использовать чистый AVRGCC. Однако, у него тоже есть свои плюсы и минусы.

    Трудности при использовании AVRGCC:

    • Необходимость переписывать некоторые элементы в С++, наиболее важным из которых является обмен по последовательному интерфейсу (возможно, лучшая часть в Arduino). К счастью, имеется много практических советов и руководств по этой задаче. Написание других протоколов гораздо проще, например, SPI;
    • Необходимо изучить, в какие библиотеки включены команды без компиляции, и включить эти библиотеки в свой файл исходного кода. Наиболее распространенными являются: avr/io.h, avr/interrupt.h, util/delay.h, stdio.h and string.h;
    • Типы байтовых и логических переменных должны быть uint8_t и bool, байтовые числа, например B00010001, должны быть в виде 0b00010001, и так далее. Вы найдете все остальные изменения, их очень мало;
    • Требуется больше знаний и, главное, не сдаваться.

    Польза от использования AVRGCC:

    • Нужен другой процессор для увеличения памяти программ или производительности? Вы можете его использовать (например, из той же серии megaAVR), и придется только перекомпилировать проект. Потребуется изменить некоторые регистры и имена прерываний, make-файл и Fuse-биты;
    • Нужна другая тактовая частота? Используйте другой кварцевый резонатор, или можно использовать встроенный осциллятор микроконтроллера, всего лишь изменив Fuse-биты и make-файл;
    • Можно использовать достойную (Notepad++) или мощную (Atmel Studio 6) интегрированную среду разработки кода;
    • Вы получаете полный контроль над своим кодом. То что вы написали, то и выполняется. Ничего не скрывается, ничего не происходит без вашего согласия. Вы пишете более эффективный и быстрый код. Вы узнаете больше.

    Как и для Arduino, для AVRGCC имеется большое количество вспомогательных средств, готовых проектов, библиотек и учебных материалов. Выбор остается за пользователями.

    EasyEDA: Бесплатная САПР электронных схем и дешевое создание прототипов печатных плат

    CodeBlocks Arduino IDE

    CodeBlocks Arduino IDE

    Дата публикации: 02-12-2014

    При создании проекта столкнулся с одной проблемой.
    Проект состоит больше чем из одного файла, платформо-независимую часть я изначально начал писать в MS Visual C++ Express 2010 а платформо-зависимые вещи делал и тестировал в Arduino IDE.

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

    Первым решением был Atmel Studio 6.2 + Visual Micro, данный плагин позволяет создавать в данной IDE скетчи для Arduino и заливать их туда по USB. Я думал ну вот мощь Atmel Studio объединенная с возможность загрузки скетча по USB. Но оказалось что этот плагин не чуть не полезнее чем Arduino IDE, в сущности он делегирует всю работу штатным средствам Arduino IDE а сам лишь предоставляет интерфейс написания скетча в среде Atmel Studio. меня это тоже не устроило.

    Мне требовалась среда которая может как полагается собирать проект, подключать папки и тд и тп.
    Читал, искал. нашел.

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

    В итоге, все преимущество мощной IDE с возможностью все это заливать напрямую на Arduino по USB. Теперь я очень спокойно работаю в одной среде как над платформо-независмыми частями так и над плафтормо-зависмыми. Это позволило отказаться и от MS Visual C++ Express 2010
    Что меня особо порадовало в отличии от Arduino IDE которые копируют любые подключаемые файлы к свою папку библиотек, так это то что CodeBlocks позволяет разным "проектам" работать с одними и теми же исходными файлами в месте их физического расположения, и ничего никуда не копирует.

    Я не стану приводить сравнение CodeBlocks и Arduino IDE так как это бессмысленно, в силу того что CodeBlocks это полноценная среда разработки, а Arduino IDE даже текстовым редактором назвать можно с большой натяжкой.

    В целом, на данный момент я на 100% отказался от Arduino IDE, так как даже написание простевшего скетча в CodeBlocks в разы удобнее и приятнее, нежели в штатной IDE.

    Если вы уже задумываетесь над тtм что Arduino IDE вам порядком поднадоела, попробуйте CodeBlocks Arduino IDE. она бесплатна.

    Не большое описание "старта" на русском.

    © Пашкевич Николай

    Уроки программирования Ардуино

    ОБОРУДОВАНИЕ
    ТЕХНОЛОГИИ
    РАЗРАБОТКИ
    Главное меню Урок 3. Установка программного обеспечения Arduino IDE, подключение платы к компьютеру.

    В уроке рассказывается, как установить программное обеспечение для работы с системой Ардуино под Windows 7, как подключить плату к компьютеру и загрузить первую программу.

    Для установки программного обеспечения и подключения контроллера Arduino UNO R3 к компьютеру необходимы:

    • плата контроллера;
    • USB кабель (обычно дается в комплекте);
    • персональный компьютер с ОС Windows, подключенный к интернету.

    Плата может получать питание от USB порта компьютера, поэтому внешний блок питания не требуется.

    Установка интегрированной среды разработки Arduino IDE.

    Прежде всего, необходимо загрузить последнюю версию программы. Загрузить ZIP архив можно с официального сайта поддержки систем Ардуино по этой ссылке. Необходимо выбрать строку с нужной операционной системой – Windows ZIP file.

    Создать папку, например Arduino, и распаковать в нее zip файл.

    Подключение платы Ардуино.

    С помощью USB кабеля подключите плату к компьютеру. Должен загореться светодиод (с маркировкой ON), показывающий, что на плату поступает питание.

    Мне известны платы Arduino UNO R3 использующие в качестве моста USB-UART

    • микросхему ATmega16U2 (оригинальный вариант)
    • микросхему CH340G (китайский клон).

    Процессы установки драйверов для этих вариантов отличаются.

    Установка драйвера для ARDUINO UNO с преобразователем интерфейсов ATmega16U2.

    После подключения платы к компьютеру Windows сама начнет процесс установки драйвера. Через некоторое время появится сообщение о неудачной попытке.

    Драйвер надо устанавливать вручную. Для этого переходим Пуск –> Панель управления –> Система –> Диспетчер устройств .

    В разделе Порты (COM иLPT) должно быть устройство ArduinoUNO с предупреждающим желтым значком.

    Щелкаем правой кнопкой мыши по значку.

    Выбираем Обновить драйвер .

    Дальше Выполнить поиск драйверов на этом компьютере .

    Вручную указать место размещения драйвера. Файл ArduinoUNO.inf находится в каталоге Drivers папки, куда распакован архив.

    В разделе Порты (COM и LPT) появляется новый, виртуальный COM. Его номер надо запомнить.

    Установка драйвера для ARDUINO UNO с преобразователем интерфейсов CH340G (китайский клон).

    После подключения платы к компьютеру, Windows сама начнет процесс установки драйвера.

    Через некоторое время появится сообщение о неудачной попытке.

    Драйвер надо устанавливать вручную. Для этого переходим Пуск –> Панель управления –> Система –> Диспетчер устройств .

    Появилось новое устройство USB2.0-Serial с желтым предупреждающим значком.

    Запускаем установочный файл ch341ser.exe .

    Ждем сообщение об успешной установке.

    В диспетчере задач появляется новое устройство USB-SERIAL CH340.

    Необходимо запомнить номер COM порта.

    Запуск интегрированной среды разработки Arduino IDE.

    Запускаем файл arduino.exe.

    Выбираем тип платы Ардуино: Инструменты -> Плата -> Arduino UNO .

    Необходимо указать номер COM порта: Инструменты -> Порт .

    Для проверки работы системы можно запустить первый скетч – мигающий светодиод. Для этого: Файл ->Примеры -> 01.Basics ->Blink .

    Нажимаем кнопку Загрузка .

    Ждем пока программа загрузится и светодиод на плате, обозначенный букой L, начинает мигать примерно раз в секунду. Значит все сделали правильно.

    В следующем уроке получим минимальные знания о языке программирования для Ардуино - языке C++.

    Навигация по статьям

    Android и Arduino

    Android и Arduino. Программное обеспечение

    В первой части статьи мы немного рассмотрели стандарт Android Open Accessory и ADK платы совместимые с данным стандартом. Первая статья вышла чисто теоретическая, а в данной статье мы рассмотрим установку и настройку необходимого программного обеспечения. Всю работу я буду приводить в ОС Windows 7, однако, данные версии ПО также существуют и под Linux-системы. Поэтому если у вас стоит Linux, то все будет аналогично.

    Установка и настройка Arduino IDE

    1. Установка Arduino IDE. Скачайте и установите последнюю версию Arduino IDE, на данный момент это 1.0.1. Скачать можно с официального сайта здесь .
    Я бы также посоветовал вам скачать и версию 0023 т.к. на данный момент Arduino 1.0.1 еще сырая и некоторые проекты могут не заработать. Установите их в разные папки, 2 версии IDE без проблем уживаются друг с другом.

    2. Установка библиотек для режима Open Accessory. Этот шаг для тех, у кого Android устройство заработало в режиме с поддержкой Open Accessory.
    На этой странице скачайте и распакуйте файл adk_release_*****.zip
    Пример от Google также требует наличие библиотеки CapSense. Ссылка на библиотеку находится там же. Далее, скопируйте две папки из директории arduino_libs в вашу директорию библиотек Arduino. Запустите IDE и проверьте, что Arduino IDE "подхватил" ваши библиотеки:

    Выберите свою плату: Сервис->Плата, т.к. я использую Seeeduino ADK Main Board на базе микроконтроллера ATmega2560, то мне необходимо выбрать "Arduino Mega 2560 or Mega ADK ". Затем выберите последовательный порт, к которому подключена ваша плата.

    Откройте пример (скетч) demokit и попробуйте скомпилировать его. Если все прошло без ошибок, то все сделали правильно.

    3. Установка библиотек для режима MicroBridge. Я использую плату Seeeduino ADK Main Board, поэтому скачал все необходимые библиотеки с официального сайта. Однако, если ваша ADK плата на базе микроконтроллера ATmega2560, то все действия будут такими же.
    Итак, с данной странички скачиваем файл Modified MicroBridge Arduino Library или Modified MicroBridge Arduino Library for Arduino1.0 (ссылки в самом низу).
    Я немного модифицировал библиотеку, чтобы она могла работать и под версию 0023 и под 1.0.1, ее можно скачать отсюда. Папку Adb необходимо скопировать в вашу директорию библиотек Arduino. Запускаем IDE и проверяем, что Arduino IDE "подхватил" библиотеку ADB:

    Выберите свою плату: Сервис->Плата, т.к. я использую Seeeduino ADK Main Board на базе микроконтроллера ATmega2560, то мне необходимо выбрать "Arduino Mega 2560 or Mega ADK ". Затем выберите последовательный порт, к которому подключена ваша плата.

    Откройте пример (скетч) SeeeduinoADKDemo и попробуйте скомпилировать его. Если все прошло без ошибок, то все сделали правильно.

    На этом, настройка ПО для Arduino завершена.

    Установка и настройка ПО для Android

    1. Установка Java SE Development Kit. Переходим на сайт Oracle и загружаем последнюю версию Java SE Development Kit под вашу ОС. Затем запускаем и устанавливаем скачанный файл.
    Далее, в Windows необходимо настроить переменные среды. Для этого щелкаем правой кнопкой мыши по "Мой компьютер" и нажимаем свойства системы. Затем, "Дополнительные параметры системы" и "Переменные среды". В вкладке "Системные переменные" нажимаем "Создать" и добавляем в "Имя переменной": JAVA_HOME. а в "Значение переменой" путь к вашей папке с Java SE Development Kit. У меня это C:\Program Files\Java\jdk1.7.0_05\bin

    2. Установка Android SDK. С данной страницы скачиваем файл и запускаем его. Устанавливаем SDK в папку.
    В переменных средах на всякий случай можно прописать в "Имя переменной": ANDROID_SDK_HOME -. а в "Значение переменой" путь к вашей папке с SDK: D:\Projects\android-sdk\tools

    3. Установка Eclipse IDE. Наиболее популярной средой разработки под Android является Eclipse, поэтому мы будем работать именно с этим ПО. Итак, идем на сайт Eclipse и скачиваем последнюю версию Eclipse Classic.
    Затем просто распаковываем архив и копируем папку eclipse в нужное вам место.

    Запускаем файл eclipse.exe, появится Workspace Launcher, который предложит вам указать путь к папке с месторасположением ваших проектов.

    4. Установка плагина Android Development Tools (ADT). Это плагин к Eclipse для возможности разработки под Android. В меню Eclipse IDE выбираем "Help->Install New Software. " справа нажимаем кнопку Add и в поле "Location" вводим https://dl-ssl.google.com/android/eclipse/

    Ставим везде галочки и жмем кнопки Next и Finish. Среда Eclipse сама скачает и установит все необходимые инструменты. Естественно, что ваш компьютер в этот момент должен быть подключен к интернету. После скачивания и установки перезапускаем Eclipse

    5. Android SDK Manager. Открываем Eclipse и запускаем Windows->Android SDK Manager. Отмечаем галочками те API, которые нам пригодятся для дальнейшей работы (в дальнейшем вы всегда сможете доустановить или удалить нужные вам API).

    Нажимаем Install packages и ждем окончания установки пакетов.

    После этого, ваша среда Eclipse IDE готова к разработке под Android.

    Android Virtual Device

    Android Virtual Device - представляет собой эмулятор Android устройства для компьютера. Он используется для отладки программ в реальной среде выполнения. Эмулятор не поддерживает USB, однако может пригодиться при создании пользовательского интерфейса, поэтому лучше настроить и создать в нем виртуальное устройство.

    Для того, чтобы отлаживать ПО на реальном Android устройстве, необходимо будет поставить USB-драйвер, а также в настройках Android включить режим отладки ADB.

    После этого, при запуске проекта появится возможность выбора на каком устройстве запустить проект: на реальном или виртуальном:

    На этом с установкой ПО закончено. В следующей части статьи мы создадим тестовый проект.

    В последующих статьях я не буду подробно расписывать как разрабатывать приложения под Android, т.к. для этих целей существуют специализированные сайты, форумы, книги и другой материал в открытом доступе. Для многих радиолюбителей, некоторые моменты разработки ПО под Android могут оказаться камнем преткновения, поэтому я бы рекомендовал прежде, чем перейти к чтению следующей статьи. немного ознакомиться с разработкой ПО для Android-платформы.

    Теги:

    GSM библиотека для Arduino IDE

    GSM библиотека для Arduino IDE

    В данном руководстве рассмотрим возможности библиотеки GSM под Arduino и шилд «Cosmo GSM Connect ».

    GSM-lib написанна под Arduino IDE версии 1.0. Скачать последную версию библиотеки с готовыми примерами использования можно из репозитория проекта. Для установки — распакуйте архив GSM в директорию libraries (/arduino-1.0/libraries/GSM). После запуска среды разработки Arduino, в меню программы «File -> Examples» появится пункт GSM, с примерами скетчей.

    Библиотека GSM разработана для работы с шилдом «Cosmo GSM Connect ». Она аппаратно совместима с платами Arduino (Uno, Duemilanove и прочие аналоги). При использовании других плат, возможно, потребуется внесение правок в GSM.cpp для указания правильного порта, на который выведена с шилда линия включения модема.

    В настоящий момент в библиотеке реализованы следующие функциональные возможности.

    • Регистрация в GSM-сети
    • Отправка SMS
    • Прием и разбор SMS
    • Прием входящих вызовов
    • Проверка статуса соединения с сетью GSM, восстановление сети при потере сигнала
    • Выполнение произвольных AT-команд из скетча
    Регистрация в GSM-сети

    Для регистрация модема в сети необходимо указать пин-код симкарты. Важно помнить, что если вы укажете неправильный номер, симкарта может заблокироваться, т.к. функция инициализация будет периодически повторяться до удачной попытки. Процесс инициализации обычно занимает около 1 минуты.

    Первичная инициализация выполняется в функции setup().

    Отправка SMS

    Для отправки текстовых сообщений служит функция SendSMS(), в которую передаются 2 параметра — номер получателя SMS и само сообщение.

    Где RemoteID — это номер получателя. Эту константу предпочтительнее выносить в заголовок программы.

    Текст сообщения можно формировать также динамически.

    Прием и разбор SMS

    Для считывания входящих SMS сообщений служит функция ReadSMS(), в которую передаются 2 параметра — индекс SMS и указатель, куда будет скопирован текст. Ниже представлен фрагмент скетча, в котором разбирается текст входящего сообщения. Когда SMS равен 1 — выполняем некое действие, а когда равен 2 — производим другое действие. Полный пример скетча SmsCheck.ino смотрите в examples .

    Примечание. Библиотека GSM умеет работать только с латинскими символами, кириллица в настоящее время не поддерживается.

    Прием входящих вызовов

    Данный функционал бывает полезен, когда нужно получить достаточно быструю реакцию от шилда. Если SMS-сообщения могут доставляться с небольшой задержкой, то входящие вызовы происходят практически моментально. К тому же использование такого функционала будет бесплатным, если не брать трубку.

    Например, можно сделать вызов на шилд, на Ардуино проверить номер звонящего абонента и в случае совпадения с шаблонным номером — выслать на него SMS с показаниями датчиков. Следующий фрагмент реализует подобный функционал. Полная версия скетча CallCheck.ino смотрите в examples .

    Проверка статуса соединения с сетью GSM

    Бывают ситуации, когда соединение с сетью пропадает. Для выявления потери сети служит функция CheckStatus(), которая возвращает 0 в том случае, когда соединение с сетью утеряно. Пример использования приводится в следующем блоке кода.

    Выполнение произвольных AT-команд из скетча

    Для выполнения AT-команд из скетча используется функция WriteStr_P().