Исходник [Arduino] CIRCLE STORAGE

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

  • Да

    Голосов: 5 71.4%
  • Нет

    Голосов: 2 28.6%

  • Всего проголосовало
    7
  • Опрос закрыт .

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
263
569
blast_circle.png


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

Это действительно интересно и я с удовольствием когда-нибудь воплощу это в жизнь.
А сейчас пойдёт речь об упрощённой версии "умного хранилища".

Хочу представить вам гайд, по созданию с "говна и палок" умной коробки с каруселеобразным механизмом внутри -


Circle Storage




Перед началом хочу сказать, что все исходники и мануал по подключению (ENG версия) ищите на моём ГитХабе.
Screenshot_21.png





Пару слов о Круговом Хранилище
Вмещает в себя 4 коробки размером 7x5x1.5cm (маленькие, согласен, но как хранилище для гвоздиков и дюбелей сойдёт). На крышке находится дисплей для отображения текущего слота, таймера и красивой заставки. Сенсорная кнопка для управления всей конструкцией и отверстие (дырка) с механической заслонкой.

В центре находится "карусель", что является по сути шаговым мотором с установленным на нём подобием четырёх-секционного разделителя.
Хочу сказать, что карусель имеет 2 слота для установки ячеек без поддержки (устанавливаются туго, при переворачивании коробки не выпадут), и с поддержкой двух сервоприводов: левый и правый. Каждый из них имеет на конце по "крюку", которым сервоприводы цепляют 2 оставшихся слота, не давая коробкам упасть.

Принцип работы
При подключении питания происходит калибровка сервомашинок и переход в спящий режим.
Чтобы приступить к использованию, нужно нажать 1 раз на сенсорную кнопку. За этим последует экран приветствия и переход в меню выбора слота.
В нём необходимо выбрать один из четырёх слотов путём одиночного нажатия на кнопку. Вместе с этим нас сопровождает таймер, по истечению которого механизм будет приведён в действие. Для сброса таймера нужно зажать кнопку.
Как только слот будет выбран, откроется механическая заслонка и карусель прокрутится до нужного нам слота, в котором и находится наша коробочка.
Для завершения работы, необходимо нажать на кнопку и карусель вернётся на свою стартовую позицию.


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

Итак, если у вас не завалялся набор ардуино с парочкой сервомашинок, то вам предстоит немного раскошелиться:
  1. LCD Display 2x16 with I2C (Берём x4 переходника ПАПА-МАМА (x8 если не хватает длины))
  2. Sensor button (Берём x3 переходника ПАПА-МАМА (x6 если не хватает длины))
  3. Servo (Сервомашинка) (x3)
  4. Stepper (Шаговый мотор) (x1)
  5. Stepper driver (Драйвер для него) (x1)
  6. Arduino Nano/Uno (x1)
  7. Джамперы (Просто берите большую связку)
В этой теме есть опрос, создать ли мне статью, где я рассказываю, что да как нужно покупать. Какие есть стартовые наборы и что к ним нужно докупить на первое время. Голосуем, и если это будет интересно, незамедлительно создам тему.

Как только у вас будут все необходимые комплектующие на руках, начинаем собирать по схеме:
Scheme.png

В упрощённом варианте это выглядит следующим образом:

Sensor button
Right servo
Left servo
Central servo
Stepper
LCD with i2c
D2D5D6D48, 9, 10, 11(SDA) A4, (SCL) A5

Как только вы всё подключили, заходим в репозиторий проекта и скачиваем скетч *src/sketch/main.ino*
Затем дополнительные библиотеки *circlestorage/libs*

Если будет желание покопаться в исходниках, я вырезал функции для сервомашинок, степпера и центрального окна. Смотреть в *circlestorage/src*

Загружаем скетч в ардуинку. Всё.




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

photo_2020-03-07_16-28-32.jpg


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

photo_2020-02-29_12-24-23 (1).jpg


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

photo_2020-03-07_16-28-37.jpg


Фото этапов создания можно найти у меня на ГитХабе (здесь огран на изображения)

Крючки на левом и правом сервоприводе так же сделаны из скрепок. А цепляются крючки за свисающую стяжку на 2 и 4 слоте соответственно. Стяжку продеваем сквозь низ коробки. Ах да, коробки я взял из-под скрепок, резинок и другой канцелярии.

photo_2020-03-09_19-05-15.jpg





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

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

Напомню, что все исходники на ГитХабе. И если вас заинтересовало подобное, пожалуйста, поставьте Screenshot_22.png на репозиторий проекта!
Вы этим сильно поможете!




Конечный результат || Итог


Подводя итог хочу сказать, не бойся экспериментировать.
Если у тебя есть запал, желание создать НЕЧТО собственными руками - делай.
Не получилось? Бред, ищи другой метод!


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

Вот только это так не работало. Я не рассчитал вес коробки с грузом.
Передо мной встал вопрос - бросить всё, уже написанный софт и готовую карусель, или найти другое применение.
Конечно, сроки итогового продукта растянулись ещё на неделю, но это того стоило!
Спасибо что прочитали до конца, всех вам благ.


GITHUB​
Email​


circle_photo.png


 
Последнее редактирование:

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
Точно, что из говна и палок xD
 

hnnssy

Известный
Друг
2,684
2,762
а я думал я поехавший

мне кажется
4 коробки размером 7x5x1.5cm
с прозрачными крышками были бы более практичным приобретением, чем сборка сего чуда, да и места меньше занимали бы
вот знаешь чё лучше можно замутить такого плана? представь себе просто полку в шкафу, на которой стоит n-ое количество таких маленьких коробочек с приблудами всякими, над ними к "потолку" прилеплены светодиоды, или банально - адресная лента, и ты такой говоришь "саморезы" и над нужной коробочкой загорается диод, озаряя божественным светом нужную