Différences entre versions de « Projets:Notaboo »

De wikilab
 
(87 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
|Description=Un dispositif de "toilettes japonaises" portable constitué d'une petite pompe et d'un jet bien orienté !
 
|Description=Un dispositif de "toilettes japonaises" portable constitué d'une petite pompe et d'un jet bien orienté !
 
|Porteur de projet=Jérôme
 
|Porteur de projet=Jérôme
|Contributeurs=Davidz, Perrine, Mireille, Gaël, Frédérique
+
|Contributeurs=Davidz, Perrine, Mireille, Frédérique, Yobi
 
|Fabmanager=Yo
 
|Fabmanager=Yo
 
|Animateur=ValentinMHK
 
|Animateur=ValentinMHK
Ligne 12 : Ligne 12 :
 
|Relecture de la documentation=Non vérifiée
 
|Relecture de la documentation=Non vérifiée
 
|Licence=by-sa
 
|Licence=by-sa
 +
|Recherche compétences=Modélisation 3D
 
|Projet date=2022-10-18
 
|Projet date=2022-10-18
 
|Partenaires=Covéa
 
|Partenaires=Covéa
Ligne 38 : Ligne 39 :
 
* Yohann : Fabmanager MHK - Trouveur de solutions
 
* Yohann : Fabmanager MHK - Trouveur de solutions
 
* Fabien : Designer
 
* Fabien : Designer
* DavidZ : Programmeur
+
* DavidZ : Bénévole chez MHK - Programmeur
 
* Barth : Floss Manuals - documentation
 
* Barth : Floss Manuals - documentation
  
Ligne 359 : Ligne 360 :
  
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| '''Contrôleur de charge'''<br>Turnigy 12v 2-3S Basic Balance Charger
+
| '''Contrôleur de charge'''<br>Turnigy 12v 2-3S Basic Balance Charger ATTENTION Il faut absolument un chargeur alimenté en 12V et pas en 220V !!
 
| 1
 
| 1
 
|| Dimensions : 74 x 50 x 25 mm<br>Poids : 46 g
 
|| Dimensions : 74 x 50 x 25 mm<br>Poids : 46 g
|| [https://hobbyking.com/en_us/turnigy-12v-2-3s-basic-balance-charger.html hobbyking.com]
+
|| [https://hobbyking.com/en_us/turnigy-12v-2-3s-basic-balance-charger.html hobbyking.com] ou [https://robosavvy.co.uk/turnigy-12v-2-3s-lipo-basic-balance-charger.html robosavvy.co.uk]
 
| style="text-align: right;" | 5,27 €  
 
| style="text-align: right;" | 5,27 €  
  
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| '''Témoin de charge'''
+
| '''Témoin de charge'''<br>ATTENTION pour l'utiliser il faut souder ajouter un point de soudure sur le S3 qui attend que l'on fixe le nombre de cellule
 
| 1
 
| 1
 
|| 3.7V / 7.4V / 11.1V / 14.8V<br>Indicateur de Batterie Li-po
 
|| 3.7V / 7.4V / 11.1V / 14.8V<br>Indicateur de Batterie Li-po
Ligne 764 : Ligne 765 :
 
=== Pistes pour la suite ===
 
=== Pistes pour la suite ===
  
La réalisation d'une sacoche sur mesure pourrait faire l'objet d'un futur développement.
+
* La réalisation d'une sacoche sur mesure pourrait faire l'objet d'un futur développement. -> Non Réalisé
  
Il serait aussi intéressant de concevoir une version open-source de la buse et de son support, en s'appuyant sur l'existant, et en intégrant la possibilité de moduler la pression et l'orientation du jet.
+
* Il serait aussi intéressant de concevoir une version open-source de la buse -> En cours, voir Fokus INSA
  
 +
* Il serait aussi intéressant de concevoir une version open-source de son support, en s'appuyant sur l'existant, et en intégrant la possibilité de moduler l'orientation du jet. -> En cours, voir Fokus INSA
  
 +
* La pression pourrait être modulé en faisant varié la raideur du ressort et/ou le diamètre des trous de sortie
  
 
== Fabrikarium Tokyo ==
 
== Fabrikarium Tokyo ==
Ligne 808 : Ligne 811 :
 
Il a ajouté la fonction mesure du courant pour permettre de savoir si le système fonctionne avec ou sans eau.
 
Il a ajouté la fonction mesure du courant pour permettre de savoir si le système fonctionne avec ou sans eau.
  
cela va permettre de mettre Notaboo à l'arrêt lorsque le reservoir est vide, afin de préserver la pompe à eau qui n'aime ps fonctionner à vide.
+
cela va permettre de mettre Notaboo à l'arrêt lorsque le réservoir est vide, afin de préserver la pompe à eau qui n'aime pas fonctionner à vide.
  
== Fokus Notaboo INSA ==
+
== Fokus Notaboo INSA 2023 ==
  
Jour 1 : Lundi 17/07/2023
+
'''Jour 1 : Lundi 17/07/2023'''
  
 
=== Essai de la buse Japan + modification du design ===
 
=== Essai de la buse Japan + modification du design ===
 +
 +
Vidéos de présentation des buses :
 +
 +
Buse 1
 +
{{#ev:youtube|https://www.youtube.com/watch?v=ToBkwxZaefE}}
 +
 +
Buse 2
 +
{{#ev:youtube|https://www.youtube.com/watch?v=oSO68b27Y-8}}
 +
 +
Buse 2 Démontage
 +
{{#ev:youtube|https://www.youtube.com/watch?v=XWipag20W0w}}
 +
 +
 +
La buse modélisée lors du Fabrikarium Tokyo avait quelques problèmes :
 +
 +
* Les supports bouchaient les filetages
 +
* La sortie de la buse était décalée de 90°
 +
* Une butée manquait sur le corps de la buse rendant l'installation du ressort impossible
 +
* La forme hexagonale du capuchon le rendait peu hygiénique
 +
* La densité des supports rendait le nettoyage des prints difficile
 +
 +
Les fichiers ont été modifiés par Valentin pour résoudre ces problèmes. Thomas a apporté ses connaissances sur la génération des supports pour les optimiser.
 +
 +
La première impression était plutôt concluante visuellement, il y aura juste une hauteur à modifier.
 +
 +
* Mais lors du premier essai en vrai, 4 sources de fuites ont été constaté.
 +
 +
1 - La liaison filetée entre le capuchon et le noyau
 +
 +
2 - Le jeu fonctionnel entre le corps et le noyau
 +
 +
3 - La liaison entre le chapeau et le corps
 +
 +
4 - Des petites fuites entre 2 couches d'impression
 +
 +
 +
Constater par vous même :
 +
 +
{{#ev:youtube|https://youtu.be/IJriTeWpo-Y}}
  
 
=== Installation du relais de charge de batterie ===
 
=== Installation du relais de charge de batterie ===
  
Le relais à 4 sections et alimenté en 12V. Le 12V est pris directement au niveau du connecteur circulaire magnétique. Sur les contacts de relais le commun est relié à la sortie du chargeur, un fil par section. Le contact travail du relais est relié à la batterie, un fil par section.
+
* Modèle du relais utilisé : [https://www.atlantique-composants.fr/ProductCard/HP553412DC/relais-5534-4rt-12vdc-5a-250v relais-5534-4rt-12vdc-7a-250v]
  
La mise en place de ce relais évite la décharge de la batterie lorsque le chargeur n'est pas alimenté. Au moment de la connexion du chargeur, le relais est alimenté et connecte la batterie sur la sortie du chargeur.
+
 
 +
* Circuit électrique du relais
 +
[[File:Capture du 2023-07-18 12-44-50.png|400px]]
 +
 
 +
 
 +
* Le relais à 4 sections et alimenté en 12V. Le 12V est pris directement au niveau du connecteur circulaire magnétique. Sur les contacts de relais le commun est relié à la sortie du chargeur, un fil par section. Le contact travail du relais est relié à la batterie, un fil par section.
 +
 
 +
 
 +
* La mise en place de ce relais évite la décharge de la batterie lorsque le chargeur n'est pas alimenté. Au moment de la connexion du chargeur grâce au connecteur magnétique, le relais est alimenté et connecte la batterie sur la sortie du chargeur.
 +
 
 +
 
 +
* Le voyant rouge et le voyant vert s'allument, le voyant vert s'éteint, puis se rallume et reste allumé.
 +
La charge commence, environ 1A, temps de charge de 5h
  
 
===Installation du module de contrôle de courant ACS712ELC-05B===
 
===Installation du module de contrôle de courant ACS712ELC-05B===
  
Ce module est chargé de transformer le courant du retour moteur en une tension adaptée à l'entré A0 de la carte Arduino Uno. Ce module est alimenté en 5V et fourni une tension égale à la moitié de son alimentation (2,5V).
+
Ce capteur peut, avec la même référence, être dimensionné pour mesurer un courant maximum de 5A ou de 20A.
 +
 
 +
* Le modèle que nous avons acheté est en version 5A, mais la référence suivante est pour le modèle 20A (Si vous leur demander le 5A ils peuvent vous le trouver aussi, mais la référence n'est pas sur le site ^^ : [https://www.atlantique-composants.fr/ProductCard/ODDAWPSE323/capteur-de-courant-acs712-20a capteur-de-courant-acs712-20a]
 +
 
 +
* Datasheet pour la version 20A, nous, nous utilisons la version 5A : [https://www.snapeda.com/parts/ACS712ELCTR-20A-T/Allegro/datasheet/ ACS712ELCTR-20A-T/Allegro/datasheet/]
 +
 
 +
* Ce module est chargé de transformer le courant du retour moteur en une tension adaptée à l'entré A0 de la carte Arduino Uno. Ce module est alimenté en 5V et fourni une tension égale à la moitié de son alimentation (2,5V).
 +
 
 +
* L'entrée de ce module sur bornier à vis est câblé sur le GND et le retour moteur. La sensibilité du capteur est de 185mV/A.
 +
 
 +
=== Code Version 2 ===
 +
 
 +
* On a ajouté la mesure du courant de pompe.
 +
 
 +
La mesure du courant nous donne environ 1A en charge et 0.6A à vide (C'est à dire que la pompe aspire de l'air, on doit l'arrêter).
 +
 
 +
* On a ajouté un module ACS712ELC-05B 5A
 +
 
 +
Ce module fournit une tension de 2.645V en charge (Avec de l'eau) ce qui correspond en valeur numérique à 550 dans l'Arduino
 +
 
 +
Il fournit 2.56V à vide (Sans eau) ce qui correspond en valeur numérique à 530 dans l'Arduino
 +
 
 +
On à fixé le seuil de détection de détection de niveau bas à 532 dans l'Arduino
 +
 
 +
Pour filtrer les valeurs mesurées par le module on a placé un filtre coupe bas fixé dans la variable ALPHA à 0.9
 +
 
 +
Pour laisser à la pompe le temps de monter en charge on a fixé un délai de 5 Sec.
 +
 
 +
* Il y a une coupure générale lorsque l'on met le système sous tension et que l'on appui pas sur le bouton de déclenchement du jet.
 +
 
 +
* Il arrive que le dispositif effectue un pompage pour envoyer le débit d'eau, mais la séquence s’arrête et l'étape de retour de l'eau ne s'effectue pas. Dans ce cas la coupure générale n'est pas activée.
 +
 
 +
 
 +
 
 +
* Le dossier Zip du code en version 2
 +
 
 +
[[:Media:main01.zip]]
 +
 
 +
<pre>
 +
 
 +
//Notaboo V2
 +
//https://notaboo.solutions/
 +
//https://wikilab.myhumankit.org/index.php?title=Projets:Notaboo
 +
//Release 20/07/2023
 +
//CC By SA
 +
 
 +
 
 +
#ifndef OLD
 +
 
 +
#include <Arduino.h>
 +
 
 +
#define PIN_ANALOG_CURRENT  0
 +
#define PIN_ON_OFF          2
 +
#define PIN_JACK            3
 +
#define PIN_RELAY_PUMP1    4
 +
#define PIN_BT_START        5
 +
#define PIN_RF              6
 +
#define PIN_RELAY_PUMP2    7
 +
#define PIN_RELAY_POWER    8
 +
#define PIN_LED            9
 +
#define PIN_LED_ON          11
 +
#define PIN_LED_START      10
 +
 
 +
#define ALPHA              0.900f
 +
 
 +
 
 +
// states
 +
enum state {
 +
    STATE_ON, START_JET, STOP_JET, STATE_ASPI, STATE_OFF, TURN_OFF
 +
};
 +
 
 +
// define state buttons
 +
uint32_t now;
 +
uint32_t led_now;
 +
float prev_current = 0.0f;
 +
int pinState = 0;
 +
 
 +
state nState = STATE_ON;
 +
bool on_off_released = false;
 +
 
 +
 
 +
bool checkInput(){
 +
    return ((digitalRead(PIN_BT_START) == LOW) || (digitalRead(PIN_RF) == LOW) || (digitalRead(PIN_JACK) == LOW));
 +
}
 +
 
 +
bool checkOnOff(){
 +
    return ((digitalRead(PIN_ON_OFF) == HIGH));
 +
}
 +
 
 +
void setup() {
 +
    // initialize pin
 +
    pinMode(PIN_RELAY_POWER, OUTPUT);
 +
    digitalWrite(PIN_RELAY_POWER, HIGH);
 +
    pinMode(PIN_LED_ON, OUTPUT);
 +
    digitalWrite(PIN_LED_ON, HIGH);
 +
    pinMode(PIN_LED_START, OUTPUT);
 +
    digitalWrite(PIN_LED_START, HIGH);
 +
    Serial.begin(9600);
 +
    pinMode(PIN_RELAY_PUMP1, OUTPUT);
 +
    digitalWrite(PIN_RELAY_PUMP1, LOW);
 +
    pinMode(PIN_RELAY_PUMP2, OUTPUT);
 +
    digitalWrite(PIN_RELAY_PUMP2, LOW);
 +
    pinMode(PIN_BT_START, INPUT_PULLUP);
 +
    pinMode(PIN_JACK, INPUT_PULLUP);
 +
    pinMode(PIN_RF, INPUT_PULLUP);
 +
    pinMode(LED_BUILTIN, OUTPUT);
 +
    pinMode(PIN_ON_OFF, INPUT);
 +
    digitalWrite(LED_BUILTIN, pinState);
 +
    //analogReference(INTERNAL);
 +
    now = millis();
 +
    led_now = millis();
 +
    Serial.println("STATE_ON");
 +
}
 +
 
 +
// the loop function runs over and over again forever
 +
void loop() {
 +
    switch (nState) {
 +
    case  STATE_ON:
 +
        digitalWrite(PIN_RELAY_POWER, HIGH);
 +
        if (checkInput()){
 +
            Serial.println("START_JET");
 +
            nState = START_JET;
 +
            now = millis();
 +
        }
 +
        if((uint32_t) (millis() - now) > 300000){
 +
            Serial.println("STATE_OFF");
 +
            nState = STATE_OFF;
 +
            now = millis();
 +
        }
 +
        if(on_off_released && checkOnOff() && ((uint32_t) (millis() - now) > 2000)){
 +
            Serial.println("STATE_OFF");
 +
            nState = STATE_OFF;
 +
            now = millis();
 +
        }
 +
        break;
 +
    case  START_JET:
 +
        digitalWrite(PIN_RELAY_PUMP1, HIGH);
 +
        //digitalWrite(PIN_RELAY_PUMP1, LOW);
 +
        digitalWrite(PIN_RELAY_PUMP2, LOW);
 +
        if((uint32_t) (millis() - now) > 60000){
 +
            Serial.println("STOP_JET60000");
 +
            nState = STOP_JET;
 +
            now = millis();
 +
        }
 +
        {
 +
          int current = analogRead(PIN_ANALOG_CURRENT);
 +
          prev_current = ALPHA * prev_current + (1.0f - ALPHA) * current;
 +
            Serial.print(prev_current);
 +
            Serial.println(",");
 +
            if((((uint32_t) (millis() - now) > 5000) && (prev_current < 532))||((uint32_t) (millis() - now) > 30000)){
 +
                Serial.println("STOP_JET532");
 +
                nState = STOP_JET;
 +
                now = millis();
 +
            }
 +
        }
 +
        if(((uint32_t) (millis() - now) > 1000) && (checkInput() || checkOnOff())){
 +
            Serial.println("STOP_JET1000");
 +
            nState = STOP_JET;
 +
            now = millis();
 +
        }
 +
        break;
 +
    case STOP_JET:
 +
        digitalWrite(PIN_RELAY_PUMP1, LOW);
 +
        digitalWrite(PIN_RELAY_PUMP2, LOW);
 +
        if((uint32_t) (millis() - now) > 2000){
 +
            Serial.println("STATE_ASPI");
 +
            nState = STATE_ASPI;
 +
            now = millis();
 +
        }
 +
        break;
 +
    case  STATE_ASPI:
 +
        digitalWrite(PIN_RELAY_PUMP2, HIGH);
 +
        digitalWrite(PIN_RELAY_PUMP1, LOW);
 +
        if((uint32_t) (millis() - now) > 5000){
 +
            Serial.println("STATE_OFF");
 +
            nState = STATE_OFF;
 +
            now = millis();
 +
        }
 +
        break;
 +
    case  STATE_OFF:
 +
        digitalWrite(PIN_RELAY_PUMP2, LOW);
 +
        digitalWrite(PIN_RELAY_PUMP1, LOW);
 +
        if((uint32_t) (millis() - now) > 5000){
 +
            Serial.println("TURN_OFF");
 +
            nState = TURN_OFF;
 +
            now = millis();
 +
        }
 +
        break;
 +
    case TURN_OFF:
 +
        digitalWrite(PIN_RELAY_POWER, LOW);
 +
        break;
 +
    default:
 +
        Serial.println( nState, DEC);
 +
        break;
 +
    }
 +
 
 +
    if((uint32_t)(millis() - led_now) > 500){
 +
        led_now = millis();
 +
        pinState ^= 0x01;
 +
        digitalWrite(LED_BUILTIN, pinState);
 +
        if(nState == STATE_ON ||  nState == STOP_JET){
 +
            digitalWrite(PIN_LED_START, pinState);
 +
        }
 +
        else if(nState == STATE_ASPI || nState == START_JET){
 +
            digitalWrite(PIN_LED_START, HIGH);
 +
        } else {
 +
            digitalWrite(PIN_LED_START, LOW);
 +
        }
 +
        if(nState == STATE_OFF){
 +
            digitalWrite(PIN_LED_ON, pinState);
 +
        }
 +
 
 +
    }
 +
    on_off_released |= (!checkOnOff());
 +
 
 +
}
 +
 
 +
 
 +
#else
 +
//a 2022/10/22: use Arduino
 +
//#include<stdio.h>
 +
#include <Arduino.h>
 +
 
 +
// define pin
 +
// input
 +
const int pin_bt_on = 10;
 +
const int pin_bt_start = 5;
 +
 
 +
// output
 +
const int pin_relay_pump1 = 4;
 +
const int pin_relay_pump2 = 7;
 +
const int pin_relay_power = 8;
 +
const int pin_led = 9;
 +
 
 +
// states
 +
enum state {
 +
    STATE_ON = 10, STATE_JET, STATE_ASPI, STATE_OFF
 +
};
 +
 
 +
// define state buttons
 +
bool bt_on = LOW;
 +
bool bt_start = LOW;
 +
 
 +
state nState = STATE_ON;
 +
 
 +
void setup() {
 +
    // initialize pin
 +
    Serial.begin(9600);
 +
    pinMode(pin_relay_power, OUTPUT);
 +
    digitalWrite(pin_relay_power, HIGH);
 +
    pinMode(pin_relay_pump1, OUTPUT);
 +
    digitalWrite(pin_relay_pump1, LOW);
 +
    pinMode(pin_relay_pump2, OUTPUT);
 +
    digitalWrite(pin_relay_pump2, LOW);
 +
    pinMode(pin_bt_start, INPUT);
 +
}
 +
 
 +
// the loop function runs over and over again forever
 +
void loop() {
 +
    Serial.println("I am LOOP\n");
 +
    Serial.println((int)(nState), DEC);
 +
    switch (nState) {
 +
    case  STATE_ON:
 +
        Serial.println("on");
 +
        digitalWrite(pin_relay_power, HIGH);
 +
        if (digitalRead(pin_bt_start) == LOW)
 +
            nState = STATE_JET;
 +
        break;
 +
    case  STATE_JET:
 +
        digitalWrite(pin_relay_pump1, HIGH);
 +
        digitalWrite(pin_relay_pump2, LOW);
 +
        delay(6000);
 +
        digitalWrite(pin_relay_pump1, LOW);
 +
        digitalWrite(pin_relay_pump2, LOW);
 +
        delay(2000);
 +
        nState = STATE_ASPI;
 +
        break;
 +
    case  STATE_ASPI:
 +
        digitalWrite(pin_relay_pump2, HIGH);
 +
        digitalWrite(pin_relay_pump1, LOW);
 +
        delay(5000);
 +
        nState = STATE_OFF;
 +
        break;
 +
    case  STATE_OFF:
 +
        digitalWrite(pin_relay_pump2, LOW);
 +
        digitalWrite(pin_relay_pump1, LOW);
 +
        delay(5000);
 +
        digitalWrite(pin_relay_power, LOW);
 +
        break;
 +
    default: Serial.println("I am default\n");
 +
    }
 +
 
 +
    /*digitalWrite(LED_BUILTIN, HIGH);
 +
        //digitalWrite(pin_led, HIGH);  // indicate via LED
 +
    delay(100);
 +
    digitalWrite(LED_BUILTIN, LOW);
 +
    delay(500);*/
 +
}
 +
#endif
 +
 
 +
</pre>
 +
 
 +
 
 +
'''Jour 2 : Mardi 18/07/2023'''
 +
 
 +
=== Installation d'une pédale (Japonaise) étanche de déclenchement ===
 +
 
 +
# Couper le connecteur existant et le remplacer par un connecteur Jack
 +
# Ajouter une modifications dans le code pour activer la fonction.
 +
 
 +
 
 +
[[File:1 Pedale Complete.jpg|400px]]
 +
 
 +
 
 +
[[File:2 Jack.jpg|400px]]
 +
 
 +
 
 +
[[File:3 Jack Installe.jpg|400px]]
 +
 
 +
 
 +
[[File:4 Jack Branche.jpg|400px]]
 +
 
 +
=== Modifications du modèle 3D et premiers tests ===
 +
 
 +
[[File:Buse DIY.jpg|400px]]
 +
 
 +
Les fichiers source de la buse :
 +
 
 +
*[[:File:NoTabooNozzleModel.zip]]
 +
*[[:File:Base.stl]]
 +
*[[:File:Buse.stl]]
 +
*[[:File:Capuchon.stl]]
 +
*[[:File:Coque.stl]]
 +
*[[:File:Joint.stl]]
 +
 
 +
[[File:Tableau.jpg]]
 +
 
 +
Nouvelle version de la buse (avec la hauteur corrigée) en phase de test. On réutilise le ressort d'origine dans un premier temps puis un ressort plus rigide qu'on comparera à la buse d'origine.
 +
 
 +
 
 +
Le premier test est très encourageant, le mécanisme de sortie et de rétractation de la buse fonctionne. Le seul souci est l'étanchéité de l'ensemble aux jonctions des pièces imprimées.
 +
 
 +
Nous prenons la décision de réaliser une buse test, démontable à l'aide de 4 vis. L'étanchéité entre la coque et la base se fait par un joint imprimé en TPU. L'étanchéité entre la buse et le capuchon se fait par un joint torique installé au fond de celui-ci. Cette buse démontable servira de banc de test pour différents ressorts.
 +
 
 +
 
 +
Le ressort d'origine est très souple et a les dimensions suivantes :
 +
 
 +
Diamètre du fil 0.3mm
 +
 
 +
Diamètre extérieur 11mm
 +
 
 +
Longueur : 75mm
 +
 
 +
Nombre de spire : entre 21 et 24 (Car l'une des extrémités du ressorts voit ses spires collées les unes aux autres)
 +
 
 +
 
 +
Joint torique:
 +
 
 +
1,2 cm de diamètre
 +
2mm de section
 +
 
 +
* Faire des tests avec le ressort d'origine.
 +
* Retrouver un ressort compatible.
 +
* Tests sur le proto Notaboo complet.
 +
 
 +
=== Électronique ===
 +
 
 +
 
 +
* Le Moniteur de batterie fonctionne en choisissant le nombre de cellule de la batterie grâce à un shunt à souder sur la carte. S3 dans noter cas car notre batterie à 3 cellules.
 +
 
 +
[[File:Monitor de batterie.jpg|400px]]
 +
 
 +
 
 +
[[File:Monitor de batterie. MOD.jpg|400px]]
 +
 
 +
 
 +
 
 +
* Le schéma modifié avec l'ajout du capteur de courant
 +
 
 +
* Zip avec tous les fichiers et le .pro pour éditer si besoin avec le logiciel [https://www.kicad.org/ Kicad] : [[:File:schéma V2.zip]]
 +
 
 +
* Rendu en .png
 +
 
 +
[[File:Schéma Notaboo V2.png|400px]]
 +
 
 +
* Image du relais
 +
 
 +
[[File:relais_5534_4rt_12vdc_5a_250v.jpg|400px]]
 +
 
 +
* Datasheet du relais
 +
 
 +
[https://www.atlantique-composants.fr/SpacePrivate/10020_FT.pdf Datasheet Relais]
 +
 
 +
 
 +
'''Jour 3 : Mercredi 19/07/2023'''
 +
 
 +
=== Étanchéité de la buse. ===
 +
 
 +
* Nous avons fait divers essai pour tenter de diminuer les fuites interne à notre buse, pour l'instant sans succès.
 +
 
 +
* Nous constatons 4 sources de fuites, pour rappel :
 +
 
 +
* 1 - En bas du noyau, la liaison enter le noyau et le capuchon
 +
 
 +
* 2 - Le jeu de fonctionnement entre le corps de la buse et le noyau
 +
 
 +
* 3 - L'assemblage entre le corps ,de la buse et le chapeau
 +
 
 +
* 4 - Jonction inter-couche d'impression 3D
 +
 
 +
 
 +
'''Jour 4 : Jeudi 20/07/2023'''
 +
 
 +
=== Étanchéité de la buse. ===
 +
 
 +
* Mise en place d'un joint torique de 1,2 cm de diamètre et 2mm de section au lieu de 1 cm de diamètre et 2 mm de section.
 +
 
 +
* Un joint silicone a été déposé dans le couvercle avant d'être assemblé, ce qui limite grandement les fuites.
 +
 
 +
* Le fait d'avoir amélioré l'étanchéité cela à augmenté les fuites entre 2 couches de PLA.
 +
 
 +
* Avec ces améliorations, la distance du jet de la buse DIY est égale à la buse d'origine.
 +
 
 +
* Nous re-lançons une impression avec plus de débit de plastique pour éviter les trous entre 2 couches et on met une jointure aléatoire de sorte que les point de début et fin de couche ne soient plus alignés pour éviter les fuites aussi au niveau de la couture.
 +
 
 +
* Réalisation d'un autre design du noyau de la buse pour ajouter un 2eme joint torique d'étanchéité.
 +
 
 +
* Réalisation d'un autre design pour le chapeau de la buse afin d'ajouter un tube qui descend dans le noyau
 +
 
 +
 
 +
==== Comparaison entre la buse DIY et celle d'origine ====
 +
 
 +
{{#ev:youtube|https://youtu.be/-JytSji7IG0}}
 +
 
 +
 
 +
'''5 eme jour Vendredi 21/07/2023'''
 +
 
 +
Test avec modification du design de la buse : Il y a toujours des fuites inter-couche
 +
 
 +
==Perspectives pour la suite==
 +
 
 +
=== Buses ===
 +
 
 +
Les buses en impression 3D FDM (Dépot de fils) ne conviennent pas à cause des fuites inter-couches.
 +
 
 +
Pistes :
 +
 
 +
* Prendre un corps de seringue afin d'avoir un corps étanche
 +
 
 +
* Tester avec impression SLA (Résine)
 +
 
 +
* Modifier le design pour améliorer l'étanchéité avec joint torique, joint à lèvres etc.
 +
 
 +
* Test avec injection thermoplastique
 +
 
 +
=== Support ===
 +
 
 +
* Il faut réussir à remplir le support (Sauf la partie recevant la buse, et en gardant le passage du tuyau) afin de pouvoir l'imprimer en flexible avec des densités différentes pour avoir un support plus ou moins flexible sur certaines parties, ce qui permettra de le poser sur un nombre de lunettes plus large.
 +
 
 +
 
 +
=== Réservoir ===
 +
 
 +
Notre prototype est prévue pour la bouteille de lessive.
 +
 
 +
Mais ce modèle de bouteille n'est pas trouvable dans toutes les régions de France, il faut trouver un modèle de bouteille le plus courant possible afin de pouvoir le remplacer ou en trouver une autre le cas échéant.
 +
 
 +
 
 +
== Fokus Notaboo INSA 2024 ==
 +
 
 +
''' Jour 1 et jour 2 '''
 +
 
 +
=== Buse ===
 +
 
 +
Grâce au HumanLab de chez ArianeGroup nous avons reçu une buse imprimée en SLA (Impression résine de haute précision). Il n'y a donc plus de fuites inter-couches du à la technique de dépôt de fil. Malheureusement il y a quand même des fuites, elles proviennent toutes de la liaison entre le corps et le chapeau.
 +
 
 +
Nous allons faire un joint silicone afin d'étancher cette partie puis refaire des tests.
 +
 
 +
=== Support ===
 +
 
 +
Grâce à l'INSA de Rennes nous avons accès à des machines multi-matériaux ainsi qu'à la personne référente de ces machines.
 +
 
 +
Nous sommes en train d'imprimer un support avec une densité variable ce qui permet d'avoir une flexion différente en fonction des parties du support.
 +
 
 +
Lucie, reprend le design du support, elle le sépare en 3 parties. 2parties seront en pla classique rigide, et entre ces 2 parties elle ajoute une section souple. la liaison des ces 3 parties se fait avec un entrelacement qui va créer une liaison qui mélange les plastiques, afin d'assurer une solidité au niveau de la liaison entre les divers éléments.
  
L'entré de ce module sur bornier à vis est câblé GND et le retour moteur.La sensibilité du capteur est de 185mV/A
+
[[Category:Inauguration]]

Version actuelle datée du 17 juillet 2024 à 10:08

Notaboo

Logonotaboov2.png

Ce projet recherche ces compétences :

Modélisation 3D

Informations
Description Un dispositif de "toilettes japonaises" portable constitué d'une petite pompe et d'un jet bien orienté !
Catégorie Motricité
Etat d'avancement En cours
Techniques
Durée de fabrication
Coût matériel
Niveau
Licence by-sa
Date de création 2022-10-18
Équipe
Porteur de projet Jérôme
Contributeurs Davidz, Perrine, Mireille, Frédérique, Yobi
Animateur ValentinMHK
Fabmanager Yo
Référent documentation Barth
Partenaires: Covéa
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

Description du projet

Description

"No Taboo" est un dispositif de "toilettes japonaises" portable et autonome que Jérôme développe depuis 2010. Il se compose d'un boîtier contenant une batterie lithium et son chargeur, une petite pompe à eau, et un contrôleur permettant d’actionner un cycle complet de rinçage en utilisant un unique bouton. Une bouteille d'un litre fait office de réservoir d'eau (remplissable au lavabo) et un support de buse clipsable sur n'importe quelle lunette de toilettes permet d'orienter précisément le jet.

Pour se rendre compte voici un lien vers la vidéo de mise en place : Notaboo

Schéma de principe

NoTaboo - Schéma de principe

Équipe

  • Jérôme : Porteur de projet
  • Mireille : Maman de Jérôme - Retraité
  • Valentin : Apprenti chez MHK - Bidouilleur, médiation numérique
  • Perrine : Ergothérapeute
  • Gaël : Bénévole chez MHK - Modélisation 3D
  • Frédérique : Direction engagement sociétale groupe Covéa
  • Yohann : Fabmanager MHK - Trouveur de solutions
  • Fabien : Designer
  • DavidZ : Bénévole chez MHK - Programmeur
  • Barth : Floss Manuals - documentation


L'équipe (sans Fabien)

Résumé

Différents prototypes ayant déjà été développés pour répondre au besoin de Jérôme, le Fabrikarium ne démarre donc pas sur une page blanche.

Partant du retour d'expérience de Jérôme, et suivant son souhait de mettre au point une solution partageable et modulable, il s'agit à présent de repenser l'existant en open-source, et d'ouvrir la porte à une production et une diffusion commerciale - le principe du Do-It-Yourself atteignant ses limites pour des publics avec handicaps moteurs.

Les trois jours du Fabrikarium sont dédiés à la conception d'un nouveau prototype de boîtier, à la refonte du circuit électronique (entièrement remplacé par un Arduino associé à un Relay Shield), et à la réalisation d'un prototype de télécommande infrarouge. Une part du temps et de l'énergie de l'équipe est également mobilisée pour trouver dans le commerce un bidon adéquat et une nouvelle sacoche.

Le support de buse (actuellement fonctionnel) n'est pas traité, et la buse elle-même pourrait faire l'objet d'un futur atelier de prototypage.

Analyse de l'existant et liens utiles

Solutions commerciales

L'entreprise Resobain propose par exemple l'installation de WC Japonais à domicile, mais ces solutions ne sont absolument pas mobiles..

Des vidéos de présentation de solutions :

Des solutions plus légères et portables existent mais sont généralement inadaptées pour des PMR :

TOTO Travel WASHLET
Inadapté en terme de motricité fine
Bidet de voyage WOWER
Absolument pas ergonomique...
Bidet mécanique
Doit être raccordé à l'eau / non mobile
TOTO - Travel WASHLET Bidet de voyage WOWER Bidet mécanique

Dernière version du prototype (2018)

NoTaboo - Prototype 2018


Sac de transport actuel
Dimensions : L.26 x l.19 x h.27 cm
Support de buse
Repliable - Imprimé en 3D
NoTaboo - Sacoche NoTaboo - Support de buse en action

Diagnostic de l'existant

Points validés par l'expérience Problèmes décelés
  • Poids maximum (environ 1,5 kg)
  • Volume d'eau de 1,25L
  • Autonomie d'utilisation (testé en voyage)
  • Boutons manipulables
  • Débit (environ 1L/min)
  • Boîtier trop fragile (se casse facilement)
  • Difficile à transporter longtemps (poids)
  • Préhension difficile du boîtier + Boutons trop petits
  • Réservoir difficile à remplir (manque d'ergonomie)
  • Bouteille plastique qui s'écrase à la prise en main
  • Manque de stabilité du réservoir dans le boîtier (risque de renversement)
  • Puissance/pression du jet trop faible
  • Imprécision dans le réglage de l'angle du jet
  • Bruit de la pompe (manque de discrétion)

Cahier des charges

Fonctionnalités principales

Portabilité :

  • Dimensions actuelles : L.26 x l.19 x H.27 cm
  • Poids : 1kg max
  • Doit être contenu dans une besace à enfiler autour du cou


Autonomie :

  • Volume d'eau = 1 litre (minimum pour une utilisation)
  • Batterie pour une autonomie électrique d'une semaine minimum


Ergonomie (adaptée pour une motricité limitée) :

  • Doit pouvoir fonctionner sans être sorti du sac (boutons en façade sur le dessus)
  • Bouton de mise sous tension en retrait pour éviter un déclenchement intempestif
  • Prise jack magnétique pour la recharge de la batterie (préhension plus aisée)
  • Support de buse adaptable à tous types de cuvettes/lunettes de WC
  • Le réservoir d'eau doit être solide, stable, facilement préhensible (dimensions, poignée, rigidité)

Fonctionnalités secondaires

  • Discrétion maximale du niveau sonore de fonctionnement (pompe)
  • Déclenchement à distance par un·e aidant·e (télécommande IR)
  • Déclenchement via différents modèles de télécommandes filaires adaptables pour toutes PSH (pédale..)
  • Jet orientable (angle différent si homme 43° ou femme 53° d'inclinaison)
  • Réglage de la puissance du jet (débit actuel = environ 1L/min)

Les contraintes

  • Matériau et conception du boîtier résistant aux chocs
  • Étanchéité des parties électriques et sécurisation de la batterie (transport en avion...)
  • Vidange intégrale du circuit hydraulique après usage (pour éviter les gouttes)
  • Réservoir d'eau remplissable (doit passer sous un robinet de lavabo) et remplaçable (bouteille du commerce)

Déroulement du Fabrikarium

Entrée en matière

Après un tour de table de présentation de l'équipe, la première demie-journée est consacrée à l'analyse des prototypes amenés par Jérôme et des modifications qu'il souhaite effectuer. Le tableau blanc se remplit très vite, le projet s’avérant beaucoup plus vaste qu'il n'y parait, mais un cahier des charges détaillé se dessine sous le contrôle de Perrine qui valide les aspects ergonomiques.

Notes de brainstorming collectif Brainstorming en équipe

La décision est prise de démarrer en répartissant l'équipe sur trois objectifs :

  • La recherche d'un bidon adéquat pour le réservoir d'eau
  • La conception d'un nouveau boîtier
  • La remise à plat de la partie électronique

Le bidon et la besace

La recherche d'une bouteille répondant au cahier des charges constitue une contrainte de départ incontournable pour le design du boîtier. Dès le premier jour, Jérôme, Mireille et Frédérique explorent donc quelques supermarchés et reviennent avec un bidon d'assouplissant et une bouteille de lait chocolaté. Le choix est vite tranché, l'assouplissant l'emporte haut la main !

Après nettoyage, et une petite modification du goulot par Valentin, le bidon est mesuré sous tous les angles et modélisé en 3D par Fabien.

Le bidon
Référence commerciale + Modélisation 3D
Modification du goulot
Le bec verseur est découpé avec un cutter
Le bidon sélectionné et modélisé en 3D Petite modification du bidon

Le matin du dernier jour, alors que les dimensions du prototype sont fixées, l'atelier shopping repart en quête d'une nouvelle sacoche à bandoulière. Ce point n'est pas documenté car il semble que les marques et les modèles possibles ne manquent pas ! Le modèle dégoté correspond aux dimensions du boîtier et convient à Jérôme.

Conception d'un nouveau prototype de boîtier

La plupart des éléments électroniques qui composent le boîtier avaient été commandés en amont du Fabrikarium. Gaël peut donc rapidement les modéliser en 3D et poser ainsi les bases de la conception du boîtier.


Composants principaux à intégrer dans le boîtier


Une réflexion collective s'ouvre ensuite sur l'aménagement interne et la façade du futur boîtier, en prenant en compte les questions d'étanchéité et les contraintes d'ergonomie et de mobilité listée dans le cahier des charges.


Validation collective de l'agencement


Quelques croquis et tâtonnements 3D permettent de valider un agencement logique et de passer au prototypage concret.

Grandes lignes de l'agencement Disposition des éléments

Un premier test, à l'échelle 1/2 et découpé au laser, concrétise le principe global du design : des parois verticales en contreplaqué 3mm courbé, et 2 plateaux imprimés en 3D pour le couvercle et le fond du boîtier.

Découpe laser de la maquette du boîtier Maquette à l'échelle 1/2 des parois du boîtier

Une première version est modélisée au soir du deuxième jour, mais les longues durées d'impression 3D poussent à envisager la possibilité d'une version de démo uniquement en bois pour assurer la présentation finale du Fabrikarium.


Plateau supérieur du boîtier


Dernier jour, Fabien nous livre le plateau supérieur qu'il a imprimé chez lui dans la nuit. Il ne reste plus qu'à découper le fond et les parois au laser et à assembler. En parallèle l'impression 3D de la poignée modélisée par Fabien se termine à quelques heures à peine de la fin.

Modélisation de la poignée par Fabien Impression 3D de la poignée

Premier assemblage rapide du boîtier

Câblage, circuit électronique et code

C'est Yohann qui prend en charge la partie électronique en commençant par un reverse-engineering de l’existant. Le circuit actuel, conçu et réalisé à grands frais par un cabinet d'étude privé, s'avère très complexe et intègre des éléments intrigants (capteur gyroscopique...)

Un nouveau circuit est imaginé, intégrant un Arduino équipé d'un Relays Shield, pour permettre le contrôle de la pompe au moyen du seul bouton de déclenchement.


Refonte du circuit électronique existant


Un premier montage sur Bread Board permet de tester et valider le fonctionnement du circuit électronique.

Nouveau schéma électronique Test du circuit électronique

A quelques heures de la fin du Fabrikarium il faut encore finaliser un câblage fonctionnel et coder le programme Arduino pour exécuter la séquence suivante :

  • Mise sous tension de l'appareil (bouton 1)
  • Déclenchement de la séquence (bouton 2)
  • La pompe tourne et vide le réservoir vers la buse
  • La pompe s'inverse, et vide le restant d'eau de la tuyauterie vers le réservoir
  • Le système s’éteint et se met hors tension.


Yohann et David sur le code et le circuit


David est sur le coup, et le système finit par fonctionner au moment de quitter la salle pour la présentation finale du Fabrikarium. L'assemblage du boîtier et le câblage de l'électronique ne seront pas finalisés, mais suffisamment stables pour tenter une démonstration avec de l'eau pour la présentation finale.


Le schéma final de l'électronique réalisé par Valentin


Le schéma final de l'électronique réalisé par Valentin après le Fabrikarium

Télécommande infrarouge

Démontage de la télécommande standard

En parallèle, Valentin s'est emparé de la conception d'une télécommande infra-rouge permettant de déclencher le dispositif à distance. La partie électronique est récupérée dans une petite télécommande standard, et il s'agit surtout de produire un boîtier ergonomique intégrant un bouton d'arcade, le circuit électronique, et une pile 12V, le tout étanche et solide.


Un premier essai en contreplaqué découpé au laser, testé par Jérôme sous l’œil attentif de Perrine, ne convainc finalement pas. Trop de travail de finition et un manque de rigidité et d'étanchéité.


Premier essai de télécommande en découpe laser


Petit usinage manuel sur le boîtier


L’impression 3D paraît plus appropriée, en deux parties :

  • Un tube en plastique dur
  • Un capuchon en plastique souple


Un peu d'usinage manuel sera nécessaire pour ajuster l'assemblage, pris en compte dans la dernière version des fichiers.


Version finale de la télécommande, imprimée en 3D

Buse, support de buse et tuyaux plastiques

Si le temps du Fabrikarium n'a pas été suffisant pour explorer les problématiques autour de la buse et de son support, de nombreuses discussions permettent de lister les principaux points suivants :

  • La buse/gicleur est un composant difficile à trouver en pièce détachée (celle que Jérôme utilise a été récupérée sur un modèle de bidet commercial)
  • C'est une pièce assez complexe, questions d'hydraulique..


Buse / gicleur


  • Le support de buse actuel, pliable et imprimable en 3D, est fonctionnel
  • Il nécessite des patins antidérapants (imprimés en 3D) pour adhérer à la lunette des wc.
  • Le raccordement du tuyau constitue une partie sensible et fragile.
Support de buse ouvert Support de buse replié pour le rangement

Restitution / bêta-test

Le Fabrikarium s'achève par une démonstration à la volée devant l'ensemble des participants, où un tonnerre d'applaudissements vient saluer l'arrosage intempestif de Bérangère (au premier rang), et valider ainsi en grandes pompes le principe du nouveau prototype ! Juste à temps, mais ça marche !!! Il ne reste plus qu'à le terminer dans les semaines qui suivront.

Suspens avant de mettre en route la démonstration Tension palpable dans la salle

Matériel, coût et durée

Liste du matériel

Les lignes orangées ne sont pas ou mal référencées..

DÉSIGNATION Qté CARACTÉRISTIQUES LIEN COÛT
ÉLECTRONIQUE ≃ 130,00 €
RC batterie 11.1V
HRB Lipo 3S 5000mah 50C XT60
1 Dimensions : 155 x 48 x 24 mm
Poids : 376g
amazon.fr ≃ 50,00 €
Contrôleur de charge
Turnigy 12v 2-3S Basic Balance Charger ATTENTION Il faut absolument un chargeur alimenté en 12V et pas en 220V !!
1 Dimensions : 74 x 50 x 25 mm
Poids : 46 g
hobbyking.com ou robosavvy.co.uk 5,27 €
Témoin de charge
ATTENTION pour l'utiliser il faut souder ajouter un point de soudure sur le S3 qui attend que l'on fixe le nombre de cellule
1 3.7V / 7.4V / 11.1V / 14.8V
Indicateur de Batterie Li-po
banggood.com 7,79 €
Connecteur de charge magnétique 1 3 broches de contact à angle droit
Pas de 2,54 mm
gotronic.fr 7,95 €
Boutons poussoirs
Jeu d'arcade, avec lumière LED
2 Diamètre : 28 mm
Hauteur : 43 mm
alibaba.com 1,08 €
Arduino Uno Rev3 1 ATMega328 cadencé à 16 MHz
Dimensions : 68.6 x 53.4 mm
Poids : 25 g
arduino.cc 24,00 €
Arduino 4 Relays Shield
Maximum load voltage : 48 V
1 Dimensions : 68.5 x 53 mm
Poids : 44 g
arduino.cc 24,00 €
Connecteur télécommande 1 [] ??,?? €
Récepteur télécommande 1 RF sans fil pour télécommande 1527
433mhz - 4 canaux
aliexpress.com 1,07 €
Câble + Connecteurs ? [] ??,?? €
CIRCUIT HYDRAULIQUE ≃ 30,00 €
Pompe de transmission à carburant
MODELCRAFT - 12V 1,4A
1 Dimensions : 70 x 56 x 33 mm
Poids : 77g
Débit : 500 - 600 ml/min
conrad.fr 12,99 €
Bidon 1 "Kind par Nature" - Assouplissant Bio - 1 L [] 10,00 €
Tuyaux
APDatec PVC 840 cristal clair
Besoin : 1,8 m Diam. 4 mm - Ep. 1 mm - (100m = 25,04 €) outillage-industrie.com
apd-schlauchtechnik.de
≃ 0,50 €
Buse 1 [] ??,?? €
PARTIES MÉCANIQUES ≃ 40,00 €
Contreplaqué 5mm Dimensions : ? ??,?? €
Fil PLA impression 3D Longueur : ? ??,?? €
Fil TPU plastique souple impression 3D Longueur : ? ??,?? €
Vis 6 ? M? - ?? mm [] ??,?? €
Écrous 6 ? M? - ?? mm [] ??,?? €
Mastic de rebouchage ??,?? €
Peinture ??,?? €
ESTIMATION DU COÛT TOTAL ≃ 200,00 €

Outils nécessaires

Électronique

  • Fer à souder
  • Multimètre


Fabrication

  • Découpeuse laser
  • Imprimante 3D
  • Outils manuels : Tournevis, clés...
  • Spatule et pinceaux (pour la finition des parois)

Temps de fabrication

Les temps de fabrications ne sont pas encore documentés, à compléter lors de la finalisation future du prototype

Action Durée estimée
Impression 3D - Plateaux du boîtier ?? h
Impression 3D - Poignée ?? h
Impression 3D - Boîtier de télécommande ?? h
Impression 3D - Support de buse ?? h
Impression 3D - Patins du support de buse ?? h
Impression 3D - Capuchon de télécommande ?? h
Découpe laser - Parois du boîtier ?? h
Assemblage du boîtier ?? h
Soudures + câblage ?? h
Finitions d'étanchéité sur les parois ?? h
TOTAL ?? h

Fichiers source

Boîtier - Parois (découpe laser contreplaqué 3mm)


Boîtier - Impressions 3D


Télécommande - Impressions 3D

  • Modifiable : Modélisation télécommande - à compléter


Electronique - KiCad

Étapes de fabrication pas à pas

Le Fabrikarium n'a pas permis d'aboutir à une réalisation finalisée du prototype, les étapes de fabrications, particulièrement l'assemblage, le câblage et les finitions d'étanchéité ne peuvent donc pas faire l'objet d'une documentation complète pour le moment.

Cependant, voici les principales étapes de fabrication telles qu'imaginées, mais qui restent à faire et documenter

Fabrication du boîtier

  1. Impressions 3D : couvercle + fond + poignée + renfort central + connecteurs verticaux (x8)
  2. Découpe laser des parois du boîtier (contreplaqué 3mm)
  3. Assemblage sans l'électronique (vis)
  4. Enduit + peinture sur les parois en contreplaqué
  5. Ouverture du couvercle
  6. Assemblage des éléments de façade (boutons + voyants + connecteurs)
  7. Assemblage des éléments interne (batterie + pompe + contrôleur de charge + Arduino/Shield)
  8. Câblage et test du circuit
  9. Fermeture du couvercle


Éléments à imprimer en 3D pour le boîtier

Éléments imprimés en 3D


Principe d'assemblage

Assemblage des parties imprimées + vis Intégration des composants

Câblage & Code

Le schéma suivant doit être précisé pour détailler le câblage sur la carte Arduino :

Schéma de câblage à compléter

L'Arduino doit être programmé avec le code suivant :

//a 2022/10/22: use Arduino
//#include<stdio.h>

// define pin
// input
const int pin_bt_on  = 10;
const int pin_bt_start  = 5;

// output
const int pin_relay_pump1  = 4;
const int pin_relay_pump2  = 7;
const int pin_relay_power  = 8;
const int pin_led = 9;

// states
enum state {
  STATE_ON=10, STATE_JET, STATE_ASPI, STATE_OFF
  };

// define state buttons
bool bt_on  = LOW;
bool bt_start = LOW;

state nState = STATE_ON;
  
void setup() {
  // initialize pin
    Serial.begin(9600);
  pinMode(pin_relay_power, OUTPUT);
  digitalWrite(pin_relay_power, HIGH);
  pinMode(pin_relay_pump1, OUTPUT);
  digitalWrite(pin_relay_pump1, LOW);
  pinMode(pin_relay_pump2, OUTPUT);
  digitalWrite(pin_relay_pump2, LOW);
  pinMode(pin_bt_start,INPUT);
}

// the loop function runs over and over again forever
void loop() {
  Serial.println("I am LOOP\n");
  Serial.println((int)(nState), DEC);
 switch (nState) {
   case   STATE_ON:
          Serial.println("on");
          digitalWrite(pin_relay_power, HIGH);
          if(digitalRead(pin_bt_start)==LOW)
            nState=STATE_JET;
           break;
   case   STATE_JET: 
          digitalWrite(pin_relay_pump1, HIGH);
          digitalWrite(pin_relay_pump2, LOW);
          delay(6000);
          digitalWrite(pin_relay_pump1, LOW);
          digitalWrite(pin_relay_pump2, LOW);
          delay(2000);
          nState=STATE_ASPI;
           break;
   case   STATE_ASPI: 
          digitalWrite(pin_relay_pump2, HIGH);
          digitalWrite(pin_relay_pump1, LOW);
          delay(5000);
          nState=STATE_OFF;
           break;
   case   STATE_OFF:
          digitalWrite(pin_relay_pump2, LOW);
          digitalWrite(pin_relay_pump1, LOW);
          delay(5000);
          digitalWrite(pin_relay_power, LOW);
        break;
   default: Serial.println("I am default\n");
  }
  
  /*digitalWrite(LED_BUILTIN, HIGH);
      //digitalWrite(pin_led, HIGH);  // indicate via LED
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);*/
}

Télécommande

  1. Impression 3D du boîtier et de son capuchon
  2. Démontage de la télécommande commerciale (on ne garde que l'électronique)
  3. Montage de connecteurs sur deux câbles reliant le bouton poussoir au circuit électronique
  4. Soudure des câbles au circuit électronique
  5. Insertion du circuit et de la pile
  6. Connexion des câbles sur le bouton déclencheur (connecteurs)
  7. Insertion du bouton dans le boîtier (en force)
  8. Fermeture du capuchon

Fabrication du support de buse

Cette partie ne fait pas l'objet d'une documentation. Les points suivants sont à explorer :

  1. Impressions 3D : Support de buse + Embouts antidérapant
  2. Fixation de la buse ?
  3. Tuyauterie interne ?
  4. Système de charnière pour replier ?
  5. Fermeture du support - Vis ? Colle ?

Bilan

Avancées réalisées

Le Fabrikarium a permis de concevoir :

  • Un nouveau design de boîtier reproductible dans n'importe quel FabLab
  • Un circuit électronique + code fonctionnels
  • Une télécommande infra-rouge fonctionnelle

Reste à faire

Si les grandes lignes du nouveau design sont bien avancées, la version fabriquée lors du Fabrikarium est trop brute et nécessite une finition détaillée avant un nouveau tirage (Impression 3D + Découpe laser)

Le travail de finition sur les parois du boîtier (mastic + peinture) doit être fait et documenté pour pouvoir valider le prototype du boîtier.

La partie code du Arduino, si elle a fonctionné une fois, doit aussi faire l'épreuve du bêta-test pour éventuellement être un peu précisée.

La batterie présente sans doute un problème de sécurité (risque d'explosion, voyage en avion...) Un renfort de protection (en Kevlar par exemple) pourrait être une solution.

Une fois le prototype abouti, il faudra bien sûr le mettre en fonction en situation réelle, et rapporter les problèmes décelés en vue d'une version 2.

Pistes pour la suite

  • La réalisation d'une sacoche sur mesure pourrait faire l'objet d'un futur développement. -> Non Réalisé
  • Il serait aussi intéressant de concevoir une version open-source de la buse -> En cours, voir Fokus INSA
  • Il serait aussi intéressant de concevoir une version open-source de son support, en s'appuyant sur l'existant, et en intégrant la possibilité de moduler l'orientation du jet. -> En cours, voir Fokus INSA
  • La pression pourrait être modulé en faisant varié la raideur du ressort et/ou le diamètre des trous de sortie

Fabrikarium Tokyo

Les pistes d’améliorations qui seront travaillés durant l'événement sont :


Refaire un support qui peut se mettre sur un maximum d'abattants

Le support a été redessiner par : taisuke okazaki -> https://okazaki000.studio.site/

Il a imprimé avec du filament flexible TPU95.

Il faut maintenant faire des test en imprimant plusieurs support afin de déterminer quel sera le bon remplissage et la bonne épaisseur due la coque.


Redessiner une buse open source car celle utilisée n'est plus disponible

La nouvelle buse a été dessiner par Takumi Ohtani

Il a redessiné la buse avec le logiciel Fusion 360 : puis il a imprimé en PLA

Chercher une solution pour régler l'inclinaison de la buse de maniere manuelle pour l'instant, puis électrique par la suite

Munehiko Matama a tester un dispositif pour faire varier l'inclinaison de la buse avec un levier et un câble en acier.

Il a utilisé Tinkercad puis l'a imprimé en PLA


Takeshi Okamatsu à réalisé un système automatisé qui va permettre de faire varier l'inclinaison de la buse avec un capteur de distance qui va permettre à Jérôme d'agir avec le bras ou le pied sur l'inclinaison de la buse.


Mettre en place la télécommande de déclenchement et mettre à jour le code

François Pasteau a ajouter le récepteur de la télécommande sur le circuit électrique.

Il a mis à jour le code

Il a ajouté la fonction mesure du courant pour permettre de savoir si le système fonctionne avec ou sans eau.

cela va permettre de mettre Notaboo à l'arrêt lorsque le réservoir est vide, afin de préserver la pompe à eau qui n'aime pas fonctionner à vide.

Fokus Notaboo INSA 2023

Jour 1 : Lundi 17/07/2023

Essai de la buse Japan + modification du design

Vidéos de présentation des buses :

Buse 1

Buse 2

Buse 2 Démontage


La buse modélisée lors du Fabrikarium Tokyo avait quelques problèmes :

  • Les supports bouchaient les filetages
  • La sortie de la buse était décalée de 90°
  • Une butée manquait sur le corps de la buse rendant l'installation du ressort impossible
  • La forme hexagonale du capuchon le rendait peu hygiénique
  • La densité des supports rendait le nettoyage des prints difficile

Les fichiers ont été modifiés par Valentin pour résoudre ces problèmes. Thomas a apporté ses connaissances sur la génération des supports pour les optimiser.

La première impression était plutôt concluante visuellement, il y aura juste une hauteur à modifier.

  • Mais lors du premier essai en vrai, 4 sources de fuites ont été constaté.

1 - La liaison filetée entre le capuchon et le noyau

2 - Le jeu fonctionnel entre le corps et le noyau

3 - La liaison entre le chapeau et le corps

4 - Des petites fuites entre 2 couches d'impression


Constater par vous même :

Installation du relais de charge de batterie


  • Circuit électrique du relais

Capture du 2023-07-18 12-44-50.png


  • Le relais à 4 sections et alimenté en 12V. Le 12V est pris directement au niveau du connecteur circulaire magnétique. Sur les contacts de relais le commun est relié à la sortie du chargeur, un fil par section. Le contact travail du relais est relié à la batterie, un fil par section.


  • La mise en place de ce relais évite la décharge de la batterie lorsque le chargeur n'est pas alimenté. Au moment de la connexion du chargeur grâce au connecteur magnétique, le relais est alimenté et connecte la batterie sur la sortie du chargeur.


  • Le voyant rouge et le voyant vert s'allument, le voyant vert s'éteint, puis se rallume et reste allumé.

La charge commence, environ 1A, temps de charge de 5h

Installation du module de contrôle de courant ACS712ELC-05B

Ce capteur peut, avec la même référence, être dimensionné pour mesurer un courant maximum de 5A ou de 20A.

  • Le modèle que nous avons acheté est en version 5A, mais la référence suivante est pour le modèle 20A (Si vous leur demander le 5A ils peuvent vous le trouver aussi, mais la référence n'est pas sur le site ^^ : capteur-de-courant-acs712-20a
  • Ce module est chargé de transformer le courant du retour moteur en une tension adaptée à l'entré A0 de la carte Arduino Uno. Ce module est alimenté en 5V et fourni une tension égale à la moitié de son alimentation (2,5V).
  • L'entrée de ce module sur bornier à vis est câblé sur le GND et le retour moteur. La sensibilité du capteur est de 185mV/A.

Code Version 2

  • On a ajouté la mesure du courant de pompe.

La mesure du courant nous donne environ 1A en charge et 0.6A à vide (C'est à dire que la pompe aspire de l'air, on doit l'arrêter).

  • On a ajouté un module ACS712ELC-05B 5A

Ce module fournit une tension de 2.645V en charge (Avec de l'eau) ce qui correspond en valeur numérique à 550 dans l'Arduino

Il fournit 2.56V à vide (Sans eau) ce qui correspond en valeur numérique à 530 dans l'Arduino

On à fixé le seuil de détection de détection de niveau bas à 532 dans l'Arduino

Pour filtrer les valeurs mesurées par le module on a placé un filtre coupe bas fixé dans la variable ALPHA à 0.9

Pour laisser à la pompe le temps de monter en charge on a fixé un délai de 5 Sec.

  • Il y a une coupure générale lorsque l'on met le système sous tension et que l'on appui pas sur le bouton de déclenchement du jet.
  • Il arrive que le dispositif effectue un pompage pour envoyer le débit d'eau, mais la séquence s’arrête et l'étape de retour de l'eau ne s'effectue pas. Dans ce cas la coupure générale n'est pas activée.


  • Le dossier Zip du code en version 2

Media:main01.zip


//Notaboo V2
//https://notaboo.solutions/
//https://wikilab.myhumankit.org/index.php?title=Projets:Notaboo
//Release 20/07/2023
//CC By SA


#ifndef OLD

#include <Arduino.h>

#define PIN_ANALOG_CURRENT  0
#define PIN_ON_OFF          2
#define PIN_JACK            3
#define PIN_RELAY_PUMP1     4
#define PIN_BT_START        5
#define PIN_RF              6
#define PIN_RELAY_PUMP2     7
#define PIN_RELAY_POWER     8
#define PIN_LED             9
#define PIN_LED_ON          11
#define PIN_LED_START       10

#define ALPHA               0.900f


// states
enum state {
    STATE_ON, START_JET, STOP_JET, STATE_ASPI, STATE_OFF, TURN_OFF
};

// define state buttons
uint32_t now;
uint32_t led_now;
float prev_current = 0.0f;
int pinState = 0;

state nState = STATE_ON;
bool on_off_released = false;


bool checkInput(){
    return ((digitalRead(PIN_BT_START) == LOW) || (digitalRead(PIN_RF) == LOW) || (digitalRead(PIN_JACK) == LOW));
}

bool checkOnOff(){
    return ((digitalRead(PIN_ON_OFF) == HIGH));
}

void setup() {
    // initialize pin
    pinMode(PIN_RELAY_POWER, OUTPUT);
    digitalWrite(PIN_RELAY_POWER, HIGH);
    pinMode(PIN_LED_ON, OUTPUT);
    digitalWrite(PIN_LED_ON, HIGH);
    pinMode(PIN_LED_START, OUTPUT);
    digitalWrite(PIN_LED_START, HIGH);
    Serial.begin(9600);
    pinMode(PIN_RELAY_PUMP1, OUTPUT);
    digitalWrite(PIN_RELAY_PUMP1, LOW);
    pinMode(PIN_RELAY_PUMP2, OUTPUT);
    digitalWrite(PIN_RELAY_PUMP2, LOW);
    pinMode(PIN_BT_START, INPUT_PULLUP);
    pinMode(PIN_JACK, INPUT_PULLUP);
    pinMode(PIN_RF, INPUT_PULLUP);
    pinMode(LED_BUILTIN, OUTPUT);
    pinMode(PIN_ON_OFF, INPUT);
    digitalWrite(LED_BUILTIN, pinState);
    //analogReference(INTERNAL);
    now = millis();
    led_now = millis();
    Serial.println("STATE_ON");
}

// the loop function runs over and over again forever
void loop() {
    switch (nState) {
    case   STATE_ON:
        digitalWrite(PIN_RELAY_POWER, HIGH);
        if (checkInput()){
            Serial.println("START_JET");
            nState = START_JET;
            now = millis();
        }
        if((uint32_t) (millis() - now) > 300000){
            Serial.println("STATE_OFF");
            nState = STATE_OFF;
            now = millis();
        }
        if(on_off_released && checkOnOff() && ((uint32_t) (millis() - now) > 2000)){
            Serial.println("STATE_OFF");
            nState = STATE_OFF;
            now = millis();
        }
        break;
    case   START_JET:
        digitalWrite(PIN_RELAY_PUMP1, HIGH);
        //digitalWrite(PIN_RELAY_PUMP1, LOW);
        digitalWrite(PIN_RELAY_PUMP2, LOW);
        if((uint32_t) (millis() - now) > 60000){
            Serial.println("STOP_JET60000");
            nState = STOP_JET;
            now = millis();
        }
        {
           int current = analogRead(PIN_ANALOG_CURRENT);
           prev_current = ALPHA * prev_current + (1.0f - ALPHA) * current;
            Serial.print(prev_current);
            Serial.println(",");
            if((((uint32_t) (millis() - now) > 5000) && (prev_current < 532))||((uint32_t) (millis() - now) > 30000)){
                Serial.println("STOP_JET532");
                nState = STOP_JET;
                now = millis();
            }
        }
        if(((uint32_t) (millis() - now) > 1000) && (checkInput() || checkOnOff())){
            Serial.println("STOP_JET1000");
            nState = STOP_JET;
            now = millis();
        }
        break;
    case STOP_JET:
        digitalWrite(PIN_RELAY_PUMP1, LOW);
        digitalWrite(PIN_RELAY_PUMP2, LOW);
        if((uint32_t) (millis() - now) > 2000){
            Serial.println("STATE_ASPI");
            nState = STATE_ASPI;
            now = millis();
        }
        break;
    case   STATE_ASPI:
        digitalWrite(PIN_RELAY_PUMP2, HIGH);
        digitalWrite(PIN_RELAY_PUMP1, LOW);
        if((uint32_t) (millis() - now) > 5000){
            Serial.println("STATE_OFF");
            nState = STATE_OFF;
            now = millis();
        }
        break;
    case   STATE_OFF:
        digitalWrite(PIN_RELAY_PUMP2, LOW);
        digitalWrite(PIN_RELAY_PUMP1, LOW);
        if((uint32_t) (millis() - now) > 5000){
            Serial.println("TURN_OFF");
            nState = TURN_OFF;
            now = millis();
        }
        break;
    case TURN_OFF:
        digitalWrite(PIN_RELAY_POWER, LOW);
        break;
    default: 
        Serial.println( nState, DEC);
        break;
    }

    if((uint32_t)(millis() - led_now) > 500){
        led_now = millis();
        pinState ^= 0x01;
        digitalWrite(LED_BUILTIN, pinState);
        if(nState == STATE_ON ||  nState == STOP_JET){
            digitalWrite(PIN_LED_START, pinState);
        }
        else if(nState == STATE_ASPI || nState == START_JET){
            digitalWrite(PIN_LED_START, HIGH);
        } else {
            digitalWrite(PIN_LED_START, LOW);
        }
        if(nState == STATE_OFF){
            digitalWrite(PIN_LED_ON, pinState);
        }

    }
    on_off_released |= (!checkOnOff());

}


#else
//a 2022/10/22: use Arduino
//#include<stdio.h>
#include <Arduino.h>

// define pin
// input
const int pin_bt_on = 10;
const int pin_bt_start = 5;

// output
const int pin_relay_pump1 = 4;
const int pin_relay_pump2 = 7;
const int pin_relay_power = 8;
const int pin_led = 9;

// states
enum state {
    STATE_ON = 10, STATE_JET, STATE_ASPI, STATE_OFF
};

// define state buttons
bool bt_on = LOW;
bool bt_start = LOW;

state nState = STATE_ON;

void setup() {
    // initialize pin
    Serial.begin(9600);
    pinMode(pin_relay_power, OUTPUT);
    digitalWrite(pin_relay_power, HIGH);
    pinMode(pin_relay_pump1, OUTPUT);
    digitalWrite(pin_relay_pump1, LOW);
    pinMode(pin_relay_pump2, OUTPUT);
    digitalWrite(pin_relay_pump2, LOW);
    pinMode(pin_bt_start, INPUT);
}

// the loop function runs over and over again forever
void loop() {
    Serial.println("I am LOOP\n");
    Serial.println((int)(nState), DEC);
    switch (nState) {
    case   STATE_ON:
        Serial.println("on");
        digitalWrite(pin_relay_power, HIGH);
        if (digitalRead(pin_bt_start) == LOW)
            nState = STATE_JET;
        break;
    case   STATE_JET:
        digitalWrite(pin_relay_pump1, HIGH);
        digitalWrite(pin_relay_pump2, LOW);
        delay(6000);
        digitalWrite(pin_relay_pump1, LOW);
        digitalWrite(pin_relay_pump2, LOW);
        delay(2000);
        nState = STATE_ASPI;
        break;
    case   STATE_ASPI:
        digitalWrite(pin_relay_pump2, HIGH);
        digitalWrite(pin_relay_pump1, LOW);
        delay(5000);
        nState = STATE_OFF;
        break;
    case   STATE_OFF:
        digitalWrite(pin_relay_pump2, LOW);
        digitalWrite(pin_relay_pump1, LOW);
        delay(5000);
        digitalWrite(pin_relay_power, LOW);
        break;
    default: Serial.println("I am default\n");
    }

    /*digitalWrite(LED_BUILTIN, HIGH);
        //digitalWrite(pin_led, HIGH);  // indicate via LED
    delay(100);
    digitalWrite(LED_BUILTIN, LOW);
    delay(500);*/
}
#endif


Jour 2 : Mardi 18/07/2023

Installation d'une pédale (Japonaise) étanche de déclenchement

  1. Couper le connecteur existant et le remplacer par un connecteur Jack
  2. Ajouter une modifications dans le code pour activer la fonction.


1 Pedale Complete.jpg


2 Jack.jpg


3 Jack Installe.jpg


4 Jack Branche.jpg

Modifications du modèle 3D et premiers tests

Buse DIY.jpg

Les fichiers source de la buse :

Tableau.jpg

Nouvelle version de la buse (avec la hauteur corrigée) en phase de test. On réutilise le ressort d'origine dans un premier temps puis un ressort plus rigide qu'on comparera à la buse d'origine.


Le premier test est très encourageant, le mécanisme de sortie et de rétractation de la buse fonctionne. Le seul souci est l'étanchéité de l'ensemble aux jonctions des pièces imprimées.

Nous prenons la décision de réaliser une buse test, démontable à l'aide de 4 vis. L'étanchéité entre la coque et la base se fait par un joint imprimé en TPU. L'étanchéité entre la buse et le capuchon se fait par un joint torique installé au fond de celui-ci. Cette buse démontable servira de banc de test pour différents ressorts.


Le ressort d'origine est très souple et a les dimensions suivantes :

Diamètre du fil 0.3mm

Diamètre extérieur 11mm

Longueur : 75mm

Nombre de spire : entre 21 et 24 (Car l'une des extrémités du ressorts voit ses spires collées les unes aux autres)


Joint torique:

1,2 cm de diamètre 2mm de section

  • Faire des tests avec le ressort d'origine.
  • Retrouver un ressort compatible.
  • Tests sur le proto Notaboo complet.

Électronique

  • Le Moniteur de batterie fonctionne en choisissant le nombre de cellule de la batterie grâce à un shunt à souder sur la carte. S3 dans noter cas car notre batterie à 3 cellules.

Monitor de batterie.jpg


Monitor de batterie. MOD.jpg


  • Le schéma modifié avec l'ajout du capteur de courant
  • Rendu en .png

Schéma Notaboo V2.png

  • Image du relais

Relais 5534 4rt 12vdc 5a 250v.jpg

  • Datasheet du relais

Datasheet Relais


Jour 3 : Mercredi 19/07/2023

Étanchéité de la buse.

  • Nous avons fait divers essai pour tenter de diminuer les fuites interne à notre buse, pour l'instant sans succès.
  • Nous constatons 4 sources de fuites, pour rappel :
  • 1 - En bas du noyau, la liaison enter le noyau et le capuchon
  • 2 - Le jeu de fonctionnement entre le corps de la buse et le noyau
  • 3 - L'assemblage entre le corps ,de la buse et le chapeau
  • 4 - Jonction inter-couche d'impression 3D


Jour 4 : Jeudi 20/07/2023

Étanchéité de la buse.

  • Mise en place d'un joint torique de 1,2 cm de diamètre et 2mm de section au lieu de 1 cm de diamètre et 2 mm de section.
  • Un joint silicone a été déposé dans le couvercle avant d'être assemblé, ce qui limite grandement les fuites.
  • Le fait d'avoir amélioré l'étanchéité cela à augmenté les fuites entre 2 couches de PLA.
  • Avec ces améliorations, la distance du jet de la buse DIY est égale à la buse d'origine.
  • Nous re-lançons une impression avec plus de débit de plastique pour éviter les trous entre 2 couches et on met une jointure aléatoire de sorte que les point de début et fin de couche ne soient plus alignés pour éviter les fuites aussi au niveau de la couture.
  • Réalisation d'un autre design du noyau de la buse pour ajouter un 2eme joint torique d'étanchéité.
  • Réalisation d'un autre design pour le chapeau de la buse afin d'ajouter un tube qui descend dans le noyau


Comparaison entre la buse DIY et celle d'origine


5 eme jour Vendredi 21/07/2023

Test avec modification du design de la buse : Il y a toujours des fuites inter-couche

Perspectives pour la suite

Buses

Les buses en impression 3D FDM (Dépot de fils) ne conviennent pas à cause des fuites inter-couches.

Pistes :

  • Prendre un corps de seringue afin d'avoir un corps étanche
  • Tester avec impression SLA (Résine)
  • Modifier le design pour améliorer l'étanchéité avec joint torique, joint à lèvres etc.
  • Test avec injection thermoplastique

Support

  • Il faut réussir à remplir le support (Sauf la partie recevant la buse, et en gardant le passage du tuyau) afin de pouvoir l'imprimer en flexible avec des densités différentes pour avoir un support plus ou moins flexible sur certaines parties, ce qui permettra de le poser sur un nombre de lunettes plus large.


Réservoir

Notre prototype est prévue pour la bouteille de lessive.

Mais ce modèle de bouteille n'est pas trouvable dans toutes les régions de France, il faut trouver un modèle de bouteille le plus courant possible afin de pouvoir le remplacer ou en trouver une autre le cas échéant.


Fokus Notaboo INSA 2024

Jour 1 et jour 2

Buse

Grâce au HumanLab de chez ArianeGroup nous avons reçu une buse imprimée en SLA (Impression résine de haute précision). Il n'y a donc plus de fuites inter-couches du à la technique de dépôt de fil. Malheureusement il y a quand même des fuites, elles proviennent toutes de la liaison entre le corps et le chapeau.

Nous allons faire un joint silicone afin d'étancher cette partie puis refaire des tests.

Support

Grâce à l'INSA de Rennes nous avons accès à des machines multi-matériaux ainsi qu'à la personne référente de ces machines.

Nous sommes en train d'imprimer un support avec une densité variable ce qui permet d'avoir une flexion différente en fonction des parties du support.

Lucie, reprend le design du support, elle le sépare en 3 parties. 2parties seront en pla classique rigide, et entre ces 2 parties elle ajoute une section souple. la liaison des ces 3 parties se fait avec un entrelacement qui va créer une liaison qui mélange les plastiques, afin d'assurer une solidité au niveau de la liaison entre les divers éléments.