[RESOLU] Relais 5V pour signal servo (ex-Recopier l'état d'un PIN en temps réel)

la solution à base de 7400 me semble brouillon en terme de cablage,

Tu finaliseras sans doute sur circuit imprimé. Certaines liaisons se résumeront en très courtes pistes sous ou autour des 7400. pas si brouillon que ça au final.....
Un 7400 en boitier CMS par servo, est-ce que ça représente une surface, un poids excessifs ?

-La GAL16V8 est une alternative élégante. Il y a juste le 'ticket d'entrée' du programmateur.
On a échangé , içi et sur le forum US, au sujet de la réalisation d'un programmateur maison. Tu as vu je pense les 2 schémas des années 90. http://arduino.cc/forum/index.php/topic,115076.0.html
La piste de la programmation d'une 16V8 à travers l'Arduino reste ouverte mais ce serait un travail de longue haleine. Il serait presque plus simple (tout est relatif) de faire de l'Arduino un programmateur de petits CPLD (à moins de 3€ pièce chez Mouser par exemple) par emulation des signaux JTAG (interface JTAG en programmation , pas l'ensemble des fonctionnalités JTAG !!)

-Il y a débat (rien de plus enrichissant tant que ça reste courtois et respecteux des interlocuteurs !!) sur l'utilisation de MOS pour commuter directement les signaux.
ça ne parait pas à éliminer, après réflexion, connaissant quand même un peu je pense :
-la nature du signal à transmette (amplitude, durée de l'implusion et période)
-différents schémas internes de servos analogiques (circuits ZN409 de Ferranti, NE544 de Signetics, NJM2611 de JRC exclusivement)
-2 ou 3 schémas internes de servos numériques (à microcontrolleurs PIC)
Je ne reviens pas dessus.

-Je déconseille par contre la solution à relais, du moins avec des relais courants pas du tout adaptés à la transmission fiable et pérenne de courants très faibles. Içi on est en HCMOS, on n'a même pas le petit mA de la TTL à l'état bas.

Bon je vais laisser tomber ce sujet qui vire au "blablabla" stérile. Moi je me suis contenté d'apporter des réponses concrêtes à un débutant et les plus simples possibles. Toutes ces réponses plus alambiquées les unes que les autres et ne faisant preuve d'absolument aucune empathie envers le projet d'UniSev me semblent déplacées et carrément contraires à l'esprit du forum.

DMA = Direct Memory Access (alors qu'il n'y a pas de bus externe sur les ATmegas !!!!!!!!!!!!).

Faudra m'expliquer le rapport avec le sujet et pourquoi ne pas parler du "vol de cycles" lors du DMA. Ou plutôt n'expliquez rien du tout je délaisse ce post.

UniSev si tu as besoin de tuyaux tu peux me joindre en messagerie. Si tu t'arrêtes à la complexité de cablage de quelques portes tu ne risques pas d'arriver à la fin de ton projet. Celui ci présente par ailleurs de bonnes difficultés au niveau logiciel et ne vas pas se résoudre en quelques lignes de code.

JLB

jihelbi:
Bon je vais laisser tomber ce sujet qui vire au "blablabla" stérile...
...Ou plutôt n'expliquez rien du tout je délaisse ce post.

C'est dommage, j'avais des réponses (Pourquoi DMA... difficulté de câblage... avenir du projet), mais si personne n'es plus là pour les lire, je ne vais pas les écrire pour rien...

al1fch:

la solution à base de 7400 me semble brouillon en terme de cablage,

Tu finaliseras sans doute sur circuit imprimé. Certaines liaisons se résumeront en très courtes pistes sous ou autour des 7400. pas si brouillon que ça au final.....
Un 7400 en boitier CMS par servo, est-ce que ça représente une surface, un poids excessifs ?

Ce n'est ni la surface ni le poids, c'est juste que je ne comptais pas faire de circuit imprimé.

al1fch:
-La GAL16V8 est une alternative élégante...
La piste de la programmation d'une 16V8 à travers l'Arduino reste ouverte mais ce serait un travail de longue haleine. Il serait presque plus simple (tout est relatif) de faire de l'Arduino un programmateur de petits CPLD (à moins de 3€ pièce chez Mouser par exemple) par emulation des signaux JTAG (interface JTAG en programmation , pas l'ensemble des fonctionnalités JTAG !!)

Je me perds dans les acronymes, qu'entends-tu par CPLD, FPGA ? peut-on les programmer à bas coût (hors solution DIY/Arduino) ?

al1fch:
-Il y a débat (rien de plus enrichissant tant que ça reste courtois et respecteux des interlocuteurs !!) sur l'utilisation de MOS pour commuter directement les signaux...

On est d'accord

al1fch:
-Je déconseille par contre la solution à relais, du moins avec des relais courants pas du tout adaptés à la transmission fiable et pérenne de courants très faibles. Içi on est en HCMOS, on n'a même pas le petit mA de la TTL à l'état bas.

Ok

Ma réponse par messagerie à UniSev :

Oui mais il y a trop de gens qui ne pensent pas à toi et dérivent volontairement sur des sujets qu'ils connaissent (ou pas d'ailleurs, ou faussement aussi) afin de se mettre en valeur.

Si l'on veut délirer on peut poser directement la question de la solution la plus compliquée, la plus perverse, la plus détournée ou tout cela à la fois, pour résoudre un problème donné. Ce sont des challenges courant en hardware comme en software.

Ta question était simple. La réponse l'est tout autant (7400). Pour un newbie on ne peut pas appronfondir chaque point si l'on veut arriver à la fin d'un projet. Maintenant tu dois mettre en oeuvre cette solution et voir comment se passe la transition entre la radiocommande et l'Arduino.

Question 1 : Quand tu vas prendre la main avec l'Arduino connais-tu la position du servo des ailerons ? Peut-être est-il possible de positionner au neutre par défaut et interdire les passages en automatique pendant les manoeuvres.

Pourquoi ne pas faire très vite un prototype ou l'Atmega prend la main sur la radiocommande et pilote les ailerons en fonction de la position du manche (tu peux mesurer les pulses arrivant au servo sur une entrée d'interruption et les convertir en consigne de position d'ailerons) ?

Dans ce cas pas de gyroscope à gérer mais tu peux tester, étalonner et valider tout le process de commande des ailerons. Cela t'enlèvera toute incertitude future lorsque tu t'attaqueras au pilotage automatique.

JLB

Je pense que je vais devoir malheureusement laisser tomber le sujet, jihelbi je ne comprends pas ta façon d'intervenir, si tu m'envoi un MP c'est insensé de le poster ici après. :disappointed_relieved:

Sev

EDIT : Quand la mayonnaise sera retombée, j'ouvrirai surement un sujet dédié au projet dans sa globalité.

Parce que dans ta dernière réponse je me rends compte que c'est toi qui entretient ce post à blablater.

En fait ton projet n'est pas sérieux et tu n'as visiblement pas l'intention de le faire avancer. Quand je pense que le sujet me passionnait bien et que j'aurais aimer le voir se terminer, je suis déçu.

Donc je voulais juste montrer aux autres que tout conseil qui tend à faire avancer le projet ne t'intéresse pas vraiment car tu veux surtout continuer à causer ici.

JLB

qu'entends-tu par CPLD, FPGA ? peut-on les programmer à bas coût (hors solution DIY/Arduino) ?

CPLD : pour faire simple ,tu mets 8 16V8 dans une puce unique, tu as un CPLD à 32 macrocellules. Les principes de fonctionnement sont similaires, développement selon les mêmes méthodes, éventuellement par une simple description des équations.
FPGA : encore plus gros, des milliers, centaines de milliers de portes logiques élémentaires ...etc sont reliées souvent par des liaisons décrites dans une RAM interne. Il faut alors charger cette RAM à la mise sous tension. Les méthodes de conception simples utilisable pour les GAL ou CPLD ne sont plus envisageables

Dans un CPLD tu mettras ce que tu aurais mis dans plusieurs GAL. (CPLD = "nouvelles GAL" , grosses GAL améliorées)
Dans un FPGA tu mets, si tu veux un µC et quelques périphériques.. il ya des bibliothèques de modules prèts à etre implantés. un autre monde .....

N'ayant pas pratiqué ces composants depuis environ 8 ans je ne sais pas grand chose des côuts actuels des circuits de programmation, juste l'impression (lectures) que ça s'oriente vers du 4 fils (programmation par signaux TAG) et sans 'haute tension' de 15V. ça va dans le bon sens pour nous mais çe n'est pas encore aussi abordable que les µC.

On va essayer de rester positif et constructif.

Tu n'avais pas l'intention de faire un circuit imprimé, c'est ton choix et je le comprend parce que ce n'est pas simple quand tu ne dispose pas du matériel adapté de graver un circuit ou c'est hors de prix en réalisation extérieure.

Mais entre le circuit imprimé "maison" et la boite de connexion, dite breadboard, il existe la plaque percée et pastillée au pas de 2,54 mm qui te permet de câbler très simplement des 7400 ou tout autre boîtier en brochage à piquer (DIPx) et pourquoi pas un ATMega. :grin:

Si tu montes tous tes circuits intégrés sur des supports le câblage sera plus facile.
Dernier conseil pour relier les divers composants entre eux choisi plutôt du fil de cuivre mono-brin et de petit diamètre. Le fil multi-brins se met moins facilement en forme.

Exemple de plaques :
http://www.gotronic.fr/cat-circuits-et-plaques-783.htm

Il existe deux modèles

  • pastilles indépendantes
  • bande de pastille que tu coupe à la longueur voulue avec un foret ou un cutter.
    Les pastilles indépendantes permettent de réaliser un câblage plus compact, les bandes permettent de séparer les soudures composant/fil en découpant des petites bandes de deux 'pastilles'.

Elles existent en deux matériaux

  • bakélite (FR2) pas cher mais cassant.
    -Verre epoxy (FR4) un peu plus cher mais incassable.

Dans le domaine de l'électronique embarquée il faut bien que tu te mettes dans la tête que tu auras deux outils indispensables:

  • le clavier pour programmer.
  • le fer à souder pour câbler.

Bonjour a tous
UniseV, si tu ne desires pas faire un circuit imprime special il y a la solution du circuit imprime "proto" avec des pastilles au pas de 2, 54mm. Disponible en trou metal sur Ebay pour une bouchee de pain. Tes 2 7400 seront cables en 1/2 heure. Tres simple ton shema, il n'y a meme pas de croisements de signaux.
Une autre solution : une PROM 74188 (32x8). Utilisable si tu acceptes de faire la commutation des signaux en meme temps, car il n'y a que 5 fils d'entree. Le 74188 est programmable "a la main". Si je cherche, je dois pouvoir retrouver le programmateur et quelques pieces vierges. Je les avait utilises pour faire une commande d'afficheur 7 segments avec les 2 barres horizontales sur le 6 et 9. Pour remplacer 7447 !!!
Dans tous les cas la meilleure solution est 2 x 74xx00.
Je dis cela, je dis rien :wink:
Jacques

Je n'ai pas suivi tout le déroulement du post, étant en vacances avec certaine difficulté d'accès au forum.
Il semblerait que le sujet devienne un peu chaud, et ce serait pas mal que la vapeur redescende XD, ça m'embêterait de devoir faire le ménage.... en plus avec un clavier AZERTY :grin:

Un peu d'automodération serait le bienvenu. :wink:

En effet je suggère l'automodération. Il faut excuser UniSev qui n'est pas francophone mais se débrouille bien en français. En tout cas merci de nous donner cet exemple de soft très bien commenté (désolé pour ceux qui ne lisent pas l'anglais).

Je pense que s'il a écrit ce logiciel il doit avoir une petite idée pour le délai de réponse effectivement anormal :

Bha tout ça est déjà prototypé et ça fonctionne plutot pas mal, regarde ici :
Programing my Arduino to listen my receiver - Page 2 - RC Groups
Avec ce code, je décode les 6 canaux de mon Rx et je pilote 2 servo, j'ai donc évidement testé que je pouvait "recopier" 2 canaux de mon Rx (position des manches) vers les 2 servos... ça marche mais il y a un délais de 20ms à 40ms supplémentaire, ce qui n'est pas confortable pour du pilotage manuel.

JLB

68tjs:
Tu n'avais pas l'intention de faire un circuit imprimé, c'est ton choix et je le comprend parce que ce n'est pas simple quand tu ne dispose pas du matériel adapté de graver un circuit ou c'est hors de prix en réalisation extérieure...

En fait je comptais prendre un arduino pro mini, et souder quelques fils entre le Rx les Servo & l'arduino (+le DOF6).
Donc ça m'embête d'utiliser une plaque de prototypage, j'aurais plutôt vu un truc "volant", c'est pour ça aussi que je cherche une solution compacte, j'ai plutôt l'habitude de ce genre d'agencements :

JMe87:
...Utilisable si tu acceptes de faire la commutation des signaux en meme temps, car il n'y a que 5 fils d'entree.

C'est le même problème que j'ai avec les mux numériques (74HC157 par exemple), ils commutent toutes les voies avec une seule commande, et je préfère commuter de façon indépendante.
Vu que l'audioence augmente, je re-post le composant de mes rêves :

Sev

1x 7400 ne prend pas beaucoup de surface et il est possible de le monter en mezzanine sur la carte arduino-mini.
Quelque mm en hauteur à trouver ce devrait-être possible. :grin:

Sinon il y a le câblage "perchoir à mouche" noyé dans la colle----->Ok je sors :grin:

68tjs:
1x 7400 ne prend pas beaucoup de surface et il est possible de le monter en mezzanine sur la carte arduino-mini.
Quelque mm en hauteur à trouver ce devrait-être possible. :grin:

Sinon il y a le câblage "perchoir à mouche" noyé dans la colle----->Ok je sors :grin:

"dead bug" style !
Ou comment faire quelque chose de classe sans support, avec juste un peu de colle et de soudure :grin:

Mon préféré : l'arduino sans arduino :grin:

La dernière image du dernier lien

corespond à ce que je pensais :

Un boîtier + un toron de 5 fils qui sortent (PWM1,PWM2, select, servo, Vcc, gnd)
Un peu scotch pour tout isoler et immobiliser et et le tour est joué.

Pour le prototype, mon regard s'arrête sérieusement sur ce relais (optoMOS) :
CLARE LCC120

D'après la DATASHEET il est "TTL/CMOS Compatible", c'est un DIP8, il y a beaucoup moins de cablage qu'avec un 7400.

Le composant de mes rêves existe, c'est l'ADG884, mais c'est un MSOP10 (trop petit pour mes soudures en paté)

Sev

Le proto fonctionne bien avec des Clare LC120 achetés sur la bay :

La vidéo ici :

Je remercie tout particulièrement al1fch, qui lui, a réellement continué de m'aider par MP quand le sujet a tourné au vinaigre.

La seule question qui reste est, puis-je sans risque connecter l'arduino sur la commande du relais sans résistance ?

UniseV

L'entree de ton "relais" est une led. Donc il FAUT mettre une resistance.

Bonjour
Une résistance est plus que souhaitable pour maitriser la valeur du courant dans la led du LC120
180 Ohms devrait fixer le courant à 17 mA environ dans la led. (loi d'ohm avec 3V aux bornes de la résistance)
Sans résistance le courant dépasserait très probablement la valeur limite indiquée pour une pin par Atmel. (40 mA pour le Mega328)

Bha justement, je n'ai rien trouvé dans la DATASHEET qui me permette de trouver la bonne valeur de résistance...