[Из песочницы] Алкомат

Иван Арнольдович, покорнейше прошу, пива Шарикову не предлагать.
профессор Преображенский. «Собачье Сердце»


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

c32cfcd0da544b0d877351236dd29945.jpg

Подробности ниже. Много больших фото.
За основу было взято шасси от старого струйного принтера. Рама как раз подходила для моих нужд. Необходимо было выкинуть все, кроме механизма подачи каретки (ось X) и механизма протяжки бумаги (ось Y). Саму раму пришлось поднять выше, чтобы под ней легко умещался стол с установленными рюмками.

f85fa1bdaf614145b2dfdecedab23991.jpg

Стол сделан из остатка столешницы. Размер 230×230. Края отделаны кромкой. Стол включает в себя посадочные отверстия для стопок. Отверстия сверлил фрезой потом обработал лаком. Такие посадочные места позволяют точно определить координаты стопок, не дают стопке упасть во время движения стола, а также сделать нижнюю подсветку и разместить фотодатчики наличия стопки. Чтобы не тянуть большое количество проводов к контроллеру, был сделан локальный контроллер, установленный в самом столе. Он собирает данные от всех датчиков и по последовательному порту передает информацию в основной контроллер. Всего от стола идет 4 провода. Также сбоку стола вывел разъем для программирования контроллера стола. Для посадочного отверстия стопки была напечатана на 3D-принтере вкладка на которую устанавливается фотодатчик и светодиод для подсветки. Стол установлен на мебельные рельсы.

3228211853754749bc2fc0f69aa3eafb.jpg
d3715c146b68402883aa7ae19e91205e.jpg
826652afaa29485aaf8631f687018f89.jpg
5b74426b37ff42c59c5d7f25b927ef70.jpg
914a6f7aac0045f0af89e20529464c99.jpg
8460b9b2d3434654a51d7fda9560a75d.jpg
a1913e866f5443509351be83fb32c829.jpg

Сопло может выдвигаться вниз на 4 см (Ось Z). Для этого на каретку установил платформу от 3,5» дисковода. Оставил только раму, шаговый двигатель и ползунок. Убрал лазерный модуль, а на его место закрепил напечатанный на 3D-принтере держатель. Держатель на конце выполнен в виде сопла. Изначально хотел делать сопло с одной трубкой, в которую через смеситель подаются разные жидкости, но потом прогнал эту мысль. Также аппарат задумывался для производства слоистых коктейлей, когда жидкости с разной плотностью красиво «уложены» в стопке. Для этого необходимо очень осторожно наливать жидкости, исключая их турбулентного перемешивания. Бармены это делают путем наливания по лезвию ножа или по стенке стопки. Я задумывал наливать напитки с синхронным подъемом сопла, но для этого ход сопла должен быть от дна стопки до верха. В моем случае механика от дисковода дает всего 4 см, а надо 7. В итоге слоистые коктейли получаются очень оригинальными.

d918b48a232545848a32517b8be2bb14.jpg
4583ed80120a407daf6527e26f8ad4a6.jpg
18e3b2a3325344f3a3b8f25da6e4ecfd.jpg

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

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

98e5ecc1301c47a9884da1922ade4f40.jpg
9385c277d4934bdfb8cf31536e9f1d50.jpg

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

Управление Алкоматом происходит с передней панели. Она также напечатана на 3D-принтере. Разные пункты меню отображены на фото.

3a92805923a040f78b9bc20817088ce8.jpg
645cd755413948fb888c099090b763a0.jpg
4fc8608e352549669456ae532d187c52.jpg
ac65a766a29944a68de4eaf3c68cbd58.jpg
3756a01d953e4d04a8a1a7dea9f94e27.jpg

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

Выбор коктейлей осуществляется через Web-браузер с любого устройства, подключенного к Алкомату через Wi-Fi. Это, в основном, конечно же, смартфоны. На модуле ESP8266 запущен Web-сервер, который обрабатывает запросы и выдает основному контроллеру таблицу параметров. Каждый клиент может выбрать для себя название коктейля и требуемый ему объем в миллилитрах.

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

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

Электроника простая и типовая: PIC контроллер, драйверы шаговых двигателей от 3D-принтера, буфер для управления насосами ULN2003, MP3 декодер VS1011k, Wi-Fi модуль ESP8266, OLED-дисплей. Программу писал на HT-PICC. Самое сложное было написать систему меню.

Web-страница для выбора коктейлей простая, ввиду малого объема памяти в ESP8266, да и дизайнер из меня никакой. Сейчас осваиваю Android, планирую написать приложение для Алкомата.

36315b242a5140d1bacb5c83643c3d3f.jpg
bf63156d4d1d46efb6d3102406a20b37.jpg
78c46cb12c8046aea7c09d9e6fd91f52.jpg
3fb4e7093bb047a18eaec8c3fc26a589.jpg
f2a0c0693fb34c5eb486e866b934cb4e.jpg
737fd6c154f4488c9e77d4d69f8b5e70.jpg
5e6c670f2ea14f2bb9873bee652a5e85.jpg
76fe41fdaae04867b5a18f3f1115a91e.jpg

Видео, демонстрирующее процесс.

Разработка заняла около 6 месяцев и шла поэтапно, без спешки, в свободное время которого катастрофически мало. Было много чего изучено в процессе, но самое приятное было видеть готовый продукт, который все-таки работает!

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

© Geektimes