Управление Arduino с компьютера

Arduino Leonardo (aka Pro Micro) в качестве USB-HID джойстика.

Интерес к вариации ардуины под названием Leonardo появился у меня совсем не давно, и очень предметно, т.е. я наконец-таки проникся в то узко специфичное назначение и задачу, которую более изящно, чем на леонарде не выполнишь, пожалуй, не на одной из ардуин. Весьма кстати сложилось и то, что незаюзанная леонарда (причем в двух исполнениях) была предусмотрительно (перед кризисом, еще в том году) припасена. Тогда, в конце 2014, я от души не понимал: нахрен было изобретать этакую «кастрированную солянку» (это я об леонарде так)…

Предадимся на чуток воспоминаниям: первая моя из ардуин (самая продвинутая на тот момент, если не считать мегу) была «даймиланов» (Duemilanove) и строилась она на базе «основного» контроллера mega168|328 и конвертора-преобразователя USBCOM (FT232); далее появилась в продаже «уна» (UNO) причем (последовательно) аж три разных ревизии, где в качестве интерфейсного преобразователя был установлен также контроллер, но более скромный – mega8u2|16u2 … Но такой апгрейд не сразу получил поддержку кодом, да и сейчас не так уж много решений, позволяющих заюзать сею фичность. А причин этому несколько. Во-первых интерфейсный контроллер на первой ревизии UNO был не то чтоб сильно маленьким (в плане памяти – всего 8кб) – у него не было практически распаянных ног, за исключением коннектора ISP. Ревизия R2 получила более емкий 16u2 контроллер. И лишь последняя R3 заимела разведенными еще 4 ноги (помимо ISP) интерфейсного контроллера. А почему всего 4? – да контроллер такой, нету у него ног свободных больше. Ввиду этого, функционал, который можно возложить на интерфейсный контроллер совместно или вместо штатного USB-в-COM весьма ограничен. Плюс к этому софт под интерфейсный контроллер нужно писать и компиллировать не в среде Ардуино (а в штатной атмеловской «Студии») – что требует уже другого уровня квалификации. А если квалификация позволяет программить в AVR Studio (и есть соответствующие программаторы-отладчики) – то тогда зачем вообще ардуина? Короче «если» и «зачем» намного больше, чем реально полезных моментов. Из реализованного и доступного альтернативного функционала интерфейсного контроллера, пожалуй, наиболее востребованным является режим ISP-программатора (о чем я уже писал). Реализовывать же на уне компьютерные «приблуды» на USB-шину по крайней мере неудобно с точки зрения отладки (каждый раз шить оба контроллера, один через другой? Или внешними программаторами? – геморройно короче), да еще нужно и взаимный протокол обмена между двумя контроллерами продумывать …

Концепция платы Arduino Leonardo объединила два контроллера в одном. Если быть более точным – то «основной» контроллер у леонарды просто выкинули, оставили один интерфейсный. Но в качестве интерфейсного взяли не только более емкий (32кб), но и с большим количеством ног – mega32u4. У данного контроллера ног хватает чтобы «покрыть» все пины разъемов штатного коннектора щитов. Плюс к этому код, выполняющийся в интерфейсном контроллере, все также пишется и компиллится в среде разработки Ардуино. Но есть два недостатка: негусто памяти (часть из 32кб занимает загрузчик) и контроллер впаян на плату (если сожжешь, заменять геморройно), т.е. раньше все было просто: тестишь и отлаживаешь на уне, а конечные проекты (где нужна память и которые электрически отлажены) – реализуешь на меге (которую тоже перепаивать не захочешь) … в леонардо же встречаются эти два взаимоисключающих себя (для меня имхо) свойства. Вот и смотрел я на леонарду как на гадкого утенка.

Но если честно, то покупал я леонарду не совсем «прозапас», а с некоторым гипотетическим прицелом: к тому времени я уже успел приобрести раритетную консоль Nintendo 64 (далее – N64), собрал к ней комплект разных фишек, в том числе и с прицелом попрограммить. А на практике, помимо прочего, нашел я весьма эргономичным (тем более с учетом почти 20-ти летней давности) её джойстик. Вот соответственно и решил прикрутить его к компу (через USB) … Ардуино в помощь. или

Управление Arduino с компьютера

Подружить Arduino с компьютером очень просто. Данные передаются через виртуальный порт RS-232(COM).

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

На компьютере управляющая программа будет отображать позицию горящего светодиода.

Схема со светодиодами, крайне проста.
LED1-3 светодиоды подключенные к ШИМ-выводам. ШИМ потребуются для фэйд-эффекта.
R1 двухсотомный резистор. Для ограничения тока проходящего через светодиод, иначе диод можно спалить.

Небольшая программа для Arduino. (Скачиваем)

Блог о компьютерах и компьютерной технике, Москва, Владимир Лукьянов, Arduino

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

Тоже довольно простая программа на Processing. (Скачиваем)

Все относительно просто. Программа на компьютере передает цифровые значения в Com-порт, Arduino гасит текущий светодиод и зажигает светодиод с номером пришедшем через порт.

Схемы платформы

Ниже представлены ссылки на скачивание всех схем Arduino NANO:
Принципиальная схема, файлы EAGLE и распиновка платы

Принципиальная схема
Файлы трассировки .EAGLE
Контактная распиновка платы
Datasheet для ATmega328

Распиновка Arduino Nano

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

Если вы или ваш ребенок хочет изучить основы микроэлектроники, робототехники или интернета вещей, Arduino — идеальное начало!

Скетчи для Arduino

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

Давайте поговорим об основных нюансах, которые связаны с библиотеками и прошивкой – и вы поймете, насколько это интересно и увлекательно. Последний этап можно разделить на 2 основные шага:

  • применение интегрированных, уже имеющихся примеров;
  • написание отдельных кодов самостоятельно.

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

применение интегрированных примеров

Запускаем его и работаем.

Панель управления

Обратите внимание на Панель управления софта (мы незаслуженно обходили ее стороной, исправляемся). Она имеет несколько клавиш.

Напомним их предназначение:

Кнопки

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

Ну и поговорим немного о сторонних скетчах, которые вы наверняка заметили в каждом нашем материале и схеме подключения на конкретных проектах. Если описывать наглядно, как выглядит методология их применения, то получится так. Сначала вы копируете скетч, вставляете его в соответствующее окно в утилите, кликаете на кнопку Компиляция, дожидаетесь ее окончания. Просто, не так ли?

Добавление скетча

Мы часто предлагали и будем это делать далее готовые скетчи для Arduino Uno. Так вот — многие из них подойдут и под другие контроллеры: Arduino Nano или Arduino Mega, об этом ищите указания в статьях. Это важно!

Фраза «Залить скетч» означает то, что его следует скопировать и вставить в форму для компиляции. Она часто встречается – потому будьте внимательны!

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

Используем IDE

Написанные для платформы Ардуино называются скетчами. Создать скетч можно при помощи интегрированной среды разработки, коротко – IDE (официальная версия так и называется, Arduino IDE ). Установив драйвера и эту среду, вы можете сделать свой первый шаг.

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

Среда разработки ардуино

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

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector