Bar à Cocktails Automatique

Bonjour tous le monde

Suite a mon dernier projet d'horloge géante (panneau d'affichage de score) pour lequel lesept m'avais grandement aidé.
Je reviens avec un nouveau projet qui devra être totalement pilotable par un LCD.

"Un Bar à Cocktails Automatique" fonctionnant avec :

  • Arduino Mega 2560
  • LCD 12864 reprap discount full graphic smart controller
  • 9 doseurs commandé par un servomoteur MG946R
  • 1 Moteur Nema 17 + A4988 Driver
  • 8 Pompes péristaltique avec carte relais
    -Bibliothèque U8GLib pour le fonctionnement du LCD

Principe de fonctionnement :

  • L’écran LCD devra avoir au démarrage une image d’accueil
    (Define showbootscreen)
  • Suivi d'un menu et de sous menu avec icones
    (permet de sélectionner directement la boisson souhaité dans un menu déroulant, de sélectionner le type de bouteilles sur le bon doseur ou la bonne pompe, n'afficher que les cocktails disponibles en fonctions des ingrédients sélectionnés...)
    -Possibilité d'utilisé la carte sd du controleur LCD.

Je joins un petit organigramme de se que je voudrais afficher sur l'écran LCD.

Par ou puis-je commencer pour créer les différents menus ?

je sais brancher correctement l’écran LCD à la carte Mega 2560 et faire afficher hello world dessus avec la bibliothèque U8GLib

Merci d'avance de votre aide

Bonjour c'est typiquement le genre de projet de type machine à états

voir l'excellent tuto de @J-M-L

Oui, et elle peut être organisée autour de la gestion des menus. Vu la complexité, je suggère d'utiliser une bibliothèque pour gérer la machine d'états. Par exemple :

Question : qu'est-ce qui pousse au choix du Mega ? Est-ce à cause du nombre d'IO ? Si le Mega n'est pas indispensable, je me tournerais plutôt vers un ESP32, afin de pouvoir (ultérieurement) commander le bar en Bluetooth depuis ton fauteuil préféré...

Bonjour lesept

J'ai choisi le mega pour une question d'IO et justement je ne veux pas de Bluetooth ou de WiFi qui obligerait à avoir un téléphone ou une tablette.
Le choix d'un LCD est volontaire.
Cordialement.

alors pose déjà sur le papier les affections/reservations des I/O du mega .
une fois çà fait , tu passera aux tests simple unitaire d'activation (boutons,affichage, pompe/servo, ...etc) et aprés tu t'attaquera la machine à états.

Tu a quel niveau "arduino" ?

Bonsoir Artouste

Voici les affectations reservations des I/O mega :

Broche EXP1 /Fonction /Broche du Mega

1 /bip /35
2 /commutateur d'encodeur /37
3 /LCDE et /17
4 /écrans LCD rs /16
5 /Données LCD 4 /23
6 /Données LCD 5 /25
7 /Données LCD 6 /27
8 /Données LCD 7 /29
9 GND
10 +5V

Broche EXP2 /Fonction /Broche du Mega

1 /SD MISO /50
2 /SD SCK /52
3 /encodeur B /31
4 /SD CS /53
5 /encodeur A /33
6 /SD MOSI /51
7 /Détection de carte SD /49
8 /Reset /41
9 GND
10 Pas de connexion

Broche n° 2 PWM du MEGA pour le servomoteur
Broche n° 3 à 10 pour les pompes peristaltiques
Broche n° 11 pour le ruban leds ws2812

Difficile de donner son niveau "arduino"je sais faire les fonctions de base.

Il y a se genre de tuto pour t'aider si besoin

Ce genre de produit aussi existe, ou tout est intégré, mais le site web ne marche plus( bizarre)

Bonsoir

Voici mon début de code fin d'afficher un bootscreen

#include "U8glib.h"

U8GLIB_ST7920_128X64_1X u8g(23, 17, 16);

const uint8_t rook_bitmap[] PROGMEM = {



  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ..........................................................###########...........................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // .......................................................#################........................................................
  0x3E,0x01,0xFF,0xC0,0x00,0xFF,0xCF,0xC0,0x07,0xE3,0xFF,0x00,0x03,0xFF,0x80,0x7C, // ..#####........###########..............##########..######...........######...##########..............###########........#####..
  0x60,0x00,0x1F,0xF0,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x00,0x0F,0xF8,0x00,0x06, // .##................#########.......................###...................###........................#########................##.
  0x60,0x00,0x00,0x0E,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x04, // .##.........................###......................#...........................................##..........................#..
  0x38,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x18, // ..###...........................##............................................................##...........................##...
  0x0F,0xFF,0xFF,0xFF,0x86,0x01,0x00,0x00,0x00,0x41,0x00,0x63,0xFF,0xFF,0xFF,0xF0, // ....#############################....##........#.........................#.....#.........##...##############################....
  0x0C,0x03,0xE0,0x00,0xC2,0x00,0x00,0x1F,0xF0,0x22,0x00,0x42,0x00,0x07,0xC0,0x70, // ....##........#####.............##....#....................#########......#...#..........#....#..............#####.......###....
  0x06,0x00,0x00,0x03,0xC7,0x00,0x41,0xFF,0xFE,0x02,0x00,0xC3,0xC0,0x00,0x00,0x60, // .....##.......................####...###.........#.....################.......#.........##....####.......................##.....
  0x03,0x80,0x3F,0xF8,0x61,0x80,0x07,0xFF,0xFF,0x88,0x01,0x84,0x1F,0xF8,0x01,0xC0, // ......###.........###########....##....##............####################...#..........##....#.....##########..........###......
  0x01,0xFF,0xC0,0x00,0xF0,0xC0,0x0F,0xF0,0x3F,0xE4,0x03,0x0F,0x00,0x03,0xFF,0x00, // .......###########..............####....##..........########......#########..#........##....####..............##########........
  0x00,0xC0,0x00,0x1F,0x10,0x61,0x7F,0x80,0x07,0xF0,0x06,0x08,0xF8,0x00,0x03,0x00, // ........##.................#####...#.....##....#.########............#######.........##.....#...#####.................##........
  0x00,0x60,0x0F,0xC0,0x3C,0x7B,0x7F,0x01,0x03,0xFE,0x9E,0x38,0x07,0xF0,0x0E,0x00, // .........##.........######........####...####.##.#######.......#......#########.#..####...###........#######........###.........
  0x00,0x1F,0xF8,0x01,0xE4,0x1F,0x7F,0x03,0x81,0xFE,0xF8,0x27,0x00,0x1F,0xF8,0x00, // ...........##########..........####..#.....#####.#######......###......########.#####.....#..###...........##########...........
  0x00,0x0E,0x00,0x1E,0x06,0x0B,0xFF,0x07,0xC1,0xFF,0xD0,0xE0,0x78,0x00,0x70,0x00, // ............###............####......##.....#.##########.....#####.....###########.#....###......####............###............
  0x00,0x06,0x03,0xE0,0x39,0x81,0xFF,0x07,0xC1,0xFF,0x03,0x98,0x0F,0x80,0xE0,0x00, // .............##.......#####.......###..##......#########.....#####.....#########......###..##.......#####.......###.............
  0x00,0x01,0xFE,0x00,0xC1,0xE1,0xFF,0x07,0xC3,0xFF,0x0F,0x83,0x00,0x7F,0x80,0x00, // ...............########.........##.....####....#########.....#####....##########....#####.....##.........########...............
  0x00,0x00,0x70,0x07,0x06,0x7D,0xFF,0x03,0x83,0xFF,0xBE,0x40,0xE0,0x0C,0x00,0x00, // .................###.........###.....##..#####.#########......###.....###########.#####..#......###.........##..................
  0x00,0x00,0x3C,0x78,0x18,0xDF,0xFF,0x00,0x07,0xFF,0xF2,0x10,0x1E,0x3C,0x00,0x00, // ..................####...####......##...##.#############.............###############..#....#.......####...####..................
  0x00,0x00,0x07,0xC0,0x61,0x9B,0xFF,0x00,0x03,0xFF,0xD1,0x86,0x03,0xE0,0x00,0x00, // .....................#####.......##....##..##.##########..............############.#...##....##.......#####.....................
  0x00,0x00,0x01,0xC3,0x06,0x33,0xFF,0x03,0xC1,0xFF,0xC8,0xC1,0xC3,0x00,0x00,0x00, // .......................###....##.....##...##..##########......####.....###########..#...##.....###....##........................
  0x00,0x00,0x00,0x7E,0x0C,0x65,0xFF,0x07,0xC1,0xFF,0x64,0x30,0x7E,0x00,0x00,0x00, // .........................######.....##...##..#.#########.....#####.....#########.##..#....##.....######.........................
  0x00,0x00,0x00,0x03,0xF9,0xC9,0xFF,0x07,0xE0,0xFF,0x33,0x1F,0xC0,0x00,0x00,0x00, // ..............................#######..###..#..#########.....######.....########..##..##...#######..............................
  0x00,0x00,0x00,0x00,0x0F,0xF9,0xFF,0x07,0xE0,0xFF,0x3F,0xF0,0x00,0x00,0x00,0x00, // ....................................#########..#########.....######.....########..##########....................................
  0x00,0x00,0x00,0x00,0x00,0x67,0xFF,0x03,0xC1,0xFF,0xEC,0x00,0x00,0x00,0x00,0x00, // .........................................##..###########......####.....############.##..........................................
  0x00,0x00,0x00,0x00,0x00,0x60,0x7F,0x01,0x01,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00, // .........................................##......#######.......#.......#######......##..........................................
  0x00,0x00,0x00,0x00,0x00,0x30,0x3F,0x80,0x03,0xF8,0x18,0x00,0x00,0x00,0x00,0x00, // ..........................................##......#######.............#######......##...........................................
  0x00,0x00,0x00,0x00,0x00,0x30,0x1F,0xF0,0x1F,0xF0,0x38,0x00,0x00,0x00,0x00,0x00, // ..........................................##.......#########.......#########......###...........................................
  0x00,0x00,0x00,0x00,0x00,0x18,0x0F,0xFF,0xFF,0xE0,0x30,0x00,0x00,0x00,0x00,0x00, // ...........................................##.......#######################.......##............................................
  0x00,0x00,0x00,0x00,0x00,0x0C,0x03,0xFF,0xFF,0x80,0x60,0x00,0x00,0x00,0x00,0x00, // ............................................##........###################........##.............................................
  0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xFF,0xFE,0x00,0xE0,0x00,0x00,0x00,0x00,0x00, // ............................................###.........###############.........###.............................................
  0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x2F,0xE9,0x01,0xC0,0x00,0x00,0x00,0x00,0x00, // .............................................###.......#..#.#######.#..#.......###..............................................
  0x00,0x00,0x00,0x00,0x00,0x03,0x81,0x4A,0xA5,0x03,0x80,0x00,0x00,0x00,0x00,0x00, // ..............................................###......#.#..#.#.#.#..#.#......###...............................................
  0x00,0x00,0x00,0x00,0x00,0x01,0xE2,0x42,0x84,0x8E,0x00,0x00,0x00,0x00,0x00,0x00, // ...............................................####...#..#....#.#....#..#...###.................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x12,0x90,0x7C,0x00,0x00,0x00,0x00,0x00,0x00, // .................................................###.#.....#..#.#..#.....#####..................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x92,0x92,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // ...................................................###..#..#..#.#..#..#..###....................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x90,0x12,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // ....................................................##..#..#.......#..#..##.....................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xB0,0x1B,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // ......................................................###.##.......##.###.......................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0xF4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // .........................................................######.####.#..........................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................................
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  // ................................................................................................................................

};

void draw(void) {
  // graphic commands to redraw the complete screen should be placed here  
  u8g.drawBitmapP( 0, 0, 128 / 8, 64, rook_bitmap);
}

void setup(void) {
}

void loop(void) {
  // picture loop
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  
  // rebuild the picture after some delay
  delay(1000);
}

Comment puis faire les menus ?

Quelle bibliothèque utiliser pour pouvoir faire mes menus sur mon LCD ?

Bonjour
Je ne suis pas sur qu'il existe ce genre de bibliotheque
en general en DIY tu pars sur une page vierge , il faut derouler l'organigramme d'affichage.

rien de mieux de de poser l'organigramme sur papier

L'organigramme c'est celui que j'ai mis sur le premier poste en photo.
Je ne sais pas par où commencer.
Serait il possible d'avoir un petit coup de main au moins pour le début ?
Merci de votre aide

regarde çà : il y a surement du grain à moudre :innocent:

1 Like

Cool je vais étudier cela ce soir​:+1::+1::+1:

Si je prenais un esp8266 il serait possible de s'en servir en tant que serveur Web ?
Mais j'ai aucune notion pour créer une page Web à moins qu'il existe de très bons tutoriels...

Il est évident qu'un formulaire HTML sera plus facile à coder qu'un menu sur un afficheur LCD.
D'autre part même une page HTML sur un smartphone 5 pouces sera forcément plus ergonomique qu'un menu affiché sur un LCD, avec navigation par boutons ou encodeur rotatif.
Si on ne connaît ni l'un ni l'autre, autant se lancer dans le HTML.

Merci de ta réponse et connais tu des tutos ou je pourrais faire cela en html.
Merci d'avance.

tu a pas mal de realisations plus ou moins abouties et +/- sophistiqués sur le net de bartenders
basé sur de l'esp32 ou Rpi

Il me semble qu'il y a eu un projet bien avancé sur le forum (A rechercher çà date un peu)
EDIT :

un exemple esp32

ça donne soif... :cocktail:

Bonjour après tout vos messages j'ai bien réfléchi et en plus j'ai retrouvé au fond d'un tiroir un wemos d1 wifi uno.
Du coup auriez vous de bon tuto afin de faire un serveur Web avec celui ci.
Comment créer ma propre page Web avec menu déroulant et avec possibilité d'avoir un onglet paramètres qui pourrait ouvrir une autre page Web.
J'ai aucune connaissance en html mais peu être existe il un logiciel intuitif qui pourrait m'aider à faire cela.
Je suis preneur de toutes vos idées.
Cordialement.

Tu peux trouver des tutos un peu partout, en voici quelques uns :

https://projetsdiy.fr/esp8266-serveur-web-interface-graphique-html/

Mais ajouter des menus déroulants, ça commence à devenir un peu complexe...

1 Like