Опрашиваем левую и правую кнопки с помощью адаптивного

advertisement
Докладчик: Яркоев Константин Евгеньевич
Содержание
•
•
•
•
•
Микроконтроллеры
Введение в Arduino
Основы на пальцах
Hello, world!
Проект велосипедной спецодежды
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
2
Виды компьютеров
•
•
•
•
•
Суперкомпьютеры
Мейнфреймы
Серверы
Персональные компьютеры
Микроконтроллеры
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
3
Области использования МК
•
•
•
•
•
•
Промышленность
Медицина
Транспорт
Робототехника
Бытовая техника, умный дом
Игрушки
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
4
Параметры МК
• Наличие/отсутствие
–
–
–
–
–
ОЗУ, ПЗУ
возможности перепрошивки
встроенного генератора тактовой частоты
сторожевого таймера
периферии
• Архитектура: 8, 16, 32 бит
• Различная частота процессора
• Специального назначения
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
5
Содержание
• Микроконтроллеры
• Введение в Arduino
–
–
–
–
–
–
Платформа Arduino
Популярность платформы
Основные платы
Платы расширения
Плата Arduino Uno
Среда разработки
• Основы на пальцах
• Hello, world!
• Проект велосипедной спецодежды
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
6
Платформа Arduino
Электронный конструктор и удобная
платформа быстрой разработки
электронных устройств для новичков и
профессионалов
– Среда разработки
– Платы
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
7
Популярность платформы
•
•
•
•
Низкий порог входа в мир МК
Разнообразие плат. Две версии носимых плат: LilyPad и Seeeduino Film
Кроссплатформенность среды разработки. Переносимость кода для разных
плат Arduino.
Отсутствие необходимости в программаторе
– почти все платы имеют USB разъем
•
Отсутствие необходимости в пайке
– схемы собираются на беспаячной макетной плате.
•
Open Source САПР системы для создания схем с платами Arduino
– кросплатформенные
– бесплатные
•
Язык программирования C/C++
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
8
Основные платы
• Uno
–
–
–
–
–
–
базовая платформа Arduino
14 цифровых входов/выходов (из них 6 ШИМ)
6 аналоговых входов
1 последовательный порт UART
программируется через USB с токовой защитой
дополняется платами расширения
• Mega2560
–
–
–
–
–
54 цифровых входа/выхода (из них 14 ШИМ)
16 аналоговых входов
4 последовательных порта UART
дополняется платами расширения
программируется через USB
• Nano
–
–
–
Яркоев Константин Евгеньевич
14 цифровых входов/выходов (6 могут использоваться как
выходы ШИМ)
8 аналоговых входов
программируется через Mini-USB
http://лекции.техблог.рф/введение_в_ардуино.ppt
9
Платы расширения
Bluetooth
GSM+GPS
Яркоев Константин Евгеньевич
Ethernet
GSM+GPS
xBeeLCD
LED
http://лекции.техблог.рф/введение_в_ардуино.ppt
10
Плата Arduino Uno
СВЕТОДИОД НА
ВЫВОДЕ №13
ЗЕМЛЯ
ЦИФРОВЫЕ ВЫВОДЫ (ШИМ ~)
РАЗЪЕМ USB
5В
КНОПКА
ПЕРЕЗАГРУЗКИ
КВАРЦЕВЫЙ
РЕЗОНАТОР 16 МГц
МК
ATmega328
РАЗЪЕМ ПИТАНИЯ 7-12В
ЦЕНТР +
ВЫХОД
3.3В + ВЫХОД
5В +
Яркоев Константин Евгеньевич
АНАЛОГОВЫЕ ВХОДЫ
ЗЕМЛЯ
ВХОД +
http://лекции.техблог.рф/введение_в_ардуино.ppt
11
Среда разработки
Выбор платы
Выбор COM-порта
Прошивка
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
12
Содержание
• Микроконтроллеры
• Введение в Arduino
• Основы на пальцах
–
–
–
–
–
–
–
Ток, напряжение, сопротивление
Резистор
Конденсатор
Катушка индуктивности
Диод
Транзистор
Ноль и единица
• Hello, world!
• Проект велосипедной спецодежды
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
13
Ток, напряжение, сопротивление
Источник
• Высота жидкости подобна
напряжению
• Чем больше разность
уровней, тем больше
энергия
• Другое название
напряжения – разность
потенциалов
• Чем больше разность
уровней тем быстрее и
сильнее поток
Яркоев Константин Евгеньевич
Поток, стремящийся сверху вниз
Полезная нагрузка
• Трение жидкости о стенки трубы,
а также выполнение какой-либо
работы, обеспечивают
сопротивление
• Чем сильней сопротивление тем
медленней поток
• При большом сопротивлении
можно увеличить поток, подняв
давление – разность потенциалов
Нулевой уровень, зона нулевого потенциала, “земля”
http://лекции.техблог.рф/введение_в_ардуино.ppt
14
Закон Ома
• Сила тока в цепи прямо пропорциональна
напряжению и обратно пропорциональна
полному сопротивлению цепи
• I=U/R
• U – величина напряжения в вольтах
• R – сумма всех сопротивлений в омах
• I – протекающий по цепи ток в амперах
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
15
Закон Кирхгофа
I  0
n
j 1
Яркоев Константин Евгеньевич
j
http://лекции.техблог.рф/введение_в_ардуино.ppt
16
Закон Ома на практике
U
I
R
Точка с высшим потенциалом. Обычно это плюс питания
Rсумм = R1 + R2 = 2 Ом
I
5В
 2.5 А
2Ом
Точка с нулевым потенциалом. Обычно это минус питания
Распределение напряжения в зависимости от сопротивления:
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
17
Резистор
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
18
Конденсатор
Сейчас конденсатор
заряжается от
источника
Яркоев Константин Евгеньевич
Но если переключить
рубильник на другую
цепь, то произойдет
разряд конденсатора на
резистор
http://лекции.техблог.рф/введение_в_ардуино.ppt
19
Катушка индуктивности
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
20
Диод
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
21
Транзистор
•
•
•
Транзистор подобен вентилю, где крошечная сила может управлять могучим
потоком энергии, в сотни раз превышающим управляющий
Транзистор позволяет слабым сигналом, например с ноги микроконтроллера,
управлять мощной нагрузкой типа двигателя или лампочки.
Если не хватит усиления одного транзистора, то их можно соединять каскадами
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
22
Понятие нуля и единицы
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
23
Подтяжка выводов
до нужного напряжения
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
24
Содержание
•
•
•
•
Микроконтроллеры
Введение в Arduino
Основы на пальцах
Hello, world!
–
–
–
–
План полета
Предполетная подготовка
Полет
Разбор полета
• Проект велосипедной спецодежды
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
25
Hello, world!
План полета
– Предложить схему для мигания светодиодом
– Написать программу, которая мигает
светодиодом
– Скомпилировать программу
– Загрузить программу в Arduino
– Программа выполняется = светодиод мигает
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
26
Предполетная подготовка
• Проверить наличие
Arduino-совместимой
платы и USB-кабеля
• (Опционально) Проверить
наличие макетной платы,
соединительных проводов,
диода и резистора на 150500 Ом
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
27
Предполетная подготовка
Принципиальная схема
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
28
Предполетная подготовка
Макетная плата
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
29
Полет
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
30
Разбор полета (1)
Тип возвращаемого значения,
либо void, если ничего не
возвращаем
Имя функции
Параметры функции и их тип
Объявление переменной типа int
Инициализация переменной значением
Прекращение выполнения функции и
возврат значения типа int
Оператор присваивания
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
31
Разбор полета (2)
Характеристики диода:
•
•
•
•
•
Тип корпуса
Угол рассеивания, градусы
Типовой (рабочий) ток, А
Падение (рабочее) напряжения, В
Цвет свечения (длина волны), нм
Пример:
U светодиода  2 В, I светодиода  20 мА
U резистора  U питания  U светодиода  5В  2 В  3В
R резистора 
Яркоев Константин Евгеньевич
U резистора
I светодиода

3В
 150 Ом
0.02 А
http://лекции.техблог.рф/введение_в_ардуино.ppt
32
Разбор полета (3)
Недостаток программы: если мы захотим поменять вывод №13 на другой,
мы должны внести исправления в нескольких местах.
Решение: введем глобальную переменную, хранящую номер вывода
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
33
Разбор полета (4)
Недостаток программы: слишком много дублированного кода внутри цикла
Решение: введем глобальную переменную, хранящую текущее значение
напряжения
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
34
Разбор полета (5)
Недостаток программы: delay(1000) означает, что процессор МК простаивает 1
секунду и мы не можем обрабатывать датчики/делать вычисления. Фактически, мы
замедлили его работу до частоты 1 Гц вместо 16 МГц. Если сработает датчик, то мы
сможем отследить его через 1 сек вместо 1/16000000 сек., либо вообще не сможем
отследить событие
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
35
Содержание
•
•
•
•
•
Микроконтроллеры
Введение в Arduino
Основы на пальцах
Hello, world!
Проект велосипедной спецодежды
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
36
Велосипедная спецодежда
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
37
Материалы (1)
1.
2.
3.
4.
5.
6.
7.
Токопроводящая нить
Arduino Lilypad
Пакет светодиодов для
поворотников
Пакет светодиодов для
стоп сигнала
Переходник USB-RS232
Блок питания
Акселерометр
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
38
Материалы (2)
8. Кнопки
9. Иголка
10. Ножницы
11. Мел или мыло для выкройки
12. Куртка
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
39
Дребезг кнопки
U
Кнопка нажата
логическая
“1”
Кнопка отпущена
логический
“0”
логическая
“1”
t
t
Яркоев Константин Евгеньевич
T
http://лекции.техблог.рф/введение_в_ардуино.ppt
40
Самый простой способ решения
проблемы
1. определить замыкание ключа
2. подождать 10-30 миллисекунд
3. если ключ до сих пор замкнут, то
замыкание действительно имеет
место; иначе – игнорировать его
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
41
Алгоритм работы программы
Цикл:
•
Опрашиваем левую и правую кнопки с помощью адаптивного алгоритма
определения дребезга кнопки
•
Если нажата
–
–
–
–
–
–
левая кнопка и состояние ВЫКЛЮЧЕНЫ, то перейти в состояние ЛЕВЫЙ
левая кнопка и состояние ЛЕВЫЙ, то перейти в состояние ВЫКЛЮЧЕНЫ
левая кнопка и состояние ПРАВЫЙ, то перейти в состояние ЛЕВЫЙ
правая кнопка и состояние ВЫКЛЮЧЕНЫ, то перейти в состояние ПРАВЫЙ
правая кнопка и состояние ПРАВЫЙ, то перейти в состояние ВЫКЛЮЧЕНЫ
правая кнопка и состояние ЛЕВЫЙ, то перейти в состояние ПРАВЫЙ
•
Помигать левым или правым поворотником (или не мигать) в
зависимости от текущего состояния
•
Опрашиваем датчик ускорения
•
Если значение ускорение выше (ниже) порогового, то включить стопсигнал. Иначе выключить
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
42
Программа, управляющая миганием поворотников:
if ( leftSwitch.stateChanged ) {
if ( leftSwitch.lastState == LOW) { turnSignal.clickLeft(); }
}
if ( rightSwitch.stateChanged ) {
if ( rightSwitch.lastState == LOW) {turnSignal.clickRight(); }
}
Программа, управляющая включением стоп-сигнала:
int sensorValue = analogRead(sensorPin);
if( sensorValue < 300 )
{ digitalWrite(ledStop, HIGH); }
else
{digitalWrite(ledStop, LOW);}
}
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
43
Тестирование прототипа
Принципиальная схема
с потенциометром
вместо акселерометра
Яркоев Константин Евгеньевич
Прототипирование в Fritzing
Тестирование на макетной плате в классе
http://лекции.техблог.рф/введение_в_ардуино.ppt
44
Пошив
• Нужно выбирать материал достаточной
толщины, т.к. нитка достаточно толстая
• Следует шить так, чтобы стежки не были
видны снаружи
• Необходимо минимизировать длину ниток
• После шитья нужно покрыть швы лаком для
предотвращения окисления и короткого
замыкания
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
45
Статистика
• Потрачено
– 10 метров нитки
– 40 человеко-часов работы непрофессионала
– 4400 рублей, из них
Товар (услуга)
Стоимость, руб.
Электроника
2000
Нитка
900
Доставка из США
600
Куртка
900
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
46
Будущее проекта
В дальнейшем мы хотим развить наш проект,
применив:
• гибкую плату Seeeduino Film для более
комфортного ношения
• датчик света для автоматического включения
светодиодов белого цвета в мерцающем
режиме в темное время суток
• беспроводные технологии для разработки
нового комплекса, состоящего из следующих
устройств
– модуля управляющей логики на руле
– блока поворотников со стоп-сигналом.
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
47
Заключение
• Платформа постоянно развивается
• С Ардуино многие вещи становятся
простыми
• Ардуино можно и нужно изучать в школе
• “Не хочешь покупать? Сделай сам!”
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
48
Список использованных
источников информации
•
•
•
•
•
•
•
Болл Стюарт Р. Аналоговые интерфейсы микроконтроллеров – М.:
Издательский дом “Додэка-XXI”, 2007. – с. 119
http://Arduino.cc
http://Arduino.ru
http://easyelectronics.ru/osnovy-na-palcax-chast-4.html
http://web.media.mit.edu/~leah/LilyPad/build/turn_signal_jacket.html
http://sparkfun.com
http://www.seeedstudio.com/
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
49
Спасибо за внимание!
• Эту презентацию можно скачать здесь:
– http://лекции.техблог.рф/введение_в_ардуино.ppt
• Скоро: проект велосипедной одежды с
инструкцией и исходным кодом
– http://техблог.рф/велоодежда
Яркоев Константин Евгеньевич
http://лекции.техблог.рф/введение_в_ардуино.ppt
50
Download