Текст авторский, статья взята с Алкомат
Как-то, путешествуя по просторам Интернет, увидел разработку Rumbot. Мне всегда нравилось чем-то управлять и в итоге пришла идея улучшить разработку и привнести в нее новые элементы. Получился проект, включающий в себя не только разработку железа и софта, но также и 3D-моделирование корпуса, экскурс в изготовление мебели, работа со звуком, некоторые хитрости работы барменов и многое другое, что сопутствовало разработке. Получился забавный аппарат для вечеринок с друзьями. Главное было пройти весь путь от идеи до разработки конечного продукта. Аппарат позволяет делать алкогольные коктейли для пяти человек. Назвал я его «Алкомат».
За основу было взято шасси от старого струйного принтера. Рама как раз подходила для моих нужд. Необходимо было выкинуть все, кроме механизма подачи каретки (ось X) и механизма протяжки бумаги (ось Y). Саму раму пришлось поднять выше, чтобы под ней легко умещался стол с установленными рюмками.
Стол сделан из остатка столешницы. Размер 230x230. Края отделаны кромкой. Стол включает в себя посадочные отверстия для стопок. Отверстия сверлил фрезой потом обработал лаком. Такие посадочные места позволяют точно определить координаты стопок, не дают стопке упасть во время движения стола, а также сделать нижнюю подсветку и разместить фотодатчики наличия стопки. Чтобы не тянуть большое количество проводов к контроллеру, был сделан локальный контроллер, установленный в самом столе. Он собирает данные от всех датчиков и по последовательному порту передает информацию в основной контроллер. Всего от стола идет 4 провода. Также сбоку стола вывел разъем для программирования контроллера стола. Для посадочного отверстия стопки была напечатана на 3D-принтере вкладка на которую устанавливается фотодатчик и светодиод для подсветки. Стол установлен на мебельные рельсы.
Сопло может выдвигаться вниз на 4 см (Ось Z). Для этого на каретку установил платформу от 3,5" дисковода. Оставил только раму, шаговый двигатель и ползунок. Убрал лазерный модуль, а на его место закрепил напечатанный на 3D-принтере держатель. Держатель на конце выполнен в виде сопла. Изначально хотел делать сопло с одной трубкой, в которую через смеситель подаются разные жидкости, но потом прогнал эту мысль. Также аппарат задумывался для производства слоистых коктейлей, когда жидкости с разной плотностью красиво «уложены» в стопке. Для этого необходимо очень осторожно наливать жидкости, исключая их турбулентного перемешивания. Бармены это делают путем наливания по лезвию ножа или по стенке стопки. Я задумывал наливать напитки с синхронным подъемом сопла, но для этого ход сопла должен быть от дна стопки до верха. В моем случае механика от дисковода дает всего 4 см, а надо 7. В итоге слоистые коктейли получаются очень оригинальными.
Все оси имеют конечные выключатели. Программно считается время перемещения и, в случае превышения этого времени, выдается сообщение об ошибке механизма. Ошибки в основном происходят когда любопытные друзья пытаются остановить стол во время его движения. При исключении «человеческого фактора» ошибок нет.
Применены перистальтические насосы, предотвращающие контакт механических частей насоса с перекачиваемой жидкостью. Сзади корпуса имеются отсеки для бутылок. На дне каждого установлены кнопки для определения наличия бутылки и светодиод подсветки.
Корпус был разработан в программе для моделирования мебели. По чертежам был сделан распил ДСП организацией, занимающейся производством мебели.
Управление Алкоматом происходит с передней панели. Она также напечатана на 3D-принтере. Разные пункты меню отображены на фото.
Выбор коктейлей осуществляется через Web-браузер с любого устройства, подключенного к Алкомату через Wi-Fi. Это, в основном, конечно же, смартфоны. На модуле ESP8266 запущен Web-сервер, который обрабатывает запросы и выдает основному контроллеру таблицу параметров. Каждый клиент может выбрать для себя название коктейля и требуемый ему объем в миллилитрах.
После запуска процесса разлива Алкомат выдвигает стол и ждет установки стопок в соответствующие посадочные места. Как только количество установленных стопок равно количеству человек участвующих в процессе, то Алкомат задвигает стол и начинает процесс разлива. Для каждой стопки включаются необходимые для выбранного коктейля насосы и каждый ингредиент дозируется в соответствии с рецептом на данный коктейль. Рецепты коктейлей включают в себя таблицу с дозировкой каждого напитка в коктейле.
После того как налиты все стопки, то аппарат выдвигает стол, ждет когда все стопки будут убраны и затем задвигает стол обратно. Первые три тоста идут автоматически с перерывом в 1 минуту. Далее тосты идут вручную. Все действия сопровождаются музыкальным оформлением. Тосты могут озвучиваться шутливыми фразами, например, из фильмов или же тематичной мелодией.
Электроника простая и типовая: PIC контроллер, драйверы шаговых двигателей от 3D-принтера, буфер для управления насосами ULN2003, MP3 декодер VS1011k, Wi-Fi модуль ESP8266, OLED-дисплей. Программу писал на HT-PICC. Самое сложное было написать систему меню.
Web-страница для выбора коктейлей простая, ввиду малого объема памяти в ESP8266, да и дизайнер из меня никакой. Сейчас осваиваю Android, планирую написать приложение для Алкомата.
&attribute_insert_20&
Разработка заняла около 6 месяцев и шла поэтапно, без спешки, в свободное время которого катастрофически мало. Было много чего изучено в процессе, но самое приятное было видеть готовый продукт, который все-таки работает!
Данная разработка не пропагандирует употребление спиртных напитков, а отображает полный процесс воплощения идеи в железе.