Atmel 8515 et convertisseur EZL RJ45

Hors de la famille AT ou ATMEGA 90Sxx

Modérateurs: yanmar, Duval JP

Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Mer 1 Avr 2009 16:29

Bonjour a tous, je me présente vite, je suis un lycéen en terminale S/SI

Je suis actuellement sur un projet personnel encadré (PPE)
Le but de ce projet est d'arriver à créer la rotation d'une webcam DCS900 (webcam TCP/IP) suivant deux axes x et y, à partir d'un réseau.

matériel:
- ordinateur + serveur
- convertisseur EZL 50L (RJ45 vers RS232)
- un microcontroleur ATMEL 8515 de la gamme stk200
- une carte imprimé contenant L297 et L298
- deux moteurs pas à pas
- une webcam DCS 900 IP de Dlink


1. Il faut arriver à creer une connexion entre un pc branché sur un réseau et le convertisseur ezl sur le meme réseau.


2. Il faut ensuite arriver à pouvoir envoyer des données à partir du pc, transférées par le réseau, et qui sont convertis par l'ezl et qui arrivent sur le µc ATMEL

3. Il faut créer un programme sur l'µc d'atmel de manière à pouvoir récuperer les données, les traiter et les transmettre sur la carte imprimée L297 + L298

4. Enfin arriver a brancher au bon endroit le tout afin de faire tourner les 2 moteurs

Pour le 1. j'ai pu réussir à le faire en passant par hyperterminal de windows et la fenetre de commande DOS.

Le 2. je suis perdu, je ne sais pas comment faire à cause du 3.
(j'en viens maintenant)

Pour le 3. je ne sais pas comment je peux arriver à creer ce programme sachant qu'il faut un programme de base ds le µc. Le reste étant d'envoyer des infos et que l'µc le traite et ça non plus je ne sais pas comment faire.

Par contre pour contrer cela j'utilise 4 boutons poussoirs sur le PORTD(entrée) que je peux voir grace aux LEDs du PORTB (sortie)
Etant donné que j'utilise deux moteurs pas à pas
je procède comme ceci:
PD0 (BP HAUT) -- Horloge moteur 1 et Bit de direction 1
PD1 (BP BAS) -- Horloge moteur 1 et Bit de direction 0
PD2 (BP GAUCHE) --Horloge moteur 2 et Bit de direction 1
PD3 (BP DROITE) --Horloge moteur 2 et Bit de direction 0


Ce qui revient à dire que je peux modifier les rotations de ma webcam qu'avec les BP du µc non l'ezl ne me sert pas à grand chose.

Sinon le programme temporaire fonctionne et je le teste la semaine prochaine sur la carte imprimée du pont en H (L297+L298)

Donc ma question principale est : est ce que quelqu'un est-il capable à l'heure actuelle de pouvoir faire communiquer un EZL et un µc atmel et si oui, comment programmer le microcontroleur?


Merci d'avance

Erhauder
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede philbob » Sam 4 Avr 2009 22:10

Bonjour,

J'ai lu rapidement les caracteristiques de l'EZL, il s'agit d'un convertisseur TCP/IP <---> RS232

Donc, vu de l'atmel, il faut gerer cela comme etant une liaison serie (fonctions UART)
------------------------------------
cordialement PHILBOB
(http://bidulic.free.fr)
Avatar de l’utilisateur
philbob
Habitué
Habitué
 
Messages: 119
Inscription: Sam 29 Mar 2008 16:09

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Mar 7 Avr 2009 09:38

ça je suis ok mais je suis perdu sur la manière dont je peux visualiser le probleme

ma vision est :

PC ------------------------------ EZL -------------------------------------ATMEL 8515
--------1ere communication----------------2eme communication-------------------
------------TCP/IP---------------------------------RS232-------------------------------

Si je pars du pc, donc j'utilise hyperterminal pour creer la communication entre le pc (puis le réseau) et l'ezl

Donc il faut que :

Je trouve un moyen d'envoyer des ordres au µC pour qu'il puisse agir sur les moteurs en conséquent.
-- par exemple une lettre provenant d'une touche ou à partir d'une page web ( encore plus compliqué!! ^^)

J'en déduis qu'il faut que je conçoive un programme et qu'il soit déjà inséré dans le µc.

Mais comment arriver à ce que l'µc comprennent les infos reçus par le pc, et convertis par l'ezl? et comment pourrait-on faire le transformer en programme.

Sachant que le controle des moteurs à partir des BP du port B du µc fonctionnent nickel

Merci
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede Duval JP » Mer 8 Avr 2009 08:26

bonjour Bertrand,
et bienvenu sur ce site.

Il manque plein d'infos:
Tu programmes comment ? Basic, C, assembleur ?

tu comprendras que je ne fais pas les devoirs, si j'aide quand je le peux ce ne sont que des conseils.

"ça je suis ok mais je suis perdu sur la manière dont je peux visualiser le probleme"

je reprends ton dessin

PC ------------------------------ EZL -------------------------------------ATMEL 8515
--------1ere communication----------------2eme communication-------------------
------------TCP/IP---------------------------------RS232-------------------------------

Si je pars du pc, donc j'utilise hyperterminal pour creer la communication entre le pc (puis le réseau) et l'ezl

je propose de faire une analyse de type Pareto c'est à dire de ranger en ordre de priorité tes problèmes pour les résoudre les uns après les autres:

si j'ai bien lu l'échange de mail tu as résolu, les commandes de moteur PaP (dommage c'est ce que je préfère !)
le point le plus important après
la liaison PC ---> µP, stappes l'EZL pour le moment, si ta liaison RS232 fonctionne tu trouveras bien sur le Net " http://www.avrfreaks.net/" comment faire fonctionner une liaison EZL.

A+
JP
Avatar de l’utilisateur
Duval JP
Modérateur
 
Messages: 339
Inscription: Mar 15 Nov 2005 09:58

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Mer 8 Avr 2009 12:56

Salut JP

A l'heure actuelle je sais :

1. Creer la connexion entre l'ezl (et un programme qui lui appartient), et n'importe quel ordinateur connecté sur un réseau, En utilisant le logiciel hyperterminal de windows et en ayant une commande ms-dos

Par exemple, pour vérifier que l'ezl communique bien avec le pc, j'envoie dans la commande dos "telnet 192.168.226.201 1470"
puis, une fois connectée, je peux écrire une phrase ou un lettre, qui passe dans le réseau, puis dans l'ezl, qui le revoit au logiciel hyperterminal.

2. Programmer à partir d'un atmel AT90S8515, en utilisant le langage C à partir AVR studio 4 (compilation sous Pony Prog 2000)

J'utilise les ports PD0 à PD3 pour les boutons HAUT, BAS, GAUCHE, DROITE, en ENTREES
J'utilise les ports PB0 à PB3 pour les signaux lumineux d'horloges et de bit de direction et je tire des fils à partir de la broche du PORTB.

Pour la conception du programme,

2 Methodes:

1. 2 PWM sur PD5 et une autre broche
2. Création d'un signal d'horloge, qui forme une impulsion , puis la multiplication de ce signal pour obtenir le nb de pas souhaiter
exemple :

Code: Tout sélectionner
#include <avr/io.h>          //registres microcontroleur
#include <util/delay.h>       //temporisations avec bdt en ms ou en µs
/********************************************************************/
/*Déclaration des fonctions et des variables globales*/
/********************************************************************/

#define NE_RIEN_FAIRE      (PIND&0x00) //arret de la rotation
#define HAUT            (PIND&0x01) //rotation un pas vers le haut
#define BAS             (PIND&0x02) //rotation un pas vers le bas
#define GAUCHE          (PIND&0x04) //rotation un pas vers la gauche
#define DROITE          (PIND&0x08) //rotation un pas vers la droite


#define CAPTEUR_HAUT      (PIND&0x )  // Capteur de fin de course Haut
#define CAPTEUR_BAS      (PIND&0x )  // Capteur de fin de course bas
#define CAPTEUR_GAUCHE      (PIND&0x )  // Capteur de fin de course gauche
#define CAPTEUR_DROITE      (PIND&0x )  // Capteur de fin de course droite

char led_image = 0xFF;  // Toutes les LEDs sont eteintes

unsigned int attente;

void initports(void);


/********************************************************************/
/*Définition des fonctions */
/********************************************************************/
void initports(void)
{
   DDRB=0xFF;   // PORTB en SORTIE
   DDRD=0x20;   // PORTD en ENTREE
   


}
/*****************************************************************/
// Programme Principal
/*****************************************************************/

// DEBUT MAIN

int main(void)      // ATTENTION ENTREES ET SORTIES EN LOG NEGATIVE
{
   initports();   // Appel fonction INITIALISATION PORTS
   
int attente;
unsigned char NOMBRE_PAS;   // Declaration d'une variable i pour définir un compteur
int sens_positif;
int sens_negatif;



// DEBUT BOUCLE WHILE (1)

while(1)
   {



// BP BAS PD1

        if ((!BAS))   
                                         // Si appui sur BP BAS (logique négative)
          {      
                        
for   (NOMBRE_PAS=0; NOMBRE_PAS<50; NOMBRE_PAS++)      // Tant que i est inférieur a un nombre n, l LED 1 reste allumée
                                    
            {
               while (sens_positif<10);   // boucle tant que sens_positif<10 -- A MODIFIER EN FONCTION DES SIGNAUX
               {                     //
               PORTB |= _BV(PB0);         // le PB0 DU PORTB est forcé à 1
               sens_positif++;            // sens_positif définit le bit de direction -- ici il est à 1 donc vers le haut
               }                     
               PORTB |= _BV(PB1);         // Forcer bit PB1 a 1
               attente=0;
               while (attente<2)
               {
               _delay_ms(5);
               attente++;                // Appel de la fonction retard pendant un temps t1=10ms
               }
               PORTB &= ~_BV(PB1);         // Forcer bit portB a 0
               attente=0;
               while (attente<2)
               {
               _delay_ms(5);            // Appel de la fonction retard pendant un temps t2=10ms
               attente++;
               }                        // FREQUENCE : 125 HZ
               
               
               
            }                  
         
         }                           // FIN IF         
       else                            // SINON+++++++++++++++++++++++++++++++++++++++++++++++++
         {    
            PORTB=0xFF;                  // LED  PORTB éteintes
                     
         
         }

//FIN BP BAS
}
// FIN WHILE
}
// FIN MAIN
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede Duval JP » Mer 8 Avr 2009 13:03

Bertrand,
beau début !

Donc c'est du C
Moi je m'occupe du Basic, post sur le forum approprié :lol:
tu trouveras les dernières réponses à tes questions.

Bon courage
JP
Avatar de l’utilisateur
Duval JP
Modérateur
 
Messages: 339
Inscription: Mar 15 Nov 2005 09:58

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Mer 8 Avr 2009 13:09

Donc à présent il me reste à faire communiquer un pc et le µc, comme tu le disais, mais en passant par un réseau
Ici, l'ezl ne fait que convertir donc je n'ai pas de problèmes la-dessus

Mais c'est au niveau de la méthode de programmation :

Grossomodo, c'est comment, en envoyant par exemple une lettre par la liasion hyperterminale l'µC le µc pourrait le comprendre;

Si j'envoie par exemple la touche "H", qui symbolise la rotation vers le "HAUT" je voudrais que le µc comprenne la touche "H", transformé en code ASCII par l'ordinateur, pour que qu'il fasse l'action à savoir tourner vers le haut.

Donc c'est la manière de conçevoir ce programme qui me semble trop complexe.

Je sais que personne ici est la pour me donner la solution, je comprends :D mais ce projet est devenu plus important pour moi, j'aimerais, juste pour la curiosité le mener jusqu'au bout, et peut etre que cela me servira dans mes prochaines études.


Merci


Je mettrais d'ici ce week-end un tout ptit site au point afin que ceux qui s'intèresse à ce problème puisse mieux comprendre, ainsi que des vidéos pour expliquer.
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede Duval JP » Mer 8 Avr 2009 20:26

Comme je te l'ai dit moi je programme en Basic, en basic il y a toutes les routines et instructions nécessaires pour les communications RS232, les conversions de variables etc...

tu trouveras des d'exemples de programmation en C sur " avrfreaks "

autres possibilités le site myavr

JP
Avatar de l’utilisateur
Duval JP
Modérateur
 
Messages: 339
Inscription: Mar 15 Nov 2005 09:58

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede philbob » Mer 8 Avr 2009 21:54

Bonjour,

J'ai ecrit une librairie "simpliste" pour la com sur rs232 en C pour atmega32

Si ça te tente, je peux te la faire parvenir
------------------------------------
cordialement PHILBOB
(http://bidulic.free.fr)
Avatar de l’utilisateur
philbob
Habitué
Habitué
 
Messages: 119
Inscription: Sam 29 Mar 2008 16:09

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Ven 10 Avr 2009 21:12

oui je veux bien voir ce que cela donne ! stp
Merci!
:)
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede philbob » Ven 10 Avr 2009 21:52

Bonjour,

Ci joint un fichier *.c et un *.h
Fichiers joints
rs232.h
(3.13 Kio) Téléchargé 59 fois
rs232.c
(4.33 Kio) Téléchargé 74 fois
------------------------------------
cordialement PHILBOB
(http://bidulic.free.fr)
Avatar de l’utilisateur
philbob
Habitué
Habitué
 
Messages: 119
Inscription: Sam 29 Mar 2008 16:09

Re: Atmel 8515 et convertisseur EZL RJ45

Messagede bertrand15 » Dim 3 Mai 2009 13:52

dsl ce la faisati un ptit moment que je ne m'étais pas rendu sur le forum merci pour les fichiers je vais regarder le contenu au revoir et merci
bertrand15
Nouveau
Nouveau
 
Messages: 6
Inscription: Ven 27 Mar 2009 10:37


Retourner vers Autres Microcontrôleurs Atmel

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron