Réaliser un châssis 4 roues mecanum
- L C
- 27 déc. 2024
- 7 min de lecture
Dernière mise à jour : 10 janv.
Matériel
1 chassis Dagu HC309
2 contrôleurs moteur L298N
1 boitier pour 6 piles AA
6 piles AA
1 carte Arduino R3 Uno
1 prototype expansion
1 interrupteur 2 bornes
1 bte entretoises nylon M3
1 boîte vis écrous M3
1 ensemble pinces Brucelles
1 lot fils Dupont M-F M-M
Fils Dupont rouges et noirs
1 petit tournevis cruciforme
1 petit tournevis plat
1 pinces à dénuder les fils
1 petit domino
1 kit de soudure
Caractéristiques du chassis Dagu HC309

Alimentation moteurs: 7,2 Vcc
Vitesse de rotation moteur: 280 tr/min
Puissance par moteur: 0,7 W
Matériau: acrylique
Charge maxi: 3 kg
Vitesse: 0,9 m/s maxi
Dimensions: 185 x 190 x 61 mm
Poids: 710 g
Les 8 directions possibles avec les roues mecanum


Montage des L298N
Branchements L298N - Carte Arduino


Branchements sur la carte Arduino
Les numéros correspondent aux pins digitaux de la carte Arduino
L298N droit

L298N gauche

ENA et ENB permettent de contrôler la vitesse des moteurs.
Leur programmation est prévue dans le sketch mais ils ne sont pas branchés dans ce projet.
Ils doivent être connectés aux pin digitaux notés ~ de la carte Arduino.
Sketch pour faire tourner les 4 moteurs en marche avant
/ moteur DA : avant droit
// moteur DB : arrière droit
// moteur GA : avant gauche
// moteur GB : arrière gauche
void setup (){
// moteur DA
pinMode (3, OUTPUT);
pinMode (2, OUTPUT);
// moteur DB
pinMode (6, OUTPUT);
pinMode (5, OUTPUT);
// moteur GA
pinMode (9, OUTPUT);
pinMode (8, OUTPUT);
// moteur GB
pinMode (12, OUTPUT);
pinMode (11, OUTPUT);
}
void loop (){
//sens moteur DA
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
//sens moteur DB
digitalWrite (6, HIGH);
digitalWrite (5, LOW);
//sens moteur GA
digitalWrite (11, HIGH);
digitalWrite (12, LOW);
//sens moteur GB
digitalWrite (9, HIGH);
digitalWrite (8, LOW);
}
Montage du Bluetooth HC-05
⚠️ Attention il faudra bien penser à inverser les broches Rx et Tx entre la carte Arduino et le module Bluetooth





IMPORTANT
⚠️ Il faut retirer le module Bluetooth AVANT de televerser le sketch dans la carte Arduino et le replacer ensuite.
Sketch Avec Bluetooth
// DA moteur droit avant
// DB moteur droit arrière
// GA moteur gauche avant
// GB moteur gauche arrière
// Télécommande pavé numérique
// 1 2 3
//
// 4 5 6
//
// 7 8 9
//
// 1 tourner à gauche : gauche - led verte allumée
// 2 marche avant : avancer - led verte allumée
// 3 tourner à droite :droite - led verte allumée
// 4 déplacement lateral gauche - led verte allumée
// 5 arrêt : arreter - ledrouge allumée
// 6 déplacement latéral droit - led verte allumée
// 7 rotation gauche - led verte allumée
// 8 marche arrière : reculer - led verte allumée et led rouge allumée
// 9 rotation - led verte alluméedroite
// Led rouge sur le pin 13 de l'Arduino
const int ledrouge = 13;
// Led verte sur le pin 10 de l'Arduino
const int ledverte = 10;
// L298N droit, moteur avant droit
#define DIN4 3
#define DIN3 2
// L298N droit, moteur arrière droit
#define DIN2 6
#define DIN1 5
// L298N gauche, moteur avant gauche
#define GIN4 12
#define GIN3 11
// L298N gauche, moteur arrière gauche
#define GIN2 9
#define GIN1 8
// code envoyé par le Bluetooth
String message;
void setup(){
// Leds rouge et verte
pinMode(ledrouge, OUTPUT);
pinMode(ledverte, OUTPUT);
// Bluetooth
Serial.begin(9600);
// moteur DA
pinMode (4, OUTPUT);
pinMode (3, OUTPUT);
pinMode (DIN3, OUTPUT);
// moteur DB
pinMode (7, OUTPUT);
pinMode (DIN2, OUTPUT);
pinMode (DIN1, OUTPUT);
// moteur GA
pinMode (10, OUTPUT);
pinMode (GIN2, OUTPUT);
pinMode (GIN1, OUTPUT);
// moteur GB
pinMode (13, OUTPUT);
pinMode (GIN4, OUTPUT);
pinMode (GIN3, OUTPUT);
}
// 1 gauche
void tournergauche (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche avant
digitalWrite (DIN4, HIGH);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche avant
digitalWrite (DIN1, HIGH);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche arrière
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, HIGH);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche arrière
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, HIGH);
//Vitesse moteur GB
// analogWrite (10, 100);
// les moteurs tournent pendant 0.2 seconde
delay(200);
// puis ils s'arrêtent
//moteur DA arrêté
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB arrêté
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA arrêté
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB arrêté
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 2 avancer
void avancer (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche avant
digitalWrite (DIN4, HIGH);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche avant
digitalWrite (DIN1, HIGH);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche avant
digitalWrite (GIN4, HIGH);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche avant
digitalWrite (GIN1, HIGH);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 3 droite
void tournerdroite (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche arrière
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, HIGH);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche arrière
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, HIGH);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche avant
digitalWrite (GIN4, HIGH);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche avant
digitalWrite (GIN1, HIGH);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
// les moteurs tournent pendant 0.2 seconde
delay(200);
// puis ils s'arrêtent
//moteur DA arrêté
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB arrêté
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA arrêté
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB arrêté
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 4 latéral gauche 90
void lateralgauche90 (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche avant
digitalWrite (DIN4, HIGH);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche arrière
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, HIGH);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche arrière
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, HIGH);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche avant
digitalWrite (GIN1, HIGH);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 5 arreter
void arreter (){
// Led verte éteinte, Led rouge allumée
digitalWrite(ledrouge,HIGH);
digitalWrite(ledverte,LOW);
//moteur DA arrêté
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB arrêté
digitalWrite (DIN2, LOW);
digitalWrite (DIN1, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA arrêté
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB arrêté
digitalWrite (GIN2, LOW);
digitalWrite (GIN1, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 6 latéral droite 90
void lateraldroite90 (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche arrière
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, HIGH);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche avant
digitalWrite (DIN1, HIGH);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche avant
digitalWrite (GIN4, HIGH);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche arrière
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, HIGH);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 7 latéral gauche 45
void lateralgauche45 (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA marche avant
digitalWrite (DIN4, HIGH);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB arrêté
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA arrêté
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche avant
digitalWrite (GIN1, HIGH);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 8 reculer
void reculer (){
// Led verte allumée, Led rouge allumée
digitalWrite(ledrouge,HIGH);
digitalWrite(ledverte,HIGH);
//moteur DA marche arrière
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, HIGH);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche arrière
digitalWrite (DIN1, LOW);
digitalWrite (DIN2, HIGH);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche arrière
digitalWrite (GIN4, LOW);
digitalWrite (GIN3, HIGH);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB marche arrière
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, HIGH);
//Vitesse moteur GB
// analogWrite (10, 100);
}
// 9 lateral droite 45
void lateraldroite45 (){
// Led verte allumée, Led rouge éteinte
digitalWrite(ledrouge,LOW);
digitalWrite(ledverte,HIGH);
//moteur DA arrêté
digitalWrite (DIN4, LOW);
digitalWrite (DIN3, LOW);
//Vitesse moteur DA
// analogWrite (4, 100);
//moteur DB marche avant
digitalWrite (DIN1, HIGH);
digitalWrite (DIN2, LOW);
//Vitesse moteur DB
// analogWrite (7, 100);
//moteur GA marche avant
digitalWrite (GIN4, HIGH);
digitalWrite (GIN3, LOW);
//Vitesse moteur GA
// analogWrite (13, 100);
//moteur GB arrêté
digitalWrite (GIN1, LOW);
digitalWrite (GIN2, LOW);
//Vitesse moteur GB
// analogWrite (10, 100);
}
void loop(){
// tester si un code Bluetooth a été reçu
if (Serial.available() > 0 ) {
// lire le code envoyé par le Bluetooth
message=Serial.readString();
if ( message == "1" ) tournergauche ();
if ( message == "2" ) avancer ();
if ( message == "3" ) tournerdroite ();
if ( message == "4" ) lateralgauche90 ();
if ( message == "5" ) arreter ();
if ( message == "6" ) lateraldroite90 ();
if ( message == "7" ) lateralgauche45 ();
if ( message == "8" ) reculer();
if ( message == "9" ) lateraldroite45 ();
}
}
Application Android Arduino bluetooth controller
Téléchargement

Menu

Affectation des touches

1 : tourner à gauche
2 : marche avant
3 : tourner à droite
4 : lateral gauche 90
5 : arreter
6 : lateral droite 90
7 : lateral gauche 45
8 : marche arrière
9 : lateral droite 45