Extension des possibilités de Samovar avec la carte supplémentaire I2CStepper, dotée d'un moteur pas à pas et de quatre relais.
Le module peut être utilisé comme appareil autonome. Il peut être piloté seul, avec le menu sur un écran LCD 16x2 et un encodeur, ou en étant raccordé à Samovar.
L'extension se raccorde à Samovar par le bus I2C avec quatre fils (comme l'écran LCD). Samovar détecte que l'extension est raccordée et peut la piloter.
Samovar 7.00: le micrologiciel fonctionne avec les cartes utilisant la version 3 du protocole. Jusqu'à dix cartes avec des adresses I2C de 1 à 10 peuvent se trouver sur le bus : les cartes à adresse impaire (1, 3, 5…) sont des agitateurs, les cartes à adresse paire (2, 4, 6…) sont des pompes (pompage continu ou remplissage d'un volume défini). Chaque carte indique à Samovar ce qu'elle sait faire : agitateur, pompage, remplissage, relais, capteur externe. Les cartes sont recherchées au démarrage de Samovar puis interrogées en arrière-plan ; si au moins une est trouvée, un bouton « I2CStepper » apparaît sur la page principale de chaque mode et ouvre la page de commande des cartes. Une carte qui a répondu une fois sur le bus reste dans la liste jusqu'au redémarrage de Samovar ; si la communication avec elle est perdue, elle est marquée comme indisponible.
En fonctionnement (programme de rectification, Lua, modes Bière et Fromage), Samovar utilise un agitateur de travail et une pompe de travail — les cartes ayant l'adresse la plus basse parmi celles trouvées. Elles sont fixées au démarrage du processus et ne changent pas jusqu'à sa fin, même si une carte d'adresse plus basse apparaît en cours de route.
En mode Bière, le premier relais sert à allumer et éteindre la pompe de transfert du moût (par exemple, pour faire circuler le moût dans la cuve de brassage). Le micrologiciel n'utilise pas les autres relais — c'est vous qui décidez de leur rôle, et vous pouvez les commuter depuis Lua. Les relais sont gérés par l'agitateur de travail s'il a déclaré la prise en charge des relais, sinon par la pompe de travail.
Les réglages de la carte elle-même (mode, vitesse, durée de fonctionnement et pause de l'agitateur, débit de la pompe, volume et débit de remplissage, pas par millilitre) sont stockés dans la mémoire de la Nano et se modifient dans l'onglet Réglages → I2CStepper («Настройки → I2CStepper»), voir ci-dessous. La page « I2CStepper » sert uniquement au démarrage et à l'arrêt manuels.
La page « I2CStepper »
La page « I2CStepper » : la carte pompe d'adresse 2 est sélectionnée
 Appareil («Устройство»)
La liste des cartes trouvées sur le bus ; elle s'affiche s'il y a deux cartes ou plus. Les agitateurs ont une adresse impaire, les pompes une adresse paire.
|
 État de la carte
« En marche » («Работает») ou « Arrêté » («Остановлен») ; en dessous figurent la vitesse actuelle de la pompe et le volume restant.
|
 Vitesse et volume
Vitesse de la pompe en litres par heure et volume en millilitres pour le bouton « Lancer » («Запустить»). « Stop » («Стоп») arrête la pompe.
|
 Relais 1
S'affiche si la carte prend en charge les relais ; commute le premier relais de la carte.
|
 Étalonnage de la pompe externe
Uniquement pour les cartes pompes : ouvre la page d'étalonnage « Pas/ml » («Шагов/мл») de la carte sélectionnée.
|
Si deux cartes ou plus sont trouvées, une liste « Appareil » («Устройство») apparaît en haut — elle permet de choisir la carte avec laquelle vous travaillez : « Agitateur, adresse N » («Мешалка, адрес N») ou « Pompe, adresse N » («Насос, адрес N»). Avec une seule carte, la liste est masquée. Si la carte sélectionnée est indisponible, le message « L'I2CStepper sélectionné est indisponible » («Выбранный I2CStepper недоступен») s'affiche à la place du panneau — aucune autre carte n'est substituée automatiquement, vous devez la choisir dans la liste.
Pour la carte sélectionnée, la page affiche son type et son adresse, son état (« En marche » («Работает») ou « Arrêté » («Остановлен»)), la vitesse actuelle en pas par seconde et le nombre de pas restants avant l'arrêt. Les données sont actualisées toutes les deux secondes.
Commande. « Vitesse » («Скорость») est la vitesse du moteur en pas par seconde (de 1 à 18000), « Cible, pas » («Цель, шагов») est le nombre de pas à effectuer. Le bouton « Lancer » («Запустить») envoie ces deux valeurs à la carte et démarre le moteur dans le mode enregistré dans la mémoire de la Nano : pour un agitateur, c'est la rotation, pour une pompe, le remplissage avec le nombre de pas indiqué. Pour une pompe, il est plus simple de calculer le nombre de pas à partir du volume : multipliez les millilitres voulus par « Pas/ml » («Шагов/мл») des réglages de la Nano. « Stop » («Стоп») arrête le moteur. Le démarrage est impossible si la pompe n'est pas étalonnée (« Pas/ml » vaut zéro) ou si Samovar est en train de changer de mode à ce moment — un message d'erreur s'affiche alors.
Relais. Si la carte a déclaré la prise en charge des relais, un bouton « Activer le relais 1 » («Включить реле 1») / « Désactiver le relais 1 » («Выключить реле 1») s'affiche — il commute le premier relais de la carte (en mode Bière, c'est la pompe à moût). Les relais 2–4 ne peuvent pas être commutés depuis cette page, uniquement depuis Lua.
Étalonnage de la pompe externe. Le bouton n'est disponible que pour les cartes pompes qui prennent en charge le remplissage. Il ouvre la page d'étalonnage de la carte sélectionnée : préparez un récipient gradué, réglez la vitesse du moteur et appuyez sur « Commencer l'étalonnage » («Начать калибровку») — la pompe se met à pomper. Lorsque exactement 100 ml ont été recueillis, appuyez sur « Valider 100 ml » («Зафиксировать 100 мл») : Samovar calcule « Pas/ml » et écrit la valeur dans la mémoire de la Nano. Refaites l'étalonnage après avoir changé les micropas du driver, le moteur, la tête de pompe ou le tuyau.
Paramètres de Samovar
Réglages → I2CStepper. L'onglet « Réglages Nano I2CStepper » («Настройки Nano I2CStepper») affiche les réglages stockés dans la mémoire de la carte elle-même. Le bouton « Rechercher à nouveau les appareils I2C » («Пересканировать I2C-устройства») relance la recherche des cartes sur le bus (par exemple, après en avoir raccordé une nouvelle). S'il y a plusieurs cartes, choisissez celle qui vous intéresse dans la liste « Appareil ». Champs :
« Nouvelle adresse » («Новый адрес») — l'adresse de la carte sur le bus, de 1 à 10. Une adresse impaire fait de la carte un agitateur, une adresse paire une pompe ; une adresse déjà occupée ne peut pas être choisie. La nouvelle adresse prend effet après le redémarrage de la Nano.
« Mode » («Режим») — « Agitateur » («Мешалка», adresse impaire uniquement), « Pompe » («Насос») ou « Remplissage » («Наполнение», adresse paire uniquement). La carte fonctionne dans ce mode lorsque vous appuyez sur « Lancer » et sur les commandes de Lua et des applications.
« Pas/ml » — le coefficient d'étalonnage de la pompe : il sert à convertir les millilitres et les litres par heure en pas du moteur. Il est renseigné par l'étalonnage (voir ci-dessus) ou manuellement. Tant qu'il vaut zéro, la pompe ne peut pas être démarrée.
« Vitesse de l'agitateur » («Обороты мешалки»), « Fonctionnement de l'agitateur, s » («Работа мешалки, с»), « Pause de l'agitateur, s » («Пауза мешалки, с») — les paramètres de l'agitateur pour le fonctionnement autonome de la carte ; avec une pause de 0, l'agitateur tourne en continu.
« Débit de la pompe, ml/h » («Подача насоса, мл/ч») et « Pause de la pompe, s » («Пауза насоса, с») — pour le mode « Pompe » (pompage continu) ; « Volume de remplissage, ml » («Объём наполнения, мл») et « Débit de remplissage, ml/h » («Скорость наполнения, мл/ч») — pour le mode « Remplissage ».
Le bouton « Enregistrer dans la Nano » («Сохранить в Nano») écrit les champs dans la mémoire non volatile de la carte ; ils sont conservés après un redémarrage de Samovar comme de la carte.
Réglages → Pompe («Настройки → Насос»). Si une pompe I2C est trouvée, deux champs pour la rectification apparaissent dans l'onglet :
« Utiliser la pompe I2C au-dessus de la section de pasteurisation » («Использовать I2C-насос над ЦП») — la pompe participe à la rectification si elle a été détectée au démarrage de Samovar : pendant le soutirage des têtes, elle devient la pompe principale ; pendant le cœur et le pré-engorgement, elle fonctionne avec la pompe locale.
« Débit de soutirage au-dessus de la section de pasteurisation » («Скорость отбора над ЦП») — la vitesse constante de la pompe I2C sur les lignes de cœur B et de pré-engorgement C. Sur la ligne de têtes H, c'est la vitesse de la ligne de programme elle-même qui est utilisée.
La vitesse en litres par heure de cette pompe est convertie en pas d'après « Pas/ml » de la mémoire de la Nano ; le champ distinct « Nombre de pas de la pompe I2C » («Количество шагов I2C насоса») n'existe plus dans les paramètres de Samovar.
Applications mobiles et site web
Les applications Samovar et la page de pilotage du Samovar sur le site samovar-tool.ru reçoivent toutes les cinq secondes la liste des cartes et leur état (disponibilité, mode, vitesse, quantité restante, masque des relais) et permettent de démarrer et d'arrêter une carte et de commuter les relais. Les réglages de la Nano et l'étalonnage ne sont pas accessibles depuis les applications — uniquement depuis l'interface web de Samovar. Si une commande est refusée, la raison arrive dans les messages de Samovar sous la forme « Blynk V37 a=N: code » («Blynk V37 a=N: код»).
Schéma et raccordement
Schéma de raccordement
Brochage pour le raccordement des périphériques :
// Pins for I2C Master - connecting the screen and potentially other devices
// SDA_PIN 0 //A0
// SCL_PIN 2 //D2
// Pins for I2C Slave - communication with Samovar
// SDA_PIN A4
// SCL_PIN A5
// Pins for the stepper motor
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
//Pins for the relays
#define MIXER_PUMP_PIN 13 // RELE_PIN1
#define RELE_PIN2 10 // RELE_PIN2
#define RELE_PIN3 11 // RELE_PIN3
#define RELE_PIN4 12 // RELE_PIN4
// Pins for the encoder
#define ENC_CLK 7 //S2
#define ENC_DT 8 //S1
#define ENC_SW 9 //KEY
Conseil.
Si vous prévoyez d'utiliser l'extension comme appareil séparé dans son propre boîtier, il est judicieux de la raccorder à Samovar avec un câble USB A-B (ordinateur - imprimante). L'alimentation du module (+/- 5 volts) et les deux signaux du bus I2C sont pris directement sur l'écran de Samovar. Un connecteur USB-B est monté sur le boîtier de Samovar.
Un connecteur USB-A est monté sur le boîtier de l'extension.
Ainsi, une fois raccordée à Samovar, l'Arduino Nano reçoit à la fois l'alimentation et le bus I2C. En utilisation autonome, une alimentation séparée remplace Samovar, par exemple un chargeur de téléphone.
Avec une alimentation intégrée, un connecteur USB-B est monté sur la sortie de l'alimentation, et le même câble USB A-B sert à amener le courant, ce qui exclut d'envoyer par erreur +5 volts dans Samovar.
Périphériques.
Le bloc de relais est utilisé en 5 volts, de préférence avec commande par optocoupleur. Vous pouvez aussi utiliser des relais 12 volts, câblés de la même façon que dans Samovar.
N'importe quelle pompe convient : à moteur à courant continu ou à moteur alternatif monophasé ou triphasé. Le moteur de la pompe est démarré et arrêté via un relais puis via n'importe quel organe de puissance : contacteur ou relais statique. Pour de petits volumes, envisagez la pompe à entraînement magnétique 15RM. Inox, silencieuse, avec un bon débit.
Pour l'agitateur ou la NBK, n'importe quel moteur pas à pas bipolaire convient, à condition qu'il ait assez de puissance et de couple. Un Nema 23 avec un driver adapté est recommandé.
Le croquis actuel pour l'Arduino Nano, qui pilote le moteur pas à pas et les quatre relais, peut être téléchargé via ce lien . Il vous faut la version avec le protocole v3 ; lors du passage depuis le protocole v2, la mémoire de la carte est réinitialisée — vérifiez à nouveau l'adresse, le mode et « Pas/ml ». Sa vocation principale est d'être utilisé avec Samovar comme module d'extension. Vous devez utiliser les bibliothèques fournies avec Samovar.
Commande depuis Lua
Les fonctions sont disponibles lorsque le micrologiciel est compilé avec Lua (voir
À propos du langage de script Lua). Les fonctions de l'agitateur s'appliquent à l'agitateur de travail, celles de la pompe à la pompe de travail (les cartes d'adresse la plus basse, voir ci-dessus). Toutes les fonctions de démarrage renvoient 1 si la commande a été acceptée par la carte et 0 sinon — y compris lorsque la carte requise n'est pas sur le bus.
set_stepper_by_time(spd, direction, time) – démarrer l'agitateur : spd – vitesse en pas par seconde, direction – sens 0 ou 1, time – durée de fonctionnement en secondes. Avec time = 0, l'agitateur tourne en continu jusqu'à une commande d'arrêt ; spd = 0 arrête l'agitateur.
set_stepper_target(spd, direction, target) – démarrer la pompe en mode remplissage : spd – vitesse en pas par seconde (jusqu'à 18000), direction – sens 0 ou 1, target – nombre de pas. Avec spd = 0 ou target = 0, la pompe s'arrête. La fonction ne pilote pas le moteur pas à pas standard de Samovar.
get_stepper_status() – nombre de pas qu'il reste à faire à la pompe (0 – elle est arrêtée ou il n'y a pas de carte).
i2cpump_start(rate, volume) – pomper volume ml au débit rate l/h, converti en pas d'après « Pas/ml » de la mémoire de la Nano. Renvoie 0 si la carte pompe n'est pas raccordée, n'est pas étalonnée ou si les arguments sont invalides.
i2cpump_stop() – arrêter la pompe.
i2cpump_get_speed() – vitesse actuelle de la pompe en pas par seconde.
i2cpump_get_target_ml() – le volume fixé par la dernière commande i2cpump_start, en ml.
i2cpump_get_remaining_ml() – quantité restant à pomper, en ml.
i2cpump_get_running() – 1 si la pompe tourne, sinon 0.
set_mixer_pump_target(Val) – activer (1) ou désactiver (0) le premier relais – la pompe à moût.
get_mixer_pump_status() – état du premier relais : 0 ou 1 ; 255 s'il n'y a pas de carte avec relais.
set_i2c_rele_state(Num, Val) – activer (1) ou désactiver (0) le relais Num (1–4). Renvoie 1 si la commande a été exécutée.
get_i2c_rele_state(Num) – état du relais Num (1–4) : 0 ou 1 ; 255 s'il n'y a pas de carte avec relais.
check_I2C_device(Addr) – vérifier si l'appareil d'adresse Addr répond sur le bus I2C ; renvoie l'adresse si l'appareil est trouvé.
Attention. Les relais sont gérés par l'agitateur de travail s'il a déclaré la prise en charge des relais ; sinon par la pompe de travail. Les fonctions qui modifient l'état ne sont pas exécutées en mode simulation Lua ni pendant que Samovar change de mode.
Exemple : set_stepper_by_time(800, 0, 0) – faire tourner l'agitateur en continu à 800 pas par seconde ; set_stepper_by_time(0, 0, 0) – l'arrêter. i2cpump_start(6, 250) – pomper 250 ml à 6 l/h ; tant que i2cpump_get_running() == 1, la pompe tourne.