Académique Documents
Professionnel Documents
Culture Documents
RESPONSABLES : ÉTUDIANT :
PUSCĂ REMUS BANU IOAN-VIOREL
LIVINȚI PETRU
Année 2009
Réalisation et commande à base de microprocesseur d’un système de propulsion électrique
intégré dans un mini sous-marin
INTRODUCTION
Sommaire
4. CONCLUSION ................................................................................................................... 40
5. BIBLIOGRAPHIE ............................................................................................................ 41
6. ANNEXES .......................................................................................................................... 42
D’une manière générale un sous-marin est un navire/bateau qui navigue sous l’eau et
qui peut occasionnellement naviguer en surface. Il obéit à deux grands principes, le principe
d'Archimède et le principe de Pascal qui s'appliquent à tout corps immergé. Dans notre cas le
mini sous-marin est «tout électrique» avec les différentes particularités que cela impose.
Les dimensions du sous-marin ont été choisies spécialement de façon à pouvoir être
facilement transporté dans le coffre d’une voiture.
Système de
Direction
1. Caractéristiques de dimension :
longueur : 110 cm
largeur : 20 cm
hauteur : 35 cm
2. Masse : 16kg
3. Poids du ballast : 5 kg
2008/2009 – BANU Ioan Viorel
5
Réalisation et commande à base de microprocesseur d’un système de propulsion électrique
intégré dans un mini sous-marin
Module de Système de
Module de
Visualisation Propulsion
Commande
Module
Module de Alimentation Télémétrique
Radiocommande 5,6,9,12,24 V (Sonar)
Dans ce schéma on trouve les différents modules composants du sous-marin qui seront
détaillées par la suite. En centre de ce schéma on retrouve le module de commande réalisé à
base du microcontrôleur PIC 16F877 dont j’ai été chargé à le programmer.
1.2.1. La coque
Les différents modules composant le sous-marin sont mis à l’intérieur d’une coque
réalisée en tube PVC. L’étanchéité est réalisée à base de fibre de verre et résine. Ce sous-
marin ayant un but didactique un compromis entre une forme hydrodynamique et
instrumentation a dû être fait. Afin d’assurer une meilleure étanchéité possible les organes en
mouvement ont été réduites au minimum (seulement l’axe de l’hélice et le gouvernail)
l’assiette du sous-marin étant modifiée par changement du centre de gravité G.
Capteur
de buttée
Moteur
Charriot Tige fileté
pas à pas
Grace à un système de vis sans fin entrainé par un moteur pas à pas, une translation est
faite d’une extrémité à l’autre pour modifier l’assiette du sous-marin.
Le chariot contient deux batteries 12 volts relativement lourds qui alimentent les
différentes parties du sous-marin. Ce poids est nécessaire pour une bonne équilibration, Un
vis sans fin de faible pas permet l’entrainement facile du chariot par un moteur pas à pas de
faible puissance a un angle d’inclinaison jusqu’à 70 degrés. La vitesse de déplacement n’est
pas une contrainte dans cette application et le pas faible de la vis permet un réglage précis de
l’assiette. Pour connaître l’inclinaison du sous-marin un capteur d’angle est nécessaire. Vue la
présence d’une caméra vidéo un réglage manuel est possible et donc un capteur à 3 contacts à
base de mercure est suffisant pour assurer le régime de sécurité en cas de perte de contrôle
manuelle.
Des ballasts situés entre les deux coques et dont le remplissage ou la vidange permet
du sous-marin de plongée (ouverture des purges pour faire pénétrer l'eau dans le ballast) et le
retour en surface.
Explication :
Le système de ballast est constitué de deux poches, deux électrovannes, pompes, de
deux vannes (entrées, sortie), et de tuyaux de connexion.
2
Electrovanne 1 Poche 2 Electrovanne 2
L’eau entre dans le circuit de ballast par l’électrovanne 1 et est poussée dans les
poches 1 et 2 par la pompe 1. Cette pompe est à double circuit, le remplissage de la poche 1
ou poche 2 en se faisant par changement de la polarité sur la pompe. Cette commande été
réalisé par le microcontrôleur (port C, pin RC1). Pour vider les poches il suffit d’alimenter la
pompe 2 et d’ouvrir la électrovanne 2, l’électrovanne 1 étant fermée et la pompe 1 à l’arête.
L’eau sera expulsée en dehors du circuit par la pompe 2 et sera évacuée par l’électrovanne 2.
Le sous-marin sera équipé d’une caméra de type webcam, pour pouvoir observer les
divers obstacles. Elle a le rôle d'acquérir les images, et de les envoyer ver la surface via une
antenne flottante.
Le sonar (acronyme de sound navigation and ranging) est un appareil, utilisant les
propriétés particulières de la propagation du son dans l'eau pour détecter et situer les objets
sous l'eau.
Le capteur sera donc à installer devant le sous-marin, de plus on pourra ensuite utiliser
le même raisonnement pour créer un système qui permettra de mesurer la profondeur du
milieu (il faudra changer cependant le programme mais aussi prendre un capteur plus
puissant).
Fonctionnement détaillé du montage:
On a aussi une sortie, le pong qui indique au microcontrôleur qu’un obstacle est à
moins de trois mètres.
a) Émission
Le NE555 permet de créer un signal de 0.5 ms qui va être envoyé dans la base du
transistor NPN et qui va permettre d’envoyer un signal de 0.5 ms.
Pour émettre, il faut qu’on envoie une 1 logique dans l’entrée ping.
Emission
Réception
b) Réception
Le NE567 compare la fréquence du signal qu’il reçoit avec la fréquence de référence
qu’on lui affecte. Lorsque la fréquence du signal s’inscrit dans la bonne fourchette, le
composant envoie un signal en sortie.
Ainsi lorsqu’un obstacle est détecté, on a en sortie du composant un signal de 0V.
Lorsque que l’on ne détecte aucun obstacle, la sortie est à 5 V.
Support moteur
Support du cerveau
moteur
Réducteur
Couplage du
moteur
Les hélices jouent un rôle primordial dans le déplacement d'un sous-marin car elles
permettent l'éjection de l'eau vers l'arrière pour le pousser vers l'avant. Une hélice est conçue
selon plusieurs critères : l'inclinaison de chaque pale, la forme et le nombre de ces dernières
qui font un compromis entre le rendement de l'hélice et la discrétion acoustique.
Qu’un des principaux rôles des safrans de direction est de s’affranchir des turbulences
créées par l'hélice.
Canaux de la télécommande
Spécifications du système de télécommande Laser 6 FM 75MHz Hitec :
Inversion des servomoteurs
VRV (Volume Réglable de Voyage) sur Canal 1 et 2
Mélange d'Élevons sur Canal 1 et 2
EPA sur Canal 3
Mélange V-Queue sur Canal 2 et 4
Indicateur Analogique de Puissance de Batterie
Accepte câble d'Entraînement
Réglage
Réglage fin de fin de ch3
ch2
Ch2
Ch3
Ch4 ON Ch1
Réglage fin de
OFF Réglage fin
ch4
de ch1
Description de la carte
Elle possède une connexion ICD2 pour faciliter sa la programmation du PIC et aussi
utiliser un mode débuggeur, ce qui simplifie le test et la vérification des programmes.
Le Port ICD2 permet l’envoie du programme directement au microcontrôleur situé au
centre de la carte, ce même processeur est cadencé à l’aide d’un quartz orchestrant une
fréquence de 4 MHz.
L’accès aux ports du PIC se fait par l’intermédiaire de deux connecteurs, l’un
concerne les ports A et E et l’autre le port C, deux masses sont disponible sur chaque
connecteurs.
2008/2009 – BANU Ioan Viorel
14
Réalisation et commande à base de microprocesseur d’un système de propulsion électrique
intégré dans un mini sous-marin
Les ports
A et E
Microcontrôleur
LED présence
Le port ICD2 Le port C
tension
Cette carte est destinée à communiquer avec d’autres cartes extérieures et permet en
outre d’isoler de manière galvanique tous montage se situant en amont de la carte défaillante.
L’utilisation de coupleur optique s’est donc avéré nécessaire, ils permettent l’envoie et la
réception par la carte PIC de uns logique.
La carte possède un régulateur de tension 5V permettant de l’alimenter directement
avec une tension de 12V (celle d’une batterie). La carte PIC possède sa propre batterie, car si
la tension viendra d’une carte d’alimentation principale alimentant tous les périphériques,
alors l’isolation s’avérera inutile car il n’y aurait qu’une masse commune à tous.
+5V
GND
Les
condensateurs
Entrée pour
le 24V
Sortie des
tensions
Régulateurs
de tension
a) Angle α négatif
b) Angle α positif
α =0
c) Angle α nul
Figure 14. Dispositifs de changement du centre de gravité du sous-marin (assiette)
Si le sous-marin est trop chargé à l'arrière, il s'incline, l'angle alpha est négatif l'assiette
est positive. Inversement s'il est trop chargé à l'avant, l'assiette est négative. Si l'angle alpha
est nul, le bâtiment est horizontal. Il est en assiette zéro.
2008/2009 – BANU Ioan Viorel
19
Réalisation et commande à base de microprocesseur d’un système de propulsion électrique
intégré dans un mini sous-marin
La stabilité d'un sous-marin est la qualité qu'il possède de revenir en assiette zéro
(position 1' horizontale).
Chariot
Vis
sans fin
Rails
Avec une solution mécanique sous forme de rails, le chariot est guidé en translation et
de ne plus faire pression sur la vis.
Ce système a était conçu et réalisé cet année et par des étudiantes français qui’ ont
travaillé sur ce projet tuteuré, mais la réalisation n’était pas aboutie laissant place à des
problèmes.
La partie de commande du moteur est géré par la carte microcontrôleur. La partie de
puissance est géré par une carte de commande que j’ai réalisé.
Pour tester la commande et la programmation j’ai réalisé un support simulant
l’inclinaison du sous-marin.
Il permettra de procédé aux phases de tests pour stabiliser le système. Il est réalisé en
bois avec un axe central lui permettant de basculer.
Les phases du stator sont excitées entrainant ainsi le rotor en rotation. Le rotor passe
par quatre positions successivement, et peut être utilisé en mode demi-pas pour une plus
grande précision.
𝑅𝑆1 𝑅𝑆2
𝐶𝑂𝑁𝑇𝑅𝑂𝐿 𝐻𝑂𝑀𝐸
𝑆𝑌𝑁𝐶
Un connecteur est mis en place pour regrouper toute les entrées de la carte qui seront
affectée d’une valeur grâce au PIC et à la programmation.
La carte de commande du moteur pas à pas est connectée à un port du microcontrôleur
à travers les sorties ENABLE, CW - /CCW et CLOCK
ENABLE représente l’entrée de validation du composant. Quand le composant est
désactivé (ENABLE à l'état bas), les sorties /INH1, /INH2, A, B, C. et D sont maintenues à
l'état bas.
CW - /CCW représente entrée de contrôle de direction. Un état haut appliqué à cette
broche correspond à une rotation dans le sens horaire du moteur pas à pas. Un état bas
appliqué à cette broche correspond à une rotation dans le sens antihoraire du moteur pas à pas.
Cette entrée étant synchronisée de façon interne, la direction peut être changée à tout instant.
CLOCK représente horloge de cadencement des pas. Un front montant sur cette entrée
fait avancer le moteur d'une position.
298 297
À la sortie de cette carte se trouve notre moteur pas à pas nécessaires à les branches
sur la carte selon à la figure 21, il possède deux enroulements donc quatre fils viennent ce
branché sur la carte.
Ordre de l'association des fils du moteur avec cette carte est la suivante:
Noir –TP1;
Vert – TP2;
Rouge – TP3;
Bleu – TP4.
bobine 1
bobine 2
+5V
+12V
GND
Branchement
moteur
Dans le cadre de ce projet j’ai eu la charge de réaliser également une carte qui permet
de délivré les informations capteurs à la carte microcontrôleur.
+5V
GND
Entrée
Entrée des
résistances
CNA
Sortie
Sortie des
résistances
CNA
Le montage 2 concerne les entrées analogiques, une résistance de 470 ohm est placé
entre l’entrée PIC et un capteur.
J’ai réalisé cette carte en y plaçant plusieurs montages vues précédemment (12 tout ou
rien, 4 analogiques). Le nombre ce justifie par une anticipation d’éventuelles capteur qui
pourrait être ajouté par la suite. Ces montages sont réalisés pour interagir avec la carte
microcontrôleur et aussi dans le but de la protéger.
Pour pouvoir contrôler le sous-marin ont utilisé une carte équipée d’un
microcontrôleur. En effet c’est cette carte permette qui traite les différentes informations
venant des autres cartes et des capteurs. Pour cela nous utilisons un PIC16F877 qui dispose de
quatre ports (A, B, C, E), le port B est étant utilisé pour la programmation.
Ce microcontrôleur est situé en haut de la gamme "MID-RANGE".
Le tableau ci-dessous montre comment les ports et les pins de microcontrôleur sont
répartis dans la commande du mini sous-marin.
Pour commander le moteur j’ai créé un programme en langage C (voir l’annexe page
43) avec le logiciel PIC C Compiler.
Début
Initialisation
générale
Configuration du
PIC 16F877
Configuration
des ports
Capteur d’angle
d’assiette
3.1. Introduction
Les ballasts sont des volumes compris entre la coque épaisse et la coque mince, en
communication constante avec l’eau par le bas. Ils étaient constitués, au début, par de simples
caisses intérieures d'un faible volume, qu'on remplissait et vidait avec une pompe. Les ballasts
ont été "rejetés" à l'extérieur de la coque épaisse sur les sous-marins à double coque, ce qui n'a
pas empêché en parallèle de construire des sous-marins à coque unique avec des volumes de
ballasts intérieurs plus importants.
Une chose importante a noté est que les ballasts ne peuvent être que dans deux
situations : pleins d'air en surface, pleins d'eau de mer en plongée.
Le poids d'eau de mer contenu dans les ballasts correspond à la flottabilité du sous-
marin, et la quantité d'eau de mer introduite dans ces ballasts est égale au volume émergé en
surface.
2
Électrovanne 1 Poche 2 Électrovanne 2
L’eau entre dans le circuit de ballast par l’électrovanne 1 et est poussée par la pompe 1
dans les poches 1 et 2. Cette pompe est à double circuit, le remplissage de la poche 1 ou
poche 2 en se faisant par changement de la polarité sur la pompe. Pour vider les poches il
a) Poches à gauche
b) Poches à droite
Figure 31. Forme de poche du system de ballast
Caractéristiques de dimension pour une poche : longueur : 73 cm, diamètre : 11.5 cm,
et volume : 2500 ml.
Ce sont des électrovannes utilisées dans l'injection de combustible dans les voitures.
Elle est récupéré à partir de voitures. La tension d'alimentation est +12V et la consommation
de courant 0.8A. Le débit utile est 600 ml/min.
L’eau entre dans le circuit de ballast par l’électrovanne qui est alimentée en +12V. Le
remplissage des poches en se faisant par les vannes 1 et 4 et les vannes 2 et 3 sont fermer,
aussi alimenter la pompe en +12V. Pour vider les poches il suffit d’alimenter la pompe et
d’ouvrir la vanne 2, les vannes 1 et 4 sont fermées. L’eau sera expulsée en dehors du circuit
par la pompe et sera évacuée par l’électrovanne.
Pour assurer la commande sur la dérivation de l’eau, les vannes sont automatisée. Ce
sont des vannes ordinaires utilisées dans le jardinage. Elles comportent deux entrées et une
sortie. Les deux entrées ne doivent pas être ouverte en même temps.
Quand on actionnera le servomoteur, il fera tourner la roue fixée sur celui-ci et celle-ci
entraînera l’autre roue en sens inverse. Au final dès qu’une entrée est ouverte l’autre est
Ce servomoteur a besoin d'un signal crête à crête de 3-5V. La durée d’impulsions est
de 2,1 ms au 0.9 ms et 1,5 ms pour le position du centre. Le pouls est actualisé à 50Hz
(20ms).
Le servomoteurs Hitec HS-422 est apprécié pour la vitesse et de couple, ils peut être
adapté pour couple à sacrifier la vitesse ou pour vitesse à sacrifier le couple.
Pour la commande du servomoteur j'ai réalisé un programme en langage de
programmation C (voir l’annexe page 46).
Le programme de commande du servomoteur peut se schématiser à l’aide de
l’organigramme suivant :
Début
Initialisation
générale
Configuration du
PIC 16F877
Oui
Poches
vide
Remplissage
Non les poche
Oui
Poches
pleines
Vide les
Non poches
CONCLUSION
Dans un premier temps, ce projet m’a permis d'approfondir mes connaissances sur la
programmation d'un microcontrôleur. De plus, j'ai appris l’ utilisation du logiciel EAGLE.
Je peux donc affirmer que ce projet a été très profitable et j'espère qu'il sera très utile
pour mon avenir professionnel. Enfin, j’ai intention de plus de la synthèse des principaux
résultats et conclusions issues de ce projet :
REMERCIEMENTS
Je tiens à adresser tous mes remerciements à M. PUSCA pour les précieux conseils et
le soutien qu'il m’a témoigné pour la réalisation de ce projet, aux techniciens pour le soutien
technique qu'ils m’ont apporté. Bien sûr, je n'oublie pas de remercier toutes les personnes qui
ont apporté leur soutien pour la réalisation de ce projet.
ANNEXE 1 : Programme
Le programme de commande du moteur pas à pas
Le programme de commande du servomoteur
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
a=0;
while(1)
{
a++;
while(a==1)
{a=0;
/*Delay_Ms(poussoir);*/
}
if(input(pin_B5)==0)
{output_high(PIN_A3); /*activé entrée de validation du composant*/
Delay_Ms(1);
output_low(PIN_A2); /*Tourner moteur vers gauche*/
Delay_Ms(1);
for(i=1; i<=470; i++)
{
for(j=0; j<=3; j++)
{
output_high(PIN_A0);
Delay_Ms(vitesse);
output_low(PIN_A0);
Delay_Ms(vitesse);
}
}
output_low(PIN_A3); /*désactivé entrée de validation du composant*/
Delay_Ms(1);
a++;
}
}
while(a==2)
{
Delay_Ms(poussoir);
if (input(pin_B5)==0)
{
output_high(PIN_A3); /*activé entrée de validation du composant*/
Delay_Ms(1);
output_high(PIN_A2); /*Tourner moteur vers droite*/
Delay_Ms(1);
for(i=1; i<=470; i++)
{
for(j=0; j<=3; j++)
{
output_high(PIN_A0);
Delay_Ms(vitesse);
output_low(PIN_A0);
Delay_Ms(vitesse);
}
}
output_low(PIN_A3); /*désactivé entrée de validation du composant*/
Delay_Ms(1);
a++;
}
}
if(a==3)
a=0;
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
pas=60; //47
delay=0;
while(1)
{
i=0;
2008/2009 – BANU Ioan Viorel
46
Réalisation et commande à base de microprocesseur d’un système de propulsion électrique intégré dans
un mini sous-marin
i++;
a=0;
while(i==1)
{
if(input(PIN_B5)==0)
{
delay_ms(delay);
for(a=0;a<pas; a++)
{
output_high(PIN_C1);
Delay_us(2000);
output_low(PIN_C1);
Delay_ms(19);
}
delay_ms(delay);
output_C(0x00);
Delay_Ms(1);
i++;
}
}
while(i==2)
{
if(input(PIN_B5)==0)
{
a=0;
for(a=0;a<pas; a++)
{
output_high(PIN_C1);
Delay_us(900);
output_low(PIN_C1);
Delay_ms(20);
}
i++;
}
}
delay_ms(delay);
output_C(0x00);
Delay_Ms(1);
}
}
Spécifications générales :
Item Spécifications
Angle 200 PAS : 1.8 °
Précision ±5% (étape plaine, aucune ne charge)
Précision ±10%
Précision d'inductance ±20%
Température Maximale 80' C Max. (courant évaluer, 2 phases dessus)
Température Ambiante -20' C~+50' C
Résistance d'isolation 100M Q Min. ,500VDC
Diélectrique 500VAC pour une minute
Rotation Radial 0.02Max. (450 g-load)
Rotation Axial 0.08Max. (450 g-load)
Force Radial Max. 28N (20mm de la bride)
Force Axial Max. 10N
Rotation CW (voir la bride avant)
Dimensions:
Diagramme de câblage
CW
DIRECTION STEP A C B D
1 + +
2 + +
3 + +
4 + +
1 + +
Vu de l’extrémité de l’axe
Description
Pilotage normal ou par rafale ;
Mode demi pas ou pas entiers ;
Sens horaire ou antihoraire ;
Courant de charge programmable ;
Peu de composants externes ;
Entrée de remise à zéro et sortie d'indication de position initiale ;
Entrée de validation du fonctionnement.
Le contrôleur de moteur pas à pas L297 génère quatre signaux de commande de
phases pour les moteurs pas à pas bipolaires à deux phases ou pour les moteurs pas à pas
unipolaires à quatre phases.
Le moteur peut être piloté par demi-pas, en mode normal ou par rafale et un circuit de
hachage par modulation de largeur d'impulsion permet le contrôle du courant dans les
enroulements. Une particularité de ce composant est qu'il ne demande qu'un signal d'horloge,
un signal de direction et un signal d'indication de mode à partir desquels il génère de façon
interne les signaux de commande des phases, allégeant la tâche du microprocesseur et du
programmeur . Monté dans un boîtier en plastique de 20 broches, le L297 peut être utilisé
avec des ponts de commande comme le L298N ou le L293E ou encore avec des transistors ou
des Darlington en composants discrets.
Brochage :
SYNC 1 20 /RESET
GND 2 19 HALF-
/FULL
HOME 3 18 CW-/CCW
A 4 17 /CLOCK
INH1 5 16 OSC
B 6 15 Vref
C 7 14 SENS1
INH2 8 13 SENS2
D 9 12 VS
Enable 10 11 CONTROL
Description :
Tension d'alimentation de la partie puissance supérieure à 46V ;
Courant continu total supérieur à 4A ;
Basse tension de saturation ;
Protection contre les dépassements de température ;
Tension d'entrée à l'état logique « 0 » supérieure à 1,5V (haute immunité au bruit).
Le L298N est un circuit intégré monté dans un boîtier Multiwatt de 15 broches. C'est
un double pont complet de puissance (haute tension et fort courant), conçu pour accepter des
niveaux logiques TTL standards et pour piloter des charges inductives comme les relais, les
bobines, les moteurs à courant continu et les moteurs pas à pas. Deux entrées d'inhibition
permettent de bloquer le composant indépendamment des signaux d'entrée. Les émetteurs des
transistors inférieurs de chaque pont sont connectés entre eux et la broche correspondante
peut être utilisée pour connecter une résistance de mesure externe.
Une entrée d'alimentation supplémentaire est fournie de façon à ce que la logique
travaille à une tension moindre.
Brochage :
Le microcontrôleur 16F877.
Ceci est particulièrement utile si en entrée les signaux varient lentement notamment autour de
2,5V ou s’il faut éviter toute incertitude de niveaux logiques. L'entrée RA4 est associée au
Timer0 : comptage d'impulsions.
- La fonction principale du PORTA est de fournir un ensemble d'entrées (excepté
RA4) analogiques pour le convertisseur. Au reset, les pattes du PORTA sont configurées
comme des entrées analogiques et non comme des entrées sorties numériques (registre de
configuration ADCON1).
- Les entrés sorties RC5, RC6 et RC7 sont utilisées pour les communications
asynchrone et synchrone (USART, Universal Synchronous Asynchronous Receiver
Transmitter).