Вы находитесь на странице: 1из 17

LP_ EMSA Bras Manipulateur

Mini-Projet

Réalisé par : Mohammed AHAZZAOUI & Omar ELKHANOUSSI

Encadré par : Mr, JILBAB


BRAS MANIPULATEUR

SOMMAIRE :

Présentation ............................................................................................................................................ 2
I. Présentation de cahier de charge :.................................................................................................. 2
II. Analyse de la problématique :......................................................................................................... 2
1. Enjeux .......................................................................................................................................... 2
2. Partie Matérielle .......................................................................................................................... 2
1.1. Etude préliminaire du système :.......................................................................................... 2
Programme visual studio : ............................................................................................................... 3
Programme : .................................................................................................................................... 3
1.2. Moteur a courant continu : ................................................................................................. 7
1.3. hacheur ................................................................................................................................ 7
1.4. Microntroleur PIC16F877 : .................................................................................................. 8
1.5. l’USART : ............................................................................................................................ 11
1.6. La liaison série RS232 : ...................................................................................................... 11
1.7. Le circuit MAX-232 : .......................................................................................................... 12
3. Partie logiciel: ............................................................................................................................ 12
3.1. Le compilateur (MicroC For PIC) :...................................................................................... 12
Programme en C : .............................................................................................................................. 12
Conclusion : ........................................................................................................................................... 16

1|Page
BRAS MANIPULATEUR

Présentation

I. Présentation de cahier de charge :

Le cahier de charge se entour sur la réalisation d’un bras manipulateur à base d’un PIC16F877 et la
communication avec l’ordinateur sera faite via la liaison série RS232.

Les 3 moteurs à courant continu constituants les articulations du bras sont commandées à l’aide des
<hacheurs à 4 quadrants>, qui sont commandés par la suite avec le microcontrôleur.

On demande de faire développer deux programmes distincts :

 Un premier côté microcontrôleur (gestion de la rotation des moteurs, gestion du port série
RS232)
 Un second côté PC (manipulation par une application en visuel Studio : pour que la
communication des moteurs ne soit pas ordinaire, on a pensé de créer une interface utilisateur
facilite la communication et l’acquisition des lettres correspondante à chaque mouvement des
3 moteurs.

II. Analyse de la problématique :

1. Enjeux

Les enjeux de notre Mini-projet va se partager comme suit :

 Faire l’étude du coté matériel du système


 Traiter la partie logicielle corresponde à la programmation du PIC16F877.
 Simuler l’entrainement des moteurs sous ISIS

2. Partie Matérielle :

1.1. Etude préliminaire du système :

Les mouvements du bras manipulateur seront assurés par 3 moteurs à courant continu (MCC1, MCC2,
MCC3) :

2|Page
BRAS MANIPULATEUR

Programme visual studio :

Programme :
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

3|Page
BRAS MANIPULATEUR

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO.Ports;

namespace WindowsFormsApplication1

public partial class Form1 : Form

SerialPort Port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

public Form1()

InitializeComponent();

private void button1_Click(object sender, EventArgs e)

Port.Open();

Port.Write("a");

Port.Close();

private void button2_Click(object sender, EventArgs e)

Port.Open();

Port.Write("b");

Port.Close();

private void button3_Click(object sender, EventArgs e)

Port.Open();

Port.Write("c");

Port.Close();

4|Page
BRAS MANIPULATEUR

private void button4_Click(object sender, EventArgs e)

Port.Open();

Port.Write("d");

Port.Close();

private void button5_Click(object sender, EventArgs e)

Port.Open();

Port.Write("e");

Port.Close();

private void button6_Click(object sender, EventArgs e)

Port.Open();

Port.Write("f");

Port.Close();

private void button7_Click(object sender, EventArgs e)

Port.Open();

Port.Write("g");

Port.Close();

private void button8_Click(object sender, EventArgs e)

Port.Open();

Port.Write("h");

Port.Close();

5|Page
BRAS MANIPULATEUR

private void button9_Click(object sender, EventArgs e)

Port.Open();

Port.Write("i");

Port.Close();

private void button10_Click(object sender, EventArgs e)

Port.Open();

Port.Write("k");

Port.Close();

private void button11_Click(object sender, EventArgs e)

Port.Open();

Port.Write("j");

Port.Close();

private void button12_Click(object sender, EventArgs e)

Port.Open();

Port.Write("k");

Port.Close();

private void Form1_Load(object sender, EventArgs e)

Les articulations de notre système est composé de 3 moteurs a courant continu commandé par 3
hacheurs et un microcontrôleur pour la gestion d’entrainement des moteurs.

6|Page
BRAS MANIPULATEUR

1.2. Moteur a courant continu :

L’Evolution de la technologie conduit à utiliser des machines nécessitant des vitesses de rotation
précises et variables pour l’entrainement des moteurs d’un bras manipulateur dans notre cas par
exemple

L’utilité des moteur a courant continu c’est qu’ils sont utiliser dans les systèmes et applications
comme les robots, les voitures, …..

Une machine électrique à courant continu est constituée :

 d'un stator qui est à l'origine de la circulation d'un flux magnétique longitudinal fixe créé soit par
des enroulements statoriques (bobinage) soit par des aimants permanents. Il est aussi appelé
« inducteur » en référence au fonctionnement en génératrice de cette machine.
 d'un rotor bobiné relié à un collecteur rotatif inversant la polarité de chaque enroulement rotorique
au moins une fois par tour de façon à faire circuler un flux magnétique l en quadrature avec le flux
statorique. Les enroulements rotoriques sont aussi appelés enroulements d'induits, ou
communément « induit » en référence au fonctionnement en génératrice de cette machine

1.3. hacheur

Un hacheur est un convertisseur statique permettant d’alimenter une charge comme moteur à courant
continu sous tensions de valeur moyenne réglable à partir d’un sous tension constante (réseau
alternatif redressé et filtré) avec un très bon rendement.

Pour tourner le moteur à courant continu dans les deux sens de rotations, il faut inverser la polarité de
l’alimentation sur ses bornes. Le montage est constitue de 4 interrupteurs (2 inverseurs)

7|Page
BRAS MANIPULATEUR

La solution est d’utiliser le pont en H

Le pont en H permet la commande de moteur dans les deux sens de rotation, sans modification du
montage, seulement en modifiant l'état des commutateurs. Les commutateurs sont actionnés deux par
deux soit S1-S4 ou S2-S3 pour faire tourner le moteur dans un sens ou dans l'autre. Les paires de relais
peuvent avoir des puissances différentes selon que l'utilisation ne requiert pas le même couple dans un
sens que dans l'autre.

De plus, le pont en H permet d'effectuer un freinage magnétique s’il est capable d'en dissiper la
puissance générée. Cette opération s'effectue en actionnant soit les deux commutateurs supérieurs ou
inférieurs en même temps, ce qui court-circuite les bornes du moteur, et le fait par conséquent freiner.
Mieux encore, il est possible avec un peu d'électronique et un contrôleur perfectionné d'effectuer
un freinage régénératif. Dans le cas d'une alimentation à batterie, l'énergie est renvoyée aux batteries
plutôt que dissipée dans les commutateurs du pont.

1.4. Microntroleur PIC16F877 :


L’architecture interne de PIC16F877 :

L’architecture interne de PIC16F877 est composée par :

 L’unit é centrale (UAL).


 Le bus de données 8 bits.
 La mémoire programme flash.
 Le mémoire vive ram (Randon Access Memory)
 Une EEPROM de remise à zéro du noyau.
 VCC et GND, broche d’alimentation du microcontrôleur
 CLIKIN ET CLOUT, pour la partie d’oscillation

Organisation de RAM :

8|Page
BRAS MANIPULATEUR

Nous avons donc que la mémoire RAM disponible du 16F877 est de 386 octets.

Elle est répartie de la manière suivante :

80 octets en banque 0, adresse 0*20 à 0*6F.


80 octets en banque 1, adresse 0*A0 à 0*0XEF.
96 octets en banque 2, adresse 0*110 à 0*16F.
96 octets en banque 3, adresse 0*190 à 0*1EF.
16 octets commune aux 4 banques, soit 0*70 à 0*7F = 0*F0 à 0*FF = 0*170 à
0*17F = 0*1F0 à 0*1FF.

Les particularités électriques :

Vous constatez que sur le schéma concernant le 16F877, nous avons deux connexions (Vss) qui sont
reliée à la masse.

En fait, en interne, ces pins sont interconnectés. La présence de deux pins s’explique par une raison de
dissipation thermique. Les courants véhiculés dans le PIC sont loin d’être négligeables du fait des
nombreuses Entrées/sorties disponibles.

Le constructeur a donc décidé de répartir les courants en plaçant deux pins pour l’alimentation Vss,
bien évidemment, pour les mêmes raisons, ces pins sont situés de part et d’autre du PIC, et en
positions relativement centrales.

Fig –PIC16f877.

PORTA :les pins de RA0 à RA5

PORTB ;Les pins de RB0 à RB7

9|Page
BRAS MANIPULATEUR

PORTC :Les pins de RC0 à RC7

PORTD :Les pins de RD0 à RD3

PORTE :les pins de RE0 à RE2

Reset :

Pour le reste nous noterons l’habituelle connexion de MCLR au 5v, cette pin étant utilisée pour
effectuer un reset du composant en cas de connexion à la masse.

Nous trouvons également le quartz, qui pourra être remplace par un résonateur ou par un simple réseau
RC de la même manière que pour le 16F84.

5V

R1
10k

U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/T HV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
C1 5
RA3/AN3/VREF+ RB7/PGD
40
6
1nF RA4/T 0CKI
7 15
RA5/AN4/SS RC0/T 1OSO/T 1CKI
16
RC1/T 1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/T X/CK
26
RC7/RX/DT

19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7

PIC16F877

Fig -2- Reset

Brochage :

U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/T HV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T 0CKI
7 15
RA5/AN4/SS RC0/T 1OSO/T 1CKI
16
RC1/T 1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/T X/CK
26
RC7/RX/DT

19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7

PIC16F877

Fig - - PIC 16F877.

La brochage MCLR :

10 | P a g e
BRAS MANIPULATEUR

Cette broche sert à initialiser le microcontrôleur, le PIC dispose de plusieurs sources

de RESET :

 POR (Power ON Reset) mise sous tension.


 EXTERNAL RESET. (mise à l’état bas de MCLR).
 WDT. chien de garde.
 BOR. baisse de l’alimentation.

POR : un front montant sur MCLR déclenche l’initialisation du microcontrôleur.

Le dispose en interne d’un circuit de détection du niveau , quand la tension VDD est comprise entre
1,2 et 1,7 , il démarre une procédure d’initialisation . Cette broche peut être simplement reliée à VDD
si on n’a pas besoin de RESET externe. Par contre, si on souhaite implanter un bouton de remise à
zéro, on pourra câbler un simple r&seau RC.

EXTERNAL RESET (Mise à l’état bas de MCLR).Remise à zéro extérieure. Il faut appliquer un
niveau bas sur l’entrée RESET pendant au moins 2 µ S pour que l’initialisation soit prise en compte.

1.5. l’USART :

Pour pouvoir dialoguer avec l’ordinateur notre micronctrôleur utilise le module USART est une
abréviation signifiant Universal Synchronous & Asynchronous Receiver Transmitter. C'est
un circuit électronique qui permet de mettre en série (sérialiser) les octets à transmettre par un modem.
Cela signifie que les bits constituant l'octet sont transmis les uns après les autres sur un seul fil et non
simultanément sur 8 fils. Beaucoup de circuits intégrés disposent désormais d'UART qui peuvent
communiquer de manière synchrone ; de tels périphériques portent le nom d'USART.

1.6. La liaison série RS232 :

la liaison RS-232 utilisée pour faire la connexion entre le PIC et l’ordinateur afin d’échanger les
informations entre les deux

11 | P a g e
BRAS MANIPULATEUR

Les pins de la liaison série 232

1.7. Le circuit MAX-232 :

Une adaptation des niveaux de tension est nécessaire, celui-ci se fera par l’intermédiaire d’un circuit
spécialisé, le MAX-232, qui convertit les niveaux de sortie TTL du PIC en signaux RS-232.

3. Partie logiciel:

Cette partie a été réservée pour la présentation des différents logiciels utilisés dans le mini-projet :

3.1. Le compilateur (MicroC For PIC) :

Le Compilateur utilisé est MicroC, il est optimisé pour les microcontrôleurs de la famille PIC .Ce
compilateur intègre également des bibliothèques et des fonctions spéciales (Timer, module ….)Qui
permettent d’utiliser les périphériques du PIC à partir d’un haut niveau de programmation .IL propose
un débugger qui permet de compiler les programmes avant de les charger sur PIC.

Programme en C :
char uart_rd;

void main()

TRISB=0;

PORTB=0;

UART1_Init(9600);

delay_ms(100);

while(1)

12 | P a g e
BRAS MANIPULATEUR

loop: if(UART1_Data_Ready() )

uart_rd=UART1_Read();

if(uart_rd=='a')

portb.f1=0;

portb.f0=1;

delay_ms(10);

portb.f0=1;

delay_ms(10);

if(uart_rd=='b')

portb.f0=0;

portb.f1=1;

delay_ms(10);

portb.f1=1;

delay_ms(10);

if(uart_rd=='o')

portb.f0=0;

portb.f1=0;

goto loop;

loop1 : if(UART1_Data_Ready() )

{
13 | P a g e
BRAS MANIPULATEUR

uart_rd=UART1_Read();

if(uart_rd=='t')

portb.f5=0;

portb.f4=1;

delay_ms(10);

portb.f4=1;

delay_ms(10);

if(uart_rd=='r')

portb.f4=0;

portb.f5=1;

delay_ms(5);

portb.f5=1;

delay_ms(5);

if(uart_rd=='p')

portb.f4=0;

portb.f5=0;

goto loop1;

loop2: if(UART1_Data_Ready() )

uart_rd= UART1_Read () ;

if(uart_rd=='1')

{
14 | P a g e
BRAS MANIPULATEUR

portb.f6=0;

portb.f7=1;

delay_ms(10);

portb.f7=1;

delay_ms(10);

if(uart_rd=='n')

portb.f7=0;

portb.f6=1;

delay_ms(5);

portb.f6=1;

delay_ms(5);

if(uart_rd=='x')

portb.f7=0;

portb.f6=0;

goto loop2;

15 | P a g e
BRAS MANIPULATEUR

Conclusion :
Durant ce projet nous avons appliqué nos acquis dans la programmation C que nous avons étudié cet
année .

Ce projet est très intéressent dans la vie pratique vus que dans l’industriel les bras robotiques sont
très utilisés, aussi la supervision c’est-à-dire émission et réception de données entres matérielles
industrielle et PC.

16 | P a g e

Вам также может понравиться