Опубликовано

Инструменты для работы через последовательный порт

Рассмотренные нами ранее (см. разд. «Доступ к интерфейсу командной строки») программы эмуляции терминала позволяют получать доступ к удаленным компьютерам через Интернет, но их возможности этим не исчерпываются. Посредством таких программ можно подключаться и к последовательному порту компьютера. Сравнительно недавно в большинстве случаев подключение к Интернету осуществлялось не через какое-либо широкополосное соединение, а через обычные телефонные линии с помощью модема, подключаемого к последовательному порту компьютера. А на заре развития компьютерных коммуникаций многие пользователи таким образом подключались к доскам объявлений (bulletin boards, BBS) и с помощью систем меню программ эмуляции терминала оставляли сообщения, загружали файлы и обменивались сообщениями с другими пользователями этой же доски объявлений. В настоящее время последовательные порты в большинстве случаев эмулируются программными драйверами и служат для связи с различными устройствами USB и прочими периферийными устройствами. Через такие же последовательные порты осуществляется и программирование микроконтроллеров, и обмен данными между ними и компьютером.

В проектах этой книги для подключения микроконтроллера к последовательному порту компьютера также используются программы терминала. Существует большое число терминальных программ — как платных, так и бесплатных. Одной из них является замечательная бесплатная программа CoolTerm, разработанная Роджером Майером (Roger Meier), которую можно загрузить с веб-сайта http://freeware.the-meiers.org. Программа работает как на компьютерах под macOS, так и под Windows, — и это сейчас моя самая любимая программа. Если вы решите пользоваться ею, поступите правильно и сделайте пожертвование, так как автор разрабатывал ее в свое свободное время. Для пользователей Windows хорошей альтернативой может стать уже упомянутая ранее программа PuTTY (рис. 1.6), поскольку, кроме подключения по ssh, она также может открывать последовательные порты. Вы можете избрать и совсем простой путь — воспользоваться классической программой Screen (под лицензией GNU), исполняющейся в окне терминала. Эту программу можно также использовать и на компьютерах под масOS, но она обладает меньшей функциональностью, чем программа CoolTerm.

Рис. 1.6. Установка типа подключения и последовательного порта в PuTTY

Кто получит порт?

Только одно приложение может единовременно работать с последовательным портом. Иными словами, если последовательный порт открыт одной программой, никакая другая программа не будет иметь к нему доступа, пока первая программа не завершит свою работу с этим портом. Когда программа пытается открыть последовательный порт, она запрашивает исключительный контроль над ним. При этом она или выполняет запись в специальный файл, называющийся файлом блокировки, или просит операционную систему выполнить эту запись от ее имени. Завершив работу с последовательным портом, программа снимает блокировку. Иногда при сбое программы, работающей с последовательным портом, порт остается заблокированным и недоступным для других программ. В таких случаях единственным способом разблокировать порт будет перезагрузка операционной системы, что снимет все блокировки. Впрочем, можно и подождать, пока операционная система сама не осознает, что блокировку порта нужно снять, но этом подход менее надежный. Во избежание этой проблемы, всегда закрывайте последовательный порт при переключении с одного приложения, использующего его, на другое. Если не закрывать подключение должным образом, вам придется каждый раз перезагружать компьютер.

Программа CoolTerm

Запустите программу CoolTerm (рис. 1.7) и щелкните мышью на значке Options. В открывшемся диалоговом окне Connection Options выберите из раскрывающегося списка Port последовательный порт, к которому подключен микроконтроллер Arduino. Имена портов в macOS представлены в формате вида:

/dev/ tty.usbmodem1441

В Windows порты именуются COM1, COM2, COM3 и т. д. Чтобы узнать наверняка, к какому порту подсоединен ваш микроконтроллер Arduino, проверьте список портов при отсоединенном устройстве, а затем — при подсоединенном. Порт, появившийся в списке после подсоединения микроконтроллера, и будет его портом. Чтобы открыть порт и подключить к нему микроконтроллер, нажмите кнопку Connect на панели инструментов главного окна программы. Чтобы отключить микроконтроллер и закрыть порт, нажмите кнопку Disconnect.

Рис. 1.7. Окно программы терминала CoolTerm

Программа GNU Screen

Пользователи Linux и macOS для работы с последовательным портом также могут использовать программу CoolTerm (см. рис. 1.7) или же альтернативную ей программу GNU Screen.

На Ubuntu версии 15 программу GNU Screen можно установить, выполнив команду:

$ sudo apt-get install screen

Чтобы начать работу с GNU Screen в macOS или Linux, откройте окно терминала и выполните соответствующую команду:

$ ls /dev/tty —* # macOS

$ ls /dev/tty* # Linux

В результате исполнения этой команды в терминале будет выведен список последовательных портов, доступных в системе. Формат имен последовательных портов в macOS и Linux более сложный, чем формат COM1, COM2 и т. д., используемый в Windows, так как каждый порт в этих ОС имеет уникальное имя. Выберите необходимый последовательный порт и выполните команду:

$ screen номер_порта скорость_обмена

Например, чтобы открыть последовательный порт в macOS для подключения к микроконтроллеру Arduino со скоростью 9600 битов в секунду, выполняется команда:

screen /dev/tty.usbmodem1441 9600

Соответствующая ей команда в Linux будет иметь вид:

screen /dev/ttyUSB0 9600

В результате выполнения такой команды окно терминала очищается, устанавливается подключение микроконтроллера к последовательному порту и все, что вводится в терминал, отправляется на открытый последовательный порт. При этом вводимый текст на экране не отображается, но информация, получаемая на последовательный порт от микроконтроллера, отображается на экране в виде символов ASCII. Чтобы закрыть последовательный порт, нажмите комбинацию клавиш <Ctrl>+<A>, а затем — <Ctrl>+<\>.

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

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