Тема 1
4.20M
Category: electronicselectronics

Методы работы с последовательным портом. Сенсорные устройства

1. Тема 1

1. Методы работы с
последовательным портом
2. Сенсорные устройства

2.

1. Методы работы с
последовательным портом
Способы передачи данных между устройствами
последовательный
асинхронный
serial
параллельный
parallel
синхронный

3.

Способы передачи данных между устройствами
последовательный
COM-порт
USB
Ethernet
SATA
Transmitter Тх
Receiver

один
канал связи
передача данных
приём данных
параллельный
много
каналов связи
PCI
AGP
ATA (PATA)
SCSI

4.

Способы передачи данных между устройствами
синхронный
асинхронный
отдельный
канал связи для
передачи тактового
сигнала
тактовый сигнал
не используется
скорость передачи
можно менять
Информационная скорость передачи –
это количество бит в секунду
Стандартные скорости:
4800, 9600, 19200, 38400, 57600, 115200
Arduino использует асинхронный последовательный
порт для связи с компьютером

5.

Последовательный интерфейс
последовательный
порт
(RS-232)
USB
(Универсальная
последовательная
шина данных)
не совместимы
Дополнительная микросхемапреобразователь
Микроконтроллер, со
встроенным USB-интерфейсом

6.

Платы Arduino с преобразователем FTDI
микросхема, выполняющая
конвертирование между
последовательным портом и USB
Плата Arduino с установленной
микросхемой FTDI
USB-кабель с
микросхемой FTDI
Arduino Nano
Arduino Mega
Arduino Pro
Arduino Mini
Arduino Ethernet

7.

Платы Arduino с дополнительным
микроконтроллером (UART)
для преобразования USB в последовательный
порт
Arduino Uno
Arduino Mega 2560
Arduino ADK
Arduino Due

8.

Universal Asynchronous Receiver/Transmitter
UART – универсальный асинхронный приемопередатчик.
Данные UART передаются в последовательном коде.
•в неактивном режиме выход UART находится в высоком состоянии;
•передача байта начинается со стартового бита (низкого уровня);
•передача байта заканчивается стоповым битом (высокого уровня);
•данные передаются младшим битом вперед;
•время передачи одного байта рассчитывается исходя из скорости
передачи и количества битов.

9.

Скорость
передачи,
бод
Время передачи
одного бита, мкс
Время передачи
байта,
мкс
4800
208
2083
9600
104
1042
19200
52
521
38400
26
260
57600
17
174
115200
8,7
87
Обмен информацией через UART происходит в
дуплексном режиме
В интерфейсе UART есть два сигнала:
•TX – выход для передачи данных;
•RX – вход для приема данных.

10.

Методы работы с
последовательным портом
- Метод инициализации (т.е. открытия) последовательного порта
Serial.begin(9600);
скорость передачи на последовательный порт
- Метод отвечает за настройку временных задержек для тех функций
которые имеют механизм ожидания
Serial.setTimeout(2000);
Обычно вызывается в процедуре setup(). По умолчанию задержка равна 1 секунде.
- Метод для передачи на последовательный порт текста или числа
(в виде ASCII символов)
Serial.print(x);
- Метод для передачи на последовательный порт текста или числа.
При этом в конце сообщения ставится символ перехода на новую
строку
Serial.println(x);
- Метод для передачи на последовательный порт числовых данных
как есть, а не строку или число в строковом представлении
(выводит двоичные данные). Использовать этот метод надо тогда, когда
требуется отправить именно те числа, что вы желаете отправить и что бы
никто ничего с ними не делал
Serial.write(x);

11.

Сравнение методов передачи данных
int val = 72;
Функция
Отправит
Serial.write(val);
72
Serial.print(val);
55 50
Serial.println(val);
55 50 10
Перевод строки \n
десятичный код символа
Таблица символов в
кодировке ASCII

12.

Методы работы с
последовательным портом
Использование специальных символов
\t – символ табуляции
\n – символ перехода на новую строку
Serial.println(“\nAnalog Pin\tValue\tPercentage”);
Изменение формата выводимых данных
Формат
Десятичный
Шестнадцатеричный
Восьмеричный
Двоичный
Код
Отображение данных
Serial.print(23);
23
Serial.print(23,HEX);
17
Serial.print(23,OCT);
27
Serial.print(23,BIN);
00010111

13.

Методы работы с
последовательным портом
Возвращает число символов (байт), которые на данный момент
сохранены во входном последовательном буфере Arduino
Serial.available();
Читает и возвращает следующий символ, который находится в
буфере
Serial.read();
Когда эта функция получает байт, этот байт из буфера удаляется
Читает и возвращает следующий символ, который находится в
буфере, не удаляя его из буфера. Если буфер пуст, то возвращает
значение -1 (int)
Serial.peek();
Читает заданное количество символов (y) из буфера в массив (x).
Возвращает количество байт, считанных в буфере, или 0, если
данных нет
Serial.readBytes(x,y);

14.

Методы работы с
последовательным портом
Считывает содержимое буфера в поисках конкретной строки s.
Функция возвращает true, когда строка найдена и false, когда
данные не найдены. Serial.find() ожидает данные в течение
времени, определенного с помощью функции Serial.setTimeout().
Serial.find(s);
Читает последовательность цифр и преобразует её в целое число
Serial.parseInt();
Данная функция просматривает содержимое буфера и ищет среди них коды,
которые соответствуют символам чисел от 0 до 9 и преобразует все это в
правильное целочисленное значение. Обычно используется вместе с
Serial.setTimeout(х);

15.

2. Сенсорные устройства
Задача – правильно подобрать сенсор в зависимости от
решаемой задачи
технология измерения
диапазон рабочих температур
размер датчика
вес датчика
энергопотребление
цена
Передача данные от датчика к контроллеру
по инициативе контроллера
(опрашивание)
по инициативе датчика
(прерывание)

16.

Классификация сенсоров в зависимости от их выходных сигналов
Выходные данные датчика
Пример датчика
Двоичный сигнал (0 или 1)
Тактовая кнопка
Аналоговый сигнал (0-5 В)
Датчик цвета
Синхросигнал (ШИМ)
Гироскоп
Последовательный канал (RS232 или USB)
GPS-модуль
Параллельный канал
Цифровая камера

17.

Классификация сенсоров в зависимости от области их применения
Внутренние
Локальные
Глобальные
Пассивные:
Пассивные:
- датчик заряда аккумуляторной батареи
- энкодеры на валах двигателя
- гироскоп
- компас
Внешние
Активные:
Активные:
Пассивные:
Пассивные:
- бортовая камера
- подвесная камера
- спутниковая GSM
Активные:
Активные:
- гидролокатор
- ИК-датчик расстояния
- лазерный сканер
- ультразвуковая
глобальная система
определения положения

18.

Аналоговые и цифровые сигналы
с амплитудой 0 и 5 вольт
Пример соответствия
температуры в градусах
Цельсия и аналогового
сигнала в вольтах
Соответствие должно быть
- однозначно
- воспроизводимо

19.

Аналого-цифровой преобразователь (АЦП) – устройство,
преобразующее входной аналоговый сигнал в цифровой сигнал (в
цифровой двоичный код).
АЦП
пин
Точность АЦП зависит от его разрядности.
Разрядность АЦП характеризует количество дискретных
значений, которые преобразователь может выдать на выходе.

20.

АЦП с разрядностью 1
АЦП с разрядностью 2
АЦП с разрядностью 3
Если АЦП 10-разрядное, то промежуток от 0 до 5 вольт
разбивается на 1024 ступени
5/1024, 10/1024, …
Каждая ступень – это часть опорного напряжения.

21.

На входе
компараторов.
АЦП
много
Компаратор
сравнивает
входной сигнал с другим
известным сигналом (опорным
напряжением).

22.

Встроенная функция
digitalRead(x)
(цифровое чтение)
- считывает значение с заданного
входа (заданного пина)
Считанное значение может HIGH или LOW
Считывать необходимо в переменную
boolean tilt = digitalRead(pinTilt);

23.

Встроенная функция
analogRead(x)
(аналоговое чтение)
- считывает значение с указанного
аналогового входа (заданного пина)
Напряжение, поданное на аналоговый вход (от 0 до 5
вольт), будет преобразовано в значение от 0 до 1023.
Это 1024 значения с разрешением 0,0049 вольт.
Считывание значения с аналогового входа занимает
примерно 100 микросекунд (0,0001 сек).
Максимальная частота считывания 10 000 раз в секунду.

24.

Датчик линии цифровой
Контакты подключения
3-проводного шлейфа
Питание (V) — красный провод
Оптопара TCRT5000
Земля (G) — чёрный провод
фототранзистор и светодиод,
собранные в одном корпусе
Сигнальный (S) — жёлтый провод
Сигнальный светодиод
Светодиод излучает в
инфракрасном диапазоне на длине
волны 950 нм.
Свет отражается от поверхности
и попадает на фототранзистор.
Переменный резистор
Сигнальный светодиод
загорается, когда датчик
находится над светлой
поверхностью

25.

Распиновка:
1. Питание +5V (VDC)
2. Цифровой выход (DO)
3. Аналоговый выход (AO)
4. Земля (GND)

26.

№1. Датчик линии цифровой
Собрать схему, состоящую из контроллера, датчика линии и
2-х светодиодов.
Запрограммировать контроллер следующим образом. При
определении датчиком белой линии зажигается жёлтый
светодиод, при определении чёрной линии – красный светодиод.
Показания датчика необходимо выводить на последовательный
порт, сопровождая вывод комментариями.
Задание: Определить расстояние линии до датчика.

27.

№2. Датчик линии аналоговый
Собрать схему, состоящую из контроллера, датчика линии и
2-х светодиодов.
Запрограммировать следующим образом. При определении
датчиком белой или жёлтой линий зажигается жёлтый
светодиод, при определении чёрной, красной или синей линий –
красный светодиод. Показания датчика необходимо выводить на
последовательный порт, сопровождая вывод комментариями.
Задание: Определить расстояние линии до датчика.
Определить диапазон значений с датчика для каждого
цвета.

28.

№3. Датчик линии аналоговый и последовательный порт
Собрать схему, состоящую из контроллера, датчика линии и
2-х светодиодов.
Запрограммировать следующим образом. Если с СОМ-порта
пришёл символ «а», то опрашиваем аналоговый датчик и
зажигается красный светодиод, если пришёл символ «d» опрашиваем цифровой датчик и зажигается жёлтый светодиод.
Показания датчика и режим работы необходимо выводить на
последовательный порт, сопровождая вывод комментариями.
English     Русский Rules