Прогуливаясь по улице своего района, меня озарила одна интересная идея - сделать хранилище, которое выдавало бы тебе предмет, название которого ты скажешь вслух.
Это действительно интересно и я с удовольствием когда-нибудь воплощу это в жизнь.
А сейчас пойдёт речь об упрощённой версии "умного хранилища".
Хочу представить вам гайд, по созданию с "говна и палок" умной коробки с каруселеобразным механизмом внутри -
Circle Storage
Перед началом хочу сказать, что все исходники и мануал по подключению (ENG версия) ищите на моём ГитХабе.
Пару слов о Круговом Хранилище
В центре находится "карусель", что является по сути шаговым мотором с установленным на нём подобием четырёх-секционного разделителя.
Хочу сказать, что карусель имеет 2 слота для установки ячеек без поддержки (устанавливаются туго, при переворачивании коробки не выпадут), и с поддержкой двух сервоприводов: левый и правый. Каждый из них имеет на конце по "крюку", которым сервоприводы цепляют 2 оставшихся слота, не давая коробкам упасть.
Принцип работы
При подключении питания происходит калибровка сервомашинок и переход в спящий режим.
Чтобы приступить к использованию, нужно нажать 1 раз на сенсорную кнопку. За этим последует экран приветствия и переход в меню выбора слота.
В нём необходимо выбрать один из четырёх слотов путём одиночного нажатия на кнопку. Вместе с этим нас сопровождает таймер, по истечению которого механизм будет приведён в действие. Для сброса таймера нужно зажать кнопку.
Как только слот будет выбран, откроется механическая заслонка и карусель прокрутится до нужного нам слота, в котором и находится наша коробочка.
Для завершения работы, необходимо нажать на кнопку и карусель вернётся на свою стартовую позицию.
Как это собрать
Собиралось всё чуть-ли не на коленке, с использованием всевозможных подручных материалов и прочего.
Поэтому, если у вас получится это повторить - это хорошо. Но круче, если вы создадите нечто другое, что-то, что будет отличаться от моего проекта.
Итак, если у вас не завалялся набор ардуино с парочкой сервомашинок, то вам предстоит немного раскошелиться:
- LCD Display 2x16 with I2C (Берём x4 переходника ПАПА-МАМА (x8 если не хватает длины))
- Sensor button (Берём x3 переходника ПАПА-МАМА (x6 если не хватает длины))
- Servo (Сервомашинка) (x3)
- Stepper (Шаговый мотор) (x1)
- Stepper driver (Драйвер для него) (x1)
- Arduino Nano/Uno (x1)
- Джамперы (Просто берите большую связку)
Как только у вас будут все необходимые комплектующие на руках, начинаем собирать по схеме:
В упрощённом варианте это выглядит следующим образом:
|
|
|
|
|
| ||||||
D2 | D5 | D6 | D4 | 8, 9, 10, 11 | (SDA) A4, (SCL) A5 |
Как только вы всё подключили, заходим в репозиторий проекта и скачиваем скетч *src/sketch/main.ino*
Затем дополнительные библиотеки *circlestorage/libs*
Если будет желание покопаться в исходниках, я вырезал функции для сервомашинок, степпера и центрального окна. Смотреть в *circlestorage/src*
Загружаем скетч в ардуинку. Всё.
По электронике понятно, а как насчёт остального? У меня на примере можно увидеть, что весь проект собран в большой коробке, которую я клеил весь день.
Собственно, чтобы вам не убивать нервные клетки на такую грязную работу (может это только мне не нравится..) и не портить коробку, которая осталась от системника, присмотритесь к подквадраченным коробкам для покупки. Важный момент - исходите из размера карусели!
Саму карусель я собрал из железного конструктора, который можно найти в магазинах игрушек и который чертовски дорогой. К моему счастью, свой набор я нашел у себя в завалах прошлого. Приделал к степперу ногу карусели суперклеем и нормально.
Мост для движущейся заслонки - это отдельная тема. Скажу лишь, что я использовал 6 скрепок и кусок пенопласта со скотчем. Всё это дело я приделал к обратной стороне крышки.
Фото этапов создания можно найти у меня на ГитХабе (здесь огран на изображения)
Крючки на левом и правом сервоприводе так же сделаны из скрепок. А цепляются крючки за свисающую стяжку на 2 и 4 слоте соответственно. Стяжку продеваем сквозь низ коробки. Ах да, коробки я взял из-под скрепок, резинок и другой канцелярии.
На что нужно обратить внимание
Если вы сделали распиновку по схеме, то можете не изменять скетч. Но если по какой-то причине вы изменили распиновку, то давайте покажу как это подправить в скетче:
PINS:
#define sensbutton 2 // Сенсорная кнопка т.е D2
CustomStepper stepper(8, 9, 10, 11); // Подключаем шаговый двигатель т.е. D8, D9, D10, D11
attachInterrupt(0, wakeup, RISING); // Выход из спящего режима. т.е. D2
// У нас сенсорная кнопка отвечает за пробуждение, interrupt на arduino nano/uno
// поддерживает только D2 и D3 пин. Если D2 - это будет 0, если D3 - это будет 1
// Кнопку подключаем ИЛИ в D2 ИЛИ в D3.
rservo.attach(5); // Правый сервопривод, т.е. D5
lservo.attach(6); // Левый сервопривод, т.е. D6
servodoor.attach(4); // Центральное окно, т.е. D4
Напомню, что все исходники на ГитХабе. И если вас заинтересовало подобное, пожалуйста, поставьте на репозиторий проекта!
Вы этим сильно поможете!
Конечный результат || Итог
Подводя итог хочу сказать, не бойся экспериментировать.
Если у тебя есть запал, желание создать НЕЧТО собственными руками - делай.
Не получилось? Бред, ищи другой метод!
Первоначальный концепт - это голая карусель с пристроенной к ней лестницей, по которой коробка съезжала и поднималась обратно. В этом бы помогали 2 сервопривода с крючками. Верхний опускает с карусели коробку. Для подъёма нижний сервопривод поднимает наверх, а 3-й сервопривод, что был встроен в середину лестницы, помогает этому поднятию.
Вот только это так не работало. Я не рассчитал вес коробки с грузом.
Передо мной встал вопрос - бросить всё, уже написанный софт и готовую карусель, или найти другое применение.
Конечно, сроки итогового продукта растянулись ещё на неделю, но это того стоило!
Спасибо что прочитали до конца, всех вам благ.
Подводя итог хочу сказать, не бойся экспериментировать.
Если у тебя есть запал, желание создать НЕЧТО собственными руками - делай.
Не получилось? Бред, ищи другой метод!
Первоначальный концепт - это голая карусель с пристроенной к ней лестницей, по которой коробка съезжала и поднималась обратно. В этом бы помогали 2 сервопривода с крючками. Верхний опускает с карусели коробку. Для подъёма нижний сервопривод поднимает наверх, а 3-й сервопривод, что был встроен в середину лестницы, помогает этому поднятию.
Вот только это так не работало. Я не рассчитал вес коробки с грузом.
Передо мной встал вопрос - бросить всё, уже написанный софт и готовую карусель, или найти другое применение.
Конечно, сроки итогового продукта растянулись ещё на неделю, но это того стоило!
Спасибо что прочитали до конца, всех вам благ.
GITHUB | Email |
Последнее редактирование: