Casagrande - Boite de cisaillement
Sommaire :
- Introduction et objectif du projet
- Matériel, machines et logiciels utilisés
- Conception de la boîte de Casagrande + Codes OpenSCAD
- Journal de Bord
1. Introduction et objectif du projet
Reprise des projets de l'UE pour les travaux pratiques de géotechnique/géophysique niveau L3
Suite aux multiples travaux pratiqués avec la précédente version, des points d'améliorations sont à prévoir:
2. Matériel, machines et logiciels utilisés
> Matériel nécessaire :
Capteurs FSR400
|
Carte Arduino Uno
|
Câbles Arduino
|
Module encodeur rotatif GT055
|
Planche de plexiglas de 6mm d'épaisseur
|
Écran LED
|
|
|
|
|
fablab
|
|
> Machines : Trotec Speedy 360 (découpeuse laser), Imprimante 3D, Perceuse
> Logiciels : OpenSCAD, Inkscape, Arduino IDE
3. Conception de la boîte de Casagrande + Codes OpenSCAD
> Impressions 3D :
FichiersPartie STLBasse Boîte
Fichier STL : AssemblageCasagrande - Casagrandeboitebasse-1-1.STL
Partie Haute Boîte
Fichier STL : AssemblageHaut2 - Casagrandeboitehaute-1.STL
Bouchon Boîte
Fichier STL : AssemblageCasagrande - Casagrandeboitebouchon-1-1.STL
Porte Poulie et Poulie
Fichier STL : Portepoulie.STL
Poulie.STL
Résultat impressions
Bouchon
Partie haute
Partie basse
Porte poulie et potentiomètre
Attaches Levier (x2)
Photo de l'assemblage général de la boîte :
> Branchement du capteur FSR400 pour la force normale σN
On relie le capteur et l'écran à la carte Arduino en suivant le montage suivant : Instructables.com/Arduino-pressure-sensor-FSR-with-LCD-display/ et on choisit une résistance de 3K3 ohm lors du montage, pour avoir une valeur de poids affichée à l'écran la plus fiable au poids réel possible.
> Branchement de l'encodeur rotatif GT055
Afin de déterminer précisément le point de rupture, on utilise un encodeur rotatif qui va donner la valeur de déplacement en degrés. On le branche à une carte Arduino en suivant le montage suivant :
Source : LEXTRONIC, 2022 (https://www.lextronic.fr/module-encodeur-rotatif-51706.html)
Encodeur rotatif - Code Arduino
```cpp
// Déclaration des variables
int CLK = 3; // Broche CLK de l'encodeur sur la pin 3 de l'Arduino
int DT = 4; // Broche DT de l'encodeur sur la pin 4 de l'Arduino
int encoderPosCount = 0; // valeur de départ de l'encodeur à zéro
int CLKLast;
int aVal;
boolean bCW;
void setup() {
pinMode (CLK,INPUT); // Pin CLK déclarée en entrée
pinMode (DT,INPUT); // Pin DT déclarée en entrée
CLKLast = digitalRead(CLK); // Renvoi la dernière valeur de l'encodeur
Serial.begin (9600);
}
void loop() {
aVal = digitalRead(CLK);
if (aVal != CLKLast) { // Indique que l'encodeur tourne
// Si le bouton tourne, on déterminera son sens
// avec la broche DT
if (digitalRead(DT) != aVal) { // si CLK change en premier - rotation dans le sens des aiguilles d'une montre
encoderPosCount ++;
bCW = true;
}
else { // sinon c'est DT qui change en premier et la rotation va donc dans le sens inverse
bCW = false;
encoderPosCount--;
}
Serial.print ("Sens de rotation: "); // Affichera le sens de rotation
if (bCW)
{
Serial.println ("clockwise"); // sens des aiguilles d'une montre
}else
{
Serial.println("counterclockwise"); // sens inverse
}
Serial.print("Degré: ");
Serial.println(encoderPosCount*9); // Affiche la position de l'encodeur - comptage des impulsions
}
CLKLast = aVal ;
}
```
> Découpe laser
Découpe du Cadre
Fichier svg :
Découpe des bras de levier
Fichier svg :
Code OpenSCAD :
//dimensions du bras de levier
largeur = 40; //mm
diametreTrou = 4; //mm
nbUnites = 48; //nombre d'encoches
longueur = 500; //mm longueur de la barre à partir du trou
//dimensions des encoches
profondeurEncoche = 2; //mm
var = 0;
difference(){
square([longueur, largeur]);
//trou
translate([0, largeur/2, 0]){
circle(diametreTrou/2, $fn = 360);
}
//encoches
for (i=[1:nbUnites]){
var = i*10;
translate([var, 0, 0]){
rotate([0, 0, 45]){
square([profondeurEncoche, profondeurEncoche], center = true);
}
}
}
}
//Pour la forme arrondie
translate([0, largeur/2, 0]){
difference(){
circle(largeur/2);
//trou
circle(diametreTrou/2, $fn = 360);
}
}
> Assemblage
4. Journal de Bord