← Capitanfuturo

Spritzino: Arduino smart bartender

[Arduino]

:computer: Premessa

Da quasi un anno ho iniziato ad interessarmi al mondo della programmazione di schede per protopizzazione Arduino. Ho completato diversi esercizi basilari che ho raccolto nel repository arduino salad. Questi esperimenti compongono una valida cassetta degli sttrezzi che permette di lanciarsi su progetti più sfidanti e così è Spritzino.

L’estate ormai è passata però durante questi mesi non ho smesso di sperimentare con questa meravilgiosa scheda ed ho provato a costruire con le mie conoscenze uno smart bartender con Ardunino. Da bravo veneto non ho potuto esimermi dal conciliare le mie velleità di maker con quelle del degustatore di aperitivi con gli amici ed è qui che nasce il progetto Spritino.

L’ispirazione nasce da un progetto con Raspberry Pi di Hacker Shack. In rete si trovano diversi progetti, alcuni veramente interessanti e che integrano per esempio i comandi vocali offerti da Alexa e Google.

Nella sua prima versione Spritzino permette di servire dei semplici cocktail con un menu LCD ed in particolare è pensato per lo spritz. Per chi non conoscesse questo cocktail Wikipedia indica:

A Spritz Veneziano (Austrian German: Spritzer, “splash” / “sparkling”) or Aperol Spritz, also called just Spritz, is an Italian wine-based cocktail, commonly served as an aperitif in Northeast Italy. It consists of prosecco, Aperol and soda water.

Materiale

Per costruire il primo prototipo ho utilizzato i seguenti componenti:

  • 1 Arduino Nano Banggood
  • 1 Scheda per motori L293D Banggood
  • 1 Trasformatore 220AC in 12V DC Banggood
  • 2 mt di tubo in silicone per alimenti Banggood
  • 2 Interruttori a pulsante Amazon
  • 3 Pompe peristaltiche 12V DC Banggood
  • 1 Convertitore 12V DC in 5V dC Amazon
  • 1 Schermo LCD con modulo I2C 1602 Amazon

Materiale di supporto

  • Cavi per le connessioni
  • Morsetti dupont
  • Termorestringenti
  • Saldatore a stagno
  • Pinze
  • Crimpatrice

Schema generale

Lo schema logico dei componenti è rappresentato dalla seguente figura:

schema logico

Cablaggio

Per il cablaggio dei vari componenti riporto delle tabelle con le connessioni verso Arduino Nano e alcune foto del risultato finale.

Arduino Nano

PINDESCRIPTION
GNDconnesso alla terra GND
5Vconnesso ai 5V
A4connesso al pin SDA dello schermo LCD
A5connesso al pin SCL dello schermo LCD
D2connesso al GND del bottone sinistro
D3connesso al GND del bottone destro
D4connesso al pin D4 della scheda dei motori
D7connesso al pin D7 della scheda dei motori
D8connesso al pin D8 della scheda dei motori
D11connesso al pin D11 della scheda dei motori
D12connesso al pin D12 della scheda dei motori

LCD 16x2 I2C

PINDESCRIPTION
GNDconnesso a GND
5Vconnesso a 5V
SDAconnesso al pin A4 di Arduino Nano
SCLconnesso al pin A5 di Arduino Nano

BUTTONS

PINDESCRIPTION
LEFT BUTTONconnesso al pin D2 Arduino Nano
RIGHT BUTTONconnesso al pin D3 Arduino Nano

Scheda per motori L293D

Questa scheda viene venduta per gli Arduino UNO mentre io volevo usarla con un Arduino Nano. Grazie a questo post ho scoperto che non tutti i pin vengono utilizzati e la mappatura dei pin è la seguente:

MotorePIN Arduino
Servo2,9,10
DC #111,4,7,8,12
DC #23,4,7,8,12
DC #35,4,7,8,12
DC #46,4,7,8,12
Stepper #111,3,4,7,8,12
Stepper #25,6,4,7,8,12

Nel mio caso i collegamenti sono quindi stati:

PINDESCRIPTION
GNDconnesso a GND
5Vconnesso ai 5V
D4connesso al pin D4 di Arduino Nano
D7connesso al pin D7 di Arduino Nano PIN
D8connesso al pin D8 Arduino Nano PIN
D11connesso al pin D11 Arduino Nano PIN
D12connesso al pin D12 Arduino Nano PIN
EXT_POWER GNDconnesso a -V dell’alimentatore 12V
EXT_POWER +Mconnesso a +V dell’alimentatore 12V
M1, M2, M3, M4connesso ai +12V dei motori peristaltici

Software

Tutto il codice sorgente è disponbile su github, Spritzino. Per avere una idea dello schema logico del programma ho disegnato questo:

flow

Risulto finale

Lascio qui delle foto del primo prototipo:

1

2

3

Grande è la fortuna di colui che possiede una buona bottiglia, un buon libro, un buon amico. (Molière)