Наливатор с ОЛЕД дисплеем , MP3-плееером, LED подсветкой , шаговиком или сервой.

Наливатор с ОЛЕД дисплеем , MP3-плееером, LED подсветкой , шаговиком или сервой.
ОБЩЕЕ ОПИСАНИЕ.
Наливатор на с дисплеем OLED , MP3 плеером, 3-мя режимами налива , светодиодной подсветкой , рассчитаный на максимум 6 рюмок.

Подробное описание подключения.

Контроллер
Вся конструкция тестировалась на ардуино нано.

nano.jpg

Распределение пинов:

0

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

1

Аппаратный сериал.

2

A энкодера

3

B энкодера

4

Кнопка энкодера

5

Канал управления адресной светодиодной лентой.

9

Канал управление сервоприводом

10

к RX плеера (через резистор 1к)

11

к TX плеера (через резистор 1к)

12

к BUSY плеера

13

Канал управление помпой

A0-A3

A4,А5
SDA, SCL

А6-А7
свободными остаются пины: 6, 7, 8. При смене сервопривода на шаговый двигатель они будут задействованы, а так же будет задействован пин 0 на концевик нулевого положения. 1-ый пин будет давать возможность выводить в монитор порта отладочные сообщения. Данный вид подключения пока реализован частично, рассчитан на микросхему ULN2003APC, которая часто идет в комплекте с шаговым двигателем 28BYJ-48.









Дисплей
Монохромный дисплей с разрешение 128х64
Подключение I2C, (А4 и А5 )
Скетч гарантированно поддержи
вает 2 дисплея: SH1106 1.3 дюйма и SSD1306 . По идее должен поддерживать графический ЖК дисплей 12864. Библиотека поддерживает и другие дисплеи.
1106.jpg1306.png12864.png
Библиотека U8glib.
В проект добавлены руссифицированные шрифты.
Настройка дисплея осуществляется выбором соотв. строки в файле silver_naliv_20.ino, строки 12-16
C++:
// выбор нужного драйвера дисплея
//U8GLIB_SH1106_128X64 Display(U8G_I2C_OPT_NONE);  // I2C / TWI
U8GLIB_SH1106_128X64 Display(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);  // Dev 0, Fast I2C / TWI
//U8GLIB_SSD1306_128X64 Display(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0); // I2C / TWI
//U8GLIB_SSD1306_128X64 Display(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
Распиновка дисплеев в моем случае не совпадает! Будьте внимательны при подключении.

Энкодер.
Для работы используется мини-библиотека encMinim.h, работает без аппаратного прерывания, но вполне надежно. Для управления используется клик кнопкой, повороты вправо и влево, повороты с нажатой кнопкой, а так же удержание кнопки, как отмена.
Опробовано 2 типа энкодеров:
enc2.pngenc1.png
Отличие подключения 1-го от 2-го заключается в подключении +5 в для второго, и некотором отличии в коде.
Изменение в необходимо сделать в файле encMinim.h
Для первого типа:
C++:
 /* pinMode2 (_clk, INPUT);
  pinMode2 (_dt, INPUT);
  pinMode2 (_sw, INPUT);
*/
  pinMode2 (_clk, INPUT_PULLUP);
  pinMode2 (_dt, INPUT_PULLUP);
  pinMode2 (_sw, INPUT_PULLUP);
Для второго типа:
C++:
  pinMode2 (_clk, INPUT);
  pinMode2 (_dt, INPUT);
  pinMode2 (_sw, INPUT);
  /*
  pinMode2 (_clk, INPUT_PULLUP);
  pinMode2 (_dt, INPUT_PULLUP);
  pinMode2 (_sw, INPUT_PULLUP);
  */

MP3 - плеер
В качестве плеера используется DFPlayer , он же MP3-TF-16P
DFPlayer.png
У плеера есть встроенный усилитель, но звук от него довольно тихий. Так же есть возможность вывести часть управления на внешние кнопки миную контроллер, но я не увидел в этом необходимости.
Подключение питания к 5 вольтам.
Подключение к ардуино по 3-м (!) проводам. RX , TX и BUSY. Два первых провода передают и получают данные к/от ардуино по программному serual- порту, такие как : запуск и остановка треков, изменение громкости, получение кол-ва треков на мини-сд-карте. Эти провода надо подключать через резистор номиналом 1-2 килоОма. Третий провод предназначен для получения информации о состоянии плеера: идет воспроизведение или нет. В принципе такую информацию можно получить через команду по Serial, но это может подвешивать работу всего устройства, в то время как чтение порта практически ни на что не влияет.
Структура карты:
На карте должно быть 2 подкаталога "01" и "02". Каталог "01" содержит музыкальные треки для фоновой мелодии, а "02" содержит тосты для воспроизведения налива. В принципе названия могут быть любыми, главное что бы каталог с музыкальными фрагментами для фоновой мелодии были в начале по алфавиту. При изменении кол-ва музыкальных треков на карте при включении наливатора будет запущена конфигурационная процедура настройки, в которой следует указать кол-во мелодий для фона, все остальные скетч будет считать тостами.

ВАЖНО! Папка с музыкой должна копироваться или создаваться на карте 1-ой! Именно треки в 1-ой созданной папке будут считаться музыкой.
В отдельном посте опубликую ссылки на свои мелодии и тосты, с текстовыми описаниями. Попробуем сделать обмен тостами.
Библиотека для плеера

Подсветка мест для налива
Для подсветки мест используется адресная светодиодная лента и библиотека FastLED
LED.png
Можно использовать как 1 отдельный светодиод на место, так и вот такие кольца, а так же огрызки ленты по несколько светодиодов.
Ограничение одно - на всех местах для налива должно быть одинаковое число светодиодов.
Файл silver_naliv_20.ino
Общее число светодиодов рассчитывается как число светодиодов на 1 место помноженное на число мест.
В данном примере используется по 1-му светодиоду на место.
C++:
#define NUM_LEDS  LEDs_per_Drink*max_DrinkCount // Кол-во диодов (количество светодиодов на рюмку умножить на число рюмок, математика, 3-ий класс
Строки 42-45
C++:
#define max_DrinkCount 5               // Максимальное кол-во рюмок, при подключении на аналоговые пины максимум 6 рюмок при нано
#define LEDs_per_Drink 1               // Число светидиодов на рюмку, считается что под рюмкой такое число лампочек
Номер 1-го светодиода для каждого мест настраивается отдельно в файле drink_place.ino
C++:
// номер 1-го светодиода для каждой рюмки.  Могут быть не по порядку
  drinks_array[0].N_LED = 32768; // это место парковки и оно не подсвечивается !
  drinks_array[1].N_LED = 0;
  drinks_array[2].N_LED = 1;
  drinks_array[3].N_LED = 2;
  drinks_array[4].N_LED = 3;
  drinks_array[5].N_LED = 4;
В данном примере используется по 12 светодиодов на место.
C++:
#define max_DrinkCount 5               // Максимальное кол-во рюмок, при подключении на аналоговые пины максимум 6 рюмок при нано
#define LEDs_per_Drink 12               // Число светидиодов на рюмку, считается что под рюмкой такое число лампочек
C++:
// номер 1-го светодиода для каждой рюмки.  Могут быть не по порядку
  drinks_array[0].N_LED = 32768;
  drinks_array[1].N_LED = 0;
  drinks_array[2].N_LED = 12;
  drinks_array[3].N_LED = 24;
  drinks_array[4].N_LED = 36;
  drinks_array[5].N_LED = 48;

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

Дополнительные библиотеки
DIO2 - для более быстрого доступа к цифровым пинам.
EEPROMex - расширенное управление чтением и записью в EEPROM

Подключение шагового двигателя.
Для подключения шагового двигателя я предлагаю такой вариант:
входы 6 7 8 9 подключаются к in1 in2 in3 in4 платы с микросхемой ULN2003A.
на моторе.png
stepper.jpg
Собирается все просто. К микро кнопке (такая же как стоит на ресете ардуино нано) подпаиваются 2 провода, кнопка вставляется в 1-ую деталь, вторая подпирает ее и изолирует от мотора. Носик надевается на вал двигателя. Его надо надежно закрепить так, что бы кнопка зажималась при вращении и он не мешал движению. Сверху носика еще будет достаточно места, что бы на валу закрепить что то.
на мотор.png крышка.png носик.png
Ссылка на STL
Рыская на просторах Али нашел такое описание данного двигателя. шаг получается 5,625/64, т.е. 4096 шагов на оборот. В скетче изначально использовалось почему то 4076 шагов на оборот (не мое, брал из скетча). Число надо изменить на верное! Думаю сделать это каждый может самостоятельно.
step.png

Варианты корпусов:

Описание сборки мной на макетке, спустя некоторое время
 
Изменено:

Комментарии

Данил001

✩✩✩✩✩✩✩
9 Янв 2024
11
0

@viktor1703,
Пробовал разные строки,нечего не поменялось,на фото выше два разных дисплея показывают одинаково
 

viktor1703

★★★✩✩✩✩
9 Дек 2021
611
145
А, блин, это же другой наливатор, это там такое решение предлагали. Тогда не знаю.
 

jheka_55

✩✩✩✩✩✩✩
25 Май 2020
1
1
Приветствую собрал наливатор по статье и прошивке от алекса все работает, вопрос такой хотелось бы подключить мр3 плеер, прошить прошивкой которая тут выложена и все? Ну естественно пины перераспределить что куда подключенно. Все должно заработать? Или есть какие то программные ошибки
 
  • Лойс +1
Реакции: ДмитрЗ

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
здраствуйте . Собрал приколюху жесть. помпа не работает серва гонит . Ну музыка просто шедевр, давно так не залипал прям дискотека слушаю и рыдаю. Спасибо создателю от души душевной .
 

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
Всем привет! Решил ли кто проблему с воспроизведением музыки/тостов? После загрузки последней прошивки наливатор с подключенным MP3 плеером ведёт себя абсолютно неадекватно. При начальной установке кол-ва мелодий на дисплее отображается только две цифры - "4" и "6 с лишним тысяч", при удалении/добавлении треков редактировать не даёт. Если отключить плеер физически или в меню убрать "*" с пункта меню "Фоновая музыка" (если/когда получится в него зайти), то функция розлива работает нормально. Но как только плеер или пункт меню подключены, то начинает зависать с первой минуты работы. Тосты и в том, и в другом случае не работают ((( Чип MP3 плеера, если что, AB22A794376.1-74 . Пробовал так же MH2024K-24SS - его вообще не вид.
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
в целом наливатор работает , но глюк присутствует постоянно . тосты не работают . проигрывается только музыка если нажимаешь на кнопки всё строго по очереди . а так наливает по команде только первые 4 кнопки причём MP3-TF-16PV3.0 играет музыку не останавливаясь и ни как не взаимодействует с общей прошивкой . Кнопки которые подключены через резисторы 10К то же не функционируют.
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
доделать вряд ли здесь прийдётся писать новую. Зайди на другой сайт забей наливатор форум там то же есть рабочая версия только с тостами схема почти одна и та же.
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
ни советую .Любой апгрейд надо оформлять в коде +добавлять питание . Если можешь ...вуаля... И ещё заказывай MP3-TF-16PV3.0 только на 24 ножках . На 16 ножках чип какой то неустойчивый.
 

Андрей Виноградов

✩✩✩✩✩✩✩
28 Апр 2024
1
0
Здравствуйте!

Хочу заказать у вас изготовление наливатора на 10 напитков. Требуется наливатор на 10 стаканомест по одному напитку на стакан. Соответственно, 10 помп, 10 датчиков присутствия (ИК датчики или ещё какие детекторы, но не механические концевики, т.к. стаканчик может быть пластиковый, а может быть рюмка). Количество жидкости для розлива пока планируется фиксированное. Микроконтроллер, который будет этим делом управлять, можно любой. Мне желательно stm32 или иной другой Cortex-M. Если у вас есть своё ПО, то и микроконтроллер на ваш выбор. Корпус обсуждаем. Интересует цена вопроса.
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
ИК датчики на природе будут глючить . Прямые солнечные лучи вредно на них сказываются . Лучше на герконах . Зайди на алиэхспресс забей наливатор . Там наши парни реализуют уже готовые предложения . Спишитесь расскажите про свой заказ ну и все дела...
 

makakom92

✩✩✩✩✩✩✩
18 Фев 2021
4
0
Всем привет! Никак не получается побороть mp3 плеер. Питание 5в 3а, RX-TX местами менял. Но ардуино не видит плеер, плеер отдельно от ардуино проверял, работает. Подскажите, что еще можно попробовать ?
 

makakom92

✩✩✩✩✩✩✩
18 Фев 2021
4
0
@павель, на 16 MH2024-24ss и есть еще на 16 MH3024-16ss. Количество файлов на флешке так же менял, отдельно запитывал. Так же пробовал ардуино позже подключать. Результата нет :(
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
вот этот модуль и камень на 24 ножки он завёлся.

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

Вложения

Изменено:

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
вся расыпуха из которой мы что-то делаем продаётся на алиэкспресс . Надо тщательно искать проверять читайте коменты
 

Arturverh

✩✩✩✩✩✩✩
29 Июл 2024
1
0
Помогите где скачать stl на такой переносной-походный наливатор пжс
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
какой ещё походный наливатор ??? Чемоданчик что ли ,как у Гувера . Так это просто какая то купленная коробка с ручками.
 

Вуккерт

✩✩✩✩✩✩✩
23 Дек 2021
2
0
@павель, Доброго времени суток. Павел, у Вас есть какой то свой форум по наливатору или как? о том что вы писали "поищите в яндексе" есть возможность мне туда добавиться? или скинуть схему готового скетча со схемой! там договоримся! [email protected]
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
@Вуккерт, пожалуйста пользуйтесь но рекомендую прочитать сайт ... стр. 11
Наливатор - автоматизированная машина, которая будет разливать алкоголь по стопкам.

первый рисунок это уже с алисой
 

Вложения

  • Лойс +1
Реакции: Вуккерт

Вуккерт

✩✩✩✩✩✩✩
23 Дек 2021
2
0
@павель,да уж. вот же я отстал от этого всего.... два года назад собрал обычный наливатор. работает до сих пор. вот решил корпус красивый напечатать для него. и решил вникнуть может что есть новое. А тут вон как - даже Алису внедрили! прям очень интересный проект. даже серьезный я бы сказал. уже побежал искать компоненты. и был крайне удивлен что за место ардуинки пришел на смену такой интересный компонент с блютуз и вай фай модулем! Ладно побежал по картинке смотрет ьчто за модули буду делать закуп! отдельное спасибо за такую информацию!
 

павель

✩✩✩✩✩✩✩
18 Дек 2021
15
2
подождите подождите... ещё код не написан полностью . мы все ждём наших гуру с открытыми ртами. в коде есть ещё масса неточностей