Автоматизированная барная станция «6-Сhooter» на Arduino — Собираем коктейльный робот своими руками
Компоненты и материалы
| Компонент | Количество |
|---|---|
| RobotGeek Geekduino (или Arduino UNO) | 1 |
| RobotGeek Sensor Shield | 1 |
| RobotGeek Duino Mount | 1 |
| RobotGeek Mega Workbench | 1 |
| RobotGeek 4-строчный I2C LCD Control Panel | 1 |
| RobotGeek Drink Station | 1 |
| RobotGeek NeoPixel Ring — 16 × WS2812 5050 RGB LED | 1 |
| RobotGeek 12V DC Liquid Pump | 1 |
| RobotGeek Solenoid Valve (электромагнитный клапан) | 7 |
| RobotGeek Relay (реле) | 8 |
| RobotGeek 12V/10A Power Supply | 1 |
| RobotGeek 6V/2A Power Supply | 1 |
| RobotGeek DC Power Squid | 2 |
| RobotGeek Silicone Tubing (силиконовая трубка) | 1 |
| RobotGeek 3-Pin Coupler | 1 |
| RobotGeek Standoff Variety Pack | 1 |
| RobotGeek 3-Pin Sensor Cable | 1 |
| Check Valve (обратный клапан) | 1 |
| 6 Outlet Splitter Distributor Valve (распределительный клапан на 6 выходов) | 1 |
Необходимые инструменты и ПО
- Arduino IDE
- Библиотеки RobotGeek (доступны на GitHub)
- Паяльник и припой (рекомендуется для надежных соединений)
- Проволочные зажимы (wire nuts) или паяльное оборудование
О проекте
Хотите смешивать коктейли нажатием одной кнопки? Станция «6-Shooter» умеет комбинировать до 6 разных ингредиентов, используя всего один насос! Выбираете напиток из меню на LCD-дисплее, жмёте кнопку — и робот наливает ваш коктейль, сопровождая процесс световым шоу на NeoPixel-кольце. Проект вдохновлен коммерческим устройством Somabar. Внимание: это довольно дорогой проект, но на вечеринках он производит фурор. Давайте приступим к сборке!
Шаг 1: Монтаж электрики
Схема может показаться сложной, но на самом деле это повторяющийся процесс подключения нескольких одинаковых узлов.
Подключение электромагнитных клапанов к реле:
- Подготовьте реле, электромагнитный клапан, штекер питания DC (pigtail) и зажимной гайку (wire nut).
- Соедините один провод клапана с центральным контактом реле (Common).
- Соедините заземляющий провод от DC-штекера с контактом NO (Normally Open) на реле.
- Второй провод клапана соедините с проводом питания от DC-штекера — используйте зажимную гайку или, лучше, припойте для надежности.
Для насоса схема аналогична, но с учетом полярности: отрицательный (черный) провод насоса идет на Common реле, а положительный (красный) — на провод питания DC-штекера.
Подключение компонентов к Sensor Shield:
Соберите LCD Control Panel и Drink Station согласно их инструкциям до подключения к Sensor Shield. На схеме ниже показано расположение всех модулей на шилде.
Шаг 2: Механическая сборка
Разместите компоненты так, чтобы провода не были натянуты, а электроника была защищена от попадания жидкостей. Удобно уложить проводку между двумя платами Workbench. Ориентируйтесь на фото для оптимального размещения. Особое внимание уделите ориентации жидкостных линий — насос должен забирать жидкость из бутылок и подавать её через распределительный клапан к выбранному электрокапану.
Шаг 3: Программирование и тестирование
- Скачайте библиотеки RobotGeek и распакуйте в папку Arduino/libraries.
- Откройте Arduino IDE:
Файл → Примеры → RobotGeekSketches → Demos → drinkStation.
Ключевые фрагменты кода для настройки:
// Меню напитков (отображается на LCD)
String selectionLine[14] = {
" ", // буферная строка
"1. Red ", "2. Green ", "3. Blue ", "4. Yellow ", "5. White ", "6. Black ",
"7. Red & Yellow ", "8. Green & Blue ", "9. Black & White ", "10. Black & Yellow ",
" ", " ", "End of List "
};
Замените названия на свои рецепты. Всего доступно 10 позиций меню.
int PUMP_TIME = 2500; // Время работы насоса в мс (размер порции)
Увеличьте значение для более крупных порций.
LiquidCrystal_I2C lcd(0x27, 20, 4); // Адрес LCD 0x27
// LiquidCrystal_I2C lcd(0x3F, 20, 4); // Альтернативный адрес 0x3F
Если экран не показывает меню — раскомментируйте вторую строку.
Логика подачи напитка (пример для первого пункта меню):
case 1: // Red
lcd.setCursor(0, 0);
lcd.print(promptLine[2]);
colorWipe(strip.Color(255, 0, 0), 50); // Красная подсветка
digitalWrite(PUMP_RELAY_PIN, HIGH); // Включаем насос
digitalWrite(SELECTED_RELAY_PIN[0], HIGH); // Открываем клапан 1
delay(PUMP_TIME); // Наливаем
digitalWrite(SELECTED_RELAY_PIN[0], LOW); // Закрываем клапан 1
digitalWrite(CLEAN_RELAY_PIN, HIGH); // Открываем клапан 7 (промывка)
delay(PUMP_TIME); // Промываем
digitalWrite(CLEAN_RELAY_PIN, LOW);
digitalWrite(PUMP_RELAY_PIN, LOW); // Выключаем насос
break;
Каждый case — это последовательность: смена текста на экране → цвет подсветки → открытие нужных клапанов + работа насоса. Насос должен работать только когда открыт хотя бы один клапан.
Загрузите скетч, протестируйте на воде. Проверьте каждый клапан по отдельности, затем — смеси. Готово — можно планировать вечеринку!
Шаг 4: Доработки и идеи
- Добавить Bluetooth и мобильное приложение (MIT App Inventor) для заказа с телефона гостей.
- Установить манипулятор для раздачи напитков по разным бокалам.
- Сделать платформу на колесах — получится дроид-официант.
Делитесь своими идеями в комментариях!
Полный код и ресурсы
Полный скетч и библиотеки доступны в репозитории: GitHub RobotGeek Libraries
Производственный процесс
- Сборка DCC-командной станции для модельной железной дороги на Arduino с бесплатным приложением
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- Магнитная левитация на отталкивании с Arduino: Простая схема и DIY-руководство
- Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
- Arduino Home Controller с Alexa: умный дом голосовым управлением
- NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
- Метеостанция на Arduino и ThingSpeak: температура и влажность в облаке
- Погодная станция на Arduino Nano: BMP280, DHT11, UV, DS3231, OLED 0.96″