Чаще всего движущая сила левитации — это магниты. Но почему не что-нибудь другое? Например, звук, встречные волны которого заставляют небольшой предмет зависнуть в воздухе. Эта работа — моя курсовая по «принципам инженерного дела». Благодарю за помощь миссис Бёрбави Ms. Berbawy и моих однокурсников. Материалом делимся к старту курса по разработке на C++.


Материалы


image


Материалы


Материалы


Материалы


Материалы


Материалы



Материалы



Шаг 1. Разбираем датчик расстояния


Разбираем датчик расстояния


Разбираем датчик расстояния


Разбираем датчик расстояния


Разбираем датчик расстоянияРазбираем датчик расстоянияРазбираем датчик расстояния


Для начала переделаем ультразвуковые датчики расстояния, отсоединив передатчики (с маркировкой «Т») и вынув всю «внутрянку». У каждой платы один излучатель, поэтому для шага их понадобится две. Контакты излучателей нужно выпаять из печатной платы.


Как только вы отделили их, отделите элемент и сетку от металлического корпуса. После снятия сетки верните элемент в корпус. Снятая сетка нам ещё пригодится.


Шаг 2. Программируем Arduino


Программируем Arduino


Перейдём к коду. Начнём с его выгрузки на Arduino Nano в ПО, которое поставляется с Arduino. Спасибо Ульриху Шмерольду с Makezine за толковые инструкции.


byte TP = 0b10101010; // Every other port receives the inverted signal

void setup() {
DDRC = 0b11111111; // Set all analog ports to be outputs
// Initialize Timer1
noInterrupts(); // Disable interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 200; // Set compare register (16MHz / 200 = 80kHz square wave -> 40kHz full wave)
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS10); // Set prescaler to 1 ==> no prescaling
TIMSK1 |= (1 << OCIE1A); // Enable compare timer interrupt
interrupts(); // Enable interrupts
}

ISR(TIMER1_COMPA_vect) {
PORTC = TP; // Send the value of TP to the outputs
TP = ~TP; // Invert TP for the next run
}

void loop() {
// Nothing left to do here :)
}

Код выше создаёт две волны 40кГц, равных по силе и противоположных по направлению. Между этими волнами и будет парить наш шарик из пенополистирола. Скомпилируем и отладим код. При отладке убедитесь, что процессорные и последовательные порты подключены правильно, у меня с этим были проблемы. Процессор выбираем по адресу Tools>Processor>ATmega328P (старый загрузчик).


Полная схема и код доступны здесь. Ещё раз спасибо Ульриху Шмерольду.


Шаг 3. Собираем и тестируем схему




Собираем и тестируем схему



Собираем и тестируем схему



Собираем и тестируем схему



Собираем и тестируем схему



Собираем и тестируем схему



Собираем и тестируем схему


Соберите схему, показанную на рисунке.


После этого припаяйте провода, обозначенные на схеме буквой «Т» к передатчикам из первого шага. Обратите внимание на проводные контакты от передатчиков к микросхеме LN. Их легко упустить.


Гибкими кабелями подключите батарею к тестовой плате. Если микросхема LN и Arduino включились, электрическая цепь замкнута. Слабое жужжание датчиков тоже говорит о том, что схема работает.


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


Теперь нужно немного поколдовать с положением зубочистки и расстоянием между датчиками. В этом шаге используйте зажимы или «третью руку» для удержания датчиков на месте. У меня расстояние между датчиками обычно составляло от одного до полутора сантиметров.


Шаг 4: Собираем корпус


Собираем корпус



Собираем корпус


Собираем корпус


Собираем корпус


«Третья рука» не может держать нашу схему вечно. Давайте оденем схему и элементы в корпус из ПВХ. Отрежем около 7,1 см от прямой трубки, чтобы перекрыть расстояние между датчиками. Сверху установим проходное колено на 90°. Прикрепим к нему ещё одно колено на 90°. Пропустим через эти коленья верхний датчик. Внешнее колено с внутренней резьбой должно будет держать датчик. Поскольку у меня датчик неплотно прилегал к резьбе, пришлось вставлять между ними кусочки губки. Нижнее колено на 90° с резьбой прикреплено к прямой трубке тройником. Через тройник и колено продет нижний датчик. Для заполнения пустоты вокруг датчика опять пригодилась губка.


Теперь нам нужно основание, на которое будет опираться наша система. Для её создания мне понадобилась среда Fusion 360. Сверху делаем отверстие под тройник — в моём случае с допуском 0,64 см. Высота основания должна быть достаточной, чтобы вместить всю тестовую (макетную) плату. Отверстие сбоку — для проводов от батареи. У меня она расположена вне корпуса. Диаметр отверстия — 5 мм.


Шаг 5. Готово!



Если основание и корпус собраны, а все элементы уместились внутри, работа закончена. Акустический левитатор готов!


Эта курсовая мне очень понравилась, пусть и пришлось много раз плясать с бубном. Хочу ещё раз поблагодарить миссис Бёрбави, однокурсников и родителей за помощь на протяжении всей работы.


А мы научим писать на C++ и работать с данными, чтобы вы прокачали карьеру или стали востребованным IT-специалистом:


Чтобы посмотреть все курсы, кликните по баннеру:



Комментарии (2)


  1. sintech
    18.10.2022 08:33

    Часть фотографий вставлена по два раза


  1. Byteler
    20.10.2022 20:38

    Левитрон знаю левитатор - что это?

    Левитрон -+ ассенизатор?