Кафедра РТ и РС. Абросимова. Влгу кафедра "Радиотехника и радиосистемы" Отчёт о прохождении производственной практики
Скачать 1.62 Mb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВЛГУ) Кафедра “Радиотехника и радиосистемы” Отчёт о прохождении производственной практики. Работу выполнила: ст.гр. КТ-119 Абросимова А.П. Работу проверила: доц. Корнеева Н.Н. Владимир 2022г. Введение Arduino - аппаратная вычислительная платформа, состоящая из двух основных компонентов: плата ввода-вывода и среда разработки на языке Processing/Wiring. Arduino удобна для разработки электронных устройств как для новичков, так и для профессионалов. Эта платформа пользуется огромной популярностью во всем мире из-за простого языка программирования, открытой архитектуры и программного кода. Особенность данной платформы является то что она программируется без использования программаторов через USB. С помощью Arduino компьютер может выйти за рамки виртуального мира в физический, благодаря множеству датчиков которые можно подключить к плате. Датчики могут получать информацию об окружающей среде, а также управлять различными исполнительными устройствами. Может и взаимодействовать с программным обеспечением на компьютере (например, Flash,Processing,MaxMSP). Плата Arduino состоит из микроконтроллера и элементов обвязки для программирования и интеграции с другими схемами. На многих платах так же имеется линейный стабилизатор напряжения. Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором ( прибор, в котором пьезокристаллический эффект и явление механического резонанса используется для построения высокодобротного (свойство колебательной системы, определяющее полосу резонанса и показывающее, во сколько раз запасы энергии в системе больше, чем потери энергии за один период колебаний ) резонансного элемента электронной схемы. В микроконтроллер предварительно прошивается загрузчик( программа отвечающая за загрузку исполнительных файлов и запуск новых процессов ) BootLoader, поэтому внешний программатор не нужен. Плата Arduino содержит инвертирующую схему для конвертирования уровней сигналов RS-232( Recommended Standart 232, физический уровень для асинхронного интерфейса ) в уровни ТТЛ (Транзисторно-транзисторная логика-разновидность цифровых логических микросхем, построенных на основе биполярных транзисторов (трёхэлектродный полупроводниковый прибор) и резисторов.), и наоборот. Интегрированная среда разработки Arduino - это кросплотформенное приложение на Java, включающая в себя редактор кода, компилятор и модуль передачи прошивки в плату. Язык программирования используемый для Arduino очень похож на СИ++, дополненный некоторыми библиотеками. Обработка программ осуществляется с помощью препроцессора, а компилируется с помощью AVR-GCC. 1. Начало работы с Arduino Для того что бы начать работать с Arduino понадобится следующее: 1) Плата Arduino 2) USB-кабель 3) Среда разработки для Arduino. После того как приобретено всё необходимое подключаем плату к компьютеру. Arduino Uno, Mega, Duemilanove и Arduino Nano получают питание автоматически от любого USB-подключения к компьютеру или другому источнику питания. При использовании Arduino Diecimila необходимо убедиться, что плата сконфигурирована для получения питания через USB-подключение. Источник питания выбирается с помощью маленького пластикового джампера, надетого на два из трех штырьков между разъемами USB и питания. Необходимо проверить, чтобы он был установлен на два штырька, ближайших к разъему USB. Подсоедините плату Arduino к компьютеру, используя USB-кабель. Должен загореться зеленый светодиод питания, помеченный PWR. Следующим шагом будет установка драйверов, для имеющейся модели. После того как драйвера были установлены, запускаем среду разработки Arduino. Во многих средах разработки Arduino уже есть готовый пример скетча, который можно запустить и проверить правильность подключения платы к компьютеру. В настройках среды разработки необходимо указать модель платы Arduino, иначе даже при правильно написанном скетче, плата будет работать неправильно. Так же необходимо выбрать последовательный порт. Выберите устройство последовательной передачи платы Arduino из меню Tools | Serial Port. Вероятно, это будет COM3 или выше (COM1 и COM2 обычно резервируются для аппаратных COM-портов). Чтобы найти нужный порт, можно отсоединить плату Arduino и повторно открыть меню; пункт, который исчез, и будет портом платы Arduino. Вновь подсоедините плату и выберите последовательный порт. Далее проверяем работоспособность платы. Нажимаем кнопку «Upload» в программе - среде разработки. Ждём несколько секунд - начинают мигать светодиоды RX и TX на плате. В случае успешной загрузки в строке состояния появится сообщение «Done uploading (Загрузка выполнена). (Замечание. Если имеется в виду плата Arduino Mini, NG или другая плата, то необходимо физически кнопкой подать команду reset непосредственно перед нажатием кнопки «Upload»). Несколько секунд спустя после окончания загрузки будет видно как светодиод вывода 13 (L) на плате начнет мигать оранжевым цветом. Это свидетельствует о правильно подключении платы к компьютеру, её работоспособности и правильной установке программного обеспечения. Arduino Nano-это отладочная плата небольшого размера, которая входит в тройку лидеров по популярности среди радиолюбителей-программистов. Несмотря на свой скромный размер, она практически ничем не уступает нашумевшей Arduino Uno по функционалу и может использоваться в проектах, где габариты играют существенную роль. Ранние версии Arduino Nano базировались на основе микроконтроллера ATmega168. Начиная с версии 3.0, в них установлены более продвинутые ATmega328, с увеличенным объёмом FLASH и EEPROM-памяти, а также с большей тактовой частотой. На рисунке №1 показан внешний вид платы Arduino Nano V3.0. Рисунок №1 – плата Arduino Nano Как видно из вышеприведенного рисунка, для общения с внешним миром в этой плате предусмотрены штыревые колодки. Это удобно для макетирования, но при желании их можно не устанавливать. В таком случае провода к нужным выводам припаиваются напрямую. Также штыревые колодки нужны при использовании в проекте специализированных плат расширения (шилдов), которых для данной модификации Arduino придумано огромное множество. Если внимательно рассмотреть плату Arduino Nano, то на ней можно заметить не только микроконтроллер ATmega328, но и ряд дополнительных компонентов, обеспечивающих «жизнедеятельность» этого аппаратного комплекса в целом. На рисунке №2 можно увидеть, за что отвечает каждый из них. Рисунок №2 – Состав платы Arduino Nano Чтобы сэкономить место, разработчики расположили радиоэлементы по обе стороны платы. С лицевой стороны нанесена вся информативная шелкография, установлен микроконтроллер ATmega328, кварцевый резонатор, разъём Mini-USB, кнопка сброса и четыре индикаторных светодиода (TX, RX, PWR и L). Первые два светодиода загораются при обмене данными платы Arduino Nano с другими устройствами через последовательный серийный порт. Индикатор PWR отражает поступление на плату питания, а светодиод L является индикатором общего назначения и загорается в случае подачи высокого сигнала на вывод №13. Обратная сторона послужила основой для линейного стабилизатора напряжения 5V и преобразователя интерфейса FTDI USB. Программирование и связь с ПК Процесс подключения платы Arduino Nano к персональному компьютеру обычно не вызывает затруднений – он полностью аналогичен работе с платой Arduino Uno, за исключением некоторых моментов, о которых будет сказано ниже. Если работа с платой происходит впервые, скорее всего, потребуется скачать и установить драйвер для микросхемы CH340. Эта микросхема представляет собой USB-to-Serial преобразователь, который обеспечивает общение Arduino Nano с компьютером через USB-кабель. Подобные микросхемы установлены в большинстве модификаций и реплик плат Arduino Nano. Следующий момент, на котором необходимо заострить внимание – это тип установленного микроконтроллера. Как говорилось выше, их может быть два: ATmega168 и ATmega328. Перед программированием, необходимо выбрать в среде Arduino IDE именно тот, с которым будет вестись работа. Этот нюанс отражён на нижеприведённом рисунке №3. Рисунок №3 – выбор типа микроконтроллера, установленного на плате Arduino Nano Если всё сделано правильно, то при соединении Arduino Nano с компьютером во вкладке меню Инструменты-Порт, должен появиться номер виртуального COM-порта, привязанный к текущей плате. С этого момента можно загружать скетч в микроконтроллер путём нажатия всего одной кнопки, в виде смотрящей направо стрелки. Для продвинутых пользователей предусмотрена возможность внутрисхемного программирования «напрямую» через разъём ICSP. В таком случае не обойтись без стороннего программатора, например USB-ASP, STK500 или AVRISP. Система питания Чтобы Arduino Nano начала функционировать, её необходимо запитать одним из двух возможных способов, а именно: через USB-кабель при подключении к компьютеру или другому источнику питания 5V. при помощи внешнего стабилизированного источника питания, напряжение которого должно лежать в диапазоне 6-20V (рекомендуется 7-12V). Данное напряжение подаётся непосредственно на вход VIN платы Arduino Nano. Примечание. Если одновременно подключить два источника питания, то плата выберет тот, потенциал которого будет выше. Независимо от способа подключения, вывод GND платы Arduino Nano является общим минусом. Что касается портов ввода-вывода, то следует помнить, что они работают с напряжениями 0-5V. Любое превышение, несмотря на встроенные ограничительные диоды, может вывести микроконтроллер из строя. То же самое касается и нагрузочной способности порта. Максимальный ток, который может выдать один вывод, равен 40мА, а суммарный ток всех выводов не должен превышать значение 200мА. Также плату Arduino Nano можно использовать для питания мелкой периферии. Для этого на ней предусмотрены выводы 5V и 3.3V. Первое напряжение формируется встроенным линейным стабилизатором LM1117IMPX-5.0, а второе берётся с четвёртого вывода микросхемы-конвертора CH340G (у платы Arduino Uno для этого предусмотрен свой отдельный стабилизатор). Следовательно, использовать напряжение 3.3V можно только в случае питания через разъём USB. Для полноты картины, ниже приведена электрическая схема платы Arduino Nano, на которой наглядно можно увидеть оговоренные ранее моменты (рисунок №4). Рисунок №4 – электрическая схема Arduino Nano Порты ввода-вывода Для пользователя платы Arduino Nano доступно 14 цифровых контактов ввода/вывода. Их обозначение начинается с латинской буквы «D», от английского слова digital-цифровой. Каждый из этих контактов может быть настроен как на вход, так и на выход. Настройка направления осуществляется при помощи функции pinMode(), например: pinMode(13, OUTPUT); – настройка на выход вывода №13; pinMode(13, INPUT); – настройка на вход вывода №13; pinMode(13, INPUT_PULLUP); – настройка на вход вывода №13 с подтяжкой к напряжению питания через внутренний резистор. Если цифровой пин настроен на выход, он может выдавать два уровня сигнала, которые соответствует логическому нулю или логической единице. Делается это при помощи следующих команд: digitalWrite(13, LOW); – установить нулевой уровень на выводе №13; digitalWrite(13, HIGH); – установить 5V на выводе №13; Также, некоторые из цифровых выводов способны генерировать на своём выходе ШИМ-сигнал с настраиваемой скважностью. Эти выводы помечаются на плате специальным дополнительным символом «*». Для Arduino Nano эти выводы имеют обозначение D3, D5, D6, D9, D10, D11. Ниже даны несколько соответствующих примеров: analogWrite(3, 0); – установить на выводе №3 ШИМ сигнал с максимальной скважностью (аналогично логическому нулю); analogWrite(3, 255); – установить на выводе №3 ШИМ сигнал с минимальной скважностью (аналогично логической единице); analogWrite(3, 128); – установить на выводе №3 ШИМ сигнал со скважностью 50%. В случае, когда цифровой пин настроен на вход, пользователь может узнать логический уровень, который в данный момент на нём присутствует, например: uint8_t level=digitalRead(13); – переменной level будет присвоено значение 0 или 1 в зависимости от уровня напряжения на входе №13. Помимо цифровых контактов, плата Arduino Nano имеет на своём борту 8 аналоговых входов, которые связаны с 10-битным АЦП. Это даёт возможность измерять напряжение в пределах 0-5V с точностью 0,0048V. Расширение диапазона измеряемых напряжений достигается путём использования резистивных делителей. Обозначение аналоговых входов начинается буквой «А», от английского слова analog. На плате Arduino Nano эти входы маркируются как A0, A1, A2, A3, A4, A5, A6, A7. Первые пять входов могут использоваться в качестве цифровых, работая в оба направления. Пины A6 и A7 способны работать только на вход!!! Это следует помнить при проектировании программного обеспечения. Чтобы оценить уровень напряжения на аналоговом входе, необходимо воспользоваться следующей командой: int adc=analogRead(A0); – переменной adc будет присвоено значение от 0 до 1023 в зависимости от величины напряжения на входе. Ввиду того, что Arduino Nano построена на базе микроконтроллера ATmega328, некоторые её выводы имеют также и альтернативные функции, например шину SPI, I2C, Serial и.т.д. Все эти структуры при необходимости активируются с помощью встроенных в Arduino IDE библиотек или напрямую через работу с регистрами микроконтроллера. Чтобы наглядно увидеть возможности этой небольшой платы в комплексе со всеми альтернативными возможностями, на рисунке №5 приведена полная карта распиновки выводов Arduino Nano. Рисунок №5 – распиновка выводов платы Arduino Nano Некоторые наиболее из часто используемых в Arduino IDE альтернативных функций для удобства восприятия сведены в таблицу ниже. Структура памяти Память Arduino Nano можно функционально разделить на три разных группы. Такая классификация обусловлена применением микроконтроллера линейки AVR, в котором подобная топология заложена производителем. Каждый подвид памяти выполняет свою функцию, что в комплексе обеспечивает полноценную жизнедеятельность микроконтроллера. Итак, Arduino Nano предоставляет следующие виды памяти: Flash-память – служит для хранения программного кода в виде прошивки. Иногда программисты её используют также для хранения каких-либо константных данных с целью экономии места в оперативной памяти. Как пример – текстовые строки для меню и.т.п. Если Arduino Nano выполнена на базе микроконтроллера ATmega168, то объем flash-памяти будет равен 16кБ. В случае с ATmega328 мы получим 32кБ flash-памяти. Следует учитывать, что в обоих случаях 2кБ будет занято программой-загрузчиком! EEPROM-память – это энергонезависимая память, значения которой не изменяются даже при отключении питания. Широко используется программистами для сохранения последних настроек в проекте, которые по задумке подвержены периодическому отключению от источника электроэнергии. Как и в предыдущем случае, объем этой памяти зависит от типа используемого микроконтроллера. ATmega168 предоставляет 512 байт EEPROM, а ATmega328 в два раза больше – 1кБ. В Arduino IDE есть специализированная библиотека, позволяющая удобно работать с энергонезависимой памятью. Подключить её можно следующей строкой: #include SRAM-память – оперативная память, которая служит для хранения значений переменных в период выполнения программного кода и полностью обнуляется при отключении Arduino Nano от источника питания. Микроконтроллер ATmega168 имеет SRAM в объеме 1кБ. Это ровно вполовину меньше от того, что даёт микроконтроллер ATmega328 (2кБ). Многие, особенно начинающие программисты сталкиваются с быстрым израсходованием оперативной памяти. Чтобы этого не происходило, следует тщательно следить за типами данных, чтобы избежать избыточности на всех этапах разработки проекта. Подведение итогов Несмотря на очень скромный размер (4.3см х 1.85см), Arduino Nano представляет собой полнофункциональное законченное устройство, которое в большинстве случаев базируется на микроконтроллере ATmega328. Плата призвана облегчить процесс макетирования и учитывая её популярность, успешно справляется с этой задачей на протяжении долгого времени. Arduino Nano практически не уступает по возможностям её «старшему собрату» - плате Arduino Uno, которая имеет куда большие габариты и стоимость. На основании вышеизложенного можно сказать, что универсальность Arduino Nano в комплексе с множеством библиотек и разнообразием технической литературы являются мощным инструментов в умелых руках. С помощью данного комплекса можно решить немало задач по автоматизации в самых различных сферах человеческой деятельности. Заключение Производственная практика в этом году длилась 2 недели, с 01.07 до15.07.2022. В процессе прохождения практики, я ознакомилась с организационной структурой филиала университета и узнал об аспектах функционирования одного из подразделений – инжинирингового лазерного центра. Каждое подразделение это, своего рода, звено. А все учреждение это -механизм, состоящий из этих звеньев. Все результаты ежедневно вносились в дневник, согласно плану. По истечению срока практики, был написан отчёт, в котором отражен процесс выполнения плана и поставленных задач, перед началом производственной практики. |