Aide arduino + MIO283QT2

Pour mon truc, j'avais un MMA7260QT, et pour trouver les valeurs qui m'intéressaient, j'ai procédé de manière empirique... donc serial monitor et mise en condition de ma platine..... à l'horizontale, 90º à droite, puis à gauche... etc.

Il me semble qu'il y avait une légère différence entre chaque capteurs, il faut ensuite faire une correction dans la prog.
C'est possible de faire une fonction pour une mise à niveau manuelle.

Je me souviens également que les valeurs dont j'avais besoins était une fourchette entre 250 et 750 (par exemple) donc à la verticale à droite et à gauche.

Jean-François:
C'est du à quoi, à l'Arduino ou est ce du coté gestion de l'écran ?

J'ai pas vraiment réussi à savoir de quel coté venez le problème même en passant par la librairie SPI hardware et avec la fréquence de clock max le refresh prend au minimum une demi seconde ... je pense qu'il doit y avoir une histoire de double buffer pour l'affichage qui n'est pas implanter dans la librairie ou alors ce glcd est juste lent ...

skywodd:
J'ai pas vraiment réussi à savoir de quel coté venez le problème même en passant par la librairie SPI hardware et avec la fréquence de clock max le refresh prend au minimum une demi seconde ... je pense qu'il doit y avoir une histoire de double buffer pour l'affichage qui n'est pas implanter dans la librairie ou alors ce glcd est juste lent ...

Est ce que c'est possible de faire un refresh seulement d'une partie de l'écran ?

Autrement avec 0.5 seconde ça doit provoquer un clignotement non ?

Jean-François:
Est ce que c'est possible de faire un refresh seulement d'une partie de l'écran ?

Oui bien sur (et heureusement ^^"") je viens de faire un test, l'écran a un taux de rafraichissement de 2Hz pile poil (et en utilisant directement des commandes bas niveau).
Ce qui me laisse à penser que c'est l'écran lui même qui est lent car en paramétrant le spi à F_CPU/2 et en ajoutant quelque delay(100) entre deux clear on obtient toujours 2Hz de rafraichissement ... la seul solution que j'ai trouvé pour empêcher le scintillement est de dessiner tout l'écran une fois puis actualiser uniquement les parties qui changent ...
Je n'arrive pas à trouver de datasheet sur cet écran mais je suis presque sur qu'il possède un double buffer pour l'affichage (c'est pas possible qu'un écran pour pda soit aussi lent !)

Me voici Jean François, voila ce que je voudrais pouvoir dessiner exactement, bien sur separement...

Est ce possible avec les fonctions draw ?

Horizon Artificiel.jpg

Altimétre.jpg

Anémométre.jpg

Simplement en regardant les references, et sans avoir l'écran, je dirais que c'est faisable.

L'anémomètre c'est pour la vitesse de l'aéronef ?

Oui Jean François

Anémométre = Vitesse en Km/h ou en Kt ou MPH
Altimétre = Altitude en Ft ou en metres avec un capteur de pression absolue de la gamme MPX (MPX2100) ou autre...
Horizon Artificiel sur 2 axes Tangage et roulis avec le MMA7260 si possible.
Ces capteurs fonctionnent dans la gamme 0-5V

Pour info voila le MMA7260Q PCB vendu sur ebay..

MMA7260Q PCB.jpg

C'est un trois axes ?

Oui, voici le datasheet

DC-SS009-7.pdf (406 KB)

C'est un peu ce que je pensais, il va falloir passer par la méthode empirique XD

Fais un monitoring de ce que te donne les trois axes dans chaque position verticalité-horizontalité.

OK Jean François je ferais les essais et te donnerais le resultat, donne moi cependant un peu de temps pour que je puisse voir la chose avec l'arduino...

Pas de problème.
En attendant je te donne un début pour le graphique de l'HA, tu dessine un carré dont chaque coté fait 100, tu mets la ligne d'horizon à 50 sur le coté droit et sur le coté gauche et maintenant tu imagines ce qui se passe avec la valeur de 50 lorsque la ligne s'incline....L'axe de ligne étant le centre du carré.

Comme me là demandé bbjodel par MP voici mon code pour charger des images depuis la carte sd.

Il se compose d'un script python qui convertit des bitmap en .sk à placer à la racine de la carte sd
et d'un petit sketch d'exemple qui permet de charger un hello world.

Les bitmap doivent faire 320x240 maximum, couleur 24bits.
Il y a trois fonctions:
loadSkScreen(char* skFilename) -> permet de charger un sk de 320240 sur tout l'écran
loadSkRegion(char
skFilename, int startx, int starty, int lenx, int leny) -> charge seulement une région du pixel (haut, gauche) en (startx;starty) sur une distance (lenx;leny)
(les distances et les tailles de régions doivent coïncidé parfaitement !)
appendTextLcd(PGM_P text) -> affiche du texte à la mode console (en premier plan).

glcd_demo.zip (23.3 KB)

Merci a tous, je reprendrais cette belle discussion demain, la bonne soirée a vous tous.
Je vais essayer tout cela demain, bonne soirée
Amitiées Fred

Salut Jean François, sur le monitor j'ai les valeurs suivantes:
Axe Z (Tangage) a 0°=1,69 V 90° Cabré vers le haut = 2,29 V 90° Piqué vers le bas = 1,07 V
Axe X (Roulis) a 0° = 2,23 V 90° Gauche = 1,60 V 90° Droite = 1,63 V
L'axe Y non connecté pour le moment sinon au repos = 1,67 V

Si tu branches chaque axe sur une pin Analogique et que tu fais un AnalogRead(), quelles sont les valeurs retournées ? (entre 0 et 1023)

Genre :

x : 250 > 0º 300 > 90º droite 200 > 90º gauche
y : .....
z : ...

Z 0° = 346 90°Haut = 469 90° Bas = 220
X 0° = 457 90° Gauche = 336 90° Droite = 340
Y au repos = 348

Je suis obligé de sortir a demain Jean François

xyz = ? (tangage, lacet, roulis) dans ton montage.

Z pour Tangage
X pour Roulis
Y pou mesurer les g en vertical (non utilisé pour le moment)