Documente Academic
Documente Profesional
Documente Cultură
Mmoire
MASTER PROFESSIONNEL
Domaine : Sciences et technologies
Filire : Electronique
Spcialit : Automatique
Prsent par :
Bentaleb mokhtar gasmi elhadi
Thme
Soutenu publiquement
Le : 31/05/2016
Devant le jury :
A ceux qui ont nous aide faire ce modeste travail par leurs conseils et leurs
encouragements :
Nos parent
Notre encadreur M. Aouf Anouar Essadate
Nos professeurs
Nos chers amis
A toute la promotion 2016
I.1 Introduction......3
I.2Historique .3
I.5.1 Historique.....7
I.5.2 Gnralits7
I.7 Comparaison entre les diffrents types des moteurs pas pas...15
I.8 CONCLUSION..15
II.1. Introduction..16
II.2. Mise en uvre de la carte Arduino Uno..16
II.2.2.1.Alimentation...18
II.3.1 alimentation....23
II.3.2.2 La programmation......24
I.4 Conclusion....30
III.1. Introduction....31
III.2.1 description....31
IV.2.2 ISIS48
IV.2.3 ARES.48
IV.3 Conclusion.57
Conclusion gnrale...58
BIBLIOGRAPIE.
ANNEXE.
ABREVIATIONS
Figure II.4 Figure : commande moteur par le couple L297 et L298 arduino....27
Tableau I.3: Etat successifs des phases lors de l'utilisation des demi-pas....13
Tableau I.4: Comparaison entre les diffrents types des moteurs pas pas....15
INTRODUCTION GENERALE
INTRODUCTION GENERALE
Aujourdhui, les machines commande numrique par calculateur (CNC) permettent une
production conomique et rentable. Le contrle des cots reste une proccupation importante.
La diminution des quantits des sries et le raccourcissement de la longvit des produits
finaux demandent des droulements de production de plus en plus flexibles.
Durant ces dernires annes, la commande des machines lectriques a subi des progrs
significatifs. Ces progrs sont essentiellement dus la rvolution technologique en
informatique industriel, ce qui a permis le dveloppement de solutions numriques efficaces
avec une possibilit d'implanter des algorithmes plus complexes. Ces commandes sont en
majorit bases sur les microprocesseurs, les DSP (Digital Signal Processor) et les
microcontrleurs PIC. Ces processeurs sont quips d'unit arithmtique et logique (UAL)
ddie la ralisation des calculs arithmtiques. Ils intgrent galement des priphriques tel
que les convertisseurs analogiques/numriques et les timers bien adapts aux besoins de
commande de machines lectriques.
Le moteur pas pas est linterface idale entre llectronique numrique et la mcanique,
il permet de convertir directement un signal lectrique en un positionnement angulaire
caractre incrmental. Pour cela on utilise le port USB dun ordinateur de type PC quon
commande avec une carte Arduino Uno et des circuits intgrs.
1
INTRODUCTION GENERALE
Dans le dernier chapitre, on prsente le banc d'essai exprimental utilis pour tester en
temps rel les algorithmes de commande dvelopps dans les parties prcdentes. Les
rsultats obtenus sont prsents de faon les comparer avec ceux de la simulation et aussi
vrifier si les amliorations apportes en simulations seront gardes en exprimentation.
2
CHAPITRE I :
Moteur pas
pas
Chapitre I Moteurs pas pas
I.1. Introduction
Durant ces dernires annes, la commande des machines lectriques a subi des progrs
significatifs. Ces progrs sont essentiellement dus la rvolution technologique en
informatique industriel, ce qui a permis le dveloppement de solutions numriques efficaces
avec une possibilit d'implanter des algorithmes plus complexes.
Aprs une premire gnration de commandes numriques logique cble sont apparues
les commandes numriques par calculateur (CNC), ou par ordinateur, qui intgrent un ou
plusieurs ordinateurs spcifiques pour raliser tout ou partie des fonctions de commande.
Tous les systmes de commande numrique commercialiss actuellement contenant au moins
un microprocesseur, les termes CN et CNC peuvent tre considrs comme des synonymes.
Une CNC cest une machine pilote par des moteurs pas pas. Ces derniers permettent de
convertir directement un signal lectrique numrique en un positionnement angulaire de
caractre incrmental, par exemple :
Impriment 3d.
La machine de dcouplage.
Mini traceur.
Ce premier chapitre prsente le contexte dtude travers une description des machines
CNC et les moteurs pas pas.
I.2.Historique
Les travaux mens par Falcon et Jacquard la fin du XVIIIe sicle ont montr quil tait
possible de commander les mouvements dune machine partir dinformations transmises par
un carton perfor. Leur mtier tisser de 1805 fut le premier quipement tre dot de cette
technique et, de ce point de vue, il peut tre considr comme lanctre de la commande
numrique.
Il faut cependant rattacher lexploitation industrielle de la CN au dveloppement de
llectronique.
En 1947, Traverse City dans ltat du Michigan, John Parsons fabrique pour le compte de
lUS Air Force des pales dhlicoptre par reproduction. Pour faonner ses gabarits, il utilise
une mthode consistant percer plusieurs centaines de trous faiblement espacs de manire
approcher le profil thorique. Lemplacement et la profondeur de chaque trou sont calculs
3
Chapitre I Moteurs pas pas
avec prcision par un ordinateur IBM cartes perfores. La finition de la surface est obtenue
par des oprations manuelles de polissage. [1]
La partie oprative.
La partie commande.
4
Chapitre I Moteurs pas pas
5
Chapitre I Moteurs pas pas
Formes Numrises. Cette modlisation est ensuite exporte dans un fichier intermdiaire
en utilisant un standard d'change comme IGES, STEP, DXF ou autre. Certains outils de FAO
sont capables de relire directement les fichiers des grands fournisseurs de CAO. Dans d'autres
cas, la CAO et la FAO sont compltement intgres et ne ncessitent pas de transfert.
Pour ces progiciels, on parle de CFAO.
I.4.3. Le post-processeur
Cest un petit programme utilitaire qui transforme des trajectoires en format neutre en
trajectoires en repre MOCN (machine-outil commande numrique). Ce traducteur tien
compte de la cinmatique de la machine, de ses courses et de ses capacits. Il signale les
erreurs et exprime les trajectoires dans le langage spcifique la machine. Chaque machine
possde donc son propre post-processeur (figure I.3)
Figure I.3 : Cycle dune pice fabrique par une commande numrique (CFAO)
6
Chapitre I Moteurs pas pas
I.5.1. Historique
Le moteur pas pas a t invent par Marius Lavet en 1936. Il s'agit d'un moteur
lectrique qui transforme une impulsion lectrique en mouvement angulaire. Il possde un
lment mobile se dplaant par sauts successifs. Mis au point pour la fabrication de montres,
on le retrouve dans presque tous les modles quartz. Il est compos de plusieurs lments et
reoit des impulsions qui provoquent un mouvement saccad de la masse oscillante. Le
moteur pas pas est galement utilis dans le secteur de l'informatique et notamment dans les
imprimantes relies un ordinateur et le lecteur DVD.
I.5.2. Gnralits
Les moteurs pas pas sont des moteurs spciaux, composs simplement dun stator
runissent des pices polaires et des bobinages, et utiliss pour commander avec grande
prcision le dplacement et la position dun objet.
Comme leur nom lindique, ces moteurs tournent par incrment discret. Chaque incrment de
rotation est provoqu par une impulsion de courant fournie lun des enroulements du stator
Le principe de base est donc toujours la cration dun champ tournant comme dans les
moteurs triphass industriels ou dans les petits moteurs quipant les programmateurs
mcaniques :
Les ples magntiques de rotation de mme nom se repoussent et les ples des noms
contraires sattirent, le champ magntique entranera le rotor aliment dans le mme sens.
Ceci traduit le fait quon transforme une grandeur numrique en une grandeur analogique. La
frquence de rotation, ou vitesse est donc commande par des impulsions (consigne de
rotation) contrles elle-mme par un dispositif lectronique en technologie cble
programme.
7
Chapitre I Moteurs pas pas
La commande des moteurs pas pas est relativement simple car on na pas besoin
daccessoires tels que des codeurs pour connatre la position, chaque impulsion du systme de
commande les fait avancer dun pas. Il existe 3 types de moteurs pas pas, aimants
permanents, rluctance variable ou hybrides.
Les moteur rluctance variable fonctionnent selon un principe diffrent de celui des
moteur aiment permanent. Ils possdent bien videmment un stator, mais ce dernier est
fabriqu en acier doux non magntique. Il nest pas lisse et possde plusieurs dents .Ce type
de moteur est reprsent en (figure I.4). On peut voir, dans cet exemple, que le stator est
compos de 8 plots sur lesquels enrouls les bobinages, ce qui donne 4 phase .le rotor, quant
lui, ne comporte que 6 dents [3].
Le principe de fonctionnement est trs simple lun des phases alimentant deux des plots
opposs du stator est traverse par un courant afin daligner deux des dents du rotor avec ces
plots. Le mode de commande peut dans ce cas, de la mme faon que pour les autres moteurs,
tre monophas, biphas ou demi-pas. Les squences de commandes sont prsentes dans le
tableau suivent :
8
Chapitre I Moteurs pas pas
9
Chapitre I Moteurs pas pas
de polarit inverse). Par la suite nous simplifierons la notation pour une meilleure
correspondance avec les chronogrammes des phases en indiquant uniquement la phase qui est
alimente par un courant''positif"Soit A B C D.
Cette squence est connue sous le nom de " one phase on full step" (traduisez phase par
phase ou une phase la fois en pas entier). A tout moment il ny a quune seule phase
dalimente et nous travaillons en mode pas entier.
Appel "two-phase-on full step" (deux phases la fois en pas entier) ce mode de
commande est celui qui procure le couple le plus lev.
10
Chapitre I Moteurs pas pas
Pour obtenir une rotation dans la direction oppose les mmes squences sont utilises en
Inversant l'ordre de dfilement. Comme nous pouvons le constater sur les diagrammes, les
moteurs sont reprsents avec une avance de pas 90.
Dans les moteurs rels les nombres de ples ont t multiplis pour rduire quelques
degrs seulement l'angle d'avance d'un pas. Le nombre d'enroulements et la squence de
commande restant, quant eux, inchangs.
I.6.2.2. Moteur aimant permanent unipolaire
Les moteurs unipolaires se diffrencient par le fait qu'ils sont double bobinage. Le double
bobinage est utilis pour l'inversion du flux statorique et le moteur se commande de la mme
manire qu'un bipolaire except qu'un seul transistor pour chaque enroulement suffit dans
l'tage de puissance (soit quatre Darlington pour un moteur ou un rseau de 4 transistors- voir
ULN 2075B).
11
Chapitre I Moteurs pas pas
Simplement, les moteurs unipolaires sont plus chre car leur fabrication rclame un double
bobinage. De plus, pour une taille donne, ce type de moteur un couple plus faible cause
des enroulements qui sont plus fins.
Il ft une poque o les moteurs unipolaires taient intressants pour les concepteurs parce
qu'ils simplifiaient l'tage de commande lectronique. Maintenant, grce aux circuits de
commande (push pull monolithique) du genre L298, les moteurs bipolaires sont devenu
populaires et d'une utilisation courante.
Tous les moteurs aimant permanent souffrent des oscillations (et des harmoniques qui
s'ensuivent) gnres par le rotor qui limitent la vitesse de rotation.
Quand des acclrations et des vitesses plus leves sont ncessaires on utilisera de prfrence
les moteurs reluctance variable [4].
12
Chapitre I Moteurs pas pas
tape[3].
La table de vrit B.2.2.1 rsume les tats successifs des diffrentes phases : ltat logique
Numro de ltape : 1 2 3 4
Bobinage 1, phase 1 0 1 1 0
Bobinage 1, phase 2 1 0 0 1
Bobinage 2, phase 1 1 1 0 0
Bobinage 2, phase 2 0 0 1 1
Table I.2: Table Etat successifs des phases
Le moteur de notre schma effectue une rotation en quatre pas. Il se caractrise par un
fonctionnement dit par pas il existe galement un mode de fonctionnement par demi
pas : il consiste a intercaler entre deux tapes, une priode au cours de la quelle lon coupe
lalimentation du bobinage du stator dont lalimentation sapprte changer de sens (elle
passe donc par zro) : durant cette nouvelle tape .le rotor tourne dun demi pas (45) en
salignant table de vrit des phases est reprsente en table suivent :
Numro de ltape : 1 2 3 4 5 6 7 8
Bobinage 1, phase 1 0 0 1 1 1 0 0 0
Bobinage 1, phase 2 1 0 0 0 0 0 1 1
Bobinage 2, phase 1 1 1 1 0 0 0 0 0
Bobinage 2, phase 2 0 0 0 0 1 1 1 0
Table I.3: Etat successifs des phases lors de l'utilisation des demi-pas.
13
Chapitre I Moteurs pas pas
En combinant les structures des deux moteurs prcdents, cest dire en plaant les
aimants du moteur aimants permanents dans un circuit ferromagntique on cre un nouveau
type de moteur appel moteur rluctant polaris ou moteur hybride (Hybrid motor : HB).
Dans ce cas, il existe un couple rluctant provoqu par la variation de permances propres
associes chaque aimant et chaque bobine [3].
Les moteurs pas pas hybrides runissent, au moins en partie, les avantages des moteurs
pas pas rluctance variable et aimants permanents, savoir :
Dans sa configuration de base le moteur pas pas hybride comporte un stator en fer
feuillet plots saillants et deux couronnes rotoriques dentes en matriau ferromagntique,
14
Chapitre I Moteurs pas pas
I.8. Conclusion
Ce premier chapitre sappuie essentiellement sur quelques notions de la machine
numrique, des moteurs pas pas et de la commande numrique, elles sont ncessaires pour
tenir compte des contraintes que toute ralisation se rapporte ces tudes qui devraient tre
On constate quil existe diffrents types de moteur pas pas. Cependant le problme qui
se prsente maintenant cest comment commander ces moteurs autrement dit comment peut-
on faire varier le sens de rotation du moteur, langle de rotation, etc
Lutilisateur peut choisir le moteur qui lui convient son application, avec lalimentation
et le mode dexcitation correspondant. Pour notre projet, on a opt pour trois moteurs pas
pas, bipolaire.
15
CHAPITRE II :
description des
composants
lectronique de la
carte de commande
Chapitre II Description des composants lectroniques de la carte de commande
II.1. Introduction
Aprs avoir dcrit le principe et la systmatique du moteur pas pas, nous allons
maintenant entamer la partie lectronique qui va commander tout le systme. Commenons
tout dabord par une description thorique des diffrents composants quon a utiliss pour
pouvoir raliser notre commande.
II.2. Mise en uvre de la carte Arduino Uno
La carte Arduino est une carte lectronique base autour dun microcontrleur et de
composants minimum pour raliser des fonctions plus ou moins volues bas cot. Elle
possde une interface USB pour la programmer. Cest une plateforme open-source qui est
base sur une simple carte microcontrleur (de la famille AVR), et un logiciel, vritable
environnement de dveloppement intgr, pour crire, compiler et transfrer le programme
vers la carte microcontrleur.
Arduino est peut tre utilis pour dvelopper des applications matrielles industrielles
lgres ou des objets interactifs, et il peut recevoir en entres une trs grande varit de
capteurs. Les projets Arduino peuvent tre autonomes, ou communiquer avec des logiciels
sur un ordinateur (Flash, Processing ou MaxMSP, Labview). Les cartes lectroniques peuvent
tre fabriques manuellement ou bien tre achetes pr assembles, le logiciel de
dveloppement open-source est tlcharg gratuitement. [5]
La programmation de la carte Arduino prsente les principales fonctionnalits de
l'interface de lapplication Arduino. L'application Arduino vous permet de crer et diter un
programme (appel sketch) qui sera compil puis tlvers sur la carte Arduino. Ainsi,
lorsque vous apportez des changements sur le code, ces changements ne seront effectifs
qu'une fois le programme tlvers sur la carte.
Bouton de rinitialisation.
Elle contient tout ce qui est ncessaire pour le fonctionnement du microcontrleur. Pour
pouvoir lutiliser et se lancer, il suffit simplement de la connecter un ordinateur laide dun
cble USB (ou de lalimenter avec un adaptateur secteur ou une pile, mais ceci nest pas
indispensable, lalimentation est fournie par le port USB).
La carte Arduino Uno dispose de toute une srie de facilits pour communiquer avec un
ordinateur, une autre carte Arduino, ou avec dautres microcontrleurs. LArduino Uno se
dispose de quatre UARTs (Universal Asynchrones Receiver Transmitter ou metteur-
rcepteur asynchrone universel en franais) pour une communication en srie de niveau TTL
(5V) et qui est disponible sur les broches 0 (RX) et 1 (TX). Un circuit intgr Atmega16U2
sur la carte assure la connexion entre cette communication srie de lun des ports srie de
lAtmega Uno vers le port USB de lordinateur qui apparat comme un port COM virtuel pour
les logiciels de lordinateur. Le code utilis pour programmer lAtmega8U2 utilise le driver
standard USB COM, et aucun autre driver externe nest p as ncessaire.[6]
17
Chapitre II Description des composants lectroniques de la carte de commande
II.2.2.Description matrielle
Un module Arduino est gnralement construit autour d'un microcontrleur famille
ATMEGA en technologie CMOS sont des modles 8 bits AVR. En excutant des
instructions dans un cycle d'horloge simple, l'ATMEGA ralise des oprations s'approchent
de 1 MIPS par 1 MHZ permettent de raliser des systmes faible consommation lectrique
et simple au niveau lectronique et des composants complmentaires qui facilitent la
programmation et l'interfaage avec d'autres circuits. Chaque module possde au moins un
rgulateur linaire 5V et un oscillateur quartz 16 MHz (ou un rsonateur cramique dans
certains modles).[8]
Le microcontrleur est prprogramm avec un bootloader de faon ce qu'un
programmateur ddi ne soit pas ncessaire. Mais les connexions permettent cette
programmation diffrente selon les modles. Les premiers Arduino possdaient un port srie,
puis l'USB est apparu sur les nouveaux modles, tandis que certains modules destins une
utilisation portable se sont affranchis de l'interface de programmation, relocalise sur un
module USB-srie ddi (sous forme de carte ou de cble).
La composition des lments internes d'un microcontrleur :
RAM : c'est la mmoire dite "vive", elle va contenir les variables de votre programme.
Elle est dite "volatile" car elle s'efface si on coupe l'alimentation du microcontrleur
(comme sur un ordinateur).
EEPROM: C'est le disque dur du microcontrleur. Vous pourrez y enregistrer des
infos qui ont besoin de survivre dans le temps, mme si la carte doit tre arrte. Cette
mmoire ne s'efface pas lorsque l'on teint le microcontrleur ou lorsqu'on le
reprogramme.
Les registres: c'est un type de mmoire utilis par le processeur.
La mmoire cache: c'est une mmoire qui fait la liaison entre les registres et la RAM.
Nous n'en parlerons galement pas tout de suite.
Le processeur: C'est le composant principal du microcontrleur. C'est lui qui va
excuter le programme que nous lui donnerons traiter. On le nomme souvent le
CPU.[9]
II.2.2.1.Alimentation
La carte Arduino Uno peut-tre alimente soit via la connexion USB (qui fournit 5V
jusqu' 500mA) ou l'aide d'une alimentation externe. La source d'alimentation est
slectionne automatiquement par la carte.
18
Chapitre II Description des composants lectroniques de la carte de commande
L'alimentation externe (non-USB) peut tre soit un adaptateur secteur (pouvant fournir
typiquement de 3V 12V sous 500mA) ou des piles. L'adaptateur secteur peut tre connect
en branchant une prise 2.1 mm positif au centre dans le connecteur jack de la carte. Les fils en
provenance d'un bloc de piles ou d'accus peuvent tre insrs dans les connecteurs des
broches de la carte appeles GND (masse ou 0V) et Vin (Tension positive en entre) du
connecteur d'alimentation. La carte peut fonctionner avec une alimentation externe de 6 20
volts. Cependant, si la carte est alimente avec moins de 7V, la broche 5V pourrait fournir
moins de 5V et la carte pourrait tre instable. Si on utilise plus de 12V, le rgulateur de
tension de la carte pourrait chauffer et endommager la carte. Aussi, la plage idale
recommande pour alimenter la carte Uno est entre 7V et 12V. [14]
Connecteur alimentation
19
Chapitre II Description des composants lectroniques de la carte de commande
Suivant les types de cartes celles-ci disposent d'un nombre de connecteurs plus ou moins
importants, soit de type digital, soit de type mixte analogique / digital. Ces entres / sorties
possdent les caractristiques suivantes :
Courant d'entre : Environ 1A
Valeur rsistance de Pull Up optionnelle : 20 a 50 KHo
Courant de sortie : 40 mA max, 200 mA total microcontrleur
Tension d'entre : Ne pas dpasser Vcc.
Caractristique convertisseur AD : Par approximation successives, 10bits, temps de
conversion 13 a 260s.
Rfrence de tension interne : 1.1 ou 2.56 V.
II.2.2.3. Leds externes
Le logiciel de programmation des modules Arduino est une application Java, libre et
multiplateformes, serve dditeur de code et de compilateur, et qui peut transfrer le firmware
et le programme travers la liaison srie (RS232, Bluetooth ou USB selon le module). Il est
galement possible de se passer de linterface Arduino , et de compiler les programmes en
ligne de commande. Le langage de programmation utilis est le C++, compil avec avr-g++,
et li la bibliothque de dveloppement Arduino, permettant lutilisation de la carte et de ses
20
Chapitre II Description des composants lectroniques de la carte de commande
Il est totalement gratuit et propos en libre tlchargement sur le site Internet dArduino.
Tlchargez et installez la dernire version que vous souhaitez sur votre ordinateur (Windows.
21
Chapitre II Description des composants lectroniques de la carte de commande
Linux ou Mac). Une fois dcompresse comprend le logiciel, les drivers L'archive, exemples
et librairies. Aprs l'indispensable installation des pilotes, lancez le logiciel partir du
dossier. La fentre de l'application Arduino comporte les lments suivants.
II.2.3.2. Structure d'un programme Arduino
Un programme Arduino doit imprativement tre divis en 2 parties : une fonction setup
et une fonction loop(). Ces deux fonctions sont de type void(), cest dire quelles ne peuvent
pas prendre de valeurs. La fonction setup est la fonction qui se lance au dbut du programme.
Elle permet dinitialiser les variables et de dfinir les broches de la carte Arduino qui seront
utilises. La fonction loop se lance aprs la fonction setup et, comme son nom lindique, fait
une boucle jusqu ce que la carte soit dbranche. Les constantes du programme Pour notre
programme, nous avons utilis de nombreuses constantes globales, dfinies en tout dbut de
programme.
Pour raliser une commande numrique de trois moteurs pas pas on tudie comment
commande un seul moteur.
Une alimentation.
22
Chapitre II Description des composants lectroniques de la carte de commande
II.3.1 alimentation:
Pour assurer le fonctionnement de nos cartes lectroniques, nous avons besoin dune
alimentation continue de 5VDC et 12VDC :
5V DC 200mA: alimentation pour la partie commande.
Pour cette commande on utilise un circuit de commande qui donne un mode de commande
directe de moteur pas pas (mode pas entier).
Mode pas entier, deux phases alimentes en mme temps (Two Phase ON, Full Step)
:1010/0110/0101/1001.
23
Chapitre II Description des composants lectroniques de la carte de commande
II.3.2.2 La programmation :
int stepDelay = 25; //ce constantes utilise pour commande la vitesse de rotation.
void stup () {
digitalWrite(inA1, OUTPUT);
digitalWrite(inA2, OUTPUT);
digitalWrite(inB1, OUTPUT);
digitalWrite(inB2, OUTPUT); }
digitalWrite(inA1, LOW);
digitalWrite(inA2, HIGH);
digitalWrite(inB1, HIGH);
digitalWrite(inB2, LOW);
24
Chapitre II Description des composants lectroniques de la carte de commande
delay(stepDelay); }
digitalWrite(inA1, LOW);
digitalWrite(inA2, HIGH);
digitalWrite(inB1, LOW);
digitalWrite(inB2, HIGH);
delay(stepDelay);
digitalWrite(inA1, HIGH);
digitalWrite(inA2, LOW);
digitalWrite(inB1, LOW);
digitalWrite(inB2, HIGH);
delay(stepDelay);
digitalWrite(inA1, HIGH);
digitalWrite(inA2, LOW);
digitalWrite(inB1, HIGH);
digitalWrite(inB2, LOW);
delay(stepDelay);
void loop() {
25
Chapitre II Description des composants lectroniques de la carte de commande
delay(2000);
la premire boucle, on assure un mouvement d'un pas pas chaque passage l'aide de
fonction step1() step2() step 3() step4().
la seconde boucle, on assure un mouvement d'un pas chaque passage mais en sens
inverse.
La commande dir/step dpend sur un circuit qui obtenir un commande direct soit Mode
pas entier, une phase alimente la fois (One Phase ON, Full Step) ou Mode deux phases
alimentes en mme temps (Two Phase ON, Full Step) .ce circuit commande par deux
proche :
Step : qui est lhorloge pour la vitesse. A chaque front descendant le moteur fera un
pas.
Dir : (ClockWise ou Counter ClockWise) qui dcidera du sens de rotation du moteur
Pour raliser cette commande numrique on doit tudier deux circuits de commande.
II.3.3.1.Circuit L297
Le circuit L297 est un contrleur de moteur pas pas, il fonctionne avec un circuit de
puissance double pont. Il lui suffit de lui fournir les signaux dhorloge (CLOCK :
pour avancer des pas), de direction et de mode afin de piloter le moteur pas--pas. Le L297
gnre alors la squence de commande de ltage de puissance. [11]
Le circuit L297 possde deux tages principaux :
Un translateur (squenceur) qui gnre les diffrentes squences de commande.
26
Chapitre II Description des composants lectroniques de la carte de commande
L297 est un circuit qui contient toute la circuiterie de commande et de contrle de moteurs
pas pas unipolaire et bipolaire. Ce circuit est utilis conjointement avec un driver double
pont tel que le L298 (figure I.4). L'ensemble forme une interface idale pour le contrle d'un
moteur pas pas par arduino.
27
Chapitre II Description des composants lectroniques de la carte de commande
28
Chapitre II Description des composants lectroniques de la carte de commande
void stup () {
pinMode(steppin, OUTPUT);
pinMode(dirpin, OUTPUT);
Void loop() {
digitalWrite(dirpin, HIGH); //dirpin = high pour sans direct low pour sans inverse
for (i = 0; i<nbstep; i++) // boucle pour gnrer le signal rectangulaire
29
Chapitre II Description des composants lectroniques de la carte de commande
{
digitalWrite(steppin, LOW);
digitalWrite(steppin, HIGH); //transition tat bas vers tat haut (front montant) pour faire
marcher le moteur.
delayMicroseconds(500); }
} //temporisation pour ajuster la vitesse de rotation
Vous pouvez ensuit ajuster la vitesse et nombre pas selon votre besoin.
I.4. Conclusion
Ce chapitre est un portail pour notre ralisation et conception matrielle. Ce travail nous a
permis de matriser les options de notre carte arduino Uno avec circuit de commande et ses
caractristiques afin de les exploiter dune manire correcte. Nous avons prsent galement
des principes et des fonctions diffrentes de la programmation ddie la carte Arduino Uno,
le plus populaire et le plus clbre de la gamme. Une brve description, ainsi qu'une figure
montrant linterconnexion des autres composants qui permettent de mener et apprendre plus
traiter de multiples techniques et priphriques entres numriques et analogiques. Nous
avons slectionn la carte Arduino Uno pour son aspect conomique, sa popularit et sa
puissance de traitement. Ensuite nous avons prsent aussi une tude sur les circuits intgrs
de commande des moteurs pas pas utilises dans notre carte lectronique.
Ce chapitre relve ainsi une utilit majeure pour ce qui suit puisquil dtaille des notions
exploites au sein de la partie ralisation de notre projet
30
Chapitre III :
Programmation
et interface
graphique
Chapitre III Programmation et interface graphique
III.1. Introduction
Les machines-outils commande numrique sont compltement pilotes par ordinateur.
Pour que la machine comprenne les instructions donnes par lordinateur de contrle, il faut
que ces instructions soient transmises dans un langage de programmation spcial, qui est le G-
code, ou code-G. Les outils informatiques actuels de la chaine soft CAO permettent de se
passer de la connaissance pratique du langage, mais pour ceux qui voudraient ventuellement
faire des programmes simples directement avec un diteur pour les envoyer dans le contrleur
ARDUINO, il est important de connaitre quelques bases de ce langage. Inkscape est un
logiciel de dessin vectoriel qui offre une interface graphique de gestion des images
vectorielles.
III.2.1. description
Le G-code est le langage de programmation des machines numriques est bas sur des
lignes de code. Chaque ligne (galement appele un bloc) peut inclure des commandes pour
faire produire diverses actions la machine. Plusieurs lignes de code peuvent tre regroupes
dans un fichier pour crer un programme G-code.
Une ligne de code typique commence par un numro de ligne optionnel suivi par un ou
plusieurs mots. Un mot commence par une lettre suivie dun nombre (ou quelque chose qui
permet d'valuer un nombre). Un mot peut, soit donner une commande, soit fournir un
argument une commande. Par exemple, G1 X3 est une ligne de code valide avec deux
mots. G1 est une commande qui signifie dplaces toi en ligne droite la vitesse
programme et X3 fournit la valeur dargument (la valeur de X doit tre 3 la fin du
mouvement). La plupart des commandes G-code commencent avec une lettre G ou M (G pour
Gnral et M pour Miscellaneous (auxiliaire)). Les termes pour ces commandes sont G-
codes et M-codes[13].
31
Chapitre III Programmation et interface graphique
un M30 , mais est requis sinon. Une erreur sera signale si un fichier a une ligne pour-cent au
dbut, mais pas la fin. Le contenu utile dun fichier dlimit par pour-cent sarrte aprs la
seconde ligne pour-cent. Tout le reste est ignor.
Le langage G-code prvoit les deux commandes (M2 ou M30) pour finir un programme.
Le programme peut se terminer avant la fin du fichier. Les lignes places aprs la fin dun
programme ne seront pas excutes. Linterprteur ne les lit pas[13].
Inkscape est un puissant logiciel de dessin vectoriel vocation "artistique", le dessin y est
enregistr sous forme d'quations de courbes (chemins) et non par des pixels comme les
images bitmap. Ce programme est vaste (mais trs bien fait), les fonctions qui nous intresse
dans le cadre de ce tutoriel c'est qu'il permet d'ouvrir un nombre trs important de type
d'image (PS, DXF, PDF, SVG, PNG, JPG, BMP, XCF,...) et qu'il est capable de transformer
des images bitmap en image vectorielle [14].
32
Chapitre III Programmation et interface graphique
"G-code tools" est une extension de Inkscape permettant (entre autre) de gnrer du G-code
partir des chemins d'une image vectorielle.
33
Chapitre III Programmation et interface graphique
Pour lutilisation graphique : le mode automatique, Charge notre fichier G-code: dans
l'onglet "file mode" faites "browse" et slectionnez fichier G-code (.ngc) prcdemmentcr.
En faisant "visualize" nous pourrons vrifier notre trac et le chemin emprunt par l'outil: en
rouge les zone de travail (Z<0); en bleu les dplacements (Z>0).
34
Chapitre III Programmation et interface graphique
Faire le zro (le "home"): dans l'onglet "machine control" dplacez l'outil avec les boutons
X, Y et Z. Nous pouvons modifier le pas de dplacement en modifiant le "step size".
Une fois l'outil positionner l o vous souhaitez tablir le zro (en contact avec notre support)
cliquez sur "reset zro". Pour lancer le travail: retournez dans l'onglet file mode et cliquez sur
"Send".
35
Chapitre III Programmation et interface graphique
36
Chapitre III Programmation et interface graphique
Larduino fait lenregistrement dans la mmoire RAM, Puis fait la compilation pour
savoir lopcode (code de lopration) et videment ses paramtres sils existent. Chaque
opcode de code G a une fonction spcifique, sil sagit dun paramtrage, linstruction affecte
une variable en EEPROM tels que lorigine programme, origine pice, vitesse de
dplacementet sil sagit dun dplacement, larduino fait appel la fonction qui contient
linterpolation de Bressenham [18] lie ce dplacement (interpolation linaire et
interpolation circulaire). Enfin, le arduino envoi le mot pour indiquer au PC quil est prt
recevoir linstruction suivante. Lappui sur le bouton cancel termine le dialogue.
37
Chapitre III Programmation et interface graphique
38
Chapitre III Programmation et interface graphique
L'avantage de la communication srie est qu'elle ncessite moins de lignes, donc moins de
broches, donc moins de composants. Son cot est donc plus faible[17].
void processCommand() {
int cmd = parsenumber('G',-1);
switch(cmd) {
case 0:
case 1: { // line
feedrate(parsenumber('F',fr));
line( parsenumber('X',(mode_abs?px:0)) +
(mode_abs?0:px),
parsenumber('Y',(mode_abs?py:0)) + (mode_abs?0:py),
parsenumber('Z',(mode_abs?pz:0)) + (mode_abs?0:pz),
break;
39
Chapitre III Programmation et interface graphique
}
case 2:
case 4: pause(parsenumber('P',0)*1000); break; // dwell
case 90: mode_abs=1; break; // absolute mode
case 91: mode_abs=0; break; // relative mode
case 92: // set logical position
position( parsenumber('X',0),
parsenumber('Y',0),
parsenumber('Z',0));
break;
default: break;
}
cmd = parsenumber('M',-1);
switch(cmd) {
case 17: motor_enable(); break;
case 18: motor_disable(); break;
case 100: help(); break;
case 114: where(); break;
default: break;
}
}
40
Chapitre III Programmation et interface graphique
Notre but est de tracer le moins de pixels possibles. Pour cela nous traons un nombre de
pixels gal :
Si abs(Xi-Xf) < abs(Yi-Yf), nous traons un pixel et un seul par ligne interceptant le segment,
sinon nous traons un pixel et un seul par colonne interceptant le segment (figure III.9).
Xf > Xi
Yf > Yi
et (Xf-Xi) (Yf-Yi)
Tous les autres cas peuvent s'y rapporter. Le coefficient directeur de la droite passant par les
deux sommets il est positif et infrieur ou gal 1. Au cours de l'excution, nous quantifions,
pour chaque pixel allum, la diffrence entre ses cordonnes entires (utilises pour affichage
raster) et relles telles qu'elles sont calcules sur le segment continu. Nous allumons un pixel
en chaque abscisse entire x de Xi Xf et nous utilisons une variable cumul pour stocker une
estimation de la diffrence entre l'ordonne entire et l'ordonne relle. Le dernier pixel llum
a pour coordonnes (Xf, Yf) car dx/2+dy*dx est la valeur totale de ce qui a t accumul dans
cumul au cours de l'excution (Figure III.11) :
41
Chapitre III Programmation et interface graphique
Caractristiques :
Utilisation de deux variables Xinc et Yinc pour grer des incrments de 1 ou -1 pour x variant
de Xi Xf et y variant de Yi Yf (Figure III.12).
42
Chapitre III Programmation et interface graphique
43
Chapitre III Programmation et interface graphique
Sinon
ErrY = 0
tant que (Cy <> py)
Cy = Cy + Yinc
my = my + 1
Incrmenter(M2)
ErrY = ErrY + Tdx
si ErrY > dy alors
Cx = Cx + Xinc
mx = mx + 1
Incrmenter(M1)
ErrY = ErrY Tdy
Fin si
Fin tant que
Fin si
Fin si
si dirx = 1 alors ax = ax + mx 'mise jour des compteurs
sinon ax = ax - mx fin si
si diry = 1 alors ay = ay + my
sinon ay = ay - my fin si
fin procdure 'fin procdure d'interpolation Linaire.
Algorithme : Procdure dinterpolation linaire adopte aprs modification.
44
Chapitre III Programmation et interface graphique
Une fois la machine CNC fonctionne, il existe trois diffrents modes majeurs pour entrer
des commandes. Les modes Manuel, Auto et Paramtrage. Passer d'un mode une autre
marque une grande diffrence dans le comportement de la machine CNC. Des choses
spcifiques un mode ne peuvent pas tre faites dans un autre.
L'oprateur peut faire une prise d'origine sur un axe en mode manuel mais pas en mode
auto. L'oprateur peut lancer l'excution complte d'un programme de G-codes en mode auto
mais pas en mode manuel. En mode manuel, chaque commande est entre sparment. En
termes humains une commande manuelle pourrait tre active un moteur pas pas. Ces
commandes sont normalement contrles en pressant un bouton de l'interface graphique avec
la souris ou en maintenant appuye une touche du clavier.
En mode auto, un bouton similaire ou l'appui d'une touche peuvent tre utiliss pour
charger ou lancer l'excution complte d'un programme de G-codes stock dans un fichier.
45
Chapitre III Programmation et interface graphique
III.7. Conclusion
Ce chapitre est une tude gnrale du logiciel de commande graphique et le programme de
commande de la machine CNC. Lensemble des outils que nous avons mis au point ont pour
la plupart t dvelopps grce au logiciel Inkscape, pour son utilisation simple et les
nombreuses possibilits quil offre. La premire tape de cette partie consiste en la lecture
dimage pour la tracer et la gnration fichier G code. Puis nous avons choisi logiciel Gcode
Sender pour transfert fichier Gcode vert la carte Arduino Uno. Nous avons constat que
lalgorithme de BRESSENHAM que nous avons prsent est suffisamment prcis pour tracer
une trajectoire.
46
Chapitre IV :
Fabrication et la
commande de la
machine CNC
Chapitre IV : Fabrication et la commande de la machine CNC
IV.1. Introduction
Ce chapitre est consacr la fabrication et lapplication dune machine CNC Pour cette
raison, plusieurs tapes ont t envisages :
Proteus est une suite logicielle destine l'lectronique. Dvelopp par la socit
Labcenter Electronics, les logiciels incluent dans Proteus permettent la CAO dans le domaine
lectronique. Deux logiciels principaux composent cette suite logiciel : ISIS, ARES.
Cette suite logicielle est trs connue dans le domaine de l'lectronique. De nombreuses
entreprises et organismes de formation (incluant lyce et universit) utilisent cette suite
logicielle. Outre la popularit de l'outil, Proteus possde d'autres avantages.
L'outil de cration de prototype virtuel permet de rduire les cots matriel et logiciel lors de
la conception d'un projet.
47
Chapitre IV : Fabrication et la commande de la machine CNC
IV.2.2. ISIS
Le logiciel ISIS de Proteus est principalement connu pour diter des schmas lectriques.
Par ailleurs, le logiciel permet galement de simuler ces schmas ce qui permet de dceler
certaines erreurs ds l'tape de conception. Indirectement, les circuits lectriques conus grce
ce logiciel peuvent tre utilis dans des documentations car le logiciel permet de contrler la
majorit de l'aspect graphique des circuits.
IV.2.3. ARES
Le logiciel ARES est un outil d'dition et de routage qui compltement parfaitement ISIS.
Un schma lectrique ralis sur ISIS peut alors tre import facilement sur ARES pour
48
Chapitre IV : Fabrication et la commande de la machine CNC
raliser le PCB de la carte lectronique. Bien que l'dition d'un circuit imprim soit plus
efficiente lorsqu'elle est ralise manuellement, ce logiciel permet de placer automatiquement
les composants et de raliser le routage automatiquement.
Isis est orient vers les lectroniciens dbutants, ainsi que les dveloppeurs et les
professionnels.
Pour saisir le schma, il faut crer un nouveau projet puis placer les composants qui
doivent tre slectionn partir de la bibliothque des composants :
Listes des
composants
49
Chapitre IV : Fabrication et la commande de la machine CNC
50
Chapitre IV : Fabrication et la commande de la machine CNC
1x Arduino Uno
1x Breadboard
3x easy driver
3x lecteurs de DVD
1x plaque de contreplaque pour la base du Mini Traceur (axe X)
Des rondelles
18x vis
12x crou
20x fils
51
Chapitre IV : Fabrication et la commande de la machine CNC
52
Chapitre IV : Fabrication et la commande de la machine CNC
53
Chapitre IV : Fabrication et la commande de la machine CNC
54
Chapitre IV : Fabrication et la commande de la machine CNC
55
Chapitre IV : Fabrication et la commande de la machine CNC
56
Chapitre IV : Fabrication et la commande de la machine CNC
IV.3. Conclusion :
Comme nous venons de le voir dans ce chapitre, beaucoup de travaux ont t raliss
concernant la machine CNC, nous avons prsent plusieurs types de logiciels utiliss pour
simulation et la commande de machine CNC. Pour raliser cette commande on ait utilis une
carte microcontrleur "Arduino Uno" qui possde un espace de programmation quest trs
claire et simple et les circuit intgres L297, L298 et Easy Driver. Cette carte sert contrler
les moteurs pas pas bipolaire. A l'aide du logiciel " Inkscape " nous avons stoker les codes G
dans la carte arduino Uno. Pour finir, nous branchons les moteurs pas pas, et nous testons la
carte de commande des moteurs pas pas. La machine CNC fonctionne correctement et
rpond aux diffrentes commandes.
57
Conclusion gnrale
Conclusion gnrale
Dans la premire partie, nous avons dabord entam la premire tape qui est base sur
la prsentation de la machine CNC et la deuxime tape consiste sur les moteurs pas pas
que nous avons tudi en dtail. Cette partie est essentielle au fonctionnement des
machines commande numrique.
Dans la deuxime partie, nous avons fait une description et la mise en uvre de la carte
Arduino Uno et les circuits intgrs (L297, L298 et Eesy Driver), pour tester les diffrentes
interfaces lectroniques dacquisition de donnes et de commandes des moteurs pas pas.
Ensuite, la troisime partie, est consacre des logiciels de simulation pour cette
raison, plusieurs tapes ont t envisages :
Finalement, notre travail nous permis la ralisation pratique, et le test des diffrentes
cartes assembles, nous affirmons que nous avons achev notre tche demande : la
58
Conclusion gnrale
commande dun prototype dune machine de dessin 2D. Lavantage de notre commande
est quelle est la norme de la commande numrique des machines 3 axes. Toutefois,
elle peut tre facilement exploite pour ajouter une commande de troisime pour
limprimante 3D et mme un quatrime axe. Nous avons rencontr plusieurs problmes
durant la conception de la commande et la ralisation pratique (protocole de
communication, couple des moteurs et leurs vitesses), mais grce ce que nous avons
appris durant nos tudes acadmiques et lassistance de nos encadrants, nous avons pu
confronter ces difficults
En fait, ce projet a t une source de dcouverte de plusieurs domaines dtudes tel que
linformatique pour la programmation embarque et le design des schmas lectroniques,
sans oublier le savoir-faire dans le domaine lectronique qui consiste raliser
pratiquement les circuits lectroniques.
59
BIBLIOGRAPHIE
[1] Benbekhti Ahmed, Etude de ralisation dun support pour affutage des forets sur
une machine commande numrique , mmoire de fin detude, Universite Abou Bekr
Belkaid-Tlemcen 2013
[2] Abdennadji Youssef, Ahmadi Anouar Conception et ralisation dune commande
numrique dune machine de decouplaser , Ingnieurdcole nationale de Gabs, juin 2010.
[3] Takashi Kenjo and Akira Sugawara , stepping motors and their microprocessor controls
Oxford University Press , ISBN 0-19-859385-6.
[4]http://www.positron-libre.com/electronique/moteur-pas-a-pas/sequence-commande
moteur-pas-a-pas.php
[6]http://www.ELECTRONIQUEPRATIQUE.com
[7] http://arduino.cc/en/Main/AruinoBoardMega2560
[8] www.reality.be/elo/labos2/files/AtMega32DocFr.pdf
[9] www.jp79dsfr.free.fr/_.../Elec%20_%20Arduino%20-%20Memo%20et%20condense.pdf
[10] https://www.arduino.cc/en/Main/ArduinoBoardUno
[11] PATRIQUE OGUIC Moteur pas pas et PC deuxime dition dunod ,Paris,2004
[12] http://webge.github.io/EasyDriverStepperMotor/
[13] Steve Krar, Arthur Gill, Computer numerical control programming basics
[14] http://inkscape.fr/
[15] http://www.civade.com/post/2014/01/02/Arduino-et-GRBL-l-incontournable-solution-
pour-piloter-une-petite-CNC ,2016.
[16] Torjus Spilling Self-Improving CNC Milling Machine ,master ,university oslo,2014
[17] Arduino Lesson . The Serial Monitor Created by Simon Monk 2013-06-22
[20] Sundar Pandian, S. Raj Pandian a low-cost build-your-own three axis cnc mill
prototype Velammal College of Engineering & Technology, 2014.
ANNEXE
Annexe -1- : Moteur pas pas (lecteur disquette)
Caractristiques de rfrence
Squence de commende
Annexe -2- : Circuit de commande
Circuit L297
N NAME FUNCTION
1 Output of the on-chip chopper oscillator.
SYNC The SYNC connections The SYNC connections of all L297s to be synchronized are
connected together and the oscillator components are omitted on all but one. If an
external clock source is used it is injected at this terminal.
2 GND Ground connection.
HOME Open collector output that indicates when the L297 is in its initial state (ABCD =
0101).
3 The transistor is open when this signal is active
4 A Motor phase A drive signal for power stage.
Active low inhibit control for driver stage of A and B phases.
When a bipolar bridge is used this signal can be used to ensure fast decay of load
5 current when a winding is de-energized.Also used by chopper to regulate load
current if CONTROL input is low.
6 B Motor phase B drive signal for power stage.
7 C Motor phase C drive signal for power stage.
8 Active low inhibit control for drive stages of C and D phases.Same functions as
INH1
9 D Motor phase D drive signal for power stage.
10 ENABL Chip enable input.When low (inactive) INH1, INH2, A, B, C and D are brought low
E
11 Control input that defines action of chopper.
CONTR When low chopper acts on INH1 and INH2; when high chopper acts on phase lines
OL ABCD.
12 Vs 5V supply input
13 SENS2 Input for load current sense voltage from power stages of phases C and D
14 SENS1 Input for load current sense voltage from power stages of phasesA and B.
15 Vref Reference voltage for chopper circuit. A voltage applied to this pin determines the
peak load current.
An RC network (R to VCC, C to ground) connected to this terminal determines the
OSC chopper rate.This terminal is connected to ground on all but one device in
16 synchronized multi - L297 configurations. f
1/0.69 RC
Clockwise/counterclockwise direction control input. Physical direction of motor
rotation also depends on connection of windings. Synchronized internally
17 therefore direction can be changed at anytime
18 Step clock. An active low pulse on this input advances the motor one increment.
The step occurs on the rising edge of this signal
Half/full step select input.When high selects half step operation, when low selects
full step operation. One-phase-on full step mode is obtained by selecting FULL
when the L297s translator is at aneven-numbered state.
19 Two-phase-on full step mode is set by selecting FULL when the translator is at an
odd numbered position. (The home position is designate state 1)
20 Reset input.An active low pulse on this input restores thetranslator to the home
position (state 1, ABCD = 0101).
Mode monophas
Circuit L298
Schma de ralisation
Rsum
Le travail dvelopp dans le cadre de ce mmoire a port sur ltude des diffrents
moteurs pas pas proposs dans la littrature en vue de commander une machine CNC, c'est-
-dire :
Les mots cl : moteur pas pas, cnc machine, commande, arduino, circuit intgr .
Abstract
The developed work in this memory is taking over the study of different motors pas pas
proposed in the literature to command a machine CNC , it means : The simulation of the command of
three motors pas pas with the logiciel Proteus <isis> .we used the card Arduino Uno and the circuit
L297 with L298 .
We have exploited the logiciels of the command of the machine CNC for the lecture of the image
for draw it ,and the generation file. Then we have choose the Gcode Sender logiciel to transfer the G-
code file to the Arduino Uno card. We have used the Arduino Uno card and Easy Driver in the pratical
realisation . In the last part of the memory , we present the fabrication. Of the CNC machine and the
tests over the functioning of this machine .
.
, : 3
. l298 l297
) Gcode(
. universel Gcode sender
. easy driver