Как открыть монитор порта arduino

Serial Monitor. Общаемся с компьютером

Для общения между платой Arduino и компьютером или другим устройством в контроллере используется интерфейс UART или USART, который в сочетании со встроенным в UNO USB-to-UART конвертером, позволит установить двунаправленую связь с компьютером через виртуальный последовательный порт. У некоторых моделей Arduino может быть несколько портов. Порт соединяется через цифровой пин 0 (RX) и 1 (TX) при подключении к компьютеру через USB, поэтому не используйте пины 0 и 1 для ввода/вывода.

Раньше на старых компьютерах были COM-порты, сейчас они создаются виртуально при помощи микросхемы FTDI, когда мы подключаем плату к компьютеру через USB.

Вам часто придётся использовать общение между устройствами для обмена информацией. Можно как посылать сигнал с компьютера, например, с клавиатуры, так и принимать сигналы с платы. Это полезно, чтобы узнать, что вообще происходит с сигналом из нужного вывода платы.

В Arduino IDE есть специальный значок с изображением лупы, который запускает Serial Monitor (монитор порта).

Для корректной работы с портом требуется выполнение двух условий: выбрать правильный COM-порт, выбрать скорость работы в скетче, которая должна совпадать со скоростью, выбранной в мониторе порта.

На платах Arduino Mega и Arduino Due доступны также Serial1, Serial2, Serial3.

Чтобы отправить сообщение в порт, используются методы print() (символы идут подряд) или println() (с переводом на новую строку).

Как открыть монитор порта arduino

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

Если посылаем строку, то обрамляем её кавычками. Если число, то кавычки не используем. Изменим функцию setup().

Можно заменить строки и числа на переменные. Перепишем пример.

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

Работа с массивами и строками

Разберём пример отправки строк в случайном порядке. Любая строка уже является массивом символов. Поэтому вместо типа String, можно использовать массив char[]. Для примера создадим массив из четырёх имён и будем выводить их в случайном порядке через разные промежутки времени, используя функцию random().

Как открыть монитор порта arduino

Приём данных

Проверяем на числах. Отправляем число 9, а получаем 57. Если вы получаете две строки с числами 57 и 10, то в нижней части окна выберите настройку No line ending вместо Newline.

Попробуем также отправить букву. Опять вместо t возвращается 116. Ерунда какая-то. Всё просто, функция read() работает с символьными значениями и мы видим код символа из стандартной таблицы символов ASCII.

Чтобы решить проблему, нужно изменить тип данных на char.

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

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

Решение какое-то половинчатое. А как быть с большими числами или словами?

Теперь вы можете вводить любые числа. Но, наверное, вы заметите теперь небольшую задержку в ответах. Метод внутри себя перемалывает данные. Кстати, вы можете использовать и обычные символы. Если набор символов состоит только из букв, то вернётся 0. Если будут попадаться и цифры, то будут возвращаться цифры. Попробуйте комбинировать различные сочетания цифр и букв, чтобы понять, как будут обрабатываться данные.

Управление светодиодом с клавиатуры

Напишем пример управления встроенным светодиодом с клавиатуры. Если нажата клавиша 1, то светодиод должен загореться, при нажатии клавиши 0 выключим светодиод.

Сигнал от компьютера поступает в виде байта. Создаём новую переменную incomingByte для этих целей.

Последовательный порт включается командой begin() с указанием скорости.

Если с компьютера поступает сигнал, то функция available() вернёт количество байт, доступное для чтения. Таким образом, мы просто убеждаемся, что какой-то сигнал пришёл (больше нуля).

После первой проверки мы проверяем введённый символ, который может быть представлен и как байт. Если символ равен единице, то включаем светодиод, как мы делали раньше. Если символ равен 0, то выключаем.

Как это выглядит на практике. Заливаем скетч и запускаем Serial Monitor (Ctrl+Shift+M). В окне Serial Monitor наверху есть текстовое поле. Вводим в него числа 1 или 0 и нажимаем кнопку Send. Можно также нажать клавишу Enter для быстрого ввода.

Для общего развития в скетч добавлены также две строчки кода, определяющие код нажатой клавиши. Таким образом вы можете узнать код для клавиш 0 и 1. Вы также можете нажимать и на другие клавиши, они не повлияют на светодиод, но вы увидите коды клавиш.

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

Функция Serial.end() закрывает последовательное соединение, порты RX и TX освобождаются и могут быть использованы для ввода/вывода.

Если вы больше не нуждаетесь в получении данных, то закрывайте окно Serial Monitor.

Также существует библиотека SoftwareSerial. Она позволяет осуществить последовательную передачу данных через другие цифровые контакты Arduino.

Другие варианты

Чтение данных из последовательного порта возможно другими способами. Ищите расширения, например, Arduino Chrome Serial Monitor. На видео можно посмотреть, как создать расширение самостоятельно.

На C# также можно написать приложение, которое будет уметь считывать данные.

Processing также умеет работать с последовательным портом.

Дополнительное чтение

Источник

How to use the Serial Monitor with the Arduino IDE 2.0

The Serial Monitor is an essential tool when creating projects with Arduino. It can be used as a debugging tool, testing out concepts or to communicate directly with the Arduino board.

The Arduino IDE 2.0 has the Serial Monitor tool integrated with the editor, which means that no external window is opened when using the Serial Monitor. This means that you can have multiple tabs open, each with its own Serial Monitor.

You can download the editor from the Arduino Software page.

You can also follow the downloading and installing the Arduino IDE 2.0 tutorial for more detailed guide on how to install the editor.

Requirements

Notable changes

One major change that was introduced with the Arduino IDE 2.0 is the integrated Serial Monitor. The older versions of the editor features an external window that matches the port/board that we select.

The Arduino IDE 2.0 works a bit differently. Instead of opening an external window for the Serial Monitor, it shows up where the console log is located, as an additional tab. To understand how this works, let’s take a look at how the old editor works:

Как открыть монитор порта arduino

Now, let’s take a look at the IDE 2.0. Notice how the Serial Monitor is located at the bottom of the editor:

Как открыть монитор порта arduino

The Serial Monitor settings are also located here, such as adjusting the baud rate and sending messages.

Advantages with new integration

A major advantage with having the Serial Monitor integrated with the editor is the possibility to have multiple monitors open simultaneously. In the old editor, when changing the port/board, it changed across all windows. In addition, we were limited to one Serial Monitor window, an obstacle that the IDE 2.0 removes.

You will find an example with more information on how to use this feature, further down this tutorial under the Using multiple Serial Monitors simultaneously section.

Using the Serial Monitor tool

The Serial Monitor tool is a really great tool for debugging and establishing communication between a computer and an Arduino. To use it is really easy, but there are some things that we need to do first.

Как открыть монитор порта arduino

Как открыть монитор порта arduino

Как открыть монитор порта arduino

The text «Hello world!» is now printed every one second. Congratulations, you have now successfully sent a message from your Arduino, to your computer.

Using multiple Serial Monitors simultaneously

A really cool feature with the Arduino IDE 2.0 is that the Serial Monitor is linked to the sketch windows you have open. For example, if we have two sketch windows, named sketch_1 and sketch_2, we can select the port and board for each window, and have two Serial Monitors running at the same time.

This is really useful when working with various communication / connectivity projects, where we want to know what’s going on both boards at the same time. If you have two Arduino boards, you can try out this feature using the instructions below.

Как открыть монитор порта arduino

Как открыть монитор порта arduino

Как открыть монитор порта arduino

Congratulations, you can now check what is going on with two boards simultaneously!

Note: Using several sketch windows and Serial Monitor at the same time can be quite heavy on your machine.

Источник

Arduino IDE: Монитор порта

Опубликовано: 05.10.2016 18:36

Как открыть монитор порта arduino

Введение

Приветствую всех, сегодня хочу рассказать вам о небольшой подпрограмме или утилите, кому как удобней, под названием «Монитор порта». Если вы уже знакомы с Arduino IDE то вы не раз с ней сталкивались и догадались о чем пойдет речь. Но не торопитесь уходить, вам точно будет что прочесть, так как мы пройдемся от основ до полного разбора ее работы.

И так, «Монитор порта» это небольшая подпрограмма Arduino IDE, предназначенная для приёма-передачи данных из-в Arduino. Ввиду того, что Arduino IDE не имеет никаких средств отладки скетчей, это единственное средство проверить все ли работает верно, и так как надо.

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

Саму форму «Монитора порта» можно разбить на три части: верхняя, центральная и нижняя.

Как открыть монитор порта arduino

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

Передача данных из Arduino в «Монитор порта»

Начнем мы с Arduino.

Для того чтобы передать данные из Arduino в «Монитор порта» необходимо в функции setup() проинициализировать класс Serial вызвав его метод begin попутно передав скорость и настройки COM-порта.

Что такое стартовый бит, информационный бит, бит четности, почему скорость измеряется в бодах, я расскажу вам в другой статье, иначе переварить такой большой объём информации, а статья получиться не маленькая, будет не просто. Сейчас же мы будем пользоваться стандартными настройками, где скорость равна 9600 бод в секунду, а настройки Arduino будет выбирать автоматически.

Итого у нас получилось следующее:

После того как все готово, отправить данные можно используя методы print и println того же класса Serial.

Таким образом, в мониторе порта мы будем видеть строку, состоящую из двух «Hellow World!» каждую секунду (см. фото выше).

Класс Serial содержит и другие методы для работы с монитором порта, но, как правило, методов print и println достаточно в большинстве случаев.

Получение данных отправленных из «Монитора порта» в Arduino

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

Поможет нам с этим все тот же класс Serial и его метод readString.

И так по команде «HIGH» мы будем включать светодиод, а по команде «LOW» будем выключать.

Для того чтобы отправить команду, необходимо в поле расположенном в верхней части формы набрать текст, и нажать кнопку «Отправить». Получать команды мы будем при помощи упомянутого метода readString.

Итого у Вас должно получиться следующее.

Вот так, без особых мучений можно создать N-е количество команд и обрабатывать их в Arduino.

Ну а далее о формате передачи данных.

Формат передачи данных

Как открыть монитор порта arduino

Напоследок, мы поговорим о том, в каком же виде происходит обмен информацией между «Монитором порта» и Arduino. Не смотря на то, какие данные вы передаете из Arduino в монитор порта, все они конвертируются в строку формата ASCII (см. таблицу), то же самое происходит и при отправке данных из монитора порта в Arduino. Т.е. отправив число десять, вы на самом деле отправляете не число, а строку, состоящую из двух символов, символ единицы и символ нуля.

К примеру, отправив один байт равный 128, на самом деле монитор порта получит три байта.

При выполнении метода println мы получим и вовсе 5 байт. Где первые три будут описанные выше, а два дополнительных это байт CR (13) и LF(10), означающие перевод на новую строку.

Посмотрев таблицу символов ASCII, многие заметят, что в ней присутствует символы только латиницы, в следствии чего отправив к примеру «Привет мир!», в мониторе порта мы получим какие то кракозябры. Пользуясь случаем хочу прорекламировать альтернативный монитор порта, написанный авторами портала, который понимает не только надписи на Русском, но и на других языках.

И вот теперь прочтя все, что я тут написал, наконец, можно рассказать что такое «Постфикс», выпадающий список в нижней части монитора порта.

Постфикс это байт или байты, в зависимости от того какой пункт вы выбрали, которые будут добавлены к данным которые вы ввели в поле для отправки.

Например, написав в поле для отправки число 128 и нажав на кнопку «Отправить» мы получим следующее:

На этом все. Пишите в комментариях, что вам не понятно, и в новых статьях мы попробуем расписать это более подробно.

Ну а следующая статья будет о том, как написать свой монитор порта на Delphi.

Источник

Arduino IDE: Монитор порта

В этой статье вы сможете прочитать введение в работу с так называемым “монитором порта” – небольшой утилитой, входящей в состав Arduino IDE. Она предназначена для обмена данными с помощью последовательного порта, чаще всего с Arduino. Так как в Arduino IDE нет встроенных средств для отладки прошивок, монитор порта является единственным доступным для этого средством.

Утилита состоит из одного окна и одновременно может работать только с одним последовательным портом, номер которого был выбран в Arduino IDE. Условно это окно можно разбить на три части:

Как открыть монитор порта arduino

Теперь о работе Arduino с последовательным портом. Для того, чтобы установить соединение в скетче, а именно в функции setup, нужно вызвать метод begin класса Serial и указать скорость соединения:

Также при инициализации можно объявить дополнительные настройки: количество информационных бит в байте ( по умолчанию 8), стоповых бит (1 по умолчанию), и наличие бита чётности (по умолчанию отсутствует).

Для корректной работы с монитором порта доступны следующие скорости в бод/с (включая служебные символы):

Отправлять данные с Arduino можно методами print (без переноса строки) и println(с переносом строки) класса Serial. Загрузим следующий скетч в плату.

Теперь каждую секунду в мониторе порта мы сможем наблюдать строку “Hello, World! Hello, World! “, как на скриншоте в начале статьи. Но ведь этого мало. Поэтому давайте научимся считывать команды, отправленные из монитора порта и управлять с их помощью платой Arduino.

Начнём с классики – мигания светодиодом. Команда “HIGH” будет включать встроенный в плату светодиод на 13 пине, “LOW” – выключать. Принимать их будем с помощью метода readString. В мониторе порта выбираем постфикс “Нет конца строки”, чтобы к командам не были добавлены служебные символы, и Arduino корректно их прочитала. Загружаем скетч и открываем монитор порта.

Наслаждаемся мигающим светодиодом.

Стоит обратить внимание и на формат передаваемых данных. Вне зависимости от того, какие данные были отправлены, все они будут конвертированы в строки формата ASCII. Всего их 128. Один символ кодируется одним байтом. То есть при отправке, например, числа 137 приёмник получит строку “137”, состоящую из трёх байтов под номерами “49”, “51”, “55”.

Как открыть монитор порта arduino

Первые 32 символа – служебные. Выше было сказано о том, что в мониторе порта можно выбрать 4 постфикса. Постфиксы добавляют к сообщению байты служебных символов. Подробнее о них:

При приёме данных на плату Arduino нужно учитывать добавленные постфиксы, иначе программы могут работать неправильно.

Загрузим небольшой скетч для вывода принятых данных на LCD экран 1602 с I2C модулем:

Источник

«Здравствуй, мир!» Монитор последовательного порта

В этом уроке

Видео версия урока

Реализация монитора порта

Arduino IDE способна не только загружать код в плату, но и взаимодействовать с ней через COM-порт (англ. communications port). Для этого используется «Монитор последовательного порта».

Введите следующий код в рабочее поле и загрузите в плату.

Блок setup ()
Функция Serial.begin () (4 строка) — задаёт скорость последовательной передачи данных между платой и ПК. Скорость указана в бодах (бит/сек). Оба устройства (контролер и Ваш компьютер) должны работать на одной скорости.

Блок loop ()
Функция Serial.println () (7 строка) — передаёт данные через COM-порт в виде строки (строка пишется в кавычках » «), в конце которой указаны символы переноса и начала новой строки (каждое следующее значение отображается с новой строки). Функция Serial.print () делает то же самое, но не добавляет в конце строки символы переноса и начала новой строки.

Как открыть монитор порта arduino

После загрузки скетча откройте «Монитор порта», нажав на кнопку в правом верхнем углу или выбрав его через меню «Инструменты».

Возможности окна монитора

Дополнительное задание

Сделайте так, чтобы отправляемое сообщение продолжало выводиться на одной строке.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *