Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:projet:turbococo_arthur_manon_elise [2022/04/22 16:28] arthur.coron@etu.sorbonne-universite.fr |
wiki:projet:turbococo_arthur_manon_elise [2022/05/22 21:30] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | | + | |
- | ====== Projet: filtration de nanofossiles calcaires par méthode de tamisation de différentes tailles - paléoclimat du Cénozoïque ====== | + | |
+ | |||
+ | | ||
+ | ====== Projet: filtration | ||
{{ : | {{ : | ||
Ligne 19: | Ligne 22: | ||
Première approche avec Arduino, nous avons essayé d' | Première approche avec Arduino, nous avons essayé d' | ||
+ | |||
__// | __// | ||
Ligne 46: | Ligne 50: | ||
Après avoir reçu un nouveau capteur, on essaie de détecter le niveau de l’eau dans le tube. | Après avoir reçu un nouveau capteur, on essaie de détecter le niveau de l’eau dans le tube. | ||
+ | |||
__// | __// | ||
On a d’abord essayé avec une élastique en tissu mais on s’est rendu compte que l’élastique était trop épais, trop grand, et qu'il absorbait l’eau (gêne les mesures). | On a d’abord essayé avec une élastique en tissu mais on s’est rendu compte que l’élastique était trop épais, trop grand, et qu'il absorbait l’eau (gêne les mesures). | ||
Ligne 52: | Ligne 57: | ||
On a remarqué que le capteur détecte le niveau d’eau sans programme Arduino. L’objectif est donc de mettre au point un programme qui stocke l' | On a remarqué que le capteur détecte le niveau d’eau sans programme Arduino. L’objectif est donc de mettre au point un programme qui stocke l' | ||
+ | |||
__**// | __**// | ||
Ligne 103: | Ligne 109: | ||
Nous avons modélisé les pièces 3D qui permettront de fixer les capteurs au tube. Pour cela on utilise Tinkercad. | Nous avons modélisé les pièces 3D qui permettront de fixer les capteurs au tube. Pour cela on utilise Tinkercad. | ||
+ | |||
__**// | __**// | ||
Ligne 139: | Ligne 146: | ||
{{ : | {{ : | ||
+ | |||
+ | [[https:// | ||
---- | ---- | ||
Ligne 144: | Ligne 153: | ||
- | Fabrice est venu voir notre montage, il fut charmé. Validation et finalisation du système pompe-capteur. Nous avons voulu mettre | + | Fabrice est venu voir notre montage. Validation et finalisation du système pompe-capteur. Nous avons voulu ajouter |
- | w | + | |
---- | ---- | ||
<fs large>// | <fs large>// | ||
- | Dernier problème | + | Nous nous attaquons |
- | Avec notre coach en chef Fabrice, on a convenu que l'agitation | + | |
- | D'une part on va agiter en continu tant que la pompe remplit d' | + | - agitation continue lors de la phase de remplissage |
- | D' | + | |
- | Après, un formidable café offert par la maison, on s'est attaqué à la programmation du moteur de l' | + | - agitation discontinue lors de la phase de vidage. L' |
- | On a très vite réussi à faire tourner le moteur en continu pendant le remplissage. | + | |
- | [screenshot du code] | + | Niveau programmation, on a très vite réussi à faire tourner le moteur en continu pendant le remplissage. |
- | Cependant, le programme | + | |
- | Notre kamarade Manon a réussi un début de programme pour faire fonctionner | + | {{ : |
- | [screenshot programme] | + | |
- | Notre dernier objectif est donc de finaliser le programme en faisant marcher l' | + | Le programme |
+ | Nous parvenons à faire tourner | ||
---- | ---- | ||
Ligne 167: | Ligne 177: | ||
Avec l'aide de **Loïc**, nous sommes parvenus à écrire le programme final : la pompe et le moteur fonctionnent en continus lors du remplissage et le moteur fonctionne en cycle de 5sec lorsque la pompe est éteinte. | Avec l'aide de **Loïc**, nous sommes parvenus à écrire le programme final : la pompe et le moteur fonctionnent en continus lors du remplissage et le moteur fonctionne en cycle de 5sec lorsque la pompe est éteinte. | ||
- | Il manque plus qu'à alléger le montage en réduisant | + | Il manque plus qu'à alléger le montage en raccourcissant |
---- | ---- | ||
Ligne 173: | Ligne 183: | ||
2 | 2 | ||
- | On a coupé | + | On a raccourcit |
__**// | __**// | ||
Ligne 180: | Ligne 190: | ||
<fs large>// | <fs large>// | ||
- | Nous reprenons le montage et ça ne fonctionne toujours pas. On a d' | + | Nous reprenons le montage et ça ne fonctionne toujours pas. On a d' |
- | Finalement, en utilisant des " | + | En utilisant des " |
---- | ---- | ||
<fs large>// | <fs large>// | ||
- | Nous avons remplacer le capteur du Haut qui ne fonctionnait plus (il affichait 0,82) par un nouveau. | + | Nous avons remplacer le capteur du Haut qui ne fonctionnait plus (il affichait 0,82V) par un nouveau. |
- Nous remplaçons la carte Arduino MEGA par la carte Arduino UNO | - Nous remplaçons la carte Arduino MEGA par la carte Arduino UNO | ||
- Nous utilisons des dominos à la place de la breadboard pour simplifier les branchements | - Nous utilisons des dominos à la place de la breadboard pour simplifier les branchements | ||
- Les capteurs haut et bas fonctionnent bien individuellement avec le programme : ils affichent 0V quand il n'y a pas d'eau et 5V quand il y a de l'eau. | - Les capteurs haut et bas fonctionnent bien individuellement avec le programme : ils affichent 0V quand il n'y a pas d'eau et 5V quand il y a de l'eau. | ||
- | - La pompe fonctionne lorsqu' | + | - La pompe fonctionne lorsqu' |
- Le moteur fonctionne lorsqu' | - Le moteur fonctionne lorsqu' | ||
Ligne 203: | Ligne 213: | ||
- on a remplacé les boucles " | - on a remplacé les boucles " | ||
+ | Voici le programme final qui fonctionne : | ||
+ | |||
+ | ---- | ||
// | // | ||
| | ||
Ligne 216: | Ligne 229: | ||
pinMode (4, OUTPUT); | pinMode (4, OUTPUT); | ||
pinMode (2, OUTPUT); | pinMode (2, OUTPUT); | ||
- | |||
} | } | ||
Ligne 228: | Ligne 240: | ||
int sensorValue1 = analogRead(A2); | int sensorValue1 = analogRead(A2); | ||
- | | ||
float voltage0 = sensorValue0 * (5.0 / 1023.0); | float voltage0 = sensorValue0 * (5.0 / 1023.0); | ||
float voltage1 = sensorValue1 * (5.0 / 1023.0); | float voltage1 = sensorValue1 * (5.0 / 1023.0); | ||
- | |||
- | | ||
- | // Serial.println(" | ||
- | // Serial.println(voltage0); | ||
- | // Serial.println(" | ||
- | // Serial.println(" | ||
- | // Serial.println(voltage1) | ||
- | |||
if (remplissage == 1) { // si le niveau d'eau est sous le capteur du HAUT, alors : | if (remplissage == 1) { // si le niveau d'eau est sous le capteur du HAUT, alors : | ||
if ((voltage0< | if ((voltage0< | ||
Ligne 245: | Ligne 248: | ||
digitalWrite (2, LOW); // "pas de courant" | digitalWrite (2, LOW); // "pas de courant" | ||
remplissage = 1; // on reste dans cette boucle | remplissage = 1; // on reste dans cette boucle | ||
- | Serial.println(" | ||
- | Serial.println(remplissage); | ||
} | } | ||
| | ||
Ligne 253: | Ligne 254: | ||
digitalWrite (2, LOW); // "pas de courant" | digitalWrite (2, LOW); // "pas de courant" | ||
remplissage = 1; | remplissage = 1; | ||
- | Serial.println(" | ||
- | Serial.println(remplissage); | ||
} | } | ||
+ | | ||
if ((voltage1 > 2.5)& | if ((voltage1 > 2.5)& | ||
digitalWrite (4, HIGH); | digitalWrite (4, HIGH); | ||
Ligne 263: | Ligne 263: | ||
heure_start_sec = (heure_start_ms/ | heure_start_sec = (heure_start_ms/ | ||
chrono = 0; // conversion des ms en s | chrono = 0; // conversion des ms en s | ||
- | Serial.println(" | ||
- | Serial.println(remplissage); | ||
- | Serial.println(chrono); | ||
} | } | ||
} | } | ||
+ | |||
if (remplissage == 0) { // si le niveau d'eau est au dessus le capteur HAUT, alors : | if (remplissage == 0) { // si le niveau d'eau est au dessus le capteur HAUT, alors : | ||
if (voltage0 > 2.5) { // si le niveau d'eau est au dessus le capteur BAS, alors | if (voltage0 > 2.5) { // si le niveau d'eau est au dessus le capteur BAS, alors | ||
Ligne 276: | Ligne 274: | ||
heure_delay_sec = (heure_delay_ms/ | heure_delay_sec = (heure_delay_ms/ | ||
chrono = heure_delay_sec - heure_start_sec; | chrono = heure_delay_sec - heure_start_sec; | ||
- | Serial.println(chrono); | ||
- | Serial.println(remplissage); | ||
remplissage = 0; | remplissage = 0; | ||
} | } | ||
+ | | ||
if ((chrono <= 10) & (chrono > 5)) {// si le chrono est > 5 s, alors : | if ((chrono <= 10) & (chrono > 5)) {// si le chrono est > 5 s, alors : | ||
digitalWrite (2, HIGH); | digitalWrite (2, HIGH); | ||
Ligne 286: | Ligne 283: | ||
heure_delay_sec = (heure_delay_ms/ | heure_delay_sec = (heure_delay_ms/ | ||
chrono = heure_delay_sec - heure_start_sec; | chrono = heure_delay_sec - heure_start_sec; | ||
- | Serial.println(" | ||
remplissage = 0; | remplissage = 0; | ||
} | } | ||
+ | | ||
if (chrono > 10) | if (chrono > 10) | ||
| | ||
| | ||
| | ||
- | | ||
| | ||
} | } | ||
} | } | ||
+ | | ||
if (voltage0 < 2.5) { | if (voltage0 < 2.5) { | ||
| | ||
- | | ||
} | } | ||
} | } | ||
- | } // ferme void loop | + | } // ferme void loop |
- | Le montage et le programme fonctionnent correctement, | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Le montage et le programme fonctionnent correctement : validation par Fabrice. | ||
On a commencé à modéliser le montage sur Tinkercad. Il ne reste plus qu'à réduire les câblages, enlever les dominos et les replacer sur la breadboard (Fabrice préfère). | On a commencé à modéliser le montage sur Tinkercad. Il ne reste plus qu'à réduire les câblages, enlever les dominos et les replacer sur la breadboard (Fabrice préfère). | ||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Nous tenons à remercier Fabrice Minoletti de nous avoir encadré et surtout de nous avoir fait confiance tout au long de ce projet. Ce fut un plaisir de travailler avec lui au fils des semaines, et nous mesurons la chance que nous avons eu de goûter à son merveilleux café. | ||
+ | Un grand merci à Loïc Labrousse pour la partie programmation sans qui moteur et pompe vibreraient encore aujourd' | ||
+ | Merci aussi à Pierre Thery d' | ||
+ | Merci à Christian du Fablab qui nous a expliqué les bases du montages et de la programmation. | ||
+ | |||
+ | Nous sommes fières d' | ||