Беспроводная система передачи
Сущность, понятие и применение микроконтроллера. Назначение выводов микроконтроллера Arduino Leonardo. Характеристика Bluetooth модуля, использование стабилизатора напряжения для передачи температурных показаний. Загрузка программы в микроконтроллер.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.02.2019 |
Размер файла | 6,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное агентство железнодорожного транспорта
Омский государственный университет путей сообщения
Кафедра «Автоматика и системы управления»
Пояснительная записка к курсовой работе
по дисциплине «Программирование аппаратных средств»
Разработка цифрового устройства на базе микроконтроллера Atmel
Н.С. Максименко
Омск 2017
Задание
Тема данной курсовой работы - «Беспроводная система передачи температурных показаний».
В курсовой работе необходимо разработать схему соединения, топологию макетной платы, прошить микроконтроллер.
Реферат
Пояснительная записка содержит 21 страницу, 8 рисунков, 3 таблицы, 5 источников, 4 приложения.
Arduino Leonardo, резистор номиналом 4.7 кОм, герметичный датчик температуры DS18B20, Bluetooth модуль HC-05, макетная плата, соединительные провода.
Цель работы - разработать устройство беспроводной системы передачи температурных показаний.
В результате курсовой работы разработана топология макетной платы, собрана макетная схема, написан соответствующий скетч для микроконтроллера, прошит микроконтроллер.
Курсовая работа выполнена в текстовом редакторе Microsoft Word 2010, прошивка написана в Arduino IDE, разработка топологии макетной платы выполнена в Fritzing.
Содержание
- 1. Описание структурной схемы
- 1.1 Микроконтроллер
- 1.2 Bluetooth модуль
- 1.3 Стабилизатор напряжения
- 2. Разработка схемы соединения
- 3. Разработка программного блока
- 4. Загрузка программы в микроконтроллер
- 5. Инструкция пользователя
- Заключение
- Библиографический список
- Приложение А
- Приложение Б
- Приложение В
- Приложение Г
- Введение
- Микроконтроллер - это программируемая микросхема, состоящая из процессора (ядра) и периферии (АЦП, ЦАП, входа/выхода), обладающая оперативной и (или) постоянной памятью, выполняющая последовательность операций в соответствии с программой.
- В современной жизни микроконтроллеры применяются во всех сферах жизни, начиная от микроволновки и заканчивая сложными системами управления. По сравнению с первыми моделями, во много раз увеличилась производительность, появились дополнительные возможности (например, подключение внешней памяти), количество размещаемой на кристалле периферии стало столько, что при разработке несложных проектов, достаточно иметь сам микроконтроллер, сделать «обвязку», подключить источник питания и устройство готово.
- В данной курсовой работе будет разработано устройство беспроводной системы передачи температурных показаний.
- Разрабатываемое устройство предназначено для передачи сообщения на экран с помощью Bluetooth модуля и приложения на смартфоне.
1. Описание структурной схемы
Схема соединения - графическое изображение (модель), служащее для передачи с помощью условных графических и буквенно-цифровых обозначений связей между элементами электрического устройства.
Схема соединения представлена в приложении А, а перечень элементов - в приложении Б.
1.1 Микроконтроллер
Микроконтроллеры выпускают десятки компаний, причем производятся не только современные 32-битные микроконтроллеры, но и 16, и даже 8-битные (как i8051 и аналоги).
Микроконтроллеры Atmel объединяют в себе эффективные встроенные решения, проверенные технологии и революционные идеи, являясь идеальным выбором для современных интеллектуальных сетевых продуктов.
Микроконтроллеры Atmel также поддерживают простую и удобную интеграцию технологии емкостного сенсорного ввода для реализации кнопок, ползунков и колес прокрутки. Кроме того, микроконтроллеры Atmel позволяют внедрять беспроводные функции и функции защиты.
В качестве микроконтроллера выбран Arduino Leonardo на базе ATmega32u4 (рисунок 1).
Arduino Leonardo имеет 20 цифровых вход/выходов (из них 7 могут использоваться в качестве выходов ШИМ и 12 - как аналоговые входы), кварцевый генератор частотой 16 МГц, гнездо микро-USB, разъем ICSP и кнопку reset. На ней есть все, что необходимо для работы с микроконтроллером.
ATmega32u4 имеет 32 КБ флеш-памяти (вместе с 4 КБ, которые используются загрузчиком (бутлодером)). Также контроллер имеет 2,5 КБ ОЗУ и 1 КБ EEPROM (чтение и запись которой производится с помощью библиотеки EEPROM).
Рисунок 1 - Микроконтроллер Arduino Leonardo
Назначение выводов микроконтроллера Arduino Leonardo представлено в таблице 1, на рисунке 2.
Рисунок 2 - Назначение выводов микроконтроллера Arduino Leonardo
Таблица 1 - Назначение выводов микроконтроллера Arduino Leonardo
Вывод |
Назначение |
|
PD3 |
Цифровой вывод ШИМ |
|
PD5 |
Цифровой вывод ШИМ |
|
PD6 |
Цифровой вывод ШИМ |
|
PB5 |
Цифровой вывод ШИМ |
|
PB6 |
Цифровой вывод ШИМ |
|
PB7 |
Цифровой вывод ШИМ |
|
PC7 |
Цифровой вывод ШИМ |
|
5V |
Вывод для напряжение 5 В от стабилизатора платы |
|
3.3V |
Вывод для напряжения 3,3 В от стабилизатора напряжения платы |
|
GND |
Выводы земли |
|
VIN |
Напряжение от внешнего источника питания |
|
PF0 |
Аналоговый вход |
|
PF1 |
Аналоговый вход |
|
PF4 |
Аналоговый вход |
|
PF5 |
Аналоговый вход |
|
PF6 |
Аналоговый вход |
|
PF7 |
Аналоговый вход |
|
Вывод |
Назначение |
|
PD2 |
Используется для передачи данных по последовательному интерфейсу RX0 |
|
PD3 |
Используется для передачи данных по последовательному интерфейсу TX1 |
|
AREF |
Аналоговое опорное напряжение |
|
PD1 |
АЦП пины на цифровом пине |
|
PD4 |
АЦП пины на цифровом пине |
|
PE6 |
АЦП пины на цифровом пине |
|
IOREF |
Предоставляет платам расширения информацию о рабочем напряжении |
|
PD0 |
Используется для связи с другими устройствами по шине I2C |
|
PD1 |
Используется для связи с другими устройствами по шине I2C |
1.2 Bluetooth модуль
В курсовой работе используется Bluetooth модуль HC-06 (рисунок 4).
Bluetooth HC-05 построен на чипе BC417, имеет Flash-память. Последовательный порт модуля полностью поддерживает спецификацию Bluetooth v2.0 + EDR (Enhanced Data Rate), скорость передачи до 1.3 Мбит/с, работает в нелицензируемом радио-частотном диапазоне 2.4 Ггц. Радиус действия около 10 метров. Модуль HC-05 запитывается от 3.3 В или 5 В, потребляет ток примерно 50 мА. Подерживает AT-команды, может работать в режиме Master или Slave.
В режиме Slave скорость по умолчанию 9600, битов данных 8, стоп бит 1, без контроля четности. Когда соединение в режимах master или slave установлено, светодиод моргает с частотой 1 раз в 2 секунды, если коннекта нет, то -- 2 раза в секунду.
Рисунок 3 - Bluetooth модуль HC-05
Назначение выводов bluetooth-модуля представлено в таблице 2.
Таблица 2 - Назначение выводов bluetooth-модуля
Вывод |
Назначение |
|
VCC |
Питание |
|
GND |
Земля |
|
Вывод |
Назначение |
|
TX и RX |
Передатчик и приёмник модуля |
|
STATE |
Индикатор состояния |
|
EN |
Включение/выключение модуля |
1.3 Стабилизатор напряжения
Для того чтобы снимать показания температуры с внешней среды необходимо подключить модуль DS18B20 - герметичный датчик температуры. В настоящий момент DS18B20 фирмы Dallas является наиболее распространенным и доступным цифровым датчиком температуры (рисунок 3). микроконтроллер bluetooth температурный стабилизатор
Рисунок 4 - Датчик температуры DS18B20
2. Разработка схемы соединения
Для разработки схемы соединения используется программа Fritzing. Программа создавалась для Arduino, аппаратно-программной платформы, состоящей из обычной платы с микроконтроллером Atmel AVR, радиодеталей для программирования, интерфейсов связи, среды разработки Processing/Wiring. Arduino применяется в создании автономных интерактивных аппаратов. Рисунок печатной платы открыт для всех, и поэтому платформа распространена среди самостоятельных разработчиков.
Основным достоинством Fritzing является интуитивно понятный интерфейс, включающий в себя лишь самые необходимые инструменты для схемы соединения.
Программный пакет Fritzing был разработан в 2009 году в Потсдамском университете прикладных наук за счет субсидий, выделяемых государством на исследования научной программы. В настоящее время создатели САПР предлагают талантливым программистам сотрудничать с ними по вопросам дальнейшего развития программы.
Среда разработки Fritzing переведена на английский, датский, испанский, французский, итальянский, португальский, японский, китайский, и русский языки.
Существуют версии программы для операционных систем: Windows, Mac OS (версия 10.4 и выше) и Linux (версия 2.6 и выше).
Схема соединения представлена в приложении В.
3. Разработка программного блока
Прошивка для микроконтроллера будет разрабатываться в среде Arduino IDE.
Arduino - это один из самых популярных конструкторов, с помощью которого можно создать любое электронное устройство будь то для рядовых пользователей или опытных профессионалов. В Arduino в основном разработки проводятся на достаточно простом языке С/С++, который довольно легкий в изучении. Данная кроссплатформенная среда разработки состоит из:
- компилятора;
- редактора кода;
- программного клиента;
- специальной платы (ввода и вывода).
Обходя программаторы, можно с легкостью программировать само устройство через порт USB. Данный конструктор стабильно обеспечивает создание разного рода интерактивных объектов. Полностью совместим с ОС Windows, и при установки занимает до 80 Мб пространства на жестком диске ПК. Это программное обеспечение без конфликтов отлично работает и с другими приложениями, которые установленные на операционной системе (Max/MSP, Macromedia Flash и другие подобные утилиты). Все созданные программы проходят отдельную обработку процессором, а после чего компилируются в AVR-GCC.
Для обеспечения полноценной работы программы, необходимо подключить библиотеку OneWire.h, так как наш датчик работает по протоколу 1-Wire, используемый для управления устройствами, которые производятся компанией Dallas Semiconductor. После вызова функции setup(), в которой Serial.begin() инициирует последовательное соединение и задает скорость передачи данных, в функции loop() идет проверка, в случае прихода данных происходит проверка на содержимое, если пришло число ноль, то происходят проверки идентификации датчика, для того чтобы после произвести вычислительную логику показаний датчика. Результат печатается на экран как в монитор последовательного порта, так и в приложении по Bluetooth соединению.
Код программы в приложении Г.
4. Загрузка программы в микроконтроллер
Запись программы в микроконтроллер осуществляется с помощью Arduino IDE (рисунок 9).
Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.
На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).
В Arduino IDE встроена возможность создания своих программно-аппаратных платформ. Этой возможностью пользуются сторонние компании, добавляющие в Arduino IDE свои наборы плат и компиляторов-загрузчиков к ним.
Закачка программы в микроконтроллер Arduino происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. Интерфейс Arduino IDE показан на рисунке 5.
Рисунок 5 - Интерфейс Arduino IDE
5. Инструкция пользователя
Для использования устройства требуется:
- подать напряжение на устройство;
- установить на смартфоне приложение Bluetooth Terminal, с помощью которого можно отправлять сообщения на дисплей;
- включить Bluetooth на смартфон;
- выбрать устройство сопряжения HC-05;
- отправить 0, нажав кнопку SEND, в результате будет выведено сообщение о текущей температуре;
Результат отправки сообщения представлен на рисунке 6.
Рисунок 6 - Результат работы Bluetooth Terminal
При вводе 0 в монитор последовательного порта в Arduino IDE будет выведена также информация о температурном датчике и показатели температуры окружающей среды в месте установки модуля. Результат представлен на рисунке 7.
Рисунок 7 - Результат работы Arduino IDE
Демонстрация собранной схемы с подключенными модулями и с мигающими световыми индикаторами представлена на рисунке 8.
s
Рисунок 8 - Демонстрация собранной схемы
Заключение
В ходе выполнения курсовой работы была изучена документация микроконтроллера Arduino Leonardo, а также подключаемых модулей Bluetooth HC-05, температурного датчика DS18B20, собрана схема в специальном программном пакете Fritzing, после разработан алгоритм на основе функционала библиотеки OneWire. Произведено описание структурной схемы.
Библиографический список
1 Arduino IDE [Электронный ресурс] - Режим доступа: http://www.arduino.cc
2 Микроконтроллер Arduino Leonardo [Электронный ресурс] - Режим доступа:https://www.arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
3 Bluetooth модуль HC-05 [Электронный ресурс] - Режим доступа: https://www.olimex.com/Products/Components/RF/BLUETOOTH-SERIAL-HC-05/resources/hc05.pdf
4 Температурный датчик DS18B20 [Электронный ресурс] - Режим доступа: https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
5 Fritzing [Электронный ресурс] - Режим доступа: https://fritzing.org/ /download/
Приложение А
Рисунок А.1 - Схема соединения
Приложение Б
Таблица Б.1 - Перечень элементов
Обозначение |
Назначение |
Количество |
|
Резисторы |
|||
R1 |
Model 305.0011 4.7 кОм |
1 |
|
Микросхемы |
|||
DD1 |
DS18B20 |
1 |
|
Модули |
|||
BL |
Bluetooth-модуль HC-05 |
1 |
Приложение В
Рисунок В.1 - Вид платы
Приложение Г
(Обязательное)
Листинг программы
#include <OneWire.h>
OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary)
void setup(void) {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop(void) {
char incomingByte; // входящие данные
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if (Serial1.available() > 0 || Serial.available() > 0) { //если пришли данные
incomingByte = Serial.read(); // считываем байт
// Serial.write(incomingByte);
if(incomingByte == '0') {
if ( !ds.search(addr)) {
// Serial.println("No more addresses.");
Serial.println();
ds.reset_search();
delay(250);
return;
}
Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return;
}
Serial.println();
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
Листинг Г, лист 1
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print(" Data = ");
Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
Листинг Г, лист 2
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial1.print(" Temperature = ");
Serial1.print(celsius);
Serial.print(" Celsius, ");
Serial1.print(" Celsius, ");
Serial.print(fahrenheit);
Serial.println(" Fahrenheit");
}
}
}
Размещено на Allbest.ru
...Подобные документы
Формирование тактовых импульсов микроконтроллера. Схемы входных и выходных устройств, источника напряжения питания. Проектирование модуля инициализации микроконтроллера, процедур обработки прерываний, процедур вывода информации и процедуры Main.
курсовая работа [273,1 K], добавлен 19.12.2010Особенности разработки устройства управления системой измерения веса, построенного на микроконтроллере ATmega16 фирмы Atmel. Схема включения микроконтроллера, сброса, стабилизатора напряжения. Проектирование функций микроконтроллера. Листинг программы.
курсовая работа [153,6 K], добавлен 19.12.2010Беспроводные технологии и классификация беспроводных сетей, принципы их построения. Концепция и основные положения Bluetooth - первой технологии, позволяющей организовать беспроводную персональную сеть передачи данных, принцип его работы и использование.
курсовая работа [1011,7 K], добавлен 11.12.2014Анализ GPS-навигаторов для животных. Использование плат и среды программирования Arduino для разработки ошейника с GPS-навигатором для отслеживания маршрута, проделанного животным, и уведомления об этом пользователя. Выбор модели микроконтроллера.
курсовая работа [2,4 M], добавлен 18.10.2015Описание и принцип действия программы-отладчика микроконтроллера I8051 (К1816ВЕ51), предназначенной для программирования микроконтроллера на уровне языка ассемблера. Компиляция программы в объектный код и специфика тестирования разработанной программы.
реферат [21,1 K], добавлен 04.12.2010Представление о системе Arduino. Структура платформы Android. Выбор средств разработки. Разработка структур данных и алгоритмов. Характеристика Bluetooth модуля, блок реле, резисторов, диодов. Графический интерфейс приложения. Написание кода программы.
дипломная работа [4,0 M], добавлен 19.01.2017Функциональная схема микроконтроллера. Схема подключения ADS7841. Блок-схема и интерфейс программы АЦП. Реализация Hart-протокола, пример транзакции. Результат моделирования передачи по Uart. Индикация, текст программы. Сторожевой таймер, печатная плата.
курсовая работа [2,3 M], добавлен 17.02.2013Назначение и применение микроконтроллеров - интегральных микросхем, предназначенных для управления электронными схемами. Описание способа адресации. Разработка программы, описание электрической и структурной схемы разрабатываемого микроконтроллера.
курсовая работа [177,6 K], добавлен 30.06.2014Создание приемника команд RC5 для персонального компьютера на основе микроконтроллера ATmega8. Особенности написания файла прошивки и симулирование устройства. Порядок выполнения сборки собственной схемы и характеристика полученного микроконтроллера.
курсовая работа [2,0 M], добавлен 24.11.2013Возможности платформы Arduino. Загрузка микроконтроллера прерываниями. Подтягивающие (нагрузочные) резисторы. Аналого-цифровой преобразователь, цоколевка. Прерывание по таймеру, память. Библиотеки Servo, SPI, Stepper. Комбинация фазы синхронизации.
курсовая работа [53,4 K], добавлен 23.12.2014Создание рабочего модуля аналого-цифрового преобразователя с минимальным количеством микросхем на основе микроконтроллера ATmega8L. Описание блок-схемы АЦП. Схема запуска преобразования. Программа микроконтроллера в среде программирования CodeVision.
курсовая работа [1,2 M], добавлен 04.10.2013Беспроводный метод передачи данных bluetooth, выделение его основных свойств, преимуществ и принципов работы. Технические аспекты и набор базовых протоколов технологии bluetooth, основные направления применения технологии и характеристика конкурентов.
реферат [1,3 M], добавлен 19.11.2014Рассмотрение структурной схемы микропроцессорной системы обработки данных. Описание архитектуры микроконтроллера ATmega161. Расчет оперативного запоминающего устройства. Строение, назначение адаптера параллельного интерфейса, способы его программирования.
курсовая работа [621,5 K], добавлен 24.09.2010Изучение архитектуры микроконтроллера AT89C52 фирмы Atmel. Разработка проектной схемы вывода рисунков на графический ЖК-индикатор на основе микроконтроллера. Составление программы по обработке и выводу на жидкокристаллический дисплей данных с LPT порта.
курсовая работа [76,1 K], добавлен 23.12.2012Разработка встраиваемого в электронную аппаратуру микроконтроллера с целью обеспечения ввода данных с клавиатуры и отображения результатов обработки на индикации. Описание активного элемента (системная шина ISA). Программное обеспечение микроконтроллера.
курсовая работа [848,9 K], добавлен 05.02.2016Описание микроконтроллера и периферийных устройств. Распределение битов регистра. Выбор элементной базы. Основные части и алгоритм работы основной программы. Архитектура микроконтроллера AduC812 и построение на его основе бортового компьютера автомобиля.
курсовая работа [210,2 K], добавлен 23.12.2012Общие сведения о микроконтроллерах AVR, их основные параметры. Функции термометра, реализованного на микроконтроллере AVR. Порядок программирования микроконтроллера с использованием программы на языке С. Передача данных сом-порт, вывод значений на ЖКИ.
курсовая работа [35,8 K], добавлен 08.04.2010Структура и основные элементы микроконтроллера. Разрядность и система команд процессора. Методы представления информации. Память и её типы. Режимы работы портов электронного устройства. Многофункциональность выводов микро-ЭВМ. Семейства микроконтроллеров.
презентация [1,2 M], добавлен 16.12.2011Разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы. Текст программы, инициализация указателя стека, структура системы и ресурсов микроконтроллера. Запись кодов при программировании данного устройства.
контрольная работа [18,4 K], добавлен 24.12.2010Описание области применения устройства релаксационного воздействия на человека "Лампа хорошего настроения". Выбор микроконтроллера устройства. Алгоритм функционирования программы, её тестирование. Правила и нормы охраны труда при работе с компьютером.
дипломная работа [5,8 M], добавлен 28.09.2015