Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 18

Заметки Ардуинщика

НЕСКОЛЬКО ПОЛЕЗНЫХ СТАТЕЙ

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. Эта шту­ка оза­да­чит вас и ребён­ка на мно­го часов, а на выхо­де полу­чат­ся уди­ви­тель­ные про­ек­ты.

1.jpg

Что за Arduino

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

На самом базо­вом уровне Arduino про­сто отправ­ля­ет и счи­ты­ва­ет элек­три­че­ские импуль­сы. Напри­мер, мож­но под­клю­чить к нему тер­мо­метр, и Arduino смо­жет счи­тать тем­пе­ра­ту­ру в ком­на­те. А потом, в зави­си­мо­сти от про­грам­мы, отпра­вить сиг­нал на устрой­ство, кото­рое вклю­чит вен­ти­ля­тор.

Или мож­но под­клю­чить к Arduino дат­чик угле­кис­ло­го газа. Arduino мож­но научить счи­ты­вать пока­за­ния дат­чи­ка каж­дые пять минут и, когда уро­вень угле­кис­ло­го газа пре­вы­ша­ет нор­му, запи­щать, зами­гать лам­поч­кой или с помо­щью серии мотор­чи­ков открыть окно.

К Arduino есть мно­го плат рас­ши­ре­ния и дат­чи­ков. Сфе­ры при­ме­не­ния пла­ты почти без­гра­нич­ны: авто­ма­ти­за­ция, систе­мы без­опас­но­сти, умный дом, музы­ка, робо­то­тех­ни­ка и мно­гое дру­гое. Вот что мож­но делать на этой умной ита­льян­ской пла­те и на её рос­сий­ских и зару­беж­ных кло­нах.

1. Робот-бармен с Bluetooth-управлением

Слож­ность: 4/5.

Вре­мя: 5/5.

0.jpg

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

Глав­ная слож­ность при изго­тов­ле­нии — инже­нер­ная. Нуж­но точ­но при­кру­тить все дета­ли и соеди­нить их меж­ду собой, что­бы ёмкость ока­зы­ва­лась точ­но под нуж­ны­ми бутыл­ка­ми.

Подроб­но­сти: usamodelkina.ru.

2. Светящийся куб на 512 светодиодов

Слож­ность: 3/5.

Вре­мя: 3/5.

2-1024x768.jpg

Кра­си­вая шту­ка, кото­рая может све­тить­ся в такт музы­ке как трёх­мер­ный эква­лай­зер и пока­зы­вать 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. ПИД-регулятор скорости вращения двигателя постоянного тока. Проверка работы, настройка на быстродействие и устойчивость.

Coin.png Поддержать проектИспользуемые источники:

  • https://alexgyver.ru/arduino_lessons/
  • https://thecode.media/arduino-projects-2/
  • http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации