Оглавление:

Заводной механизм: 7 шагов
Заводной механизм: 7 шагов

Видео: Заводной механизм: 7 шагов

Видео: Заводной механизм: 7 шагов
Видео: Студенты российского вуза разработали вечный двигатель #вечныйдвигатель #изобретения 2024, Ноябрь
Anonim
Заводной
Заводной

Это руководство было создано во исполнение требований проекта Makecourse в Университете Южной Флориды (www.makecourse.com).

Шаг 1: концепция

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

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

Шаг 2: Детали

- Детали, напечатанные на 3D-принтере

- 2 шаговых двигателя 28BYJ-48 5 В постоянного тока

- 2 Плата драйвера шагового двигателя ULN2003

- Ардуино Уно

- Модуль Bluetooth HC-05

Все эти детали сделаны мной, кроме стрелок часов. Я не очень изобретательный. Ниже ссылка на его создателя.

www.thingiverse.com/thing:1441809

Шаг 3: Сборка деталей

Сборка деталей
Сборка деталей

(1) - На шаговые двигатели нужно поставить Gear_1 и 2. Они будут плотно прилегать, поэтому потребуется немного силы, чтобы они оставались на месте.

(2) - Base_0 останется внизу сборки.

(3) - Base_1 будет размещен поверх SpurGear_1, это основной компонент для минутной стрелки. Вы можете склеить эти два компонента вместе, убедитесь, что основание находится поверх шестеренки.

(4) - Base_2 будет размещен поверх SpurGears_2, это основной компонент для часовой стрелки. То же самое применимо к этой части, что и шаг (3)

(5) - Стрелки часов можно приклеить поверх Base_1 и Base_2, или вы можете просверлить небольшое отверстие, чтобы они встали на место.

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

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

Шаг 4: Библиотека для Arduino IDE

Код для этого проекта основан на библиотеке Tyhenry под названием CheapStepper.h

github.com/tyhenry/CheapStepper

Чтобы установить эту библиотеку для вашего arduino. Нажмите клонировать или загрузить по ссылке выше и загрузите его в виде zip-файла.

В среде Arduino IDE. Эскиз -> Включить библиотеку -> Добавить библиотеку. ZIP

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

Шаг 5: Настройка макетной платы

Макетная плата
Макетная плата
Макетная плата
Макетная плата

Я использовал щит Arduino в комплекте с Arduino UNO. Он выглядит более чистым, но вместо этого вы можете взять небольшой макет и поместить его поверх Arduino UNO. Следуйте цвету на схеме, так как некоторые провода находятся друг над другом. Контакты 4-7 предназначены для одного шагового двигателя, а контакты 8-11 - для второго.

Модуль Bluetooth должен быть подключен RX -> TX и TX -> RX к плате Arduino.

Синие провода - это соединения от драйверов к Arduino UNO.

Зеленые провода - это соединения RX и TX.

Черные провода заземлены.

Красные провода - 5В.

Шаг 6: Код

Ниже приведен код этого проекта.

Объяснение кода будет здесь.

CheapStepper степпер (8, 9, 10, 11); CheapStepper stepper_2 (4, 5, 6, 7);

логическое moveClockwise = true;

//37,5 мин = 4096;

// 1 мин = 106,7;

// 5 мин = 533,3;

// 15 мин = 1603;

// 30 мин = 3206;

// 60 мин = 6412;

int full = 4096;

int половина = полный / 2; // 2048

float full_time = 6412; // 1 час

float half_time = full_time / 2; // 30 мин 3026

float fif_time = half_time / 2; // 15 мин 1603

float one_time = full_time / 60; // 1 мин 106

float five_time = one_time * 5; // 5 мин 534,3

float one_sec = one_time / 60; // 1 сек 1.78

// мы можем сделать по 30 минут, вращая двигатель 3206 и перезагружая

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

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

MoveClockwise = true; состоит в том, чтобы заставить шаговый двигатель вращаться по часовой стрелке, но поскольку он вращает прямозубую шестерню против часовой стрелки, нам нужно сделать логическое значение false в настройке. Вы также можете объявить его ложным в начале, но это объясняет, как это работает.

void setup () {Serial.begin (9600);

Serial.println («Готово к работе!»);

pos = one_time; del = 900; коэффициент = 60;

moveClockwise = false; }

Здесь я объявляю логическое значение moveClockwise false. pos будет количество шагов, del будет задержкой, и соотношение будет либо для минут / секунд = 60 или часов / минут = 12

Управляем руками с помощью модуля Bluetooth. Во-первых, вам понадобится последовательный Bluetooth-терминал от вашего Android-устройства. Подключитесь к Hc-05 с PIN-кодом 0000 или 1234. Вы можете использовать пример кода из Arduino IDE, чтобы проверить, правильно ли он работает. Когда он подключен, он должен мигать очень медленно, а не быстро, когда он не подключен.

void loop () {состояние = 0;

if (Serial.available ()> 0) {

состояние = Serial.read (); }

for (float s = 0; s <(pos); s ++) {

stepper.step (движение по часовой стрелке); }

for (float s = 0; s <(pos / ratio); s ++) {

stepper_2.step (moveClockwise); }

задержка (дель);

Serial.available ()> 0 важен, так как именно так будет работать ваш модуль Bluetooth. Этот оператор if будет верным, когда между Arduino и вашим устройством есть связь. Переменная состояния будет определять 3 другие переменные, которые я объявил в верхней части setup (), а также выводит на печать, какую операцию выполняет код. Два цикла for - это основная функция, которая определяет, как будет двигаться шаговый двигатель.

if (state == '1') {

pos = one_time; del = 0; коэффициент = 12;

Serial.println («Операция 1: без задержки»); }

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

Шаг 7: демонстрация и заключение

Image
Image
Демо и заключение
Демо и заключение

Это демонстрация системы, показывающая, как она работает. В качестве корпуса можно использовать все, что подходит для всех компонентов внутри. Сделать этот проект было просто и весело, поскольку я впервые напечатал его на 3D-принтере. Было интересно разобраться и использовать модуль Bluetooth. Я сделал несколько ошибок, которые было слишком поздно менять, но конечный продукт в порядке.

Рекомендуемые: