Создаем эффект левитации с помощью Ардуино

На идею этого урока натолкнул проект краудфандинговой платформы Kickstarter под названием "Air Bonsai", действительно красивый и загадочный, который сделали японцы.

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

Шаг 1: Как это работает

Мы выяснили, что схема устройства на Кикстартере была довольно сложной, без какого-либо микроконтроллера. Не было возможности найти её аналоговую схему. На самом деле, если посмотреть более внимательно, принцип левитации довольно прост. Нужно сделать магнитную деталь, "плавающую" над другой магнитной деталью. Основная дальнейшая работа заключалась в том, чтобы левитирующий магнит не падал.

Было также предположение, что сделать это с Arduino на самом деле намного проще, чем пытаться понять схему японского устройства. На самом деле всё оказалось намного проще.

Магнитная левитация состоит из двух частей: базовой части и плавающей (левитирующей) части.

Основание

Эта часть находится внизу, которая состоит из магнита для создания круглого магнитного поля и электромагнитов для управления этим магнитным полем.

Каждый магнит имеет два полюса: север и юг. Эксперименты показывают, что противоположности притягиваются и одинаковые полюса отталкиваются. Четыре цилиндрических магнита помещаются в квадрат и имеют одинаковую полярность, образуя круглое магнитное поле вверх, чтобы вытолкнуть любой магнит, который имеет один и тот же полюс между ними.

Есть четыре электромагнита вообще, они помещены в квадрат, два симметричных магнита - пара, и их магнитное поле всегда противоположно. Датчик Холла и цепь управляют электромагнитами. Создаем противоположные полюса на электромагнитах током через них.

Плавающая деталь

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

Магнит сверху поднимается магнитным полем нижних магнитов, потому что они с одинаковыми полюсами. Однако, как правило, он склоняется к падению и притягиванию друг к другу. Чтобы предотвратить переворот и падение верхней части магнита, электромагниты создадут магнитные поля, чтобы толкать или тянуть, дабы сбалансировать плавающую часть, благодаря датчику Холла. Электромагниты управляются двумя осями X и Y, в результате чего верхний магнит поддерживается сбалансированным и плавающим.

Контролировать электромагниты нелегко, требуется ПИД-регулятор, который подробно обсуждается на следующем шаге.

Шаг 2: ПИД-регулятор (PID)

Из Википедии: "Пропорционально-интегрально-дифференцирующий (ПИД) регулятор — устройство в управляющем контуре с обратной связью. Используется в системах автоматического управления для формирования управляющего сигнала с целью получения необходимых точности и качества переходного процесса. ПИД-регулятор формирует управляющий сигнал, являющийся суммой трёх слагаемых, первое из которых пропорционально разности входного сигнала и сигнала обратной связи (сигнал рассогласования), второе — интеграл сигнала рассогласования, третье — производная сигнала рассогласования."

В простом понимании: «ПИД-регулятор вычисляет значение «ошибки» как разность между измеренным [Входом] и желаемой установкой. Контроллер пытается свести к минимуму ошибку, отрегулировав [выход]».

Итак, вы указываете PID, что измерить (Вход), какое значение вы хотите и переменную, которая поможет иметь это значение на выходе. Далее ПИД-регулятор настраивает выходной сигнал, чтобы сделать вход равным установке.

Для примера: в автомобиле у нас три значения (Вход, Установка, выход) будут - скорость, желаемая скорость и угол педали газа, соответственно.

В данном проекте:

  1. Вход представляет собой текущее значение в реальном времени от датчика холла, которое обновляется непрерывно, поскольку положение плавающего магнита будет меняться в реальном времени.
  2. Заданное значение - это значение от датчика холла, которое измеряется, когда плавающий магнит находится в положении баланса, в центре основания магнитов. Этот индекс фиксирован и со временем не изменяется.
  3. Выходной сигнал - скорость для управления электромагнитами.

Стоит поблагодарить сообщество любителей Arduino, которое написало PID-библиотеку и которая очень проста в использовании. Дополнительная информация об Arduino PID есть на официальном сайте Arduino. Нам нужно использовать пару ПИД-регуляторов под Arduino, один для оси X и другой для оси Y.

Шаг 3: Комплектующие

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

  • 1x - LM324N
  • 4x - левитационная катушка
  • 2x - SS495a датчик Холла
  • 1x - 12V 2A DC адаптер
  • 8x - Кольцевой магнит D15*4 мм
  • 1x - Разъем питания постоянного тока
  • 4x - Кольцевой магнит D15*3 мм
  • 1x - Arduino pro mini
  • 1x - Модуль L298N
  • 1x - 14 гнездовой сокет
  • 2x - Магнит D35*5мм
  • 2x - Резистор 5.6 KОм
  • 2x - Резистор 180 КОм
  • 2x - Резистор 47 KОм
  • 2x- 10 Kом потенциометр
  • 1x - Акриловый лист A5 размера
  • 1x - Деревянный горшок
  • 1x - PCB макет
  • 8x - 3 мм винт
  • провода
  • Мини-растение (суккулент, кактус, мини-бонсай, карликовое дерево)

Шаг 4: Инструменты

Вот список инструментов, наиболее часто используемых:

  • Паяльник
  • Ручная пила
  • Мультиметр
  • Дрель
  • Осциллограф (по желанию, можете использовать мультиметр)
  • Настольное сверло
  • Горячий клей
  • Плоскогубцы

Шаг 5: LM324 Op-amp, L298N драйвер и SS495a

LM324 Op-amp

Операционные усилители (op-amp) являются одними из наиболее важных, широко используемых и универсальных схем, используемых сегодня.

Мы используем операционный усилитель для усиления сигнала от датчика Холла, цель которого - увеличить чувствительность, чтобы ардуино легко распознало изменение магнитного поля. Изменение нескольких мВ на выходе датчика холла, после прохождения усилителя может измениться на несколько сотен единиц в Arduino. Это необходимо для обеспечения плавного и стабильного функционирования ПИД-регулятора.

Обычным операционным усилителем, который мы выбрали, является LM324, это дешево, и вы можете купить его в любом магазине электроники. LM324 имеет 4 внутренних усилителя, которые позволяют гибко его использовать, однако в этом проекте нужны только два усилителя: один для оси X, а другой для оси Y.

Модуль L298N

Двойной H-мост L298N обычно используется для управления скоростью и направлением двух двигателей постоянного тока или с легкостью управляет одним биполярным шаговым двигателем. L298N может использоваться с двигателями с напряжением от 5 до 35 В постоянного тока.

Существует также встроенный регулятор 5V, поэтому, если напряжение питания до 12 В, вы также можете подключить источник питания 5 В от платы.

В этом проекте использован L298N для управления двумя парами катушек электромагнита и использован выход 5 В для питания Arduino и датчика холла.

Распиновка модулей:

  • Out 2: пара электромагнитов X
  • Out 3: пара электромагнитов Y
  • Входное питание: вход постоянного тока 12 В
  • GND: Земля
  • Выход 5v: 5v для датчиков Arduino и холла
  • EnA: Включает сигнал PWM для выхода 2
  • In1: Включить для выхода 2
  • In2: Enable for Out 2
  • In3: Включить для выхода 3
  • In4: Включить для выхода 3
  • EnB: Включает PWM-сигнал для Out3

Подключение к Arduino: нам нужно удалить 2 перемычки в контактах EnA и EnB, затем подключить 6 контактов In1, In2, In3, In4, EnA, EnB к Arduino.

SS495a Датчик Холла

SS495a - это линейный датчик Холла с аналоговым выходом. Обратите внимание на разницу между аналоговым выходом и цифровым выходом, вы не можете использовать датчик с цифровым выходом в этом проекте, он имеет только два состояния 1 или 0, поэтому вы не можете измерить выход магнитных полей.

Аналоговый датчик приведет к диапазону напряжений от 250 до Vcc, который вы можете прочитать с помощью аналогового входа Arduino. Для измерения магнитного поля в обеих осях X и Y требуются два датчика холла.

Шаг 6: Неодимовые магниты NdFeB (неодим-железо-бор)

Из Википедии: "Неодим — химический элемент, редкоземельный металл серебристо-белого цвета с золотистым оттенком. Относится к группе лантаноидов. Легко окисляется на воздухе. Открыт в 1885 году австрийским химиком Карлом Ауэром фон Вельсбахом. Используется как компонент сплавов с алюминием и магнием для самолёто- и ракетостроения."

Неодим - это металл, который является ферромагнитным (в частности, он показывает антиферромагнитные свойства), что означает, что подобно железу его можно намагнитить, чтобы он стал магнитом. Но его температура Кюри составляет 19К (-254 ° С), поэтому в чистом виде его магнетизм проявляется только при чрезвычайно низких температурах. Однако соединения неодима с переходными металлами, такими как железо, могут иметь температуры Кюри значительно выше комнатной температуры, и они используются для изготовления неодимовых магнитов.

Сильный - это слово, которое используют для описания неодимового магнита. Вы не можете использовать ферритовые магниты, потому что их магнетизм слишком слаб. Неодимовые магниты намного дороже ферритовых магнитов. Маленькие магниты используются для основы, большие магниты для плавающей/левитирующей части.

Внимание! Вам нужно быть осторожным при использовании неодимовых магнитов, так как их сильный магнетизм может навредить вам, или они могут сломать данные вашего жесткого диска или других электронных устройств, на которые влияют магнитные поля.
Совет! Вы можете отделить два магнита, потянув их в горизонтальное положение, вы не сможете отделить их в противоположном направлении, потому что их магнитное поле слишком сильное. Они также очень хрупкие и легко ломаются.

Шаг 7: Готовим основание

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

Шаг 8: 3D-печать плавающей части

Если у вас есть 3D-принтер - здорово. У вас есть возможность сделать все с помощью него. Если принтера нет - не отчаивайтесь, т.к. вы можете использовать дешевую услугу 3D-печати, которая сейчас очень популярна.

Для лазерной резки файлы также в архиве выше - файл AcrylicLaserCut.dwg (это autocad). Акриловая деталь используется для поддержки магнитов и электромагнитов, остальные - для покрытия поверхности терракотового горшка.

Шаг 9: Подготовка SS495a модуля датчика Холла

Вырежьте макет PCB на две части, одну часть, чтобы прикрепить датчик холла, а другой - к цепи LM324. Прикрепите два магнитных датчика перпендикулярно печатной плате. Используйте тонкие провода для соединения двух штырей датчиков VCC вместе, сделайте то же самое с контактами GND. Выходные контакты отдельно.

Шаг 10: Цепь Op-amp

Припаяйте гнездо и резисторы к печатной плате, следуя схеме, обратив внимание на то, чтобы поместить два потенциометра в одном направлении для более легкой калибровки позже. Присоедините LM324 к гнезду, затем подключите два выхода модуля датчиков холла к цепи op-amp.

Два выходных провода LM324 подключите к Arduino. Вход 12 В с входом 12 В модуля L298N, выход 5 В модуля L298N к 5V потенциометра.

Шаг 11: Сборка электромагнитов

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

Протяните провода под акриловым листом через соседние отверстия, чтобы подключиться к L298N. Медный провод покрыт изолированным слоем, поэтому вы должны удалить его ножом, прежде чем вы сможете припаять их вместе.

Шаг 12: Сенсорный модуль и магниты

Используйте горячий клей для фиксации модуля датчика между электромагнитами, обратите внимание, что каждый датчик должен быть квадратным с двумя электромагнитами, один на передней и другой на задней панели. Попробуйте выполнить калибровку двух датчиков как можно более централизованно, чтобы они не перекрывались, что сделает датчик наиболее эффективным.

Следующий шаг - собрать магниты на акриловой основе. Объединяя два магнита D15*4 мм и магнит D15*3 мм вместе, чтобы сформировать цилиндр, это приведет к тому, что магниты и электромагниты будут иметь одинаковую высоту. Соберите магниты между парами электромагнитов, обратите внимание, что полюса восходящих магнитов должны быть одинаковыми.

Шаг 13: Разъем питания постоянного тока и выход L298N 5V

Припаяйте гнездо питания постоянного тока двумя проводами и используйте термоусадочную трубку. Подключенный разъем питания постоянного тока к входу модуля L298N, его выход 5 В будет подавать питание на Arduino.

Шаг 14: L298N и Arduino

Подключите модуль L298N к Arduino, следуя приведенной выше схеме:

L298N → Ардуино
5V → VCC
GND → GND
EnA → 7
В1 → 6
В2 → 5
В3 → 4
В4 → 3
EnB → 2

Шаг 15: Arduino Pro Mini программер

Поскольку у Arduino pro mini нет USB-порта для последовательного порта, вам необходимо подключить внешний программатор. FTDI Basic будет использоваться для программирования (и питания) Pro Mini.

Шаг 16: Подготовка плавающей части

Соедините два магнита D35*5 для увеличения магнетизма.

Шаг 17: Калибровка

Загрузите программу ReadSetpoint.ino в Arduino, которую можно скачать выше. Эта программа будет считывать значения датчика Холла и отправлять их на компьютер через последовательный порт. Откройте COM-порт, чтобы увидеть его. Подключите 12 В постоянного тока к гнезду питания постоянного тока, вы также используете осциллограф для считывания значения датчика.

Наблюдайте значения на экране и внесите корректировки, установив два потенциометра. Наилучшее значение - 560, при этом выход датчика составляет около 2,5 В. После установки заданного значения поместите плавающий магнит над базовой частью и встряхните его, чтобы увидеть изменение значения установки (Setpoint) на экране.

Шаг 18: Загрузка основной программы

После калибровки значения установки (Setpoint) самое время получить результаты. Загрузите основную программу Levitation.ino, которая приведена выше.

Используйте супер клей для фиксации магнита и держателя магнита, который ранее был напечатан на 3D-принтере. После загрузки основной программы вы можете внести небольшие корректировки на потенциометры, чтобы плавающая деталь была зафиксирована в центре.

Шаг 19: Собираем всё вместе

Сначала прикрепите гнездо питания постоянного тока к горшку, затем поместите оставшиеся части в горшок. Наконец, используйте оставшийся акриловый лист, чтобы сделать поверхность горшка.

Шаг 20: Подготовка растения

Прикрепите деревянный горшок к плавающей части магнита. Мы использовали маленький кактус для посадки. Вы можете использовать кактус или суккулент или любой мини-бонсай, который является маленьким и легким.

Шаг 21: Финальный результат

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