Данный документ разъясняет, как подключить плату Arduino к компьютеру и загрузить ваш первый скетч.
- Необходимое железо — Arduino и USB-кабель
- Программа — среда разработки для Arduino
- Подсоедините плату
- Установите драйвера
- Запустите среду разработки Arduino
- Откройте готовый пример
- Выберите вашу плату
- Выберите ваш последовательный порт
- Загрузите скетч в Arduino
Необходимое железо — Arduino и USB-кабель
В этом руководстве предполагается, что вы используете Arduino Uno, Arduino Duemilanove, Nano или Diecimila.
Вам потребуется также кабель стандарта USB (с разъемами типа USB-A и USB-B): такой, каким, к примеру, подключается USB-принтер. (Для Arduino Nano вам потребуется вместо этого кабель с разъемами А и мини-В).
Программа – среда разработки для Arduino
Найдите последнюю версию на странице скачивания.
После окончания загрузки распакуйте скачанный файл. Убедитесь, что не нарушена структура папок. Откройте папку двойным кликом на ней. В ней должны быть несколько файлов и подкаталогов.
Подсоедините плату
Arduino Uno, Mega, Duemilanove и Arduino Nano получают питание автоматически от любого USB-подключения к компьютеру или другому источнику питания. При использовании Arduino Diecimila убедитесь, что плата сконфигурирована для получения питания через USB-подключение. Источник питания выбирается с помощью маленького пластикового джампера, надетого на два из трех штырьков между разъемами USB и питания. Проверьте, чтобы он был установлен на два штырька, ближайших к разъему USB.
Подсоедините плату Arduino к вашему компьютеру, используя USB-кабель. Должен загореться зеленый светодиод питания, помеченный PWR.
Установите драйвера
Установка драйверов для Arduino Uno на Windows7, Vista или XP:
- Подключите вашу плату и подождите, пока Windows начнет процесс установки драйвера. Через некоторое время, несмотря на все её попытки, процесс закончится безрезультатно.
- Нажмите на кнопку ПУСК и откройте Панель управления.
- В панели управления перейдите на вкладку Система и безопасность (System and Security). Затем выберите Система. Когда откроется окно Система, выберите Диспетчер устройств (Device Manager).
- Обратите внимание на порты (COM и LPT). Вы увидите открытый порт под названием «Arduino UNO (COMxx)».
- Щелкните на названии «Arduino UNO (COMxx)» правой кнопкой мышки и выберите опцию «Обновить драйвер» (Update Driver Software).
- Кликните «Browse my computer for Driver software».
- Для завершения найдите и выберите файл драйвера для Uno – «ArduinoUNO.inf», расположенный в папке Drivers программного обеспечения для Arduino (не в подкаталоге «FTDI USB Drivers»).
- На этом Windows закончит установку драйвера.
См. также: пошаговые скриншоты для установки Uno под Windows XP.
Установка драйверов для Arduino Duemilanove, Nano или Diecimila в Windows7, Vista или XP:
Когда вы подключите плату к компьютеру, Windows запустит процесс установки драйвера (если до этого вы не подключали к компьютеру плату Arduino).
В Windows Vista драйвер скачается и установится автоматически (это действительно работает!)
В Windows XP откроется Мастер установки нового оборудования (Add New Hardware wizard).
- На вопрос «Подключиться к узлу Windows Update для поиска программного обеспечения? (Can Windows connect to search for software?)» выберите ответ «Нет, не в этот раз (No, not this time)». Нажмите «Далее».
- Выберите «Установить из списка или указать местонахождение (Advanced) (Install from a list or specified location (Advanced))» и нажмите «Далее».
- Убедитесь, что выбрано «Искать наиболее подходящий драйвер в указанном месте (Search for the best driver in these locations)»; снимите флажок «Искать на съемных носителях (Search removable media)»; выберите «Добавить область поиска (Include this location in the search)» и укажите папку drivers/FTDI USB Drivers в дистрибутиве Arduino. (Последнюю версию драйвера можно найти на FTDI веб-сайте). Нажмите «Далее».
- Мастер начнет поиск и затем сообщит вам, что обнаружен «USB Serial Converter». Нажмите «Готово (Finish)».
- Снова появится мастер установки нового оборудования. Выполните все те же шаги с теми же опциями и указанием того же пути для поиска. На этот раз будет обнаружен «USB Serial Port».
Проверить, что драйвера действительно установлены можно, открыв Диспетчер устройств (Windows Device Mananger) (он находится во вкладке Оборудование(Hardware) панели Свойства системы(System)). Найдите «USB Serial Port» в разделе «Порты (Ports)» – это и есть плата Arduino.
Запустите среду разработки Arduino
Дважды щелкните на приложении для Arduino.
Откройте готовый пример
Откройте мгновенный пример скетча «LED» по адресу: File > Examples > 1.Basics > Blink.
Выберите вашу плату
Вам нужно выбрать пункт в меню Tools > Board menu, соответствующий вашей плате Arduino.
Выбор Arduino Uno
Для Duemilanove Arduinoплат с ATmega328 (проверьте на плате надпись на микросхеме) выберите Arduino Duemilanove или Nano с ATmega328. Вначале платы Arduino выпускались с ATmega168; для них выберите Arduino Diecimila, Duemilanove, или Nano с ATmega168. Подробно о пунктах меню платы можно прочитать на странице «Среда разработки».
Выберите ваш последовательный порт
Выберите устройство последовательной передачи платы Arduino из меню Tools | Serial Port. Вероятно, это будет COM3 или выше (COM1 и COM2 обычно резервируются для аппаратных COM-портов). Чтобы найти нужный порт, вы можете отсоединить плату Arduino и повторно открыть меню; пункт, который исчез, и будет портом платы Arduino. Вновь подсоедините плату и выберите последовательный порт.
Загрузите скетч в Arduino
Теперь просто нажмите кнопку «Upload» в программе – среде разработки. Подождите несколько секунд – вы увидите мигание светодиодов RX и TX на плате. В случае успешной загрузки в строке состояния появится сообщение «Done uploading (Загрузка выполнена)».
(Замечание. Если у вас Arduino Mini, NG или другая плата, вам необходимо физически кнопкой подать команду reset непосредственно перед нажатием кнопки «Upload»).
Несколько секунд спустя после окончания загрузки вы увидите как светодиод вывода 13 (L) на плате начнет мигать оранжевым цветом. Поздравляю, если это так! Вы получили готовый к работе Arduino!
В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в Диспетчере устройств. В прочих операционных средах, таких как Linux, FreeBSD, Mac OS X и т.д, порядок настройки значительно отличается. При необходимости организовать работу с этим программным обеспечением, рекомендуем искать ответы на вопросы на основном сайте разработчика http://www.arduino.cc .
В качестве подключаемой платформы возьмём Arduino Uno. Разница с другими платами у неё минимальна.
Кабель для связи с ПК
Для передачи данных с персонального компьютера на Arduino, необходимо подыскать соответствующий кабель. С отдельными платами кабель не поставляется, только есть в стартовом наборе Arduino для практикующего конструктора-программиста.
Arduino Uno, Arduino Mega 2560 соединяются кабелем со штекерами USB тип А. Такой кабель часто применяется для подключения принтера или сканера.
Arduino Leonardo, Arduino Due для подключения имеют гнездо micro USB тип В.
Arduino Nano, Freeduino Nano подключаются через гнездо mini USB тип B.
Для подключения Freeduino MaxSerial потребуется кабель последовательного порта 9M-9F.
Установка Arduino IDE
Arduino IDE — интегрированная среда разработки софта для Arduino устройств, устанавливаемая на компьютер.
В зависимости от модели платы важно правильно выбрать подходящую версию Arduino IDE:
- Arduino IDE 1.6.4 — для многих плат, кроме Arduino Leonardo ETH и Arduino M0 (программное обеспечение от Arduino LLC).
- Arduino IDE 1.7.7 — для всех типов плат (программное обеспечение от Arduino SRL).
Частичная несовместимость ПО стала следствием разногласий между отцами-основателями Arduino итальянцами Массимо Банзи и Джанлука Мартино, которые не смогли договориться о дальнейшем курсе развития компании. Завод, на котором разрабатывают и производят оригинальные платформы Arduino, под управлением Джанлука Мартино откололся от головной компании Arduino LLC и стал самостоятельной компанией Arduino SRL (ранее Smart Projects Srl).
Запуск Arduino IDE
После запуска успешно установленной Arduino IDE, должна открыться графическая консоль, как на картинке внизу.
Возникла неполадка: Arduino IDE не запускается.
Способ устранения.
Скорее всего, на компьютере установлена неподходящая виртуальная среда JRE (Java Runtime Environment), необходимая для запуска графических приложений.
Возвратитесь к переустанавке Arduino IDE: на этот раз инсталлятор развернет работу по настройке JRE.
Подключение плат Arduino к компьютеру
После успешного запуска среды разработки Arduino IDE пришло время связать какую-то платформу Arduino с компьютером. Как вы уже знаете, подключение плат Arduino к ПК выполняется через USB-кабель.
Соединив консоль Arduino с ПК, на ней загорится один светодиод «ON», и начнёт мигать другой «L». Это означает, что через кабель подано питание и микроконтроллер начал выполнять предустановленную на заводе программу Blink (мигание).
Остается только узнать, какой номер COM-порта присвоил компьютер нашей плате Arduino, что важно для корректной работы программного обеспечения Arduino IDE с новым устройством.
Номер COM-порта можно узнать в «Диспетчере устройств», вкладка «Порты (COM и LPT)».
На системах Windows скорее всего нашей Arduino Uno с последовательным интерфейсом присвоится один из портов COM1 или COM2. Для Ардуино с USB-контроллером портом ввода будет COM4, COM5, COM6 или выше.
На системах Linux последовательным портом будет USB0 либо USB1.
Высветилось новое устройство Arduino в «Диспетчере устройств» — значит, операционная система распознала нашу плату, нашла для неё подходящий USB-драйвер и присвоила номер её интерфейсу. При совместном подключении ещё одной платы Arduino, ей присвоиться уже другой номер порта.
Возникла неполадка: при подключении платы Arduino к компьютеру, в Диспетчере устройств она не появляется.
Способы устранения:
- Не всунут до конца или поврежден USB-кабель или порт.
- Нет драйвера для этой платы Arduino. Если у вас китайская Arduino или от другого неизвестного производителя, попробуйте переустановить USB-драйвер вручную.
- Блокировка со стороны антивирусника.
- Неисправна плата Arduino.
Настройка Arduino IDE
В открытой Arduino IDE, заходим: Инструменты > Порт > выбираем номер порта COM — сообщаем программе номер порта, к которому подключена микропроцессорная платформа Arduino.
Чтобы у прошивающей программы Arduino IDE не осталось никаких сомнений, с чем ей предстоит работать, указываем тип нашей подключенной платы. Для этого переходим по меню: Инструменты > Плата > выбираем тип своей платы Arduino.
Возникла неполадка: во вкладке Порт нет ни одного COM-порта.
Способ устранения.
Очевидно, нарушено соединение устройства Arduino с компьютером. Верните устойчивое соединение с ПК.
Или нет драйвера. Скачать можно в конце статьи.
Как проверить подключение устройства Arduino
Все числовые данные, поступающее через COM-порт, выводятся в Монитор порта во всё той же удобной графической среде Arduino IDE. Следовательно, нажав соответствующую иконку «Монитор порта» в верхнем правом углу консоли или найдя соответствующий пункт в меню Сервис, по изменяющимся числам в открывшимся окошке можно убедиться, что через USB-кабель передаются данные, а значит, и плата Arduino надежно подключена.
Обратите внимание, что в нижней части окошка Монитора порта выводится информация о скорости работы с COM-портом «19200 baud» (19200 бит/сек). Такая скорость задана по умолчанию в предустановленном скетче на плате Arduino. В этом скетче есть строка Serial.begin(19200), в которой можно задать любую требуемую скорость передачи, но это возможно только при работе через USB-кабель. Ежели передача данных идет через радиоканал Bluetooth, то скорость обмена с COM-портом должна быть задана заранее, точно такой же, какую мы выбираем при отладке Bluetooth-модуля.
Возникла неполадка: невероятно тормозит Arduino IDE при навигации по меню.
Способ устранения.
В Диспетчере устройств, во вкладке Bluetooth Serial отключите Bluetooth-соединение с мобильным телефоном. Все внешние подключения через Bluetooth значительно пожирают объем виртуальной памяти.
Загрузка первого скетча
Соединение установлено, среда разработки настроена — теперь в ваших руках отлаженный инструмент для прошивки любых микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.
В среде разработки Arduino IDE есть много готовых образцов для различных задач, но для проверки отзывчивости платы на перепрошивку достаточно внести небольшие изменения в предустановленную программу Blink (мигание светодиода «L» на плате).
Достаточно в открытом эскизе Blink внести свои изменения в строчке delay(1000), нажать «Вгрузить» и засечь изменения в работе платы Arduino.
Установив delay(500) — светодиод «L» будет мигать в два раза чаще, с задержкой в пол секунды.
Задав delay(100) — светодиод «L» будет загораться и гаснуть в 10 раз быстрее, чем по заводской настройке, то есть каждые 100 миллисекунд.
Возникла неполадка: при загрузке скетча всплыла ошибка вида «not in sync».
Способ устранения.
Значит, подключенная платформа Arduino не была распознана операционной системой. Вернитесь к пунктам установки правильного номера COM-порта и модели платы в меню Инструменты Arduino IDE.
Да и напоследок, если вы купили плату Arduino на каком-нибудь онлайн китайском рынке, то очень часто возникают проблемы при подключении платы – просто она не определяется. Чтобы решить эту проблему умельцами был создан драйвер . СКАЧАТЬ
Автор: Виталий Петрович.
Main Content
Find Port Number on Windows
-
Open Device Manager, and expand the
Ports
list.
(COM & LPT) -
Note the number on the USB Serial Port.
Find Port Number on Macintosh
-
Open terminal and type:
ls /dev/*
. -
Note the port number listed for
/dev/tty.usbmodem*
or
/dev/tty.usbserial*
. The port number is represented
with*
here.
Find Port Number on Linux
-
Open terminal and type:
ls /dev/tty*
. -
Note the port number listed for
/dev/ttyUSB*
or
/dev/ttyACM*
. The port number is represented with
*
here. -
Use the listed port as the serial port in MATLAB®. For example:
/dev/ttyUSB0
.
-
Вопрос как быстро узнать на каком порту висит ARDUINO.
Я сделал следующим образом, получаю список портов, пишу в них поочередно, получаю ответ, если ответ соответствует тому что должна написать Arduino на запрос, то оставляю именно этот порт для дальнейшей работы. Но приходится делать задержку, а так же есть порты блютуса, один из которых долго думает на открытие, другому пришлось прописать WriteTimeout, который как оказалось по умолчанию бесконечен. Вообще может есть какое-то более быстрое и изящное решение. -
Заходим в диспетчер устройств (в разных Виндах по разному у меня ХР)и там всё будет написано.Если СОМ овская Ардуина то порт СОМ1 как правило
-
Хочется по принципу: «включил-работает», т.е. сейчас в конечной программе я предлагаю выбрать, понятно что его можно выбрать посмотрев порты в диспетчере устройств, или тыкая во все подряд. Но задача стоит в другом, что бы программа быстро (сейчас это может занимать до 5 секунд из-за портов блютуса о которых писал выше) определяла на каком порту висит ардуино.
-
Создать н потоков, каждый поток опоашивает свой ком порт. Как только ардуино откликнется, убиваем все лишние потоки
-
Еще вариант — попросить у системы список устройств и по VID / PID найти ардуиновский порт.
-
А VID / PID для всех Arduino одинаковый или отличается?
-
Для одинаковых ардуин должен совпадать. Но отделить ардуиновские порты от всех остальных это уже пол дела. Потом можно смелее опрашивать, зная, что левому устройству ненужные данные не уйдут.
-
Можно и так.
Если на Windows и .Net (Код на C#)
Можно такusing System.Management;private void FillPortComboBox()
{
// Чистим комбо бокс
port_combobox.Items.Clear();// TODO: Надо разобраться с ManagementScope
ManagementScope connectionScope = new ManagementScope();
//SelectQuery serialQuery = new SelectQuery(«SELECT * FROM Win32_SerialPort WHERE Caption LIKE ‘%Arduino%'»);
SelectQuery serialQuery = new SelectQuery(«SELECT * FROM Win32_SerialPort WHERE Description LIKE ‘%Arduino%'»);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(connectionScope, serialQuery);// Пробегаемся, по выбранным портам
foreach (ManagementObject item in searcher.Get())
{
// Получаем, имя порта
string portName = item[«DeviceID»].ToString();// Инициализируем Serial порт
SerialPort tempSerialPort = new SerialPort(portName);
try
{
// Пытаемся открыть порт, вдруг занят
tempSerialPort.Open();// Проверяем, открылся ли
if (tempSerialPort.IsOpen)
{
// Если открылся, добавляем в комбобокс
port_combobox.Items.Add(portName);// Закрываем соединения
tempSerialPort.Close();
}
}
catch { }
}// Добавляем в начало комбобокса пояснительный текст
port_combobox.Items.Insert(0, «Укажите Serial порт»);// Задаем индекс комбобокса
port_combobox.SelectedIndex = 0;
}Еще не разобрался с классом ManagementScope. Но уже проверил, работает.
Нашел тута
http://stackoverflow.com/questions/3293889/how-to-auto-detect-arduino-com-portЕще пример, сделанный немного по другому
http://playground.arduino.cc/Csharp/SerialCommsCSharp
Тут перебираются порты и отправляется команда и ожидается ответ.
Плюс в том, что если 2 и более ардуины, можно определить, какая для каких операций, отправляя разные ответы. -
Увы ManagementScope — похоже не реализован в с++
У меня что-то похожее на второй пример. Но обратите внимание на задержку в 1 секунду по Вашей ссылке. Я у себя проставил по 0,1. Плюс если не проставить arduino->WriteTimeout=500; то все радостно виснет при попытке писать в третий ком, на котором сидит блютуз.
Вообщем идея с потоками кажется наиболее перспективной, но опять же посмотрев как оно реализовано в с++, решил пока отложить переписывание, ибо из-за банальной проблемы коннекта получается целый огород. -
Понятно, значит у Вас не .Net Framwork.
Тогда гляньте WMI (Windows Management Instrumentation) в С++, в windows есть. На С++ не пишу, но посмотрите в инте, думаю найдете.
Может это
http://win32easy.blogspot.com/2011/03/wmi-in-c-query-everyting-from-your-os.html
http://www.codeproject.com/Articles/10539/Making-WMI-Queries-In-CМинусы использования WMI, только Windows. Но это просто один из вариантов получить описания устройства. Возможно сделать это по другом в других ОС.
Это была по сути реализация предложения Unixon, просто смотрится не VIN/PID.
Да обратил внимание на нее, не люблю лишние задержки.Дело вкуса.
Хотя мне кажется городить потоки и сложнее и труднее. Я за идею Unixon, получать описание подключенных устройств, мне кажется так проще и надежнее.
I’m rather disappointed because I just bought arduino and I am unable to upload any projects. The error I get is:
avrdude: ser_open(): can't open device "\.COM3": Časový limit semaforu vypršel.
Can be translated as:
avrdude: ser_open(): can't open device "\.COM3": Semaphore time out
Am I expected to brute-force all available ports to see which one is reserved for arduino? How can I, on Windows 7, quickly determine which port to use given that the IDE for some reason can’t do that for me.
asked Mar 13, 2016 at 15:28
6
Start | Control Panel | System | Device Manager | Ports (COM & LTP).
Watch the list change as you plug / unplug the Arduino. The new port is the Arduino.
answered Mar 13, 2016 at 15:58
TransistorTransistor
6295 silver badges14 bronze badges
You may have to install a device driver. There is a «drivers» directory in the IDE download with some in it.
Example:
According to the readme.txt file:
With this version of Arduino a new all-in-one driver (with
security signature for Windowsis supplied.
The old (deprecated) drivers are still available in the
Old_Arduino_Drivers.zip
answered Mar 13, 2016 at 21:54
Nick Gammon♦Nick Gammon
36.3k13 gold badges63 silver badges122 bronze badges