ARDUINO Альтернативная версия Наливатора

Старик Похабыч

★★★★★★✩
14 Авг 2019
2,371
647
Москва
Доброго дня все.
Итак, есть альтернативный практически на 90% оригинальный скетч на Наливатор. На 90, т.к. была какая то , даже не знаю чья, основа, надо было кое что подправить, но подправка вылилась в полное изменение скетча, осталось несколько функций и переменных из основы, а также большое кол-во макроопределений.

Схема подключения видим была вот такая : https://community.alexgyver.ru/attachments/nalivator_sch_v2-3-jpg.10723/ или очень похожая. Но с некоторыми изменениями.

Что реализовано:
Управление энкодером в виде: клик подтверждение, удержание - выход из меню, отмена.
Сохранение настроек в EEPROM
Изменение настроек через меню: яркость ленты, громкость музыки, громкость тостов, включение и выключение звуковых эффектов, подсветки, промывка
Добавление тсостов и фоновой музыки без перепрошивки.
3 варианта разлива: 1) разово по установленным до разлива стаканам 2) слежение. Разлив установленной дозы по обнаруженным стаканам в порядке живой очереди.
3) конкурсный режим. устанавливаются стаканы, с каждым туром стакан с наименьшим кол-вом жидкости выбывает. кол-во жидкости рандомное.
Промывка системы, одсветка места промывки (номер места, над которым проходит промывка задается в прошивке)
При включении эффекта играет фоновоая музыка, рандомно.
После окончания разлива , или опустошения очереди для 2-го режима, произносится тост. при этом заканчивается воспроизведение фоновой музыки. После тоста будет другая мелодия.
Есть некоторые методы защиты, т.е. разлив прервется, если убрать стакан. Но только в этот стакан. Предусмотрен режим паузы, который можно вставлять между любыми этапами разлива. Но это надо потестировать на то, куда и на сколько вставлять. в данный момент вставлен только в один режим.
Подсветка мест. Несколько светодиодов на место, в ленте должны идти подряд для каждого места. Если места будут перемешаны не страшно, настраивается в скетче, начальный свтодиод для каждого места , а так же глобально кол-во светодиодов для одного места. Пустые места светятся тусклым светом, со стаканом мерцают одним светом, ожидание разлива другой, в процесса налива светодиоды поочередно меняют цвет от красного до зеленого как процент выполнения налива. Готовые светятся одним из видов радуги.
Если в стакан был произведен налив, или он побывал в стадии работы, (не ожидания) то повторный налив в него осуществляться не будет. надо снять и поставить стакан.
Добавлено:
1) При ошибке подключения плеера было жуткое торможение, исправлено, если плеера нет, то он считается выключеным
2) Если стартовать с зажатой кнопкой, то запускается процедура установки углов сервопривода. Углы записываются в EEPROM. Эта же процедура будет запускаться и при изменении версии хранения данных. Можно просто прощелкать энкодером для подтверждения углов.
3) Убрано прерывание длинного тоста, если во время его произнесения закончился очередной налив. Тост будет сказан до конца, нового не будет.
Не сделано
1) Подключение плеера по хард-сериалу. Не хочет нормально работать. И все тут.

А теперь главное...
ЧТО МНЕ НУЖНО:
Пара-тройка добровольцев на бетта тестирование скетча с собраным наливаторм по вышеуказанной схеме. У меня самого наливатора нет и ближайшее время не планируется, поэтому мой тест очень такой.. приближенный и макетированый.
Инструкцию и скетч, а так же необходимые файлы скину почтой/в личку.
После опробования выложу скетч в отдельном проекте с необходимыми пояснениями и условиями использования.

Необходимое оборудование
1) Ардуино совместимый контроллер
2) Дисплей 128х64 пикселя, SH1106, SSD1306 и др. ( библиотка , там же список доступных дисплеев)
3) Энокдер с кнопкой
4) DFPlayer с библиотекой , картой памяти и громкоговорителем. схема подключения и инструкция от плеера есть в каталоге библиотеки.
5) сервопривод со стандартной библиотекой
6) модуль управления помпой (может быть драйвер мотора или мосфет) с самой помпой
7) датчики , определяющие наличие ёмкости на месте, (концевики, кнопки, датчики препятствий, на свой вкус)
8) адресные светодиоды, светодиодная лента, светодиодные кольца. от 1 го до нескольких на одно стаканоместо. управление библиотекой FastLED

Схема подключения
cxema.JPG

Работа подсветки (кольцо показывает подсветку 4-х рюмок, по 3 светодиода на каждую) 7-15 сек пустые места, далее до 32 сек. замыкаются контакты датчиков, занятые места, с 33 сек. (бело -желтое) ожидание налива и где то с 35 идет налив .

https://yadi.sk/i/cKsJMHqKL8Gncg
Вот такой наливатор у DrinK получился с моей прошивкой. За тестирование ему огромное спасибо, очень помог отловить тараканов. Видео не самое старое, мелкие недочеты были исправлены позднее.

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

Gridzilla

★✩✩✩✩✩✩
29 Ноя 2019
26
11
У меня собран такой наливатор по этой схеме. Кустарно, конечно, но... Там видео работы есть. http://instagr.am/p/B59aJp7AWAX/ Скетч, если нужен, могу завтра кинуть на почту. Если что, могу опробовать твой. Согласно схемы ничего не менял, все по ней. Только это не быстро. Вечерами, когда всех своих уложу :))

Единственный момент: у меня оптодатчики инвертируют выход. То есть если в оригинальном скетче 1 на выходе (вроде), то у меня они 0 выдают. Менял в скетче строки http://arduino.ru/forum/proekty/nal...ivat-alkogol-po-stopkam?page=5#comment-478986

З.Ы. за ссылки на другой ресурс заранее сорри. И на инсту тоже :))
 
  • Лойс +1
Реакции: сергей п и konoev

Gridzilla

★✩✩✩✩✩✩
29 Ноя 2019
26
11
В идеале к нему прикрутить бы настройку положения сервы и цены б ему не было.
 

Stirlitz

★✩✩✩✩✩✩
8 Дек 2019
55
22
Давай, у меня вроде даже где-то DF player завалялся.
 

Старик Похабыч

★★★★★★✩
14 Авг 2019
2,371
647
Москва
Обнаружено, что DFPlayer с библиотекой #include "DFRobotDFPlayerMini.h" как то не захотел дружить с хард-сериалом, тем , что на 0 и 1 пинах. Пробовал и так и эдак. Если кто знает как подружить именно с этой библиотекой - подскажите
Библиотека "DFPlayer_Mini_Mp3.h", та что используется при указанной схеме работает.. но странно. Не всегда запускает треки по номеру, не всегда корректно использует штатные функци.. с некоторыми я так и не понял как нормально работать.

C++:
    mp3_play (1);
    delay (6000);
    mp3_next ();
    delay (6000);
    mp3_prev ();
    delay (6000);
    mp3_play (4);
    delay (6000);
Вот этот код. Корректно запускает 1-ый трек, потом переходит на последний, потом 2 раза молчит, потом опять на 1-ый и по кругу.
Громкость регулируется вроде бы корректно.
Если есть советы или предположения - с благодарностью выслушаю.
 

Roman-RV

✩✩✩✩✩✩✩
21 Июн 2019
45
9
42
Я обе эти штатные глючные библиотеки перепробовал и перешел на эту https://github.com/PowerBroker2/DFPlayerMini_Fast. Да и если мы хотим хоть какой то ответ от плеера, то железный сериал уже не пойдёт, он занят микрухой USB-COM преобразователя, только софтовый сериал
 

Старик Похабыч

★★★★★★✩
14 Авг 2019
2,371
647
Москва
С софтовым у меня и 1-ой библиотекой у меня нет проблем.. Просто плата разведена на хард-сериал, хотел его использовать. Что бы можно быстро изменить прошивку без переделки железа. За ссылку спс. посмотрю.
 

wwwstas

✩✩✩✩✩✩✩
3 Июл 2020
26
0
Доброго дня все.
Итак, есть альтернативный практически на 90% оригинальный скетч на Наливатор. На 90, т.к. была какая то , даже не знаю чья, основа, надо было кое что подправить, но подправка вылилась в полное изменение скетча, осталось несколько функций и переменных из основы, а также большое кол-во макроопределений.

Схема подключения видим была вот такая : https://community.alexgyver.ru/attachments/nalivator_sch_v2-3-jpg.10723/ или очень похожая. Но с некоторыми изменениями.

Что реализовано:
Управление энкодером в виде: клик подтверждение, удержание - выход из меню, отмена.
Сохранение настроек в EEPROM
Изменение настроек через меню: яркость ленты, громкость музыки, громкость тостов, включение и выключение звуковых эффектов, подсветки, промывка
Добавление тсостов и фоновой музыки без перепрошивки.
3 варианта разлива: 1) разово по установленным до разлива стаканам 2) слежение. Разлив установленной дозы по обнаруженным стаканам в порядке живой очереди.
3) конкурсный режим. устанавливаются стаканы, с каждым туром стакан с наименьшим кол-вом жидкости выбывает. кол-во жидкости рандомное.
Промывка системы, одсветка места промывки (номер места, над которым проходит промывка задается в прошивке)
При включении эффекта играет фоновоая музыка, рандомно.
После окончания разлива , или опустошения очереди для 2-го режима, произносится тост. при этом заканчивается воспроизведение фоновой музыки. После тоста будет другая мелодия.
Есть некоторые методы защиты, т.е. разлив прервется, если убрать стакан. Но только в этот стакан. Предусмотрен режим паузы, который можно вставлять между любыми этапами разлива. Но это надо потестировать на то, куда и на сколько вставлять. в данный момент вставлен только в один режим.
Подсветка мест. Несколько светодиодов на место, в ленте должны идти подряд для каждого места. Если места будут перемешаны не страшно, настраивается в скетче, начальный свтодиод для каждого места , а так же глобально кол-во светодиодов для одного места. Пустые места светятся тусклым светом, со стаканом мерцают одним светом, ожидание разлива другой, в процесса налива светодиоды поочередно меняют цвет от красного до зеленого как процент выполнения налива. Готовые светятся одним из видов радуги.
Если в стакан был произведен налив, или он побывал в стадии работы, (не ожидания) то повторный налив в него осуществляться не будет. надо снять и поставить стакан.
Добавлено:
1) При ошибке подключения плеера было жуткое торможение, исправлено, если плеера нет, то он считается выключеным
2) Если стартовать с зажатой кнопкой, то запускается процедура установки углов сервопривода. Углы записываются в EEPROM. Эта же процедура будет запускаться и при изменении версии хранения данных. Можно просто прощелкать энкодером для подтверждения углов.
3) Убрано прерывание длинного тоста, если во время его произнесения закончился очередной налив. Тост будет сказан до конца, нового не будет.
Не сделано
1) Подключение плеера по хард-сериалу. Не хочет нормально работать. И все тут.

А теперь главное...
ЧТО МНЕ НУЖНО:
Пара-тройка добровольцев на бетта тестирование скетча с собраным наливаторм по вышеуказанной схеме. У меня самого наливатора нет и ближайшее время не планируется, поэтому мой тест очень такой.. приближенный и макетированый.
Инструкцию и скетч, а так же необходимые файлы скину почтой/в личку.
После опробования выложу скетч в отдельном проекте с необходимыми пояснениями и условиями использования.

Необходимое оборудование
1) Ардуино совместимый контроллер
2) Дисплей 128х64 пикселя, SH1106, SSD1306 и др. ( библиотка , там же список доступных дисплеев)
3) Энокдер с кнопкой
4) DFPlayer с библиотекой , картой памяти и громкоговорителем. схема подключения и инструкция от плеера есть в каталоге библиотеки.
5) сервопривод со стандартной библиотекой
6) модуль управления помпой (может быть драйвер мотора или мосфет) с самой помпой
7) датчики , определяющие наличие ёмкости на месте, (концевики, кнопки, датчики препятствий, на свой вкус)
8) адресные светодиоды, светодиодная лента, светодиодные кольца. от 1 го до нескольких на одно стаканоместо. управление библиотекой FastLED

Схема подключения
Посмотреть вложение 10957

Работа подсветки (кольцо показывает подсветку 4-х рюмок, по 3 светодиода на каждую) 7-15 сек пустые места, далее до 32 сек. замыкаются контакты датчиков, занятые места, с 33 сек. (бело -желтое) ожидание налива и где то с 35 идет налив .

https://yadi.sk/i/cKsJMHqKL8Gncg
Вот такой наливатор у DrinK получился с моей прошивкой. За тестирование ему огромное спасибо, очень помог отловить тараканов. Видео не самое старое, мелкие недочеты были исправлены позднее.

А0 и другие, входы от рюмок. Это сигнал с концевиков я правильно понял? И можно ли туда подать сигнал от ИК датчика? Спасибо
 

Старик Похабыч

★★★★★★✩
14 Авг 2019
2,371
647
Москва
А что будет выдавать ИК датчик ? Аналоговый датчик читает напряжение от 0 до 5 вольт, не важно как будет 0 вольт пусто или занято. главное стабильно отличать
 

wwwstas

✩✩✩✩✩✩✩
3 Июл 2020
26
0
а Если ИК датчик цифровой. Я не очень силен по ардуино, только начал вникать. Первое что получилось это лампа от Гайвера и наливатор от него) Все пока в повторении, ну и пытаюсь вникнуть, хоть и тяжело все это))) Но жутко интересно