Лабораторная работа №0

Цель: знакомство с Arduino и сервисом Autodesk circuits.

Теоретические сведения

Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.

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

Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.

Аппаратная часть

Плата Arduino состоит из микроконтроллера Atmel AVR (ATmega328 и ATmega168 в новых версиях и ATmega8 в старых) и элементной обвязки для программирования и интеграции с другими схемами. На каждой плате обязательно присутствуют линейный стабилизатор напряжения 5 В и 16 МГц кварцевый генератор (в некоторых версиях керамический резонатор). В микроконтроллер предварительно прошит загрузчик, поэтому внешний программатор не нужен.

НЕ нашли? Не то? Что вы ищете?

На концептуальном уровне, все платы программируются через RS-232 (последовательное соединение), но реализация этого способа отличается от версии к версии. Текущие платы, вроде Uno, программируются через USB, что осуществляется благодаря микросхеме конвертера USB-to-serial. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется подключение отдельной платы USB-to-serial или кабеля.

Платы Arduino позволяют использовать большую часть I/O выводов микроконтроллера во внешних схемах. Например, в плате Uno доступно 14 цифровых вводов/выводов(уровни «LOW» -0В и «HIGH» -5В), 6 из которых могут выдавать ШИМ сигнал, и 6 аналоговых входов(0-5В). На рынке доступны несколько внешних плат расширения, известных как «shields».

Программное обеспечение

Интегрированная среда разработки Arduino — это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.

Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Строго говоря, это C/C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.

Autodesk Circuits

Несколько лет назад, компания Autodesk представила новый онлайн сервис 123D Circuits. Это web-приложение предназначенное для проектирования электронных схем и печатных плат, которое позволяет в визуальном режиме прямо из браузера редактировать код и строить схемы без паяльника и проводов, что довольно удобно.

123D Circuits предлагает целый ряд полезных возможностей для работы в области схемотехники. После внесения данных учетной записи пользователю на выбор предлагается: создание новых схем, добавление компонентов или импорт цепей из программы Eagle. Размеры плат здесь можно выбирать по собственному желанию, поддерживается свободное размещение текста, метод шелкографии. Однако основной особенностью 123D Circuits является имитация платформы Arduino с поддержкой плат ввода/вывода и возможностью редактирования программного кода из браузера в визуальном режиме.

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

Ресурс будет довольно полезен тем, кто давно мечтал купить заветную плату, но руки так и не дошли. Попробуйте сервис сами - это несложно и совершенно безопасно. В ходе сборки не пострадает ни одна деталь.

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

Ход работы

Для начала работы с сервисом нужно перейти по ссылке

https://circuits. io и зарегестрироватся. Регистрация и дальнейшее использование сервиса является бесплатным. Все созданные вами проекты являются общедоступными. Платная версия используется для приватного макетирования.

После регистрации, возвращаемся на главную страницу, здесь нам предлагается открыть Electronics Lab Hub, Circuit Scribe Hub, PCB Design Hub и MESH Hub. Нам нужно открыть электронную лабораторию(Electronics Lab Hub). Именно в лаборатории возможно заняться прототипированием схем.

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

После открытия попадаем в лабораторию, где перед нами чистый лист, вернее, чистая макетная плата. Сначала можно научиться перемещаться в пространстве рабочего стола. Нажав левой кнопкой мыши(ЛКМ) на объекте, его можно выбрать. Для перемещения объекта, его нужно выбрать и не отпуская ЛКМ, передвигать по экрану. Если нажать на свободную зону экрана, то можно передвигать сам стол, оставляя предмет неподвижным. Есть возможность масштабирования с помощью вращения колёсика мышки.

Для наглядности рассмотрим пример подключения светодиода:
    Для выполнения этого задания нужно добавить на наш стол необходимые элементы. Сервис хорошо имитирует и модулирует сборку схем. Все элементы в данной среде выглядят и функционируют точно также, как в реальной жизни. Из преимуществ перед реальной робототехникой можно назвать неограниченное количество этих элементов и отсутствие опасности что-нибудь спалить при неправильном подключении. При нажатии на кнопку Add Components появляется выпадающее снизу меня со стартовым набором радиотехнических элементов. Необходимые для данной работы компоненты: LED – Светодиод, Плата Arduino UNO, Resistor - Резистор.

    Находим эти компоненты в меню компонентов. Их можно просто перетаскивать на рабочий стол. Важно, что Arduino Uno нужно поместить так что бы она не перекрывала нам доступ к макетной плате. Светодиод нужно поместить на макетную плату. Нужно, чтобы он попал в отверстия на плате. Если это происходит, то его ножка подсвечивается.

    С подключением резистора всё немного сложнее. Потому что сначала он идёт вертикальным, а нам необходимо его перевернуть на 90 градусов. Делается это с помощью поворота светодиода кнопкой Rotate, которая находится в верхнем меню слева . Далее также необходимо, чтобы резистор попал одной ножкой в тот же ряд, что и светодиод, а второй - в свободное отверстие. Следующий важный момент - это номинал резистора. Чтобы получить доступ к настройкам элементов, нужно нажать на них ЛКМ. В меню Resistor, которое обведено зелёным кружком, можно дать имя резистору и назначить его номинал. При этом будут меняться полоски на резисторе.

Найдите отличия. Резисторы на 220 Ом, 1 КОм, 10 КОм

    Нам необходим резистор на 220 Ом. В итоге сборки схема должна выглядеть  примерно следующим образом.

    Далее самая важная часть. Подключение светодиода к Arduino Uno,  для чего нам нужно будет воспользоваться проводами. Проводов нет в компонентах, потому что они добавляются сразу нажатием ЛКМ на отверстие, где провод начинается, а после - с чем его нужно соединить. Для тренировки можно соединить между собой место, свободное от элементов. Зелёными кругами объединены контакты, которые будут соединены. После подключения на провод можно нажать и изменить его цвет.

    Провода можно соединять любым необходимым образом, а после, для большего удобства, их можно окрашивать в различные цвета. Для удаления ненужных элементов, например, этих проводов, можно выделить провод и клавишей Delete удалить его. Ещё есть возможность откатить назад действие сочетанием клавиш Ctrl+Z.

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

    Расцветка проводов от Arduino соответствует их назначению. От пина 13 красный провод к плюсу. От пина GND – черный к земле. Такими не сложными манипуляциями мы только что аппаратно подключили светодиод к плате Arduino Uno. Первая половина задачи выполнена, теперь вторая - программирование.

    Для начала программирования нужно нажать кнопку Code Editor. После этого в нижней части экрана появится консоль для работы. После чего можно скопировать ниже приведенный код в консоль. Он прокомментирован, что позволяет разобраться, как работает эта система.

Код

void setup()
{
       // настраиваем пин №13 в режим выхода,
       // т. е. в режим источника напряжения
pinMode(13, OUTPUT);
}

void loop()
{
       // подаём на пин 13 «высокий сигнал» (англ. «high»), т. е.
       // выдаём 5 вольт. Через светодиод побежит ток.
        // Это заставит его светиться
digitalWrite(13, HIGH);

       // задерживаем (англ. «delay») микроконтроллер в этом
        // состоянии на 1000 миллисекунд
delay(1000);

       // подаём на пин 13 «низкий сигнал» (англ. «low»), т. е.
        // выдаём 0 вольт или, точнее, приравниваем пин 13 к земле
        // В результате светодиод погаснет
digitalWrite(13, LOW);

       // замираем в этом состоянии на 1000 миллисекунд
delay(1000);

       // после «размораживания» loop сразу же начнёт исполняться
        // вновь, и со стороны это будет выглядеть так, будто
       // светодиод мигает раз в 1000 мс + 1000 мс = 2000 мс = 2 сек
}

После нажатия кнопки Start можно наблюдать работу устройства. Светодиод будет помигивать. Можно поэкспериментировать с временем включения и выключения, то есть изменить цифры в коде.