НЕСКОЛЬКО ПОЛЕЗНЫХ СТАТЕЙ
15.01.2019 конспект был обновлён: поправлено оформление и добавлена информация!
Добро пожаловать в цикл “Уроки Ардуино с нуля, для чайников и школьников”, это официальная страница проекта “Заметки Ардуинщика“. Цикл охватывает все стандартные операторы и функции Ардуино и построен таким образом, что от выпуска к выпуску у зрителя идёт плавное формирование “базы”, каждый последующий урок (видео урок) содержит в себе информацию из предыдущих, то есть уроки усложняются и становятся комплексными.
Урок #0 – что такое Arduino? Возможности
- Что такое Ардуино и зачем она нужна?
- Что умеет Ардуино и что можно сделать на её основе?
- Подключение датчиков к Ардуино
- Питание Arduino от различных источников электричества
Урок #0.5 – первые шаги, подключение и настройка
- Где скачать среду разработки, драйвера и всё настроить
- Как запустить скачанный скетч, установить библиотеки и прошить на Arduino
Урок #1 – структура скетча и типы данных
- Структура прошивок в Ардуино, работа с файлами
- Типы данных в языке Ардуино и их особенности
Урок #1.1 – операции с переменными и константами
- Математические операторы для работы с переменными
- Особенности переменных и констант
Урок #2 – работа с последовательным портом
- Общение между компьютером и Arduino Через COM порт
- Рассматриваем приём и передачу данных
Урок #3 – условный оператор и оператор выбора
- Учимся работать с значениями переменных при помощи условий
- В качестве примера пишем текстовое меню для монитора порта
Урок #4 – функции времени: задержки и таймеры
- Учимся работать с задержками, и сразу перестаём их использовать
- Разбираемся с конструкциями таймера millis()
Урок #5 – цифровые порты и подключение кнопки
- Учимся настраивать цифровые и аналоговые порты
- Генерируем и считываем цифровой сигнал, подключаем кнопку
Урок #6 – флажки и расширенное управление кнопкой
- Учимся работать с логическими “флажками”
- Расширяем возможности одной кнопки: двойное нажатие, защита от дребезга
Урок #7 – правильное подключение светодиодов
- Учимся подключать светодиод и рассчитывать резистор
- Управляем включением и выключением одного и нескольких светодиодов
Урок #8 – подключение и управление реле
- Какие существуют типы реле? В чём достоинства и недостатки?
- Как подключить реле и как им управлять?
Урок #9 – подключение и управление мосфетом
- Как подключить мосфет?
- Как выбрать мосфет для своего проекта?
Урок #10 – оцифровка аналогового сигнала
- Как использовать аналоговые пины?
- Как принять сигнал и перевести его в нужное значение?
Урок #11 – ШИМ сигнал, плавное регулирование
- Что такое ШИМ сигнал?
- Как плавно управлять мощностью нагрузки постоянного тока?
Урок #12 – работа с циклами
- Работа с циклом-счётчиком for
- Работа с циклом с пред- и постусловием while
Урок #13 – создаём функцию
- Создаём ничего не возвращающие функции
- Создаём возвращающие функции
Урок #14 – случайные числа
- Получаем псевдослучайные числа при помощи функции random
-
Оптимизируем систему
Урок #15 – массивы данных
- Учимся объявлять и использовать массивы
- Смотрим и запоминаем несколько полезных алгоритмов
Урок #16 – прерывания
- Что такое прерывания и зачем они нужны
- Использование и несколько примеров
ВИДЕОУРОКИ ПО ПАЙКЕ И РАБОТЕ С ПАЯЛЬНИКОМ
ВИДЕОУРОКИ ПО РАБОТЕ С МОДУЛЯМИ И ЖЕЛЕЗКАМИ
Управление сервоприводом
Управление бесколлекторным двигателем
БЕСПРОВОДНАЯ СВЯЗЬ ARDUINO И РАДИОУПРАВЛЕНИЕ
Подключение и настройка модуля на nRF24L01
Управление яркостью света, нагрузкой и сервоприводом
Если у вас есть тяга к технологиям (или ребёнок с такой тягой), рассмотрите Arduino. Эта штука озадачит вас и ребёнка на много часов, а на выходе получатся удивительные проекты.
Что за Arduino
Arduino — это программируемый микроконтроллер. То есть это плата, на которую можно записать вашу программу, и эта плата сможет управлять другими штуками: например, зажечь лампочку, издать звук, включить электроприбор, измерить температуру, отправить СМС.
На самом базовом уровне Arduino просто отправляет и считывает электрические импульсы. Например, можно подключить к нему термометр, и Arduino сможет считать температуру в комнате. А потом, в зависимости от программы, отправить сигнал на устройство, которое включит вентилятор.
Или можно подключить к Arduino датчик углекислого газа. Arduino можно научить считывать показания датчика каждые пять минут и, когда уровень углекислого газа превышает норму, запищать, замигать лампочкой или с помощью серии моторчиков открыть окно.
К Arduino есть много плат расширения и датчиков. Сферы применения платы почти безграничны: автоматизация, системы безопасности, умный дом, музыка, робототехника и многое другое. Вот что можно делать на этой умной итальянской плате и на её российских и зарубежных клонах.
1. Робот-бармен с Bluetooth-управлением
Сложность: 4/5.
Время: 5/5.
Незаменимое устройство для любой вечеринки: работает от восьми батареек, готовит много коктейлей и управляется без проводов. В основе механического бармена — плата Arduino, приводы для позиционирования шейкера и подачи напитков, датчики положений.
Главная сложность при изготовлении — инженерная. Нужно точно прикрутить все детали и соединить их между собой, чтобы ёмкость оказывалась точно под нужными бутылками.
Подробности: usamodelkina.ru.
2. Светящийся куб на 512 светодиодов
Сложность: 3/5.
Время: 3/5.
Красивая штука, которая может светиться в такт музыке как трёхмерный эквалайзер и показывать 3D-анимацию. А ещё это может работать как необычный ночник.
Для сборки понадобится деревянное шасси с отверстиями, чтобы каждый ярус был таким же по размеру и форме, что и остальные. Число светодиодов в каждой грани выбрано не случайно: 8 ламп = 8-битная логика, самая простая в программировании и управлении через контроллер.
Подробности: instructables.com.
3. Взломщик кодовых замков
Сложность: 5/5.
Время: 4/5.
Этот проект разработал хакер Сэми Камкар, и мы приводим его только в демонстрационных целях. Для взлома, кроме платы Arduino, автор взял серво- и шаговый двигатели для перебора комбинаций и соединил всё на самодельном шасси из алюминия. В основе алгоритма — простой перебор всех комбинаций, но робот это делает быстрее человека.
Подробности: YouTube.
4. Nod Bang — киваем головой и делаем бит
Сложность: 2/5.
Время: 3/5.
Идея в том, чтобы не просто кивать в такт музыке, а кивками самому генерировать звук. Эндрю Ли сделал специальное устройство, которое следит за положением головы и в момент наклона воспроизводит нужный звук.
В наушники он встроил акселерометр, кнопки отвечают за выбор звука, а Arduino — за воспроизведение звука на компьютере через MIDI-интерфейс. Чтобы всё выглядело эффектнее, у кнопок есть подсветка, и они тоже делают бит.
Подробности: YouTube.
5. Поющее растение
Сложность: 2/5.
Время: 2/5.
По сути это терменвокс, который сделали в виде растения. Все остальные принципы работы остались теми же: звук возникает при движении рук, и разные движения генерируют разную мелодию.
Плата регистрирует изменение амплитуды сигнала, для чего автор использует самодельный сенсорный детектор для анализа прикосновений к цветку. Кроме этого понадобилась плата расширения Gameduino и сам цветок.
Подробности: Vimeo.
6. Замок, который открывается на секретный стук
Сложность: 3/5.
Время: 2/5.
Интересная вещь для тех, кто хочет поиграть в шпионов или пускать в комнату только своих друзей. Замок распознаёт стук по двери и сравнивает его с базовым звучанием, которое установил владелец. Если совпадает — приводы отодвигают замок и дверь открывается, если нет — ничего не происходит, можно постучать заново.
Чтобы установить новый стук на открытие, нужно зажать кнопку на ручке и постучать по двери новым способом. Пьезосенсор распознаёт вибрации и записывает их в память платы.
Подробности: grathio.com.
7. Горшок для цветов с автополивом
Сложность: 4/5.
Время: 3/5.
Полезный горшок для тех, кто забывает полить цветы перед отъездом или просто не знает, как часто надо их поливать. Вся электроника, насосы и ёмкость для воды находятся внутри горшка. Для каждого растения можно запрограммировать свой режим полива в каждом горшке.
Основные характеристики чудо-горшка:
- встроенный резервуар для воды;
- датчик контроля уровня влажности почвы;
- насос для подачи воды;
- датчик уровня воды в резервуаре;
- светодиод, информирующий о недостатке воды в резервуаре.
Подробности: usamodelkina.ru.
8. Драм-машина
Сложность: 1/5.
Время: 2/5.
Простая драм-машина на Arduino. Проект интересен тем, что это не обычный перебор записанных семплов, а настоящая генерация звука с помощью встроенного железа. Ещё здесь есть анализатор спектра звука: через видеовыход можно посмотреть на диаграммы и частотные характеристики.
Математическая основа этого устройства — разложение в ряд Фурье, которое решается подключением стандартной библиотеки.
Подробности: YouTube.
9. Шагающий робот
Сложность: 2/5.
Время: 1/5.
Простой в изготовлении четырёхногий робот, который шагает и самостоятельно преодолевает препятствия в сантиметр высотой.
Чтобы его сделать, вам понадобятся сервомоторы для ног, немного проволоки и любой пластик, из которого делается шасси. Для питания — аккумулятор любой модели, который крепится на спине робота.
Подробности: xakep.ru.
10. Робот-пылесос
Сложность: 4/5.
Время: 5/5.
Дмитрий Иванов из Сочи собрал настоящий робот-пылесос, который делает всё то же самое, что и промышленные устройства, только с возможностью тонкой настройки под себя и свою квартиру.
Основные детали — плата Arduino, 6 инфракрасных датчиков, турбина с двигателем и щётками и аккумулятор. Ещё у робота есть датчики столкновения, которые помогают объезжать препятствия, и контроллер аккумулятора, который следит за уровнем батарей и предупреждает о том, что пылесос надо зарядить.
Подробности: habr.com.
Урок 1. Введение. Общие сведения об Ардуино.
Урок 2. Плата Arduino UNO R3. Описание, характеристики.
Урок 3. Установка программного обеспечения Arduino IDE, подключение платы к компьютеру.
Урок 4. Основы программирования Ардуино на языке C.
Урок 5. Первая программа. Функции управления вводом/выводом. Кнопка, светодиод.
Урок 6. Обработка дребезга контактов кнопки. Интерфейс связи между программными блоками.
Урок 7. Классы в программах Ардуино. Кнопка как объект.
Урок 8. Цифровая фильтрация сигналов в программах для Ардуино.
Урок 9. Создание библиотеки для Ардуино.
Урок 10. Прерывание по таймеру в Ардуино. Библиотека MsTimer2. Параллельные процессы.
Урок 11. Программные таймеры в Ардуино. Циклы с различными временами периода от одного таймера.
Урок 12. Последовательный порт UART в Ардуино. Библиотека Serial. Отладка программ на Ардуино.
Урок 13. Аналоговые входы платы Ардуино. Чтение аналоговых сигналов. Измерение среднего значения сигнала.
Урок 14. EEPROM в Ардуино. Контроль целостности данных.
Урок 15. Указатели в C для Ардуино. Преобразование разных типов данных в байты.
Урок 16. Повышение надежности программ для Ардуино. Сторожевой таймер.
Урок 17. Рабочий проект Ардуино. Охранная сигнализация.
Урок 18. Подключение матрицы кнопок к Ардуино. Функция tone().
Урок 19. Семисегментные светодиодные индикаторы (LED). Режимы управления, подключение к микроконтроллеру.
Урок 20. Подключение семисегментного светодиодного (LED) индикатора к Ардуино. Библиотека управления индикатором.
Урок 21. Подключение к Ардуино LED индикаторов и матрицы кнопок, используя общие выводы.
Урок 22. Работа со временем в Ардуино. Проект спортивного секундомера.
Урок 23. Подключение ЖК (LCD) индикаторов к Ардуино. Библиотека LiquidCrystal.
Урок 24. Подключение аналоговых термодатчиков к Ардуино (LM35, TMP35, TMP36, TMP37). Рабочий проект термометра.
Урок 25. Кремниевые термодатчики серии KTY81 в системе Ардино. Проект термометра-регистратора.
Урок 26. Подключение термодатчиков DS18B20 к Ардуино. Библиотека OneWire. Точный Ардуино термометр-регистратор.
Урок 27. Термопары в системе Ардуино. Проект Ардуино термометра-регистратора для высоких температур.
Урок 28. Униполярный шаговый двигатель в системе Ардуино. Библиотека Stepper.
Урок 29. StepMotor — библиотека управления шаговыми двигателями в системе Ардуино. Библиотека прерывания по таймеру 1 TimerOne.
Урок 30. Текстовые строки в Ардуино. Конвертирование данных в строки и наоборот. Класс String.
Урок 31. Драйвер шагового двигателя на Ардуино с управлением от компьютера. Протокол обмена данными с использованием AT команд.
Урок 32. Следящий электропривод с шаговым двигателем.
Урок 33. Биполярный шаговый двигатель в системе Ардуино.
Урок 34. STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.
Урок 35. Подключение STEP/DIR драйверов шаговых двигателей к Ардуино. Библиотека StepDirDriver.
Урок 36. Разработка Ардуино-контроллера элемента Пельтье. Импульсный (ключевой) регулятор напряжения.
Урок 37. Широтно-импульсная модуляция в Ардуино.
Урок 38. Ардуино-контроллер элемента Пельтье. Структура программы. Измерение выходных параметров контроллера.
Урок 39. Разработка контроллера элемента Пельтье. Интегральный регулятор мощности.
Урок 40. ПИД регулятор. Принцип действия, математическое описание, настройка.
Урок 41. Разработка контроллера элемента Пельтье. ПИД регулятор температуры.
Урок 42. Контроллер элемента Пельтье. Реализация пользовательского интерфейса и защитных функций.
Урок 43. Разработка контроллера элемента Пельтье. Программа верхнего уровня. Проверка, настройка устройства.
Урок 44. Контроллер элемента Пельтье. Другая версия программного обеспечения. Завершение проекта.
Урок 45. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Nano.
Урок 46. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Pro Mini.
Урок 47. Обмен данными между платами Ардуино. Основные понятия. Терминология.
Урок 48. Обмен данными между платой Ардуино и компьютером через интерфейс UART.
Урок 49. Обмен данными между платами Ардуино через интерфейс UART.
Урок 50. Помехоустойчивость и физическая среда стандартного интерфейса UART.
Урок 51. Радиальные интерфейсы RS-232 и RS-422.
Урок 52. Интерфейс ИРПС (цифровая токовая петля). Принцип действия, параметры, схемная реализация.
Урок 53. Плата MassDuino UNO LC (MD-328D). АЦП высокого разрешения (до 16 бит), расширенные функциональные возможности, полная совместимость с Arduino UNO.
Урок 54. Специфика программирования платы MassDuino UNO LC. Установка программного обеспечения, программирование АЦП, ЦАП, дополнительных цифровых выводов.
Урок 55. Работа с инкрементальным энкодером в Ардуино. Библиотека Encod_er.h.
Урок 56. Протокол последовательной передачи данных ModBus RTU.
Урок 57. Обмен данными между платой Ардуино и компьютером через UART по протоколу ModBus. Библиотека Tiny_ModBusRTU_Slave.
Урок 58. Обмен данными между платами Ардуино через UART по протоколу ModBus. Библиотека Tiny_ModBusRTU_Master.
Урок 59. Объединение нескольких плат Ардуино в локальную сеть с топологией “Общая шина”. Преобразование UART в последовательный интерфейс с одной сигнальной линией.
Урок 60. Интерфейс RS-485.
Урок 61. Аппаратная реализация интерфейса RS-485. Объединение плат Ардуино в локальную сеть RS-485.
Урок 62. Технология клиент-сервер.
Урок 63. Локальная сеть Ethernet. Модуль ENC28J60, его подключение к плате Ардуино.
Урок 64. TCP сервер и клиент на Ардуино. Библиотека UIPEthernet.
Урок 65. Аналогово-цифровые преобразования Ардуино в фоновом режиме. Библиотека BackgroundADC.
Урок 66. OSD-генератор MAX7456. Общее описание, функциональные возможности, параметры, подключение к плате Ардуино.
Урок 67. Ардуино-библиотека OSD-генератора MAX7456. Описание библиотеки, проблемы некорректной работы, исправленный вариант.
Урок 68. Практическое программирование OSD-контроллера MAX7456 в системе Ардуино. Создание и загрузка шрифтов, вывод информации на экран.
Урок 69. Протокол UDP. Создание UDP-сервера и клиента с помощью библиотеки UIPEthernet.
Урок 70. Протокол HTTP. Создание WEB-сервера на Ардуино. Использование HTML-кода.
Урок 71. Продолжение темы HTTP-протокола. Передача данных от клиента WEB-серверу с помощью GET-запросов.
Урок 72. HTTP-протокол (продолжение). Передача данных WEB-серверу с помощью POST-запросов.
Урок 73. ПИД-регулятор скорости вращения двигателя постоянного тока. Разработка аппаратной части.
Урок 74. Регулировка скорости вращения двигателя без обратной связи. Измерение периода и частоты сигналов с помощью Ардуино.
Урок 75. Разработка ПИД-регулятора скорости вращения двигателя постоянного тока.
Урок 76. ПИД-регулятор скорости вращения двигателя постоянного тока. Проверка работы, настройка на быстродействие и устойчивость.
Поддержать проектИспользуемые источники:
- https://alexgyver.ru/arduino_lessons/
- https://thecode.media/arduino-projects-2/
- http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam