Разработка аппаратно-программного обеспечения системы обнаружения магнитного поля на микроконтроллере Arduino

Заказать уникальную дипломную работу
Тип работы: Дипломная работа
Предмет: Электроника
  • 61 61 страница
  • 12 + 12 источников
  • Добавлена 09.06.2017
4 785 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Список сокращений 5
Введение 6
Глава 1. Магнитометрические системы. Физические принципы работы и область применения магнитометров 8
1.1 Задачи и области применения магнитных измерений 8
1.2Магнитостатические магнитометры 9
1.3Индукционные магнитометры 10
1.4Феррозондовые датчики 11
1.5Датчики Холла 13
Глава 2. Разработка аппаратной части магнитометрической системы 24
2.1 Микропроцессорный комплект ArduinoUNO 24
2.2 Первичный преобразователь магнитометрической системы - датчик Холла SS495A 29
2.3 Разработка структурной схемы 32
2.4 Разработка принципиальной схемы 33
Глава 3. Разработка программного обеспечения микроконтроллерного модуля магнитометрической системы 37
3.1 Интегрированная среда разработки ArduinoIDE 37
3.2Математическое обеспечение. Получение расчетных формул 41
3.3 Составление алгоритма 44
3.4 Разработка управляющей программы микроконтроллера на языке С 47
Глава 4. Тестирование магнитометрической системы 50
4.1Имитационное моделирование магнитометрической системы в среде Proteus. 50
4.2 Построение графика зависимости показаний магнитометрической системы от величины внешнего поля. 55
4.3 Анализ результатов 56
Заключение 57
Список использованных источников 58
Приложение 1. Устройство обнаружения магнитного поля, схема структурная 59
Приложение 2. Устройство обнаружения магнитного поля, схема электрическая принципиальная 60
Приложение 3. Перечень элементов 61
Фрагмент для ознакомления

Через данное меню к скетчу могут быть подключены стандартные библиотеки функций Arduinoили пользовательские библиотеки (разработанные пользователями) для этого необходимо в раскрывающемся меню “Подключить библиотеку” указать путь к этой библиотеке.ИнструментыРис.3.5Меню “Инструменты” содержит команды:АвтоформатированиеДанная опция оптимизирует код ПлатаВыбор платы (платформы) Arduino. Содержит раскрывающийся список поддерживаемых данной версией программы платформ.ПрограмматорСодержит меню позволяющее записать Загрузчик (Bootloader) в микроконтроллер на платформе Arduino, действие не является необходимымпри текущей работе с Arduino, но может пригодится, если имеется новый ATmega (без загрузчика). Перед записью рекомендуется проверить правильность выбора платформы из меню [2]. Монитор портаОтображает данные посылаемые в платформу Arduino. Для отправки данных требуется ввести текст и нажать Send или Enter. Далее выбирается скорость передачи, соответствующая значению Serial.begin в скетче[2]. ПомощьРис.3.6Меню “Помощь” содержит стандартные для большинства приложений, здесь можно обратиться к справочной системе. Справочная система Arduinoявляется онлайн-сервисом и работает только через интернет.3.2 Математическое обеспечение. Получение расчетных формулПлата ArduinoUNOработает с 10-битным аналого-цифровым преобразователем, поэтому выдаваемое двоичное значение в выходной порт будет:Датчик измеряет индукцию магнитного поля в диапазоне (– 670…670 Гаусс)Согласно таблице 2.2 минимальное выходное напряжение датчика Холла SS495Aсоставляет 0.4 В, максимальное выходное напряжение датчика составляет Vs – 0.4 = 5 – 0.4 = 4.6В.Согласно переходной характеристике SS495A (рис.2.7) минимальному выходному напряжению 0.4 В будет соответствовать поле (– 670 Гаусс),максимальному выходному напряжению 4.6 В будет соответствовать поле (+670 Гаусс).Согласно данным производителя [9] при нулевой индукции внешнего магнитного поля (0 Гаусс) выходное напряжение датчика составит 2.5 В.По данным таблицы 2.2 также известна чувствительность датчика, которая составляет 3.125 мВ/Гаусс.Вычислим границы показания датчика опираясь на коэффициент чувствительности датчика.Максимальное показание датчика: – чувствительность датчика SS495AМаксимальному показанию датчика будет соответствовать выходной код АЦП:Минимальномупоказанию датчика будет соответствовать выходной код АЦП:Эти данные потребуются при составлении программного кода, когда будет необходимо определить границы показаний датчика.Калибровка показаний датчикаКоэффициент умноженияопределим двумя способами по верхней и нижней границе АЦП кода.Расчет по верхней границе:Расчет по нижней границе:Таким образом принимаем коэффициент домножения (калибровки):Вывод показаний датчика на LCDдисплей производим по формуле:Где, – текущее значение кода АЦП преобразования.Определим показания дисплей на верхней и нижней границе границах выходных напряжений датчика:Расчет произведен верно.3.3 Составление алгоритма1. Алгоритм работы магнитометрической системы представлен на рис.3.7. В соответствии с особенностями программирования в среде ArduinoIDEнеобходимо в начале подключить библиотеки для работы с внешними устройствами, провести инициализация внешних устройств, определить подключаемые к плате Arduinoвыводывнешних устройств, которыми в разрабатываемой магнитометрической системе являются графический дисплей и датчик Холла.2. Далее выполняем считывание показаний с датчика Холла, которые передаются в форме аналогового сигнала напряжения. Плата Arduinoработает с цифро-аналоговым преобразователем и данные поступающие с датчика преобразуются в двоичный код.3. Далее определяем лежит ли аналоговый сигнал в установленных производителем границах выходного сигнала напряжения датчика Холла.Выходной сигнал может оказаться вне границ установленных технической документацией если параметры датчика отличаются от заявленных производителем, при выходе из строя датчика, неправильной его эксплуатации т.е. несоблюдении границ подаваемого питающего напряжения на датчик или при температурах вне рабочего диапазона. В работе мы принимаем что датчик исправен, эксплуатируется правильно, его параметры соответствуют технической документации. Также выходной сигнал может оказаться вне границ установленных технической документацией если возникают посторонние наводки вследствие шумов или иных факторов на аналоговом входе, подключенном к датчику. Этот фактор учитывается в программе т.е. при попадании сигнала по каким-либо причинам в диапазон значений вне установленного технической документацией, происходит корректировка показаний датчика по ближайшей границе установленного диапазона.4. Подсчитанные показания датчика с учетом установленных правил и полученных ранее расчетных соотношений выводятся на графический дисплей.Рис.3.7. Алгоритм работы магнитометрической системы3.4 Разработка управляющей программы микропроцессора на языке СУправляющая программа разработана в среде ArduinoIDE 1.8.2, для платы ArduinoUNOR3, ниже представлен листинг.Листинг. Управляющая программа для ArduinoUNOR3/* Подключаем библиотеку для работы с LCD */#include /* Создаём объект LCD-дисплея, используя конструктор класса LiquidCrystal* который имеет 6 аргументов. Библиотека по числу аргументов определит,* что требуется использовать 4-битный интерфейс.* Указываем, к каким пинам платы Arduino подключены выводы дисплея:* RS, E, DB4, DB5, DB6, DB7*/LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() {/* Инициализируем дисплей: 2 строки по 8 символов */lcd.begin(8, 2);/* Выводим на дисплей наименование единицы измерения магнитного поля */lcd.print("B,Gauss");}voidloop() {/* Устанавливаем курсор в 1 столбец 2й строки. Нумерация идёт с нуля, * первым аргументом идёт номер столбца.*//* Считывание показаний датчика SS495A магнитного поля, подключенного к А0 */floatsensorValue = analogRead(A0);lcd.setCursor(0,1);// Определяем выходную переменную, значение которой определяет показания датчикаfloat Sensor_data;// Задаем коэффициент калибровки показания датчикаfloat K=800.298;// Определяем переменную, указывающую на максимальное значение АЦПfloat Nadcmax = 1023; /* Задаем условие при котором будет выводится граничное (максимальное отрицательное указанное проиводителем) показание датчика */if (sensorValue <82){ Sensor_data=-672;}/* Задаем условие при котором будет выводится граничное (максимальное положительноеуказанное производителем) показание датчика */if (sensorValue >941){ Sensor_data=672;}// При остальных значениях для вывода показаний датчика используем расчетную формулуif (sensorValue >=82 && sensorValue <=941){ Sensor_data=(((sensorValue-(Nadcmax/2))/(Nadcmax/2))*K);/* Определяем границу чувствительности устройства обнаружения по минимальному полю исходя из разрядности АЦП*/if (sensorValue == 512 || sensorValue == 511){ Sensor_data=0;}}// Выводим показания датчика на LCD дисплейlcd.print(Sensor_data);// Устанавливаем задержку вывода показаний в миллисекундах с момента включения платыlcd.print(millis()/1000);}Глава 4. Тестирование магнитометрической системы4.1. Имитационное моделирование магнитометрической системы в среде ProteusДля разработанного устройства обнаружения магнитного поля проводилось имитационное моделирование работы на ЭВМ в среде Proteus 8.1. Результаты моделирования представлены на рис.4.1-рис.4.7. Датчик Холла SS495Aв связи с его отсутствием в библиотеке симулятора был заменен источником аналогового сигнала напряжения с диапазоном изменения значений 0 – 5 В. Таким источником является потенциометр. Вместо графического дисплея WH0802A-YGH-CT также в связи с отсутствием его модели в библиотеке симулятора, взята модель дисплея LM041Lимеющая полностью аналогичный интерфейс подключения и назначение выводов. Для визуализации величины выходного напряжения с датчика к потенциометру подключен вольтметр. Моделирование работы магнитометрической системы проводилось для значений диапазона выходного напряжения 0 – 5 В, часть которого находится за пределами выходного напряжения с датчика Холла SS495A (0.4 – 4.6 В). Взяты 7 точек выходного напряжения: за границей сверху (5В), на верхней границе сверху (4.6 В), в точке 0-го внешнего магнитного поля (2.5 В), на нижней границе (0.4 В), за нижней границей (0 В), а также в двух точках расположенных в серединах интервалов между граничными и значением 2.5 В соответствующим 0-му внешнему магнитному полю. Рис.4.1. Показание магнитометрической системы при выходном напряжении 5В, больше максимальной верхней границы выходного напряжения датчика (4.6 В).Рис.4.2. Показание магнитометрической системы при выходном напряжении 4.6 В, соответствующем максимальной верхней границы выходного напряжения датчика (4.6 В).Рис.4.3. Показание магнитометрической системы при выходном напряжении 2.5 В, соответствующем нулевой отметке датчика (4.6 В).Рис.4.4. Показание магнитометрической системы при выходном напряжении 0.4 В, соответствующем минимальнойнижней границы выходного напряжения датчика (0.4 В).Рис.4.5. Показание магнитометрической системы при выходном напряжении 0В, меньше минимальной нижней границы выходного напряжения датчика (0.4 В).Для построения графика переходной характеристики показаний магнитометрической системы, возьмем еще две точки, соответствующие серединам интервалов между нулевым и граничными значениями выходных напряжений датчика SS495A – 3.55 В, 1.45 В.Рис.4.6. Показание магнитометрической системы при выходном напряжении 3.55 В.Рис.4.7. Показание магнитометрической системы при выходном напряжении 1.45 В.4.2Построение графика зависимости показаний магнитометрической системы от величины внешнего поляНа основании полученных при моделировании магнитометрической системы данных (результатов измерений рис.4.1, рис.4.7)построим график переходной характеристики т.е. зависимости выходного напряжения датчика от величины индукции внешнего магнитного поля. Для этих целей удобно использовать среду инженерных расчетов и математический процессорMathcad.Документ MathcadОпределяем матрицы функции и аргументаВыводим график переходной характеристикиРис.4.8. Переходная характеристика магнитометрической системы4.3Анализ результатовПо результатам моделирования в п.4.1 и на основании переходной характеристики магнитометрической системы, построенной в п.4.2 следует вывод: переходная характеристикамагнитометрической системы (рис.4.8) соответсвует переходной характеристике датчика ХоллаSS495Aприведенной в технической документации производителя [9] (рис.2.7), следовательно,магнитометрическая система верно передает показания датчика, она рассчитана и реализована верно.ЗаключениеВ ходе выполнения данного дипломного проекта нами был разработан аппаратно-программный комплекс обнаружения магнитного поля на базе микропроцессорного комплектаArduinoUNOR3.Основные этапы выполнения дипломной работы:Приведены основные теоретические сведения по магнитометрическим системам, магнитным датчикам и рассмотрены области их применения;Исследована архитектура микроконтроллерного модуляArduinoUNOR3;Разработана структурная и принципиальная схемы аппаратно-программного комплекса обнаружения магнитного поля на базе микроконтроллерного модуляArduinoUNOR3;Изучены основные возможности специализированного программного обеспечения ArduinoIDEпредназначенного для программирования микропроцессорных платArduinoи освоены приемы работы с ним. Разработано программное обеспечение для микроконтроллерного модуляArduinoUNOR3 и выполненаего отладка посредством встроенных в ArduinoIDEпрограммных средств;Выполнено имитационное моделирование работы аппаратно-программного комплекса обнаружения магнитного поля на базе микроконтроллерного модуляArduinoUNOR3 в среде Proteus;В результате выполнения данного дипломного проекта разработан аппаратно-программный комплекс обнаружения магнитного поля на базе микроконтроллерного модуляArduinoUNOR3, удовлетворяющий предъявленным требованиям.Список использованных источников1. Винокуров Б.Б. Измерение неэлектрических величин: учебное пособие/ Б.Б. Винокуров, Г.В. Вавилова, И.А. Клубович. – Томск: Изд-во Томского политехнического университета, 2008. – 290 с. 2. Шихин А.Я. Автоматические магнитоизмерительные системы: учебное пособие/ А.Я. Шихин. – М.: “Энергия”, 1977. – 136 с.3. Кондрашкова Г.А., Бондаренкова И.В., Черникова А.В. Средства измерений физических величин: учебное пособие / СПбГТУРП. – СПб., 2013. – 82 с.4. Раннев Г.Г. Методы и средства измерений: Учебник для вузов/ Г.Г. Раннев, А.П. Тарасенко. – 2-е изд., стереотип. – М.: Издательский центр “Академия”, 2004. – 336 с.5. Афанасьев, Ю. В. Феррозонды / Ю. В. Афанасьев. – Л.: Энергия, 1969. – 168 с. 6. http://arduino.ru/Hardware/ArduinoBoardUno7. http://arduino.ru/Arduino_environment8. https://www.arduino.cc/en/Tutorial/LiquidCrystalCursor9. http://datasheet.octopart.com/SS495A-Honeywell-datasheet-9983714.pdf10. Гетеромагнитная микроэлектроника: сб. науч. тр. / под ред.проф. А. В. Ляшенко. – Саратов: Изд-во Сарат. ун-та, 2013. – Вып.15: Гетеромагнитная микро- и наноэлектроника. Методическиеаспекты физического образования. – 152 с.11. http://pdf1.alldatasheet.com/datasheet-pdf/view/86975/ETC/WH0802A.html12. Датчики Холла: Уральский Федеральный университет им. Б.Н. Ельцина «УПИ»/Коллоквиумы ФОПИ: 2015. – 14 с.Приложение 1. Устройство обнаружения магнитного поля, схема структурнаяПриложение 2. Устройство обнаружения магнитного поля, схема электрическая принципиальнаяПриложение 3. Перечень элементовЗонаПоз. обозначениеНаименованиеКолПримечаниеРезисторыRV1СП3-5-0.5-10кОм2%1ПотенциометрПлатыARD1Arduino UNO R31LCD1WH0802A-YGH-CT1Графический дисплейМикросхемыU1SS495A1Датчик Холла

1. Винокуров Б.Б. Измерение неэлектрических величин: учебное пособие/ Б.Б. Винокуров, Г.В. Вавилова, И.А. Клубович. – Томск: Изд-во Томского политехнического университета, 2008. – 290 с.
2. Шихин А.Я. Автоматические магнитоизмерительные системы: учебное пособие/ А.Я. Шихин. – М.: “Энергия”, 1977. – 136 с.
3. Кондрашкова Г.А., Бондаренкова И.В., Черникова А.В. Средства измерений физических величин: учебное пособие / СПбГТУРП. – СПб., 2013. – 82 с.
4. Раннев Г.Г. Методы и средства измерений: Учебник для вузов/ Г.Г. Раннев, А.П. Тарасенко. – 2-е изд., стереотип. – М.: Издательский центр “Академия”, 2004. – 336 с.
5. Афанасьев, Ю. В. Феррозонды / Ю. В. Афанасьев. – Л.: Энергия, 1969. – 168 с.
6. http://arduino.ru/Hardware/ArduinoBoardUno
7. http://arduino.ru/Arduino_environment
8. https://www.arduino.cc/en/Tutorial/LiquidCrystalCursor
9. http://datasheet.octopart.com/SS495A-Honeywell-datasheet-9983714.pdf
10. Гетеромагнитная микроэлектроника: сб. науч. тр. / под ред.проф. А. В. Ляшенко. – Саратов: Изд-во Сарат. ун-та, 2013. – Вып.15: Гетеромагнитная микро- и наноэлектроника. Методическиеаспекты физического образования. – 152 с.
11. http://pdf1.alldatasheet.com/datasheet-pdf/view/86975/ETC/WH0802A.html
12. Датчики Холла: Уральский Федеральный университет им. Б.Н. Ельцина «УПИ»/Коллоквиумы ФОПИ: 2015. – 14 с.

Вопрос-ответ:

Какие задачи решает магнитометрическая система?

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

Какие принципы лежат в основе работы магнитометров?

Существует несколько принципов работы магнитометров. Один из них основан на измерении магнитного поля с помощью феррозондовых датчиков. Другой принцип основан на использовании индукционных датчиков, которые измеряют изменение магнитного потока. Еще один распространенный принцип - это использование датчиков Холла, которые регистрируют изменение электрического сопротивления при воздействии магнитного поля.

Какие датчики используются для измерения магнитного поля?

Для измерения магнитного поля могут использоваться различные датчики. Одним из наиболее распространенных являются феррозондовые датчики, которые используются для измерения силы магнитного поля. Также часто применяются индукционные датчики, которые измеряют изменение магнитного потока. Еще одним вариантом являются датчики Холла, которые основаны на эффекте Холла и регистрируют изменение электрического сопротивления при воздействии магнитного поля.

Какая аппаратная часть нужна для разработки магнитометрической системы на базе микроконтроллера Arduino?

Для разработки магнитометрической системы на базе микроконтроллера Arduino потребуется некоторая аппаратная часть. В частности, потребуется сам микроконтроллер Arduino, соответствующая плата расширения, различные датчики для измерения магнитного поля (например, феррозондовые датчики, датчики Холла и т.д.), а также соединительные элементы, такие как провода, резисторы и т.д. Также может потребоваться дополнительное оборудование, в зависимости от конкретной реализации системы.

Какие задачи решает магнитометрическая система?

Магнитометрическая система используется для измерения и обнаружения магнитного поля. Она может решать такие задачи как определение направления магнитного поля, измерение его силы и обнаружение магнитных объектов.

Какие принципы работы магнитометров?

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

Что такое магнитостатические магнитометры?

Магнитостатические магнитометры работают на основе измерения сил магнитного поля с помощью магнитов или электромагнитов. Они применяются в различных областях, включая геофизические исследования, навигацию, промышленность и другие.

Что такое датчики Холла?

Датчики Холла - это электронные устройства, которые используют явление Холла для измерения магнитного поля. Они обладают высокой чувствительностью и широкой областью применения. Датчики Холла часто используются в автомобилестроении, энергетике и других промышленных секторах.

Какая аппаратная часть нужна для разработки магнитометрической системы на Arduino?

Для разработки магнитометрической системы на Arduino потребуется микроконтроллер Arduino, модуль измерения магнитного поля (например, датчик Холла), соединительные провода и дополнительные компоненты в зависимости от конкретной задачи. Для программирования и подключения компонентов также может понадобиться компьютер и программное обеспечение Arduino IDE.

Какие сокращения используются в статье?

В статье используются сокращения: Глава - гл., Область применения - обл. прим., Магнитостатический - магнитост., Индукционный - индукц., Феррозондовый - ферроз., Датчик Холла - датч. Холла, Аппаратно программное обеспечение - АПО.

Какие физические принципы лежат в основе работы магнитометров?

Физические принципы работы магнитометров основаны на измерении магнитного поля. Различные типы магнитометров используют разные принципы, такие как магнитостатика, индукция, датчики Холла и феррозонды.

Какие задачи можно решать с помощью магнитных измерений?

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