admin / 05.05.2018

Ардуино

Начало работы с Arduino в Windows

Программируемые контроллеры Arduino (Ардуино) предназначены для создания различных робототехнических проектов, обучения конструированию различных систем мехатроники и программированию. Платы arduino — это современный электронный конструктор для людей интересующихся и увлеченных, которые знают значение слова «хобби».
Эта статья объясняет как подключить плату Arduino к ПК и загрузить первый скетч.

  1. Приобретите Arduino и USB – кабель
    В этой статье мы предполагаем, что вы используете Arduino Uno, Arduino Duemilanove, Nano, Leonardo или Mega 2560. Кроме платы Arduino необходим стандартный кабель USB (тот, который используется для подключения принтера). Для Arduino Nano вам понадобится мини-USB кабель.
  2. Скачайте среду разработки ARDUINO IDE
    После завершения загрузки, распакуйте загруженный файл. Убедитесь в том, что структура папок сохранена. Дважды щелкните папку, чтобы открыть ее. Там должно быть несколько файлов и вложенных папок внутри.
  3. Подключите плату
    Arduino Uno, Mega, Duemilanove и Arduino Nano автоматически получают питание или от USB-подключения к компьютеру или от внешнего источника питания. Если вы используете Arduino Diecimila, вы должны убедиться, что плата настроена на питание от USB.
    Подключите плату Arduino к компьютеру с помощью USB кабеля. Зеленый светодиодный индикатор питания (обозначенный PWR) должен засветится.
    • Установка драйверов для Arduino Uno в Windows7, Vista или XP
      Подключите вашу плату и ожидайте пока Windows начнет процесс установки драйверов.
      Если через несколько секунд, процесс не начался:
      Выберите в меню Пуск и откройте Панель управления.
      В Панели управления, выберите Система и Безопасность. Затем нажмите на «Система». Как только окно системы откроется, выберите Диспетчер устройств.
      Загляните в Порты (COM и LPT). Вы должны увидеть открытый порт под названием «Arduino UNO (COMxx)» Щелкните правой кнопкой мыши на «Arduino UNO (COMxx)» и выберите «Обновить драйвер программного обеспечения».
      Затем выберите «Выполнить поиск драйверов на этом компьютере».
      Найдите и выберите файл драйвера Uno, под названием «ArduinoUNO.inf», расположенный в папке «Drivers» программы Arduino (не в подкаталоге «FTDI USB Drivers»).
      Windows закончит установку драйвера оттуда.
    • Установка драйверов для Arduino Duemilanove , Nano или Diecimila в Windows7, Vista или XP
      При подключении платы, Windows должна инициировать процесс установки драйвера (если вы еще не использовали компьютер с платой Arduino перед этим).
      В Windows Vista, драйве должен автоматически скачатся и установится. (На самом деле, это работает!)
      В Windows XP откроется мастер установки нового оборудования:
      На вопрос: » может ли Windows подключится к центру обновления Windows для поиска программного обеспечения?» отвечайте «Нет, не в этот раз». Нажмите кнопку Далее.
      Выберите «Установка из указанного места» и нажмите кнопку Далее.
      Снимите флажок Поиск на сменных носителях, выберите «Включить следующее место поиска» и перейдите к drivers/FTDI USB Drivers дистрибутива Arduino. (Последние версии драйверов можно найти на сайте FTDI ). Нажмите кнопку Далее.
      Мастер начнет искать драйвер, а затем сообщит, что был найден «USB Serial Converter». Нажмите кнопку Готово.
      Мастер установки нового оборудования появится снова. Пройдите те же шаги и выбирайте те же параметры и место поиска. На этот раз будет обнаружен «USB Serial Port «.
      Вы можете удостовериться что драйверы были установлены путем открытия менеджера устройств Windows (в вкладке Оборудование панели управления). Ищите «USB Serial Port» в разделе Порты, это плата Arduino.
  4. Запустите приложение ARDUINO IDE
    Дважды нажмите на ярлык приложения ARDUINO IDE. (Примечание: Если программное обеспечение ARDUINO IDE загрузилось на другом языке, вы можете изменить его в диалоге настроек).
  5. Открытие пример «мигалки»
    Откройте скетч который мигает диодом: File > Examples > 1.Basics > Blink
  6. Выберите вашу плату
    В меню Tools> Board выберите ваш Arduino.
  7. Выберите последовательный порт
    Выберите последовательный порт к которому подключен Arduino из меню Tools | Serial Port. Это может быть COM3 или выше (COM1 и COM2, как правило, зарезервированы для аппаратных последовательных портов).
    Чтобы выяснить который порт ваш, вы можете отключить Arduino и повторно открыть меню, запись, которая исчезает, будет соответствовать плате Arduino. Подключите плату и выберите последовательный порт.
  8. Загрузите программу
    Теперь, просто нажмите на кнопку «Загрузить» в среде. Подождите несколько секунд — вы должны увидеть мигание светодиодов RX и TX. Если загрузка прошла успешно, в строке состояния появится сообщение » Done uploading » (Примечание: если у вас Arduino Mini, NG или другие платы, вам нужно нажать на кнопку перезагрузки на плате непосредственно перед нажатием на кнопку загрузки).
    Через несколько секунд после завершения загрузки, вы должны увидеть мигающий светодиод на выводе 13. Если да, то поздравляем! Вы запустили Arduino в работу.
  9. оl>
    Установить дополнительную библиотеку в среду Arduino IDE Вам поможет статья «Установка библиотек в Arduino IDE» =>>

    Просмотров: 12041

    Дата: Вторник, 18 Июня 2013

Применение

После короткого рассказа друзьям и знакомым про Arduino («это типа электронного конструктора, микро-ЭВМ, в который можно загрузить любую программу и получить любое другое устройство») самый часто задаваемый вопрос «А зачем это всё?» или «Какая мне от этого выгода?» Скучные люди, не правда ли? Неужели среди ваших знакомых нет ни одного радиолюбителя, а может вы и сами радиолюбитель?

Применение Arduino очень простое — не забавы ради, а развития мозга для. Интересно же линуксоидам ковыряться в коде ядра? Какая от этого польза? Почему бы вам не заняться «железным» (в противовес «софтовому») творчеством? Вот прямо сейчас рядом со мной сидит коллега-дизайнер и разбирается… с нейронными сетями. В общем что говорить, забыт дух технического творчества, забыты радиокружки и авиамодельные клубы. Все только сидят в своих интернетах и сделать ничего путного в железе, кроме как воткнуть вилку в розетку, не могут. Соберите свой веб-сервер, цветомузыкальную установку или прикольного робота!

Сообщество любителей Arduino уже знает об успешных примерах: GPS-трекер с записью на SD-карту, простой аудиоплеер, Twitter-дисплей, электронные игры с дисплеем и тачскрином… Попробуйте купить радиодеталей и сделать что-то своё! Есть даже готовый набор для создания четырёхъядерного Arduino-кластера…

Технические характеристики

Arduino Diecimila представляет собой небольшую электронную плату (далее просто плата) ядром которой является микроконтроллер ATmega168. На плате есть: 14 цифровых входов/выходов, 6 из которых могут работать в режиме ШИМ (PWM) (а следовательно управлять аналоговыми устройствами вроде двигателей и передавать двоичные данные), 6 аналоговых входов (исходной информацией служат не логические 0/1, а значение напряжения), тактовый генератор на 16 МГц, разъёмы питания и USB, ICSP-порт (что-то вроде последовательного интерфейса для цифровых устройств), несколько контрольных светодиодов и кнопка сброса.

Этого вполне достаточно, чтобы подключить плату к USB-порту компьютера, установить нужный софт и начать программировать.

Краткая спецификация

Микроконтроллер: ATmega168

  • Рабочее напряжение: 5 В
  • Входное напряжение (рекомендуемое): 7-12 В
  • Входное напряжение (пределы): 6-20 В
  • Цифровые порты ввода/вывода: 14 портов (из них 6 с ШИМ-сигналом)
  • Аналоговые порты ввода: 6 портов
  • Ток для портов: 40 мА
  • Ток для 3.3В источника: 50 мА
  • ППЗУ (Flash Memory): 16 KB (из них 2 Кб используются загрузчиком)
  • ОЗУ (SRAM): 1 Кб
  • ПЗУ (EEPROM): 512 байт
  • Тактовая частота: 16 МГц

Питание
Питание платы осуществляется двумя способами: по кабелю USB (при этом никаких других ухищрений делать не нужно, используется в процессе отладки), либо по специальному разъёму вроде того, что у ноутбуков. В радиомагазине можно купить такой разъём и присоединить к нему аккумулятор или 9-тивольтовую батарейку типа «Крона». Источники питания можно менять перемычкой на плате.

Преимущества и недостатки

  • Цена. В Москве Arduino можно купить меньше чем за 1000 руб. При этом вы покупаете законченное (ну почти) устройство, не требующее дополнительного оборудования, такого, как дорогостоящие программаторы и отладочные стенды, и не требует платного софта.
  • Кроссплатформенность. Программное обеспечение Arduino работает на Windows, Macintosh OS X, Linux и других операционных системах, поскольку является открытым и работает на Java. Большинство микроконтроллерных систем ограничиваются Windows.
  • Простая среда программирования. Программная оболочка является простой в использовании для новичков, но достаточно гибкой для продвинутых пользователей, чтобы быстро достичь нужного результата. Особенно это удобно в образовательной среде, где студенты могут с лёгкостью разобраться с платформой, а преподаватели — разработать учебный курс и задания.
  • Открытый исходный код. Язык может быть расширен с помощью C++ библиотек, более продвинутые специалисты могут создать свой собственный инструментарий для Arduino на основе компилятора AVR C.
  • Открытые спецификации и схемы оборудования. Arduino основан на микроконтроллерах Atmel ATMEGA8 и ATMEGA168. Схемы модулей опубликованы под лицензией Creative Commons, поэтому опытные схемотехники могут создать свою собственную версию модуля для своих нужд. Даже сравнительно неопытные пользователи могут сделать макетную версию модуля, чтобы понять, каким образом он работает и сэкономить деньги.

Из недостатков можно отметить, пожалуй, довольно убогую программную оболочку, низкую частоту процессора (чего на самом деле достаточно выше крыши и, кроме того, снижает энергопотребление) и малое количество «дисковой» (флэш) памяти для программ. При такой тактовой частоте и объёме памяти вряд ли получится собрать простой mp3-плеер. Однако вряд ли кто будет пытаться сделать на основе Arduino, скажем, управляемую крылатую ракету. Кроме того, мне не удалось найти вменяемых исходников для сборки avr-gcc. Ну и само собой, придётся знать (или изучить в процессе) основы электроники на уровне «плюс/минус, резистор/конденсатор» — без этого точно никак.

Arduino.ru

Общие сведения

Arduino Uno контроллер построен на ATmega328 (техническое описание, pdf). Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Ардуино Uno использует микроконтроллер ATmega8U2 (техническое описание, pdf).

«Uno» переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Ардуино. Для сравнения с предыдущими версиями можно обратиться к полному списку плат Arduino.

Характеристики
Микроконтроллер ATmega328
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ 2 Кб (ATmega328)
EEPROM 1 Кб (ATmega328)
Тактовая частота 16 МГц
Схема и исходные данные

Файлы EAGLE: arduino-duemilanove-reference-design.zip

Принципиальная схема: arduino-duemilanove-schematic.pdf

Питание

Arduino Uno может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

Выводы питания:

  • VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3V3. Напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND. Выводы заземления.
Память

Микроконтроллер ATmega328 располагает 32 кБ флэш памяти, из которых 0.5 кБ используется для хранения загрузчика, а также 2 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).

Входы и Выходы

Каждый из 14 цифровых выводов Uno может настроен как вход или выход, используя функции pinMode(), digitalWrite(), и digitalRead(), . Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (по умолчанию отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины ATmega8U2 USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, для чего используется библиотека SPI.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Uno установлены 6 аналоговых входов (обозначенных как A0 .. A5), каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством вывода AREF и функции analogReference(). Некоторые выводы имеют дополнительные функции:

  • I2C: 4 (SDA) и 5 (SCL). Посредством выводов осуществляется связь I2C (TWI), для создания которой используется библиотека Wire.

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Обратите внимание на соединение между выводами Arduino и портами ATmega328.

Связь

На платформе Arduino Uno установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема ATmega8U2 направляет данный интерфейс через USB, программы на стороне компьютера «общаются» с платой через виртуальный COM порт. Прошивка ATmega8U2 использует стандартные драйвера USB COM, никаких стороних драйверов не требуется, но на Windows для подключения потребуется файл ArduinoUNO.inf. Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Uno.

ATmega328 поддерживает интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C.

Программирование

Платформа программируется посредством ПО Arduino. Из меню Tools > Board выбирается «Arduino Uno» (согласно установленному микроконтроллеру). Подробная информация находится в справочнике и инструкциях.

Микроконтроллер ATmega328 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

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

Автоматическая (программная) перезагрузка

Uno разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой Arduino на компьютере, а не нажатием кнопки на платформе. Одна из линий DTR микросхемы ATmega8U2, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеру ATmega328 через 100 нФ конденсатор. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Uno происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

На Uno имеется возможность отключить линию автоматической перезагрузки разрывом соответствующей линии. Контакты микросхем с обоих концов линии могут быть соединены с целью восстановления. Линия маркирована «RESET-EN». Отключить автоматическую перезагрузку также возможно подключив резистор 110 Ом между источником 5 В и данной линией.

Токовая защита разъема USB

В Arduino Uno встроен самовостанавливающийся предохранитель (автомат), защищающий порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатыват при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут востановлены.

Физические характеристики

Длина и ширина печатной платы Uno составляют 6.9 и 5.3 см соответственно. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Arduino — самая популярная платформа любительской и образовательной электроники и робототехники. Рассмотрим ее плюсы и минусы:

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

Недостатки:
— Arduino IDE. Интегрированная среда разработки Arduino — это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату. Это самый худший редактор после notepad.exe. Когда-нибудь вы перейдете на более удобный сторонний редактор, но вам всё равно придется оставить IDE для прошивки.
— Загрузчик. Чтобы закончить проект с применением Arduino, вам придется вручную прошить загрузчик в каждый новый микроконтроллер ATmega. Он занимает 2Кб памяти.
— Разнообразные варианты: в официальном модельном ряду есть варианты с памятью 30(32) Кб и 254(256)КБ. Что делать, если ваш код занимает, допустим, 42 КБ? Единственным решением является использование полу-совместимого клона Sanguino и др.
— Отсутствие простого способа изменения тактовой частоты. Модель 3,3В/8МГц может спокойно работать на частоте 12МГц!
— digitalWrite() использует для выполнения 56 циклов. По крайней мере, можно легко выяснить причину и переключиться на прямой доступ к порту (вторая вещь которая заменяется после IDE). Arduino не очень удобна для время-зависимых приложений.
— Вы не можете легко отключить стандартную библиотеку для последовательной аппаратной части, для того чтобы брать прерывания с TX и RX, независимо от того, запущена она или нет. Строка в последовательный порт посылается с помощью конечного автомата с множеством пустых циклов ожидания флага опустошения буфера в основном теле программы – это опять же пустое расходование ресурсов – ведь есть прерывания. Да, в Arduino можно включить прерывания, но кто это делает?
— Библиотеки Arduino просты в освоении, но на этом их плюсы заканчиваются. К примеру, вы можете всю жизнь формировать задержки с помощью delay-функций и не иметь ни малейшего представления, как работает таймер на микроконтроллере — из таких минусов состоят все библиотеки Arduino. Ведь таймер и другая периферия в микроконтроллере реализованы так, чтоб компенсировать его однопоточность прерываниями. А люди тратят процессорное время на декрементацию неиспользуемой переменной.
— При переполнении ISR таймера прерывание происходит каждые 16K тактов в фоновом режиме. Это сделано для функций millis() и micros(), даже когда они не используются.
— Пустой проект Arduino занимает 466 байт на Arduino UNO и 666 байт на Arduino Mega2560.
— Также Arduino «скрывает» такие важные аспекты архитектуры микроконтроллеров как регистры, прерывания и таймеры. Изучайте их.

Но если вы или ваш проект перерос среду разработки Ардуино, это не значит что надо менять все «железо»! Просто перейдите на чистый AVRGCC и пишите на нем. Ардуино это по сути все тот-же МК, только в комплекте с уже распаянным кварцем (остальные железяки на плате представляют в большинстве своем защиту от дурака и всяческие фишечки и рюшечки для более приятной работы)

FILED UNDER : Справочник

Страницы