projet I-Flybot

Une question sur l’un des microcontrôleurs de la série des AT90, ATtiny ou des ATmega ? Une question sur la programmation assembleur ? C’est par ici.

Modérateur: Modérateur

projet I-Flybot

Messagede pol le 09 Avr 2008 9:25

Bonjour,

Je m'appelle alex et je suis en Master2 SIIC ( Systèmes informatique intelligents et communicants ) à cergy.

Je suis actuellement sur un projet qui consiste à faire un système embarqué sur un hélicoptère radiocommandé thermique. On est un groupe de 5.

Moi je suis sur la partie avec microcontroleur, qui consiste à récupérer les données de différents périphériques, tels un accéléromètre, une boussole, connaitre la valeur des signaux PWM du récepteur de l'helico, et encore écrire les données sur un sd card, l'histoire d'avoir un suivi.

Le matériel dont je dispose un module charon II mais finalement nous n'aurons pas besoin d'ethernut mais juste de l'atmega128 qui se situe dessus.

Voila ma partie et j'ai quelques blocages. Donc je viens ici demander un peu d'aide afin d'avancer dans ma quète. Je programme en C sur le microcontroleur.

Les conseils
:

1-
J'aimerais juste avoir quelques conseils au niveau de l'interprétation des signaux PWM qui arrivent en entrée du microcontroleur.
Etant donné qu'il n'y a pas d'entrée PWM quelle stratégie me conseilleriez vous pour connaitre la valeur en binaire de ces signaux?

2-
Comme je dois écrire des données sur la sd card, me conseillez vous plutot la librairie avrlib ou EFSL?

Les PB :

J'utilise la librairie AVRLib afin de communiquer entre le microcontroleur et un accéléromètre. J'ai fais un petit programme ou j'utilise seulement la fonction i2cMasterReceive (u08 deviceAddr, u08 length, u08 *data) du fichier i2c.h où j'ai vu qu'il utilise la fonction i2cSendStart requise et les autres choses. Le truc est que ce que je recois ne change jamais même si je change la position de l'accéléromètre.

J'espère que j'ai été compréhensible.

Si quelqu'un peut m'aider je l'en remercie d'avance

Cordialement
pol
NOUVEAU
NOUVEAU
 
Messages: 2
Inscription: 09 Avr 2008 9:09

Messagede pol le 13 Avr 2008 12:11

Personne n'a d'idée à me proposer au niveau de l'i2C ?
pol
NOUVEAU
NOUVEAU
 
Messages: 2
Inscription: 09 Avr 2008 9:09

Re: projet I-Flybot

Messagede lebomb le 05 Juin 2008 10:44

Personnelement, j'ai utilisé EFSL et ca a marché impeccable !!!!!
Je l'ai essayé sur ATMEGA128 et ST10F269 : impec sur les deux !

Pour avrlib, j'ai pas essayé les fonctions SD CARD donc je peux pas comparer...
lebomb
HABITUE
HABITUE
 
Messages: 47
Inscription: 13 Oct 2006 16:48

Re: projet I-Flybot

Messagede pateasys le 07 Juin 2008 19:04

Bonjour la première partie de votre problème n'est pas compliquée mais la seconde, je ne m'y connais pas.
Bon pour ce qui en est des signaux PWM, c'est le microcontrôleur qui les fournis pour piloter par exemple le moteur de ton hélice afin de stabiliser ton hélico (asservissement). les signaux PWM n'ont que deux niveau. Comme ils viennent du µc on aura donc on aura du {0V;5V} mais pour les produire du doit étudier les timers de ton micro. la forme du signal de sortie est un signal rectangulaire périodique de raport cyclique variable(tau/T) tau est le temps que met le signal au niveau haut. ainsi ton moteur interprétera ces signaux sur une période et verra une valeur moyenne (intégrale). Ainsi il est possible d'obtenir n'importe quelle tension comprise entre 0 et 5V ( n'importe quelle vitesse du moteur (de 0 à Nmaxtr/s). commence donc d'abord par comprendre comment tes timers fonctionnent
pateasys
 

Re: projet I-Flybot

Messagede pateasys le 07 Juin 2008 19:19

j'oubliais pour capturer les signaux PWM (Modulation des Impulsions en largeur), on s'intéresse au temps que le signal met lorsqu'il est au niveau haut. Donc tu peut utiliser des entrées d'interruptions tu les configure tels que une interrution sera générée chaque fois que le signal change de front et tu utilise un timer pour compter le temps. le passage du signal de 0 à 1 lance le comptage et le passage de 1 à 0 arrète le comptage tu recupère ensuite le contenu de ce compteur que tu ne met pas 0 puisqu'il te faudra continuer à compter pour prendre en compte la période du signal PWM et par la suite la tension correspondante est l'intégrale du signal sur toute la période (tau/Tpwm)*5V. si tu trouve mieux ailleurs fais nous partager à +
pateasys
 

Re: projet I-Flybot

Messagede jbe le 07 Juin 2008 20:12

Si tu n'a pas de réponse sur l'i2C de ton accéléromètre, met un scope ( ou mieux un analyseur logique) pour analyser la trame générée par le micro puis la réponse de l'accéléromètre. Tu auras alors une idée plus précise du problème.
Et si tu as toujours la même réponse (du genre coucou je suis là), peut être n'a tu pas respecté le protocole d'échange prévue pour dialoguer avec cette accéléromètre.
Les réseaux c'est des signaux, puis du protocole de communication

Pour la SDCard, il faudrait que tu trouve un lecteur/enregistreur au format I2C.
Cela te simplifierais la vie au niveau de ton programme.

Pour lire la MLI, la solution proposée par Pateasys est la meilleur. Cette solution mobilise très peu de temps CPU.

Mais avant toute chose, il te faut avoir une bonne connaissance de ton micro contrôleur, car le constructeur a déjà implanté beaucoup de chose dedans.

Tiens nous au courant.

JBE
jbe
HABITUE
HABITUE
 
Messages: 60
Inscription: 06 Juil 2007 20:03
Localisation: Berry


Retourner vers AT90-ATmega-ATtiny

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités