par Mathilde Guédon, Mathilde Pommier, Nicolas Sanson
Notre idée pour ce projet est de créer une version miniature des Strandbeests de Théo Jansen, sous forme d’automate motorisé que l’on peut commander.
Contenus de la page
Notre réalisation
Après avoir suivi l’ensemble des étapes décrites ci-dessous, vous obtiendrez la Strandbeest qui suit :

Matériaux & Composants
Matériel | Dimension | Quantité |
Plaque de MDF | 10x590x990mm | 3 |
Bobine de PLA | 1 | |
Tiges en acier | 6x1000mm | 3 |
Visserie | x | |
Roulements | x | |
Composant | Spécifications | Quantité |
Moteurs | 2 | |
Carte Arduino Uno ou équivalent | Joy-it R3DIP | 1 |
Carte Arduino Motor Shield | 1 | |
Batterie Lipo | 11.1V, 4.8A, 3S | 1 |
Batterie externe | 5V minimum | 1 |
Module Bluetooth | Fundiuno BlueTooth XBee HC-05 | 1 |
Application Arduino Joystick |





Étape 1 – Modélisation
La première étape est de modéliser la Strandbeest, nous avons pour cela utilisé le logiciel en ligne Onshape (version gratuite).
Vous pouvez simplement reprendre les fichiers .stl du dépôt suivant : https://cad.onshape.com/documents/8e3fb0eda3bca88bd88345ee/w/ddbb9c4b84c909bbdc71544b/e/c688b9d46e98367f0fa2707d?renderMode=0&uiState=628608d0d068903dfae6f1f9.
Pour cela, nous utilisons les proportions qu’utilise Théo Jansen pour le fonctionnement des jambes de ses automates :


Une fois la modélisation effectuée pour chaque pièce plane, il faut ensuite créer les plans associés (toujours sur Onshape). Il faut ensuite exporter les plans et, dans le logiciel Inkscape, colorer tous les contours des pièces en rouge pour que la découpe laser les détecte. Tout texte ou dessin vectoriel en noir sera gravé et non découpé.
Pour les pièces non planes (pièces qui assurent l’opposition dans l’arbre à came), celles-ci sont imprimées car elles contiennent un emplacement à écrou afin de solidariser la pièce et l’axe métallique. De même pour les bagues de serrage. Également, afin de relier l’arbre à came et les moteurs, on imprime 2 pièces qui enserrent les 2 axes (toujours avec des emplacements pour les écrous).



Les rangements / fixations des moteurs, batterie et carte Arduino sont aussi à imprimer car ils ne sont bien sûr pas plans.
Étape 2 – Assemblage




Étape 3 – Motorisation / Circuits
Une fois les pattes et le plateau fixés et assemblés, il faut ensuite ajouter les 2 moteurs, l’Arduino couplée à son Motor Shield ainsi que les 2 alimentations et, enfin, le module bluetooth. Comme la photo ci-dessus le montre, l’Arduino est alimentée par la batterie externe et, les moteurs, qui demandent plus de tension et de courant, sont alimentés par la Lipo.

Pour le module bluetooth, il suffit à présent de se référer au schéma ci-dessous :

Étape 4 – Code téléguidage
Afin de pouvoir contrôler les direction, on ajoute le code ci-dessous dans l’Arduino à l’aide d’Arduino IDE.
int motorPinA = 12;
int motorPinB = 13;
int motorBrakeA = 9;
int motorBrakeB = 8;
int motorSpeedA = 3;
int motorSpeedB = 11;
int globalSpeed = 255;
void setup() {
// Setup Channel A
pinMode(motorPinA, OUTPUT); // Initiates Motor Channel A pin
pinMode(motorBrakeA, OUTPUT); // Initiates Brake Channel A pin
// Setup Channel B
pinMode(motorPinB, OUTPUT); // Initiates Motor Channel B pin
pinMode(motorBrakeB, OUTPUT); // Initiates Brake Channel B pin
// Stop the motors (just in case)
digitalWrite(motorBrakeA, HIGH); //Engage the Brake for Channel A
digitalWrite(motorBrakeB, HIGH); //Engage the Brake for Channel B
// Initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop() {
// If some data is sent enters the condition
if (Serial.available() > 0) {
String value = Serial.readString();
Serial.write(value.c_str());
Serial.println();
if (value.equals("F")) {
Serial.write(" FRONT ");
Serial.println();
front();
}
else if (value.equals("B")) {
Serial.write(" BACK ");
Serial.println();
back();
}
else if (value.equals("R")) {
Serial.write(" RIGHT ");
Serial.println();
right();
}
else if (value.equals("L")) {
Serial.write(" LEFT ");
Serial.println();
left();
}
else if (value.equals("1") || value.equals("2") || value.equals("3") || value.equals("4")) {
Serial.write(" STOP ");
Serial.println();
digitalWrite(motorBrakeA, HIGH); // Engage the Brake for Channel A
digitalWrite(motorBrakeB, HIGH); // Engage the Brake for Channel B
}
}
}
void frontA() {
// Forward @ full speed Channel A
digitalWrite(motorPinA, HIGH); // Establishes forward direction of Channel A (LOW for backward)
digitalWrite(motorBrakeA, LOW); // Disengage the Brake for Channel A
analogWrite(motorSpeedA, globalSpeed); // Spins the motor on Channel A at full speed
}
void frontB() {
// Forward @ full speed Channel B
digitalWrite(motorPinB, HIGH); // Establishes forward direction of Channel B (LOW for backward)
digitalWrite(motorBrakeB, LOW); // Disengage the Brake for Channel B
analogWrite(motorSpeedB, globalSpeed); // Spins the motor on Channel B at full speed
}
void backA() {
// Backward @ full speed Channel A
digitalWrite(motorPinA, LOW); // Establishes forward direction of Channel A (HIGH for forward)
digitalWrite(motorBrakeA, LOW); // Disengage the Brake for Channel A
analogWrite(motorSpeedA, globalSpeed); // Spins the motor on Channel A at full speed
}
void backB() {
// Backward @ full speed Channel B
digitalWrite(motorPinB, LOW); // Establishes forward direction of Channel B (HIGH for forward)
digitalWrite(motorBrakeB, LOW); // Disengage the Brake for Channel B
analogWrite(motorSpeedB, globalSpeed); // Spins the motor on Channel B at full speed
}
void front() {
frontA();
frontB();
}
void back() {
backA();
backB();
}
void left() {
frontA();
backB();
}
void right() {
backA();
frontB();
}
Ensuite, sur l’application Application Arduino Joystick, on paramètre chaque bouton comme sur les images qui suivent.



Finalement, l’interface d’utilisation se présente comme suit. Si ce n’est pas le cas, dans le menu, sélectionnez mode → Button Mode.

Pour connecter un téléphone pour la première fois, il faut activer le bluetooth du téléphone, sélectionner hc-05 et entrer le mot de passe : 1234.
Ensuite, pour chaque utilisation, il faut débrancher les câbles jaune et vert du schéma précédent, cliquer sur le symbole bluetooth de l’application, sélectionner hc-05 et finalement rebrancher les 2 câbles.