Différences entre versions de « Projets:Notaboo »
(75 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, | + | |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 | + | * 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 | + | 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 : | La buse modélisée lors du Fabrikarium Tokyo avait quelques problèmes : | ||
Ligne 826 : | Ligne 841 : | ||
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. | 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] |
+ | |||
+ | |||
+ | * 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é. | + | * 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 | 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' | + | * 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 === | === Code Version 2 === | ||
Ligne 849 : | Ligne 894 : | ||
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). | 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 | + | * 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 | 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 | ||
Ligne 860 : | Ligne 905 : | ||
Pour laisser à la pompe le temps de monter en charge on a fixé un délai de 5 Sec. | 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''' | '''Jour 2 : Mardi 18/07/2023''' | ||
− | === Installation pédale de déclenchement === | + | === Installation d'une pédale (Japonaise) étanche de déclenchement === |
# Couper le connecteur existant et le remplacer par un connecteur Jack | # Couper le connecteur existant et le remplacer par un connecteur Jack | ||
# Ajouter une modifications dans le code pour activer la fonction. | # 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. | * Faire des tests avec le ressort d'origine. | ||
* Retrouver un ressort compatible. | * Retrouver un ressort compatible. | ||
− | |||
* Tests sur le proto Notaboo complet. | * 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. | ||
− | + | [[Category:Inauguration]] |
Version actuelle datée du 17 juillet 2024 à 10:08
Notaboo | |
---|---|
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
É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
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 |
Dernière version du prototype (2018)
Sac de transport actuel Dimensions : L.26 x l.19 x h.27 cm |
Support de buse Repliable - Imprimé en 3D |
Diagnostic de l'existant
Points validés par l'expérience | Problèmes décelés |
|
|
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.
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 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.
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.
Quelques croquis et tâtonnements 3D permettent de valider un agencement logique et de passer au prototypage concret.
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.
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.
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.
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.
Un premier montage sur Bread Board permet de tester et valider le fonctionnement 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.
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 après le Fabrikarium
Télécommande infrarouge
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é.
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.
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..
- 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.
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.
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)
- Modifiable : notaboo_parois_boitier.svg (12,9 kB)
- Imprimable : notaboo_parois_boitier.dxf (111,0 kB)
Boîtier - Impressions 3D
- Imprimables : (format .stl) - notaboo_boitier_3Dprint_stl.zip (750,5 kB)
- Modifiable : (format .f3z Fusion) - Assemblage 5 No Taboo v107.zip (14,6 mB)
Télécommande - Impressions 3D
- Imprimable : Corps (PLA) - notaboo_telecommande_boitier.stl (183,5 kB)
- Imprimable : Capuchon (TPU plastique souple) - notaboo_telecommande_capuchon.stl (190,5 kB)
- Modifiable : Modélisation télécommande - à compléter
Electronique - KiCad
- Modifiable : (format kicad_pro) - Projet Kicad.zip (14,6 mB)
É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
- Impressions 3D : couvercle + fond + poignée + renfort central + connecteurs verticaux (x8)
- Découpe laser des parois du boîtier (contreplaqué 3mm)
- Assemblage sans l'électronique (vis)
- Enduit + peinture sur les parois en contreplaqué
- Ouverture du couvercle
- Assemblage des éléments de façade (boutons + voyants + connecteurs)
- Assemblage des éléments interne (batterie + pompe + contrôleur de charge + Arduino/Shield)
- Câblage et test du circuit
- Fermeture du couvercle
Éléments à imprimer en 3D pour le boîtier
Principe d'assemblage
Câblage & Code
Le schéma suivant doit être précisé pour détailler le câblage sur la carte Arduino :
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
- Impression 3D du boîtier et de son capuchon
- Démontage de la télécommande commerciale (on ne garde que l'électronique)
- Montage de connecteurs sur deux câbles reliant le bouton poussoir au circuit électronique
- Soudure des câbles au circuit électronique
- Insertion du circuit et de la pile
- Connexion des câbles sur le bouton déclencheur (connecteurs)
- Insertion du bouton dans le boîtier (en force)
- Fermeture du capuchon
Fabrication du support de buse
Cette partie ne fait pas l'objet d'une documentation. Les points suivants sont à explorer :
- Impressions 3D : Support de buse + Embouts antidérapant
- Fixation de la buse ?
- Tuyauterie interne ?
- Système de charnière pour replier ?
- 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
- Modèle du relais utilisé : relais-5534-4rt-12vdc-7a-250v
- Circuit électrique du relais
- 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
- Datasheet pour la version 20A, nous, nous utilisons la version 5A : 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
//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
- Couper le connecteur existant et le remplacer par un connecteur Jack
- Ajouter une modifications dans le code pour activer la fonction.
Modifications du modèle 3D et premiers tests
Les fichiers source de la buse :
- File:NoTabooNozzleModel.zip
- File:Base.stl
- File:Buse.stl
- File:Capuchon.stl
- File:Coque.stl
- File:Joint.stl
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.
- 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 Kicad : File:schéma V2.zip
- Rendu en .png
- Image du relais
- Datasheet du 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.