Arduino制御の6連ショット・ドリンクミキシングステーション – 自作カクテル自動製造機
概要
ボタン一つでカクテルが作れる夢のマシン「6-Shooter(シックス・シューター)」をArduinoで自作しませんか?6種類の液体を組み合わせ、単一のポンプで多彩なドリンクを自動提供します。LCDメニューから飲み物を選び、ボタンを押すだけで注ぎ分けとライトショーが始まります。市販の「Somabar」に近い機能を、DIYで実現するプロジェクトです。※部品代はそこそこかかりますが、パーティーで圧倒的な存在感を放ちます。
必要なパーツと用品
| パーツ名 | 数量 | 備考 |
|---|---|---|
| RobotGeek Geekduino(Arduino UNO互換) | 1 | 標準のArduino UNO/Duemilanoveでも代用可 |
| RobotGeek Sensor Shield | 1 | |
| RobotGeek Duino Mount | 1 | |
| RobotGeek Mega Workbench | 1 | |
| RobotGeek 4行I2C LCDコントロールパネル | 1 | |
| RobotGeek Drink Station | 1 | ドリンクステーション本体 |
| RobotGeek NeoPixelリング(16×WS2812 RGB LED) | 1 | ライトショー用 |
| RobotGeek 12V DC液体ポンプ | 1 | |
| RobotGeek ソレノイドバルブ | 7 | 6液体用+洗浄用1つ |
| RobotGeek リレー | 8 | ポンプ用1つ+バルブ7つ分 |
| RobotGeek 12V/10A 電源 | 1 | ポンプ・バルブ駆動用 |
| RobotGeek 6V/2A 電源 | 1 | ロジック系電源用 |
| RobotGeek DCパワースクイッド | 2 | 電源分配用 |
| RobotGeek シリコンチューブ | 1 | |
| RobotGeek 3ピンカプラー | 1 | |
| RobotGeek スペーサー詰め合わせ | 1 | |
| RobotGeek 3ピンセンサーケーブル | 1 | |
| チェックバルブ(逆流防止弁) | 1 | |
| 6口分配バルブ | 1 |
必要なツール・アプリ
- Arduino IDE
- はんだごて・はんだ(リレー・バルブ配線用)
- ワイヤーナットまたはハンダ付け用具
製作手順
ステップ1:配線
見た目は複雑ですが、同じ作業の繰り返しです。ソレノイドバルブとリレー、ポンプとリレーをそれぞれ接続します。
バルブ-リレー間の配線
- リレー、ソレノイドバルブ、DCジャックピグテール、ワイヤーナットを用意
- バルブの一方のリードをリレーのコモン(中央)端子へ
- DCジャックのグラウンド線をリレーのNO(常開)端子へ
- バルブのもう一方のリードとDCジャックの電圧線をワイヤーナットで接続(ハンダ付けの方が確実)
ポンプも同様に、黒(グラウンド)をコモン、赤(電圧)をDCジャック電圧線へ接続します。
注意:LCDコントロールパネルとDrink Stationの組み立てを先に済ませてから配線してください。
センサーシールドへの各部品接続は、添付の配線図(PNG)を参照してください。
ステップ2:組み立て
配線が張られないよう、液体が電子部品にかからないよう配置します。ワークベンチの2枚のプレートの間に配線をまとめるとスッキリします。添付写真を参考に、液体ラインの向き(ポンプからバルブへ正しく流れる向き)を確認してください。
ステップ3:プログラミングとテスト
- RobotGeekライブラリとツール一式(GitHubからZIPダウンロード)をArduinoフォルダへ配置
- 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"
};
ここでメニュー名を実際のカクテル名に変更します。
int PUMP_TIME = 2500; // ポンプ駆動時間(ミリ秒)
デフォルトのショット量を調整できます。
LiquidCrystal_I2C lcd(0x27, 20, 4); // I2Cアドレス0x27の場合
// LiquidCrystal_I2C lcd(0x3F, 20, 4); // 表示されない場合は0x3Fへ変更
LCDのI2Cアドレスは製品により異なるため、表示されなければこちらを切り替えます。
ドリンク選択時の動作(Case 1: Red の例)
if (debounce[2].fell()) {
switch (drinkSelectCounter) {
case 1: // Red
lcd.setCursor(0, 0);
lcd.print(promptLine[2]);
colorWipe(strip.Color(255, 0, 0), 50); // 赤でライトショー
digitalWrite(PUMP_RELAY_PIN, HIGH); // ポンプON
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); // バルブ7閉
digitalWrite(PUMP_RELAY_PIN, LOW); // ポンプOFF
break;
}
}
各caseで「画面表示→LED点灯→バルブ開→ポンプ駆動→バルブ閉→洗浄→ポンプ停止」の流れを記述します。ポンプは必ず最低1つのバルブが開いている間だけ動かしてください。
書き込み後、まず水で全バルブ個別にテストし、問題なければミックステストへ。完成したらパーティーの準備です!
ステップ4:さらなる拡張アイデア
- Bluetoothモジュール追加+スマホアプリ(MIT App Inventor等)で注文受付
- ロボットアームで複数のグラスへ自動配膳
- ローバー搭載で移動型給仕ドロイド化
あなたのアイデアでさらに進化させてください!
参考リンク
- RobotGeekライブラリ&ツール(GitHub): ダウンロード
製造プロセス
- Arduinoで作る模型鉄道DCCコマンドステーション 〜Bluetooth制御・無料アプリ付き〜
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
- Pixel Chaser: Arduino Nanoで作るワンタップLEDゲーム
- Arduinoで作る斥力式磁気浮上装置: シンプル回路とDIYガイド
- 10ドルで作る携帯型Arduino気象観測ステーション – Nano、DHT22、BMP180、LCDで簡単DIY
- Alexa対応Arduinoホームコントローラー:音声でスマートホーム自動化
- Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
- ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
- Arduino Nano製ウェザーステーション:気圧・温湿度・UV・時計表示付き
- DIY LEDルーレットゲーム – Arduino Nanoで作る1人用アーケードゲーム