Aller au contenu


Photo
- - - - -

Siège de simulateur de vol (suite)


  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 H.Cou29

H.Cou29

    Membre

  • Membres
  • 25 messages

Posté 02 janvier 2007 - 10:22

Bonjour et bonne année à tous,

Il y a quelques mois je vous avais présenté mon projet de siège simulateur de vol et, comme j'avais obtenu sur ce forum de précieux renseignements, je vous ai fait un état des lieux en ce début d'année.

Rappel: il s'agit d'un siège mobile en tangage et roulis dont les mouvements doivent être asservis sur ceux de l'horizon artificiel d'un aéronef (orienté hélicoptère) dans un logiciel de vol FLYII.
Partant avec l'idée qu'il fallait rester en numérique, j'ai opté pour des moteurs pas à pas.
Le projet final comprendra 3 micro-contrôleurs, un pour pour la receptions et le traitement des données issues du pc et un pour le contrôle de chaque axe.

Image IPB

A part la structure bois que je dois refaire, la partie mécanique est pratiquement terminée.

Pour la partie électronique, j'ai d'abord acheté, chez Selectronic, une carte d'alimentation de moteur pas à pas avec sa pochette de composants, réalisée à partir d'un L297 et de deux L6203, je l'ai cablée et essayée sur une platine d'essais, et avec un générateur de signaux carrés .
Ca a fonctionné du premier coup, heureux présage.
Comme il y a un risque de casse, il me faut des fins de course musclées, c'est à dire qui me coupent la puissance d'alimentation des moteurs par l'intermédiaire de relais . Ces fins de course ne devraient servir qu'en cas de défaillance du logiciel qui en utilise d'autres, magneto-résistant, montés sur les vérins. Pour des essais mieux vaut tout prévoir.

Le moteur est alimenté en 48v, les fins de course des vérins entre 10 et 30v, le circuit de puissance et le kit de développement en 7v car ils sont tous les deux munis d'un régulateur pour le 5v.
A partir du 48v j'ai un régulateur qui me fait du 7v pour alimenter la carte puissance et le kit (il disparaîtra dans la version finale) ainsi qu'un autre qui me fait du 24v qui sert à la fois aux relais de fin de course de puissance ainsi qu'à ceux des vérins dont les signaux sont ramenés en 5v par opto-coupleur.

J'en suis à la troisième mouture qui va me permettre de relier la carte puissance et sécurité à un kit de développement Easy4, et ainsi, à pouvoir commencer à tester une commande programmée à partir du 16F877 livré avec le kit.

Image IPB

Je n'ai pas programmé depuis 20 ans et c'était en basic. Je me suis mis au C. Je pensais naïvement qu'il n'y avait qu'un seul et même jeu d'instructions mais que nenni !! chaque compilateur dédié aux uc ne comprend que ses propres instructions qu'il faut encore aller chercher dans des exemples et, comme il y a souvent plusieurs façon différentes d'arriver à un même résultat, c'est pas facile de s'y retrouver.
Jai simplement essayé de reproduire les exemples que j'avais.
J'ai commencé avec BoostC, les programmes étaient acceptés mais ne fonctionnaient pas sur le uc.
J'ai essayé le PCWH cité par C. Tavernier car dans son ouvrage, il s'est donné la peine de fournir un jeu d'instructions clair, sans doute n'avais-je pas la bonne version car je ne suis arrivé à rien mais il est vrai que je n'ai pas trop insisté.
Par contre, tous les exemples donnés en MikroC fonctionnent en .hex et recompilés après modifications, je regrette seulement qu'il faille deviner les instructions au travers d'une documentation par ailleurs bien fournie.
Il est vrai que easy4, Picflash et mikroC sont de la même maison. Easy4 est un jouet très simple et très agréable avec lequel on peut réaliser tous les circuits de base.
Il est certain que tous les compilateurs fonctionnent, je vous livre ici simplement mon expérience de débutant.

Me voici donc arrivé à une phase de programmation qui occupe mes longues soirées d'hiver.


Comme références bibliographiques, deux ouvrages qui ne donnent pas la solution exacte de ce qu'on cherche mais qui indiquent beaucoup de pistes pratiques:
Moteurs pas-à-pas et pc de P. Oguic
Programmation en C des Pic de C. Tavernier.

#2 Sugi

Sugi

    Habitué

  • Membres
  • PipPip
  • 235 messages
  • Location:Vers Dunkerque

Posté 03 janvier 2007 - 06:54

Bonjour,

Je ne sait pas quoi dire à part superbe... :blink:

C'est vraiment un gros et superbe boulot que vous êtes en train de faire. D'habitude
les choses lié à la simulation ne m'interesse pas vraiment, mais la rien que pour le travail
qui a été fait (surtout au niveau méca) je vous tire mon chapeau.

Je vous souhaites bien du courage pour la partie prog de votre projet. (J'utilise aussi le livre de Mr Tavernier
et un programmateur PICFlash2 de chez MikroElektronika et j'en suis très content :P ).

En tout cas bon courage et bonne continuation pour la suite et donné nous encore d'autres photos !

#3 H.Cou29

H.Cou29

    Membre

  • Membres
  • 25 messages

Posté 04 janvier 2007 - 08:06

Bonsoir,

En fait, j'aurais du vous envoyer celle ci en premier mais, jusqu'à hier soir, je ne savais pas programmer les afficheurs.

Image IPB

Avec un programme de montée descente pour 5000 pas, le voila déjà en action.

Image IPB

Je suis assez satisfait que ça fonctionne.

A+ pour la suite.
Amitiés.

#4 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 10 janvier 2007 - 03:35

Hello !
Content de voir que ca avance :)
Rendez vous pour les cours de pilotage d'hélico sur simulateur..? :rolleyes:

#5 H.Cou29

H.Cou29

    Membre

  • Membres
  • 25 messages

Posté 11 février 2007 - 03:47

Bonjour à tous,

J'ai un soucis de transfert par le port série.
Je reçois bien avec le pic ce que je m'envoie avec l'hyperterminal de XP.
Le problème se situe en amont pour l'envoie des données. Le collègue qui s'occupe de récupérer les données dans le jeu via une dll, programme en C++ et fait appel à des routines capable d'envoyer plein de choses, alors que pour nos applications, on a besoin que de quelques octets. Le mieux n'étant pas toujours l'ami du bien, existe-t-il des routines adaptées à nos besoins.
Merci et amitiés.

#6 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 12 février 2007 - 01:33

Bonjour,
ah, forcément, tout ne fonctionne jamais parfaitement... ce serait trop beau sinon :P

J'avoue que je ne comprends pas exactement quel est ton probleme...
Si je fais le point:
-la communication entre le pc (hyperterminal) et le uC semble fonctionner ; tu peux envoyer des caractères au uC et en recevoir du uC.
-tu disposes d'une extension de ton soft de simulation qui envoie beaucoup de données vers le port série, trop, meme.

Je dirais qu'il y a deux approches:
-adapter ton soft de uC à ce qui est déja généré
-adapter le patch de ton collegue pour qu'il génère ce qui va bien pour ton appli uC.

La première consiste à bien étudier la doc ou le programme dont tu disposes, et d'adapter le code de ton uC pour qu'il sache récupérer seulement ce dont il a besoin, et d'agir en conséquence comme attendu
La seconde consiste à faire le point sur ce dont TOI tu as besoin coté mécanique du siège, et en déduire le format des infos que tu veux recevoir, puis demander à ton collègue s'il n'y a pas possibilité d'intégrer ca à son code (peut etre que tu pourrais faire les modifs toi meme? peut etre qu'il serait possible de spécifier à son extension le mode de fonctionnement: origine, ou modifié pour toi).

Voila... je ne vois pas quoi d'autre te conseiller :)

#7 H.Cou29

H.Cou29

    Membre

  • Membres
  • 25 messages

Posté 12 février 2007 - 11:28

Bonsoir,

Autant j'arrive à m'y retrouver et à programmer en C pour le pic, autant je n'arrive pas à suivre les fichiers source d'un programme en C++.

Pour l'instant, après avoir vérifié que je savais recevoir des octets sur le µC , la dll qui a été faite, qui est dans le logiciel du jeu, et qui devrait m'envoyer des données n'arrive pas à ouvrir le port com1. Mon collègue fait ça très bien, il y a des fichiers txt Debug qui indiquent tout ce qui doit ce passer, mais qui pour l'instant indiquent unable open com1.
Je lui ai suggéré de remplacer la dll par un exe afin de dissocier les problèmes. Je ne suis pas inquiet.

Si vous aviez à faire un programme pour envoyer quelques octets sur le port com1, quelle routine élémentaire serait utilisée. J'ai déjà posé la question à plusieurs programmeurs et ils m'ont trouvé des documents plus monstrueux les uns que les autres pour envoyer des trames...mini 10 octets (5 int, ils ne connaissent pas plus petit).

SVP, pour quelques octets y a pas quelque chose de plus adapté à ce dont on a besoin ?

#8 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 13 février 2007 - 01:09

Ah... a ce niveau, ca depasse mes competences standard en C. Il faut que je me renseigne de mon cote pour voir si je trouve pas une solution facile pour toi. Peut etre que quelquun dautre ici est un crack de ce cote ci???




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users