Difference between revisions of "Projets:Perso:2012:ArduiKeyer"

From Electrolab
Jump to: navigation, search
(la platine)
(la platine)
Line 133: Line 133:
  
  
[[File:KeyerRTM.JPG|Left|530px|thumb| version quasi définitive. L'afficheur sera probablement un 20x4, faute de 16x2 en fond de tiroir. Le pcb compte 2 straps qui auraient pu être très facilement évités mais qui auraient créé quelques longueurs de piste. Cette version du pcb compte 4 sorties CW et 4 sorties PTT pour piloter 4 émetteurs différents. Il y a encore assez de place sous l'Arduino pour ajouter deux PTT et 2 sorties CW supplémentaires, et assez de sorties numériques sur la carte du Mega pour relier une vingtaine de tranceivers... mais la mégalomanie a des limites.  
+
[[File:KeyerRTM.JPG|530px|thumb| version quasi définitive. L'afficheur sera probablement un 20x4, faute de 16x2 en fond de tiroir. Le pcb compte 2 straps qui auraient pu être très facilement évités mais qui auraient créé quelques longueurs de piste. Cette version du pcb compte 4 sorties CW et 4 sorties PTT pour piloter 4 émetteurs différents. Il y a encore assez de place sous l'Arduino pour ajouter deux PTT et 2 sorties CW supplémentaires, et assez de sorties numériques sur la carte du Mega pour relier une vingtaine de tranceivers... mais la mégalomanie a des limites.  
  
 
Un régulateur 1,5 A (refroidi par radiateur, non représenté) assure l'alimentation de tous les accessoires (clavier, afficheur) ainsi que de l'Arduino via les 3 broches 5Vcc qui ressortent sur la carte. Le radiateur doit impérativement être isolé de la languette du régulateur, car celle-ci est au point chaud de l'alimentation(''cliquez pour agrandir'')]]
 
Un régulateur 1,5 A (refroidi par radiateur, non représenté) assure l'alimentation de tous les accessoires (clavier, afficheur) ainsi que de l'Arduino via les 3 broches 5Vcc qui ressortent sur la carte. Le radiateur doit impérativement être isolé de la languette du régulateur, car celle-ci est au point chaud de l'alimentation(''cliquez pour agrandir'')]]

Revision as of 10:57, 23 August 2012

Projet de réalisation d'un Shield Arduino destiné à transformer un "Mega" en manipulateur morse électronique perfectionné. 
le manipulateur morse Arduino de K3NG avec un afficheur "shield" provisoire(cliquez pour agrandir)


But de l'opération

Prétexte électronique pour inciter les "hardeux canal historique" tendance dure à s'intéresser un petit peu à la programmation. Pour ce faire, les branchement originels de K3NG ont été notablement modifiés, ce qui poussera l'impétrant électronico-programmeur à plonger dans le code, apprendre superficiellement ce qu'est un paramètre et une fonction, dans le but de faire fonctionner l'appareil.

La structure des programmes destinés à l'Arduino est minimaliste et se limite en gros à 3 étapes :

- appel de bibliothèques de fonctions,

- déclarations des entrées/sorties reliées à un élément extérieur à la carte Arduino (afficheur, écran, extension mémoire, ports de communication série...)

- programme principal qui boucle ad vitam eaternam

C'est donc à la porté de tout joueur de fer à souder

Description

Il s'agit d'un développement Arduino effectué par K3NG de manipulateur électronique morse totalement automatisé. Diverses réalisations, donc certaines semi-commerciales tel que le boitier de DJ0MY, proposent la même chose si l'on possède un numéro de carte bleu.

Mais acheter "tout fait" est moins drôle que de bricoler soi-même un "shield" (module d'extension Arduino). En outre, j'avais envie de tâtonner un peu de langage de programmation et de simili langage C. Enfin, DJ0MY utilise une base Arduino Nano qui ne peut accepter l'intégralité du programme...

Car le soft de K3NG est conséquent. Il rempli les fonctions suivantes :

- Vitesse allant du QRSS (télégraphie lente, traits de 6 secondes) au "high speed keying" (255 mots/minute)

- Manipulation en Curtiss iambique A, B, Ultimate (pour les mutants), semi-auto "vibroplex" et même pioche classique pour les vieux routiers

- Extension clavier (pour les tricheurs en CW) essentiellement pour émettre en Hellschreiber et paramétrer/piloter le keyer.

- Pondération des espaces entre lettres (farnsworth)

- Mode apprentissage CW

- Inversion des palettes par soft (pour le gauchers)

- Pilotage au double contact en l'absence de clavier (paramétrage du keyer : vitesse, modes, mémoires etc)

- Emission en HellSchreiber

- Mode balise (V V V de ON4BB) (Tout le monde connait ON4BB )

- 12 mémoires

- Sidetone intégré

- vitesse programmabe via clavier et/ou manipulateur, et ajustable par un potentiomètre

- LCD d'affichage du statu courant du manipulateur

- 3 sorties de pilotage d'émetteur, extensibles à 6

- Trainer CW émulant le système Winkeyd'entrainement au morse sous Windows


Rien n'interdit d'utiliser ce Shield avec un Arduino Duemillanove ou Uno, mais l'espace mémoire des microcontroleurs utilisé forcera l'usager à éliminer certaines fonctions annexes (mode apprentissage, gestion d'un clavier AZERTY, affichage LCD...)

Projet

Comme tout le travail de développement a déjà été réalisé par K3NG, il ne reste plus qu'à se faire les dents sur le "hard". Le projet consiste à fabriquer un "shield" arduino qui soit compatible avec un Arduino Mega, seul modèle capable d'accepter tout le code compilé.


le pcb en question devra être compatible avec l'empreinte connecteur d'un "shield" Arduino Mega (ou plus petit modèle, moyennant des limitations du logiciel). Le shield en question doit pouvoir affleurer une face avant regroupant toutes les commandes (potentiomètre, boutons de commande et mémoires, prise clavier, prise manipulateur, entrée alimentation 13,8 V, afficheur, sorties de commande d'émission)

Il devra être associé à un plan de perçage destiné à faciliter l'intégration du shield dans un boitier.

Schéma Kicad

Le fichier SCH sous Kicad est assez éloigné du shéma de principe de K3NG, puisqu'il intègre notamment :

- la totalité des boutons d'appel mémoire - l'afficheur 2x16 backlite (ou plus, selon les fonds de tiroir... il n'y a que deux params row et col à changer) - une alimentation externe un peu plus puissance que celle d'origine sur l'Arduino destinée d'une part à alimenter directement en 5V les composants ou éléments les plus énergivores -afficheur et son rétro-éclairage, clavier PS/2-, et le microcontroleur d'autre part. Le régulateur embarqué n'est pas utilisé. Cette disposition oblige l'usager soit à débrancher l'Arduino, soit à couper le courant du keyer s'il désire télécharger un nouveau firmware.

Le schéma d'origine de l'auteur est très... schématique, et un certain nombre d'éléments ont été éludés pour faciliter la compréhension des fonctions. Ce schéma, en revanche, contient tous les composants nécessaires pour que le manipulateur électronique fonctionne : les 12 boutons d'appel de mémoire ainsi que la touche de mode "commande", l'afficheur au standard d'adressage HD44780, et 4 sorties CW doublées de 4 commandes PTT pour passer d'un émetteur à un autre(4X) sans avoir à débrancher ou brancher quoi que ce soit.

La bibliothèque Arduino utilisée est l'oeuvre de Nicolas C. Lewis, travail superbe comprenant tous les modèles d'Arduino "carte" (Uno, Duemillanove, Mega...). Ces libs, ainsi que les modèles 3D qui ont permis la perspective cavalière du chapitre suivant, peuvent être téléchargées sur Thingiverse

Attention : la totalité des trous de pastilles ont été réduits à 0,4 mm, ce "shield" étant étudié pour être réalisé en gravure "DIY" sans vias métallisés. Le diamètre de 0,4mm facilite le centrage du foret et laisse assez de métal autour du perçage pour garantir une bonne prise de la brasure.

Schéma du shield keyer Arduino (cliquez pour agrandir)



















.

la platine

Partie en cours de conception Deux difficultés sont à surmonter.

La première est de concevoir un pcb qui servira de réceptacle à un Arduino Mega branché en "piggy back", platine sur laquelle viendra reposer les différents connecteurs "arrière" du manipulateur : alimentation, sorties de pilotage d'émetteur, connecteur clavier, ainsi que certains composants encombrants (notamment le haut-parleur du sidetone).

La seconde est de réaliser un second pcb relié en "L" sur la platine principale et supportant l'IHM : potentiomètre de réglage de vitesse, afficheur 2x16, boutons de commande et d'appels de mémoires, jack d'entrée CW. Une partie des connecteur (jack manip, connecteur clavier, sortie TX, entrée alim) sont des composants "volants à fil" et ne sont donc pas représentés par la modélisation CAO


version quasi définitive. L'afficheur sera probablement un 20x4, faute de 16x2 en fond de tiroir. Le pcb compte 2 straps qui auraient pu être très facilement évités mais qui auraient créé quelques longueurs de piste. Cette version du pcb compte 4 sorties CW et 4 sorties PTT pour piloter 4 émetteurs différents. Il y a encore assez de place sous l'Arduino pour ajouter deux PTT et 2 sorties CW supplémentaires, et assez de sorties numériques sur la carte du Mega pour relier une vingtaine de tranceivers... mais la mégalomanie a des limites. Un régulateur 1,5 A (refroidi par radiateur, non représenté) assure l'alimentation de tous les accessoires (clavier, afficheur) ainsi que de l'Arduino via les 3 broches 5Vcc qui ressortent sur la carte. Le radiateur doit impérativement être isolé de la languette du régulateur, car celle-ci est au point chaud de l'alimentation(cliquez pour agrandir)




Le shield et sa facade de commande.(cliquez pour agrandir)