Архивы: Уроки Робототехники

Во время передачи информации от одного устройства к другому могут возникать различные ошибки (помехи в радио-эфире, электромагнитные наводки в проводах), приводящие к повреждению данных. Достаточно повредить один бит, и число может сильно измениться! Например передавали число 123, которое выглядит как 0b01111011, и неправильно передали один бит. Приёмник получил число 0b01011011, что уже является числом 91! …

Целостность данных, CRC Читать полностью »

ПИД регулятор – один из самых распространенных автоматических регуляторов. Он настолько универсален, что применяется практически везде, где нужно автоматическое управление. Например температурой: специальные печи, холодильники, инкубаторы, паяльники, сопло и стол 3D принтера, ИК паяльные станции и прочее. Поддержание частоты оборотов мотора, например для станков. Всевозможные балансирующие штуки, гироскутеры, сигвеи, левитирующие магнитные платформы, и конечно же …

ПИД регулятор Читать полностью »

Релейное управление – самый простой алгоритм из возможных, ведь у насесть только два состояния – вкл и выкл. В этом уроке рассмотрим алгоритмы, которые сделают релейное управление более правильным, позволят сохранить “здоровье” реле и повысят точность регулирования. Начнём с самого простого и очевидного: if (temp < 50.0) digitalWrite(relayPin, 1); else digitalWrite(relayPin, 0); Данный код не …

Алгоритмы релейного управления Читать полностью »

Вернёмся к примеру с плавным миганием светодиода/ленты из урока про светодиоды. void setup() { pinMode(3, OUTPUT); } uint32_t tmr; int val = 0; bool dir = true; void loop() { if (millis() – tmr >= 20) { tmr = millis(); if (dir) val++; // увеличиваем яркость else val–; // уменьшаем if (val >= 255 || …

Мигаем светодиодом по CRT гамме Читать полностью »

Общение по Serial Данный урок переехал из урока о мониторе порта, рекомендуется сначала изучить его. Стандартные инструменты “библиотеки” Serial позволяют отправлять и принимать данные по интерфейсу UART. Здесь мы рассмотрим некоторые алгоритмы и протоколы связи, чтобы наладить управление программой через монитор порта в ручном режиме, или использовать для этого специальные программы, а также приложение на …

Отправка и парсинг Serial Читать полностью »

Исследование аналоговых сигналов гораздо более интересно, чем расшифровка цифровых, и в этом уроке мы поговорим о такой ситуации, когда нужно оцифровать и “запомнить” в микроконтроллере аналоговый сигнал. Как и зачем это может быть нужно? Чаще всего это встречается в случаях, когда некий датчик выдаёт сигнал в зависимости от каких-то внешних условий, например термистор меняет сопротивление …

Оцифровка и тарирование графиков Читать полностью »

Шум при измерениях Шум можно условно разделить на два типа: постоянный шум датчика с одинаковым отклонением (скриншот 1), и случайный шум, который возникает при различных случайных (чаще всего внешних) обстоятельствах (скриншот 2). Небольшой шум наблюдается у любого аналогового датчика, который опрашивается средствами АЦП Ардуино. Причем сам АЦП практически не шумит, если обеспечить качественное питание платы …

Фильтрация сигналов Читать полностью »

Начнём с самого простого: генерация импульса заданной длины, такое часто бывает нужно. Проще всего сделать это на delay() и delayMicroseconds(): void setup() { pinMode(3, OUTPUT); digitalWrite(3, HIGH); // вкл delayMicroseconds(500); // ждём 500 мкс digitalWrite(3, LOW); // выкл } Нужно помнить, что digitalWrite() сам по себе выполняется в районе 3.6 мкс (58 тактов процессора). Для …

Генерирование и чтение сигналов Читать полностью »

Как вы знаете, никакую нагрузку мощнее светодиода нельзя подключать к Ардуино напрямую, особенно моторчики. Ардуино, да и вообще любой микроконтроллер – логическое устройство, которое может давать только логические сигналы другим железкам, а те уже могут управлять нагрузкой. Кстати, урок по управлению мощной нагрузкой постоянного и переменного тока у меня тоже есть. “Драйвером” мотора могут быть …

Управление щёточными моторами Читать полностью »

Немного теории Я думаю все знают, что свет – это поток фотонов, но в то же время он является электромагнитной волной, излучением. Человеческий глаз воспринимает очень узкий диапазон этого излучения: приблизительно от 390 до 790 ТГц (террагерц), так называемое видимое излучение или видимый свет. “Ориентироваться” в этом диапазоне электромагнитного излучения принято в обратной величине – …

RGB светодиоды и ленты Читать полностью »