Показаны сообщения с ярлыком Arduino. Показать все сообщения
Показаны сообщения с ярлыком Arduino. Показать все сообщения

суббота, 9 ноября 2024 г.

Дальномер AJ-SR04M

 Ультразвуковой водоустойчивый модуль дальномер AJ-SR04M интересен тем что может работать даже после погружения в воду. Также данный модуль может взаимодействовать с платой ардуино таким же образом как и датчик hc-sr04. Для написания скетча, для данных датчиков, не требуется установка специальных библиотек. Датчик посылает ультразвуковой сигнал который отражается от препятствия и возвращается обратно, время сигнала в пути от датчика до препятствия и обратно может использоваться для вычисления расстояния до препятствия. Для получения этого времени используется функция pulseIn(). Подключить модуль к плате ардуино можно по схеме:

Рисунок 1 - Схема

На плате есть площадка для пjдключения резистора R19 которым можно изменять режим работы модуля:
1) Без резистора - Традиционный Эхо - режим для которого подходит скетч ниже.
2) 300кОм - Эхо режим с пониженным потреблением.
3) 120кОм - Автоматический последовательный режим, в данном режиме модуль автоматически раз в 120мс измеряет расстояние до препятствий и выдает его на пин Echo длительностью импульса.
4) 47кОм - Последовательный режим с пониженным энергоптреблением, в данном режиме модуль "спит" пока на пин Trig не придет определенный сигнал, после чего модуль просыпается, измеряет расстояние и выдает его на пин Echo в виде длительности импульса.

Скетч, для режима по умолчанию, можно скопировать из текстового поля:
Скетч взят со страницы https://tutorials.probots.co.in/communicating-with-a-waterproof-ultrasonic-sensor-aj-sr04m-jsn-sr04t/ и немного переделан. Убраны стартовые выводы на uart и добавлена индикация приближения препятствия более чем на 20см в строке:

distance<20 ? digitalWrite(13, HIGH) : digitalWrite(13, LOW);

Чтобы можно было тестировать датчик без подключения к компьютеру. Если заменить 20 на другую цифру то можно поставить другой порог срабатывания. В ходе тестирования датчика было определено что он переносит погружение в воду и имеет широкую диаграмму направленности т.е. (если совсем просто то) препятствием он будет считать не только то что от него напрямую но и то что от него сбоку что надо учитывать.


Адрес биткоин кошелька для поддержки канала - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g

четверг, 23 мая 2024 г.

Магнетометр hmc5883 GY-271

Магнетометр hmc5883 GY-271 можно использовать например для квадрокоптера чтобы он не крутился или например для радиоуправляемого кораблика чтобы он мог знать в какую сторону плыть если потерял сигнал чтобы не пришлось нырять в воду за ним. Акселерометр с гироскопом не подходят т.к. их основная задача - это показывать в каком направлении нахдиться земля т.е. где низ а где верх т.е. ориентировать по вертикальной оси. Магнетометр же ориентирует по оставшимся двум осям. При заказе может попастя орининальный модуль HMC5883 либо не оригинальный QMC5883 для них нужны разнные библиотеки. Если попался QMC5883 то думаю последовательность действий будет примерно такой же. Заходим в менеджер библиотек среды ардуино. Скетчь -> Подключить библиотеку -> Управлять библиотеками

Далее вписываем в строке поиска hmc588
и для оригинала выбираем библиотеку adafruit HMC5883 unified
для не оригинала можно поискать другую библиотеку
Если появилось окно для выбора установки дополнительных библиотек то
нужно нажать кнопку установить все
после установки можно закрыть менеджер библиотек
и найти пример по вкладкам
файл->примеры->adafruit HMC5883 unified->magsensor
который можно открыть и загрузить в плату
После можно открыть монитор последовательного порта
выбрать скорость 9600 бод
и увидеть стартовую информацию 
и магнитные индукции в микротеслах по всем трем осям
а также угол компаса в градусах
если держать модуль осью Z вверх от земли
Теперь немного про скетчь вначале подключаются заголовочные файлы
потом назначается уникальный идентификатор
Потом есть функция для вывода стартовой информации

в функции setup() инициализируется последовательный порт и модуль магнетометра

после выводиться стартовая информация
в основном цикле у модуля беруться данные
и выводяться магнитные индукции по всем 3м осям в микроТеслах

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


Видео по теме данного магнетометра-

Адрес биткоин кошелька для поддержки - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g





понедельник, 8 января 2024 г.

Инфракрасный лазерный дальномер GY-530 GY-VL53L0X

 Инфракрасный лазерный дальномер VL53L0X может быть подключен к плате Ардуино по шине I2C и использоваться для бесконтактного измерения расстояний от 50мм (проверено эксперементально (см. видео ниже)) до 2м с точностью до 1мм. Существуют также ультразвуковые дальномеры наподобии HC-SR04 но такие дальномеры больше подходят для обнаружения крупных препятствий в то время как VL53L0X способен обнаруживать препятствия толщиной с карандаш и возможно даже меньше. Инфракрасные дальномеры также обладают недостатками по сравнению с ультразвуковыми, например они менее далеко будут измерять поверхности хорошо поглощающие свет. Подключить дальномер VL53L0X к плате Arduino pro mini можно по схеме:



USB-UART конвертер нужен для передачи данных на компьютер чтобы компьютер мог монитором показать результат. А также для того чтобы загружать скетч в Ардуино. Схема соединения простая, модуль толерантен к напряжению +5В поэтому такая схема возможна. Для того чтобы можно было использовать данный модуль с платой Ардуино и программировать в среде Ардуино, нужно подключить библиотеку в данной среде. Для этого нужно зайти в менеджер библиотек поп пути Скетчь -> Подключить библиотеку -> Управлять библиотеками

В поисковой строке менеджера библиотек вписать название модуля или первые буквы его названия чтобы найти библиотеку, после чего нажать кнопку "установка"
Далее появится окно предлагающее установить ещё некоторое количество библиотек необходимых для работы основной библиотеки тут естественно нужно нажать кнопку "Install all"
если конечно данные библиотеки ещё не установлены.
После того как библиотеки будут установены, можно закрыть менеджер библиотек. Теперь можно открыть тестовый скетчь и загрузить его в плату
После того как скетчь загрузиться можно открыть монитор последовательного порта и измерять расстояние дальномером
Тестовый скетч не сложный:

в самом верху подключается заголовочный файл библиотеки, далее объявляется объект класса библиотеки, в основной функции setup() инициализируется последовательный порт, модуль и выводятся стартовые сообщения. В основном цикле имеется объект для получения данных с модуля (measure) ниже данный объект заполняется данными если расстояние удалось измерить то оно выводиться в последовательный порт если не удалось то выводитья сообщение об этом
в самом конце задержка для того чтобы цифры не сильно мельтишили на экране.
Видео по дальномеру:

Адрес биткоин кошелька для поддержки блога - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g

суббота, 11 февраля 2023 г.

Переделка игрушки девятки на радиоуправление на ардуине

 В 90е годы была популярна радиоуправляемая игрушка модель автомобиля ВАЗ 2109 (или "девятка"). Дети обычно не очень бережно относятся к вещам поэтому часто такие игрушки часто ломаются но если целыми остались хотя бы корпус и колеса то такую игрушку можно реинкарнировать оснастив современной электроникой и моторами. Можно добавить задний ход которого не было в оригинале. В качестве электроники для данного автомобиля можно применить например уже проверенные схемы на ардуине. Схема универсального пульта:

Рисунок 1 - Схема пульта на Ардуине

Схема приемника автомобиля ВАЗ 2109:
Рисунок 2 - Схема приемника

Вместо батареек можно использовать например современные литий ионные аккумуляторы.

Скетч передатчика:

Скетч приемника:

Видео с тест драйвом данного автомобиля:


Поискать модели автомобиля можно например по этой ссылке
КАРТА БЛОГА (содержание)


воскресенье, 5 июня 2022 г.

Асинхронное мигание светодиодами на ардуино

Задача асинхронного мигания светодиодами, по непонятным причинам, вызывает у некоторых ардуиньщиков и микроконтроллерщиков затруднения а также используется для объяснения преимущества использования операционной системы FreeRTOS. На этом примере как бы объясняется реализация многозадачности которая часто бывает необходима в крупных проектах когда микроконтроллер должен выполнять много разных действий например выводить показания на экран, считывать данные с датчиков и заниматься какими нибудь вычислениями если каждое действие занимает много времени а пользователь не хочет долго ждать результата на экране то нельзя их просто выполнять последовательно друг за другом. Для каждого действия нужно выделить отдельную задачу и некоторое количество времени на выполнение. Допустим светодиодов будет три.

Рисунок 1 - Схема

Скетч для асинхронного мигания светодиодами может быть например таким:

Константами LEDx где x-порядковый номер пина к которому подключается светодиод, заданы номера пинов к которым подключаются светодиоды. Константами LEDx_DELAY_MS где x-порядковый номер пина к которому подключается светодиод, задаются длительности полупериодов мигания светодиодов. Переменные unsigned long pre_time и unsigned long time нужны для отсчетов времени. Функция togglePin(int pin) нужна для инвертирования состояния пина. Функции taskx() где x-номер задачи, являются квазиасинхонно вызываемыми задачами. Внутри этих задач помещены инвертирования состояний светодиодов. В функции setup() инициализация пинов и переменных для отсчетов времени. В функции loop() раз в миллисекунду инкрементируются переменные счетчики для для мигания светодиодами. При досчитывани счетчика вызывается соответствующая задача и происходит мигание светодиодом.



пятница, 18 февраля 2022 г.

Радиоуправляемый аэроснегоход на ардуине

 Зима это хорошее время для того чтобы испытать самодельный радиоуправляемый транспорт с воздушной тягой т.к. именно в этот период времени поверхность земли покрывается белым скользким слоем по которому может прекрасно скользить небольшой моторный аппарат с пропеллерами. При этом можно не волноваться о том что самодельный аппарат глубоко утонет т.к. этому будет препятствовать обычный твердый слой земли обычного цвета который находиться под белым слоем. Механическую часть аэроснегохода можно сделать по той же схеме что и у аэромобиля (см. https://electe.blogspot.com/2017/05/blog-post_21.html) только вместо колес поставить лыжи из например пластиковых бутылок или (как в случае на видео ниже) из пенала для ручек имеющего отличную аэродинамическую форму. Схемы и скетчи также можно использовать такие же как у аэромобиля или как у самолета https://electe.blogspot.com/2020/06/arduino-nano.html. Схема пульта:

Рисунок 1 - Пульт

Это универсальный пульт для самодельных радиомоделей на ардуине. Скетч внутри него можно не менять. Схема приемника:
Рисунок 2 - Приемик

Заднего хода нет т.к. для управления одним мотором используется один транзистор. Для управления вторым мотором используется второй транзистор. Конденсаторы нужны для ослабления помех возникающих во время работы мотора. Чтобы был задний ход нужно использовать H мосты. Т.к. мост, на ту же мощность что и транзистор на схеме, имеет большие габариты а также утяжеляет и усложняет всю конструкцию то от них (и соответственно от заднего хода) пришлось отказаться. Скетчи можно скопировать на страницах по ссылкам выше (для самолета или аэромобиля). Увидеть аэроснегоход в действии можно на видео:
КАРТА БЛОГА (содержание)


суббота, 25 сентября 2021 г.

Бюджетный радиоуправляемый кораблик на ардуине с воздушной тягой

 Водные транспортные средства с воздушными винтами вместо гребных существуют и используются в тех случаях когда гребной винт, по каким либо причинам, не подходит. Например для передвижения по не глубоким болотам т.к. в таком случае гребной винт может задевать дно или в судах на воздушной подушке. В общем, бывают разные причины использования такого решения. При конструировании радиоуправляемой модели воздушный винт можно поставить просто ради интереса а также он может быть полезен в случае если радиоуправляемый корабль используется для заброски прикормки для рыб т.к. воздушный винт, скорее всего, будет не так сильно распугивать рыбу под водой. Для изготовления системы управления кораблем можно использовать (как обычно) плату ардуино и модули к ней а корпус сделать, например, из корыта от доширака или любого другого подходящего не тонущего предмета. Схема приемника может быть например такой:

Рисунок 1 - Схема приемника корабля

А схема передатчика такой:
Рисунок 2 - Схема передатчика корабля

Скетч приемника:

Скетчь передатчика:



И самое интересное - видео с испытанием радиоуправляемого корабля с воздушным винтом, на природе условиях ветра и течения:


суббота, 13 июня 2020 г.

Радиоуправляемый самолёт на Arduino nano

Arduino и радиомодули nrf24 можно использовать для создания на их основе системы радиоуправления самолетом. До появления подобных модулей, микроконтроллеров и даже транзисторов такие системы делали на вакуумных лампах и реле. Основное требование к таким системам - это малый вес т.к. чем больший вес имеет система управления тем меньше вероятность что самолет сможет лететь. Чтобы самолет мог лететь, подъемная сила его должна быть больше чем сила притягивающая его к земле. Подъемная сила зависит от площади крыла, его профиля, скорости самолета чем меньше будет вес самолета тем меньше может быть его крыло и его скорость но для того чтобы максимально увеличить шансы на успешный полет нужно и максимально снизить вес и максимально увеличить подъемную силу путем увеличения площади крыла. Для снижения веса желательно реализовать систему с как можно меньшим количеством разных плат, модулей, радиодеталей и т.д. Ардуино лучше использовать какое нибудь маленькое например Arduino pro mini или Arduino nano а также использовать маленькие и мощные моторы и маленький и мощный литий ионный аккумулятор для радиоуправляемых авиамоделей. Уменьшить вес аккумулятора можно ценой времени в течении которого он может работать. Для того чтобы не надо было использовать стабилизатор напряжения на 3.3 В для радиомодуля и небольшой аккумулятор с напряжением 3.7 В нужно использовать Arduino работающее от напряжения 3...3.7 В. Поэтому в схеме приемника ниже имеется Arduino nano
Рисунок 1 - Схема приемника

Для управления моторами используются полевые транзисторы управляемые логическими уровнями т.к. только такие транзисторы могут нормально открыться от такого низкого напряжения и передать моторам достаточную мощность из аккумулятора. Ардуины с низким напряжением питания имеют более низкую тактовую частоту но в данном случае это не так важно т.к. ардуино не делает ничего требующего высокого быстродействия и производительности. Для поворота влево или в право один из моторов вращает пропеллер быстрее другого так образуется ассиметричная тяга и самолет по идее должен повернуть. Для того чтобы управлять высотой будет изменяться скорость вращения обоих пропеллероы т.к. чем она больше тем быстрее летит самолет и тем больше подъемная сила и чем медленнее летит самолет тем она меньше. Это не самый лучший способ управления самолетом но зато для него не требуются дополнительные рули, сервомоторы и т.д. которые утяжеляют конструкцию и уменьшают вероятность полёта. Пульт управления самолетом не обязательно должен быть лёгким. Можно даже сделать универсальный пуль для управления разными электронными самоделками.
Рисунок 2 - Схема пульта управления

Самый просто реализуемый способ управления - это назначить один потенциометр на пропорциональное управление одним мотором а другой потенциометр на управление другим мотором но такой способ очень неудобен. Гораздо лучше было бы сделать так чтобы одним потенциометром можно было бы пропорционально регулировать скорости обоих моторов а другим влиять на ассиметричность тяги в ту или другую сторону. Пульт можно сделать таким чтобы он всегда передавал только положение потенциометров и состояния кнопок а всю остальную логику реализовывать в приемнике. Скетч передатчика приведен в текстовом поле:


Скетч приемника приведен в текстовом поле:


Данный скетч нормально откомпилируется если версия Arduino IDE будет 1.6.4
В более новых версиях IDE имеются другие версии библиотеки для радиомодуля nrf24 и скетч должны быть немного другими. Чтобы они подходили необходимо следить за обновлениями  и соответствующим образом менять их или устанавливать ранние версии Arduino IDE. Посмотреть как летает самолет и послушать рассказ про него можно на видео:
Программа для расчёта подъемной силы крыла:

плотность воздуха= кг/м^3
скорость воздуха над крылом= м/с
скорость воздуха под крылом= м/с
площадь крыла=м^2

подъемная сила=кг

суббота, 14 марта 2020 г.

Измеритель магнитной индукции на Arduino

Прибор для измерения магнитной индукции может быть полезен для самостоятельного изготовления каких либо приборов с магнитными катушками например электродвигателей, реле и т.д. Для измерения магнитной индукции можно использовать аналоговый датчик Холла например SS490 или какой либо другой подобный датчик. Если подать питание на данный датчик то напряжение на его выходе будет изменяться пропорционально магнитной индукции магнитного поля в области в которой находиться данный датчик. Для того чтобы удобнее было узнавать индукцию можно данный датчик соединить с каким нибудь устройством отображающим информацию так чтобы её можно было увидеть глазами. Например можно использовать любое Arduino и индикатор ТОТ-3361АН (или какой либо другой подобный этому). Давайте рассмотрим схему:
Рисунок 1 - Измеритель магнитной индукции на Arduino

Датчик SS490 имеет небольшие пределы измерения индукции поэтому если необходимо измерять индукцию в более широких пределах то вместо SS490 можно использовать какой либо другой аналогичный датчик. Инндикатор ТОТ-3361АН может показывать 3 цифры, в данном случае используются две цифры и чёрточка для показывания знака (минус если индукция отрицательная и ничего если индукция положительная). Данный индикатор может показывать только одну цифру (букву или знак) в один момент времени. Для того чтобы было видно 3 используется динамическая индикация т.е. цифры поочередно переключаются так быстро что человеческий глаз не распознает этого переключения. Для переключения цифр используются транзисторы. Давайте рассмотрим скетчь:


Никакие библиотеки в данном скетче не подключаются т.к. для связи с датчиком холла достаточно аналогового пина. В начале объявляются все необходимые константы, глобальные переменные и массив в который будут записаны коды для вывода цифр на индикаторы. В функции "setup" настраиваются пины и заполняется массив.В функции "loop" имеется счётчик который делает 99 пропусков на которых выводятся цифры полученные от датчика а на 100й раз эти цифры получаются от датчика считыванием напряжения на аналоговом пине функцией "analogRead" переносом полученного значения в диапазон -64...64 мТл функцией "map" и разделением значения на две цифры и знак.
Видео по данной теме:

суббота, 22 февраля 2020 г.

Измеритель влажности воздуха на Arduino

Влажность воздуха оказывает влияние на живые организмы, электронику а также возможно на какие либо другие объекты на данной планете, поэтому возможность определить влажность воздуха может быть полезной. Для того чтобы это сделать имеются специальные приборы которые продаются в магазинах в готовом виде, однако кроме готовых приборов также существуют специальные модули-датчики для подключения а Arduino (http://ali.pub/23ni7b) или любому другому аналогичному прибору способному взаимодействовать с такими датчиками. Например существует недорого датчик влажности и температуры DHT11(http://ali.pub/4i369v). Такой датчик можно подключить к Ардуине и для него, ввиду его популярности, даже есть программная библиотека чтобы было проще запрограммировать ардуину на работу с ним. Помимо датчика к ардуине также надо подключить какое либо устройство вывода чтобы можно было узнать ту влажность которую определил датчик. В качестве устройства вывода можно использовать пару семисегментных светодиодных индикаторов как один из самых простых способов вывести цифры из ардуины наружу не используя компьютер. Соединит эти элементы можно так как показано на схеме:
Рисунок 1 - Схема измерителя влажности воздуха на Aduino

Семисегментных индикаторов достаточно двух т.к. влажность которую определяет связка из ардуины, датчика DHT11 и библиотеки для DHT11 выдает значение влажности в виде двух цифр и судя по всему эти две цифры являются значением в процентах от 0 до 100 (не думаю что стоит заморачиваться с добавлением ещё одного индикатора для показа единицы в случае возникновения самого крайнего и самого редкого и исключительного случая когда влажность равна 100%). Теперь давайте рассмотрим скетч:

В самом верху (как обычно) подключается заголовочный файл библиотеки для работы с датчиком. Далее в функцию dht передается номер пина ардуины к которому подключается информационный пин датчика DHT11 и передается константа название которой соответствует названию датчика. Далее объявляются и инициализируются переменные и массив необходимые для работы скетча. В функции setup() вызывается функция для начала (судя по названию) работы с датчиком, после чего все необходимые пины настраиваются на выход, массив заполняется кодами для вывода цифр на индикаторы. В функции loop() имеется счётчик который осле того как досчитает до тысячи (извините за "магическое число", просто вообще не  понимаю как ещё можно назвать эту вещь кроме как 1000, надеюсь это не доставит больших неудобств). После того как счётчик досчитал происходит определение влажности потом разбиение двухзначного числа на две цифры потом проверка полученных цифр на выход за пределы массива. Далее имеется алгоритм для динамической индикации. Переменная t (извините за название (туго с воображением)) каждую итерацию основного цикла меняет свое значение на противоположное - это делается для того чтобы поменять индикатор и вывести на нужный индикатор соответствующую ему цифру. Перед запись в индикатор сначала на все пины для индикаторов выводятся нули чтобы ослабить свечение тех светодиодов которые не должны участвовать в показывании цифр. Далее происходит переключение на другой индикатор и выводиться цифра.
Здесь можно посмотреть видео про данный измеритель влажности воздуха:
КАРТА БЛОГА (содержание)

суббота, 28 декабря 2019 г.

Светодиодная RGB ёлочка

Наиболее простым проектом который можно реализовать на ардуине является мигание светодиодом. Однако если светодиод не один то проект уже становиться сложнее а если светодиодов больше чем пинов ардуины то появляется проблема которую можно решить применением микросхем - регистров например 74HC373D (или каких либо других). Через регистры можно ардуиной управлять большим количеством светодиодов. Используя например arduino mini и цветные светодиоды можно смастерить например новогоднюю RGB ёлочку например по схеме:
Рисунок 1 - Схема светодиодной RGB ёлочки
Для того чтобы было проще организовать управление светодиодами без необходимости прописывать каждый раз все состояния светодиодов вручную и при этом иметь компактный размер массива для того чтобы он мог уместиться во флеш памяти микроконтроллера ардуины, была написана браузерная программа которая генерирует скетчь на основе графического представления требуемой анимации в её интерфейсе. Данная программа приведена внизу данной страницы. Посмотреть проверку разноцветной светодиодной ёлочки можно на видео:
Теперь небольшая инструкция пользователя для данной программы:
1) нажатием на кнопки расположенные в соответствии со светодиодами ёлочки можно менять их цвета. Цветов имеется 7 штук у каждой кнопки. Цвет кнопки будет примерно соответствовать цвету светодиода.
2) нажатием цветных кнопок можно сформировать кадр
3) нажатием кнопок с цифрами можно менять кадры
4) после нажатия кнопки "создать скетчь" должен сгенерироваться скетчь в текстовом поле под данной кнопкой. Сгенерированный скетчь можно подкорректировать, например поменять задержки. 
5) после того как скетчь сгенерировался и появился в текстовом поле можно нажимать кнопку "сохранить скетчь". После нажатия этой кнопки скетчь сохраниться на компьютере, его можно будет откомпилировать и загрузить в ардуино через Arduino IDE которое должно открыться с данным скетчем после двойного клика левой кнопкой мыши по нему. Если после двойного клика левой кнопкой мыши по иконке данного скетча, появляется окно предлагающее создать папку для него то надо согласиться путем нажатия соответствующей кнопки в окне.
6) Если программа не заработает то возможно что следует поменять браузер (программа проверялась в браузере Google Chrome) или разрешить ему javascript в настройках (если он запрещён).




кадр анимации ёлочки
номер кадра

КАРТА БЛОГА (содержание)

среда, 27 ноября 2019 г.

Ардуино робот - уборщица

Одной из полезных функций которую могут выполнять роботы является уборка пола от упавшей на него пыли. К счастью для любителей конструировать роботов, сделать робота способного выполнят данную функцию совсем не трудно. Подобного робота можно сконструировать на основе Ардуино:
Рисунок 1 - Схема робота - уборщицы

Схема проста и состоит из знакомых Большинству ардуинщиков деталей. В ней имеется радиомодуль для того чтобы роботом можно было управлять дистанционно, однако настоящим роботом можно назвать такого робота который способен выполнять какие либо действия сам, без участия человека. К несчастью у роботов нет мозгов как у людей но зато у них есть память и способность выполнять некоторую последовательность действий. Сделать такого робота который выполняет последовательность действий не трудно. Последовательностью действий которую выполняет робот может быть та последовательность которую ему покажет человек который некоторое время им управляет. Т.е. человек управляет роботом вручную а в это время робот записывает те действия которые он выполняет чтобы потом выполнять их автоматически без участия человека. Рассмотрим скетч робота:
Скетч получился длинным и в виде картинки для демонстрации на данной странице (код скетча воспринимается браузером как часть html страницы). Скачать скетч в виде текста можно по ссылке https://yadi.sk/d/IaP_WGLo510MnQ Скетч не трудный, несмотря на свой размер. С начала, как всегда, подключаются заголовочные файлы, инициализируются константы, переменные и массивы. Потом настраивается радиомодуль, конфигурируются пины ардуины и массивы заполняются нулями. В основном цикле проверяется пришло ли чего от радиомодуля. Ели с пульта пришла команда "начать запись" то начинается запись. Если с пульта пришла команда воспроизвести последовательность действий записанных ранее то выполняется ещё один цикл внутри которого ветвление в действиями и задержка на то колличество миллисекунд которое должно выполнятся текущее действие. Далее просто управление роботом вручную и участок кода для записи последовательности действий. Скетч для пульта и сам пульт точно такой же как и тот который описывался в статье https://electe.blogspot.com/2018/09/blog-post.html
Существует видео с тест драйвом данного робота уборщицы:
Для сборки данного робота могут пригодиться детали например такие:
ардуино про мини http://got.by/2d05ln
драйвер L293D http://got.by/2d05t8
микро мотор редуктор http://got.by/2d0644
NRF24l01 до 100м http://ali.pub/n0mkp
NRF24l01 до 1100м http://got.by/218wbo, http://got.by/218w7e


КАРТА БЛОГА (содержание)

суббота, 23 марта 2019 г.

Трёхфазный бесколлекторный синхронный электродвигатель и 6ти ступенчатая система управления

Трёхфазные электродвигатели являются одними из наиболее распространенных т.к. имеют некоторые преимущества перед двигателями с другим количеством фаз. Например, при питании одним однополярным источником, для системы управления трёхфазным двигателем требуется три полумоста из электронных ключей (т.е. 6 ключей):
а для управления двухфазным биполярным электродвигателем (при питании одним однополярным источником) нужно 4 полумоста (т.е. 8 ключей):
Если соединить обмотки двухфазного двигателя в звезду и подключить к двум полумостам (т.е. сделать аналогично тому как делается с трехфазным двигателем) то вращающееся магнитное сделать не получиться и следовательно вращаться такой двигатель сам по себе не будет, скорее всего. Если попробовать заставить вращаться двухфазный двигатель шестью ключами (при однополярном питании одним источником) то возможно это и получиться но использовать весь потенциал двигателя, при этом, не получиться т.к. некоторые комбинации направлений магнитных полей в катушках, при этом, будут исключены.
 Большинство трёхфазных двигателей являются асинхронными с короткозамкнутым ротором т.к. такие двигатели более просты в изготовлении и дёшевы нежели другие напр. синхронные. Однако для управления асинхронным двигателем требуется система способная создавать синусоидальные или очень близкие к синусоидальным напряжения на обмотках. Обычно для этого используется широтно импульсная модуляция. Синхронный же двигатель способен работать при ступенчатом переключении ключей без фильтров на выходе т.е. можно сказать что синхронный двигатель менее требователен к системе управления нежели асинхронный. Для управления синхронным трёхфазным двигателем можно использовать например 6ти ступенчатую систему управления о которой имеется статья на странице http://electe.blogspot.com/2012/08/blog-post_12.html. Приведу ещё раз картинку от туда:
Из данной картинки видно что формы напряжений на обмотках получаются несинусоидальными а ступенчатыми однако близкими к синусоиде. Более синусоидальный вид им могут придать фильтры. Данная система управления является устаревшей и на данный момент времени, в основном, используются системы с широтно-импульсной модуляцией. Однако это не мешает например в образовательных (или даже практических) реализовать такую систему управления. Для этого, для начала, понадобиться частотный преобразователь который можно было бы запрограммировать:

Данная схема проста, изготовить её не трудно. Однако трудности могут появиться при программировании. При программировании надо учитывать то что два ключа в одном полумосте не должны быть открытыми одновременно никогда, иначе происходит короткое замыкание и что нибудь перегорает. Этой ситуации надо избегать и это задача программиста. Подробнее об этом можно почитать на странице: https://electe.blogspot.com/2019/01/blog-post.html. В остальном же всё просто. На выводах микроконтроллера поочерёдно появляется нужная последовательность нулей и единиц в соответствии с графиками на анимированной картинке выше с учетом того что нельзя допускать короткого замыкания. Пример скетча можно бесплатно скачать по ссылке: https://yadi.sk/d/b4_25aDBq0M9cg. Посмотреть работу системы можно на видео: