Imprimer

Le coeur du projet est piloté par un pic 18f4550 pour commencer l'étude. Nous verrons si il est nécessaire de passer à un pic plus costaud au cours du dév.
Gestion du niveau audio de la puissance d'émission et de la fréquence par 6 boutons poussoirs (Audio, fréquence, puissance et down, enter, up).
La Pll est gérée par un Mc145170 dont paulfjujo a déjà écrit un bout de code dans un autre post. (viewtopic.php?f=10&t=572&hilit=145170)
La première version de l'affichage est gérée par un Max7219. La seconde version par un LCD tactile (ne compliquons pas trop dés le début !)
Gestion complète de la partie émission comme pour un émetteur du commerce.
Le choix du démarrage avec un 18f4550 s'est fait car je souhaite aussi pouvoir commander l'émetteur par un port USB et/ou Ethermet.
Option : codage stéréo externe ou interne (codeur déjà développé).
Pour le pilotage de l'émetteur en USB, le software est écrit avec Delphi. J'ai le composant pour dialoguer en USB. J'ai essayé de trouver l'équivalent pour Lazarus pour rester dans le libre mais ma quête est restée sans réponse. Je ne suis pas à la hauteur pour pouvoir écrire un tel composant tier.
Voici déjà une copie écran de ce qui existe sous delphi, compilation de l'exe en 32 et 64 bits


Mes schémas des platines principales sont dessinées sous Kicad; Il me reste à dessiner les PCBs pour lancer en hard le projet.
J'ai déjà avancé le firmware (sous MikroC) grâce à la simulation de Proteus.
L'écran de la sérigraphie est dessinée sous un logiciel de dessin non libre. A moi de trouver un équivalent en libre et de transférer le fichier sous cette version.
Pour ceux qui seraient vraiment intéressés et participé à ce dév, il y a une possibilité de réaliser l'usinage de la façade avant alu d'un rack 2U et la sérigraphie (avec fraise en V et incrustation d'encre blanche dans le creux) par une CNC.
Voici l'écran de sérigraphie de l'ensemble des racks alu 2U de la chaine d'émission. Celui de l'émetteur est l'avant dernier en partant du bas :
De bas en haut : Spectral enhancer, Limiteur-compresseur-noise gate stéréo, Vu-mètres, codeur stéréo, codeur RDS, pilote FM, ampli linéaire

 


 

 

 


 

 

 


 

Cette platine permet de crééer une fréquence dont il est possible de la faire varier en appliquant une tension sur l"une des entrées. L'oscillation ainsi fabriquée est amplifiée par un système d'étage amplificateur pour obtenir une puissance finale d'émission du V.C.O. de 300mW

Cette fréquence peut être stabilisée et consignée à une valeur fixe grace à la P.L.L., cuicuit que nous verrons ensuite.

 

Le schéma :

schema vco

 

Le circuit imprimé :

 

PCB Cde

 

L'implantation :

 

PCB Cde

 

 

 

Vue 3D de la platine :

 

ensemble monte

 

Téléchargement du fichier Kicad 5.00 :  

 

 


 

 

 


 

 

 


 

Cette platine permet l'affichage de la fréquence, l'affichage du réglage du niveau audio en entrée, de l'affichage de la puissance HF souhaitée par les 6 boutons poussoirs. Elle se connecte au processeur. Les leds bicolor permettent l'affichage du vérouiullage de la PLL : couleur rouge, non vérouillé, couleur vert, vérrouillé. Le système permet de basculer d'un état à l'autre par une seule entrée.

Le schéma :

schema cde

 

Le circuit imprimé :

PCB Cde

L'implantation :

Implantation cde

 

Vue 3D de la platine :

Note : Les leds bicolores et les poussoirs ne sont pas les composants 3D correct. Il me faut les reprendre en CAO pour les modifier mais déjà cette vue 3D donne une bonne vision de la platine montée. A noter que les afficheurs 7 segments sont montés sur 2 étages de barettes sécables pour les amener contre le plexi rouge incrusté dans la facade du rack 19 pouces - 2U. Cette hauteur correspond à la hauteur du chassis des poussoirs.

 

ensemble cde

 

 

Téléchargement du fichier Kicad 5.00 :   zipcde+affichage.zip180.97 Ko

 

 


 

 

 


 

 

 


 

 

 


 

  TX FM1

 

La première mouture est réalisée sous Lazarus (https://www.lazarus-ide.org/), un logiciel libre et donc sans licence. Son cousin non libre est connu des développeurs sous le nom de « Delphi » (https://www.embarcadero.com/fr/products/delphi) distribué par Embarcadero, 'ex Borland".

Le langage de programmation est donc le Pascal orienté objet. Vous pourrez donc vous appuyer sur les livres à destination de l’apprentissage de la prise en main de Delphi bien que la communauté de développeurs issus « Lazarus » commence à devenir très active. En effet, cet outil de développement a acquéris sa phase de maturité.

Toutefois, attention à la dépendance des paquets des composants tiers et à la version de Lazarus pour lesquels ils ont été écrits. Cela conditionne la version sous laquelle il vous faudra l’installer pour développer votre logiciel.

Dans notre cas, nous restons dans l’utilisation des composants livrés d’origine et ils suivent donc les montées de version du RAD (Rapid Application Development) par leurs auteurs respectifs.

Nous avons fait appel à 2 composants tiers, (externe) qui se compilent très bien sous la dernière version actuelle de Lazarus (2.0.6). Il s’agit de Rackctls (https://wiki.lazarus.freepascal.org/RackCtls) écrits d’origine par son auteur pour Delphi et traduits au format Lazarus et le composant « Native HID » (https://www.winsoft.sk/nathid.htm) de chez Winsoft. Ce dernier est un composant non visuel car il nous permet d’assurer le dialogue dans les 2 sens entre l’électronique et le logiciel par le port USB en mode HID (Human Interface Device). Bien que ce dernier composant nécessite une license d’utilisation, sa version démonstration (Trial) n’est pas limitée dans le temps, un écran « nag » apparait au lancement de votre logiciel compilé.

Cette version sous Lazarus ne sera pas pour autant un « jouet » car elle sera fonctionnelle. Cependant, elle permettra à chacun de s’initier à la programmation. J’entends par là que chaque utilisateur pourra développer et mettre au point ses fonctions personnelles et les soumettre ensuite au Club pour intégration. Nous pourrons modifier le source du firmware pour faire évoluer les informations transitant par le port USB.

Il est pour l’instant envisagé d’écrire un logiciel sous Delphi pour ce pilote. Delphi étant de génération plus ancienne que Lazarus, les composants tiers sont plus nombreux sur la toile. La présentation fonctionnelle du logiciel devrait se rapprocher assez fidèlement de la version Lazarus. Par contre le design de l’application devrait s’en éloigner car il est tout à fait possible de customiser le graphisme de l’application par l’ajout de skins. A cette heure, je n’ai pas trouvé de composant identique pour Lazarus.

Il est assez périlleux de démystifier en quelques lignes la méthode pour programmer en Pascal Orienté Objet (P.O.O.). Je vous invite à vous munir d’ouvrages sur ce thème écrits pour la version 7 de Delphi. Delphi 7 fut, à l’époque, la version « référence » des versions antérieures et postérieures jusqu’à l’arrivée des séries XE… permettant de créer un exécutable en 32 et en 64 bits simultanément avec le même source. La presse technique a donc assez bien nourri et documenté le sujet. N’hésitez pas à aller vous promener sur les brocantes ou sites d’enchères en ligne pour dénicher ces joyaux.

Si vous souhaitez vous entrainer à ce langage P.O.O. à partir des exercices proposés dans les ouvrages de programmation, sachez que vous pouvez vous procurer gratuitement la version de Delphi 7 sur le site de www.developpez.com (https://delphi.developpez.com/telecharger-gratuit/delphi7-perso/#LIII-B). Delphi 7 a tellement été une référence que son éditeur (Borland à l’époque) a décidé de la diffuser en libre utilisation. A l’heure où ces lignes sont écrites (janvier 2020), la version de Delphi en vigueur est la XE10.3 Révision 3 connue aussi sous le nom de « Rio » et l’éditeur se nomme maintenant « Embarcadero ».

Chaque composant visuel dispose de propriétés et d’événements. Les propriétés sont les éléments qui caractérisent l’aspect visuel du composant. Sa couleur, sa fonte, sa taille de fonte, sa hauteur, largeur hauteur et encore bien d’autres sont donc modifiables à volonté.

Les événements sont issus des actions réalisées par l’utilisateur sur le composant. Lorsque l’utilisateur survole de sa souris le composant en question, vous pouvez lui attribuer une action spécifique. Dans notre cas, nous pourrions lui faire modifier la couleur de la fonte pour attirer le regard.

Je vous livre volontiers ces premières explications car cette base de la base m’avait été déjà présenté sous cette forme pour m’aider à prendre en main le logiciel et m’aider à démarrer mon premier programme.

A charge ensuite à chacun d’aller plonger ou replonger les yeux dans d’autres ouvrages relatifs à la programmation pure traitant des variables, tableaux, fonctions arithmétiques, conditions, boucles, …. que l’on retrouve dans tous types de langage de programmation.

Et pour conclure et fournir un ensemble cohérant installable, il vous faut créer un fichier d’aide dont ses index sont à lier à chaque propriété « HelpIndex » de chaque fenêtre (Form) ou composant pour appeler la page concernée de l’aide en appuyant sur la touche de fonction F1 (commun à tous les logiciels normalement). Le développement sera abouti totalement, lorsqu’une installation type sera produite en y insérant l’exécutable, le fichier aide à minima.

 

PS : Je vous mets en téléchargement l'utilitaire gratruit de Microsoft pour la compilation des fichier d'aide (Microsoft HTML Help WorkShop) ainsi qu'une documentation pour sa prise en main car l'outil est en anglais documentation en français

 

Téléchargement :

 

Lazarus  Source du projet sous Lazarus (Historique du 01/02/2020)
html  Source du fichier d'aide
InoSetup  Source de l'installation
  Installation 32  Installation du logiciel compilé (Historique du 01/02/2020)
TXFM1 Setup d'installation du logiciel (Consultez le fichier d'historisation des corrections de bug et d'ajout de nouvelles fonctionalités)

PS : un live sur lazarus : https://www.lazarusext.fr/downloads/LAZARUS-libre.pdf

 


 

Pour développer également vos interfaces USB, voici un tuto pour aller plus loin : AC - USB en HID