Analyseur "intelligent" de typons
Modérateurs : Papy.G, fneck, Carl
Analyseur "intelligent" de typons
Bonjour à tous,
J'ouvre ce fil pour vous présenter le petit outil sur lequel je travaille depuis quelques temps : un utilitaire permettant de transformer des typons scannés en un projet CAO d'un logiciel de conception de PCBs, Eagle.
Dans quel but ? J'aime bien expérimenter le genre de petits montages que l'on trouvait dans les magazines et autres livres d'électroniques des années 80 et 90. On y trouvait vraiment de tout, y compris des montages pour nos machines 8 bits. Les montages présentés comportaient souvent des typons, simple ou double face, et le fonctionnement était souvent très détaillé.
Étant assez pauvre en périphériques, j'y trouve l'occasion de bricoler, enrichir ma collection de matériel et améliorer petit à petit ma compréhension du fonctionnement de nos machines.
La première version de mon code était une version semi-améliorée d'un script fourni avec Eagle qui permettait d'importer une image bitmap dans le projet. Une telle image était filtrée par couleurs, redimensionnée avec des paramètres peu conviviaux pour enfin finir dans le projet. L'image en elle-même était convertie en une série de rectangles horizontaux plus ou moins larges, d'une hauteur de 1 pixel :
Nous nous retrouvions donc avec une myriade de rectangles qu'il était possible de déplacer dans un calque quelconque (cuivre "top" ou "bottom", sérigraphie top ou bottom).
L'ensemble de ces rectangles ne sont évidemment pas éditables facilement... En cas de modifications, il était nécessaire de modifier le bitmap initial, et de relancer le lourd script de conversion et se refarcir les étapes.
Si vous étiez courageux, il fallait faire de même pour les autres calques, pour ensuite venir manuellement ajouter les perçages. Pas facile !
J'ai utilisé cette méthode pour importer des logos et autres dessins dans Eagle, jamais pour travailler sur du cuivre. Trop compliqué ! C'est à ce moment là que j'ai un peu amélioré le truc.
Premièrement, je prépare mes différentes couches à l'aide d'un logiciel de traitement d'image gérant les calques. J'utilise ici Gimp, et comme exemple un synthétiseur vocal pour C64 tiré du livre "Commodore 64 interfacing blue book". Le typon coté cuivre, celui coté composant et une illustration du placement des composants sont donnés.
Ma méthodologie est d'abord d'insérer dans un premier calque l'image correspondant au cuivre "bottom" (coté soudures) (image à la plus haute résolution possible !!) que je fais légèrement tourner pour mettre les pistes parfaitement horizontales/verticales :
Je colle ensuite dans un nouveau calque l'image du cuivre top, et j'utilise les outils de transformation de matrice pour venir superposer les pastilles. Attention, cela doit être très précis !
Je recommence avec l'éventuel calque de sérigraphie supérieure.
Dernière étape de traitement : je seuille mes images pour ne conserver que du blanc ou du noir (plus de couleurs intermédiaires !)
Après exportation des calques, je me retrouve donc avec 3 images : sérigraphie supérieure, cuivre "top" et "bottom". Je pourrais à cette étape utiliser le script classique, mais c'est là que la magie va arriver.
J'ouvre ce fil pour vous présenter le petit outil sur lequel je travaille depuis quelques temps : un utilitaire permettant de transformer des typons scannés en un projet CAO d'un logiciel de conception de PCBs, Eagle.
Dans quel but ? J'aime bien expérimenter le genre de petits montages que l'on trouvait dans les magazines et autres livres d'électroniques des années 80 et 90. On y trouvait vraiment de tout, y compris des montages pour nos machines 8 bits. Les montages présentés comportaient souvent des typons, simple ou double face, et le fonctionnement était souvent très détaillé.
Étant assez pauvre en périphériques, j'y trouve l'occasion de bricoler, enrichir ma collection de matériel et améliorer petit à petit ma compréhension du fonctionnement de nos machines.
La première version de mon code était une version semi-améliorée d'un script fourni avec Eagle qui permettait d'importer une image bitmap dans le projet. Une telle image était filtrée par couleurs, redimensionnée avec des paramètres peu conviviaux pour enfin finir dans le projet. L'image en elle-même était convertie en une série de rectangles horizontaux plus ou moins larges, d'une hauteur de 1 pixel :
Nous nous retrouvions donc avec une myriade de rectangles qu'il était possible de déplacer dans un calque quelconque (cuivre "top" ou "bottom", sérigraphie top ou bottom).
L'ensemble de ces rectangles ne sont évidemment pas éditables facilement... En cas de modifications, il était nécessaire de modifier le bitmap initial, et de relancer le lourd script de conversion et se refarcir les étapes.
Si vous étiez courageux, il fallait faire de même pour les autres calques, pour ensuite venir manuellement ajouter les perçages. Pas facile !
J'ai utilisé cette méthode pour importer des logos et autres dessins dans Eagle, jamais pour travailler sur du cuivre. Trop compliqué ! C'est à ce moment là que j'ai un peu amélioré le truc.
Premièrement, je prépare mes différentes couches à l'aide d'un logiciel de traitement d'image gérant les calques. J'utilise ici Gimp, et comme exemple un synthétiseur vocal pour C64 tiré du livre "Commodore 64 interfacing blue book". Le typon coté cuivre, celui coté composant et une illustration du placement des composants sont donnés.
Ma méthodologie est d'abord d'insérer dans un premier calque l'image correspondant au cuivre "bottom" (coté soudures) (image à la plus haute résolution possible !!) que je fais légèrement tourner pour mettre les pistes parfaitement horizontales/verticales :
Je colle ensuite dans un nouveau calque l'image du cuivre top, et j'utilise les outils de transformation de matrice pour venir superposer les pastilles. Attention, cela doit être très précis !
Je recommence avec l'éventuel calque de sérigraphie supérieure.
Dernière étape de traitement : je seuille mes images pour ne conserver que du blanc ou du noir (plus de couleurs intermédiaires !)
Après exportation des calques, je me retrouve donc avec 3 images : sérigraphie supérieure, cuivre "top" et "bottom". Je pourrais à cette étape utiliser le script classique, mais c'est là que la magie va arriver.
Dernière modification par Falkor le 22 févr. 2020 20:01, modifié 1 fois.
Re: Analyseur "intelligent" de typons
Je charge les images dans mon petit utilitaire, et j'ajoute les infos permettant au logiciel de calculer la résolution pour passer des pixels à des dimensions en mm.
L'idée du traitement est de tout d'abord chercher les contours des images. Chaque contour sera ajouté au projet Eagle dans un calque non pas en tant qu'une lourde série de rectangles mais comme un polygone (via les coordonnées des points du contour) que Eagle remplira tout seul ! On se retrouvera avec des objets beaucoup plus faciles à manipuler et éditables.
Seconde étape : j'analyse les contours pour déterminer les contours qui ressemblent à un cercle, pour identifier les perçages. En gros si le contour est suffisamment petit et s'il s'inscrit dans un carré, une pastille double face sera rajoutée automatiquement.
Un même traitement est fait pour la seconde couche de cuivre.
Une fois le traitement terminé, je me retrouve avec des pastilles trouvées sur le calque cuivre supérieur et d'autres sur le cuivre inférieur (qui ne se superposent pas forcément au pixel près...). Une passe d'analyse permet de fusionner les pastilles identiques sur les couches supérieures et inférieures, et une même référence de potentiel électrique est inscrite sur les deux contours correspondants; ce qui permettra à Eagle d'effectuer des vérifications intelligentes des défauts de superposition.
Voici un aperçu du traitement effectué pour notre exemple :
On observe les contours (d'un seul calque) analysés et représentés en couleur, les croix blanches représentant les perçages. A ce stade l'analyse est terminée et le projet Eagle est prêt.
Voici ce dernier brut d'ouverture :
On observe les pastilles ajoutées, et les polygones représentant le contour des pistes (rouge : top, bleu : bottom).
Un coup de solveur permet le remplissage des polygones :
Et on se retrouve avec une carte quasi prête. (J'ai également affiché ici la sérigraphie supérieure).
Il ne reste plus qu'à vérifier les détails comme les entraxes des broches (pas de 2.54 mm), retirer les éventuelles pastilles en trop, regarder s'il n'en manque pas, vérifier les diamètres de perçages, et vérifier les autres petits détails comme par exemple bien mettre le nez de carte en couche "stop" de façon à ce que les broches du bas ne soient pas vernies lors de la fabrication...
EDIT : pour les curieux, j'utilise les librairies OpenCV pour faire les traitements d'image. Les possibilités sont impressionnantes :
L'idée du traitement est de tout d'abord chercher les contours des images. Chaque contour sera ajouté au projet Eagle dans un calque non pas en tant qu'une lourde série de rectangles mais comme un polygone (via les coordonnées des points du contour) que Eagle remplira tout seul ! On se retrouvera avec des objets beaucoup plus faciles à manipuler et éditables.
Seconde étape : j'analyse les contours pour déterminer les contours qui ressemblent à un cercle, pour identifier les perçages. En gros si le contour est suffisamment petit et s'il s'inscrit dans un carré, une pastille double face sera rajoutée automatiquement.
Un même traitement est fait pour la seconde couche de cuivre.
Une fois le traitement terminé, je me retrouve avec des pastilles trouvées sur le calque cuivre supérieur et d'autres sur le cuivre inférieur (qui ne se superposent pas forcément au pixel près...). Une passe d'analyse permet de fusionner les pastilles identiques sur les couches supérieures et inférieures, et une même référence de potentiel électrique est inscrite sur les deux contours correspondants; ce qui permettra à Eagle d'effectuer des vérifications intelligentes des défauts de superposition.
Voici un aperçu du traitement effectué pour notre exemple :
On observe les contours (d'un seul calque) analysés et représentés en couleur, les croix blanches représentant les perçages. A ce stade l'analyse est terminée et le projet Eagle est prêt.
Voici ce dernier brut d'ouverture :
On observe les pastilles ajoutées, et les polygones représentant le contour des pistes (rouge : top, bleu : bottom).
Un coup de solveur permet le remplissage des polygones :
Et on se retrouve avec une carte quasi prête. (J'ai également affiché ici la sérigraphie supérieure).
Il ne reste plus qu'à vérifier les détails comme les entraxes des broches (pas de 2.54 mm), retirer les éventuelles pastilles en trop, regarder s'il n'en manque pas, vérifier les diamètres de perçages, et vérifier les autres petits détails comme par exemple bien mettre le nez de carte en couche "stop" de façon à ce que les broches du bas ne soient pas vernies lors de la fabrication...
EDIT : pour les curieux, j'utilise les librairies OpenCV pour faire les traitements d'image. Les possibilités sont impressionnantes :
Dernière modification par Falkor le 22 févr. 2020 20:45, modifié 3 fois.
Re: Analyseur "intelligent" de typons
Après vérification et génération des fichiers Gerber, il ne reste plus qu'à sous traiter la fabrication puis faire chauffer le fer :
En résumé, le système fonctionne bien si:
-les images initiales sont de bonne résolution
-les images sont parfaitement superposables (un problème de scan des images et le délicat alignement des pastilles est impossible !!)
Le système est en cours de bêta test, mais les premiers résultats sont corrects. Il est parfois nécessaire de passer un peu plus de temps dans Gimp pour nettoyer / modifier les images et parfois un peu de de temps dans Eagle pour affiner le résultat. Mais sur le principe le système permet de faire gagner beaucoup de temps ! Je ne prétends évidemment pas révolutionner la conception de PCBs ni répondre à un problème rencontré par tous (qui à souvent besoin de faire tirer des PCBs à partir de typons) ? Le système pourrait pourquoi pas aider à dupliquer des cartes existantes, si on arrive à scanner les deux faces...
En résumé, le système fonctionne bien si:
-les images initiales sont de bonne résolution
-les images sont parfaitement superposables (un problème de scan des images et le délicat alignement des pastilles est impossible !!)
Le système est en cours de bêta test, mais les premiers résultats sont corrects. Il est parfois nécessaire de passer un peu plus de temps dans Gimp pour nettoyer / modifier les images et parfois un peu de de temps dans Eagle pour affiner le résultat. Mais sur le principe le système permet de faire gagner beaucoup de temps ! Je ne prétends évidemment pas révolutionner la conception de PCBs ni répondre à un problème rencontré par tous (qui à souvent besoin de faire tirer des PCBs à partir de typons) ? Le système pourrait pourquoi pas aider à dupliquer des cartes existantes, si on arrive à scanner les deux faces...
- fneck
- Site Admin
- Messages : 17539
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: Analyseur "intelligent" de typons
L'idéal serait de disposer d'une carte à reproduire vierge de composants, car l'épaisseur de ceux-ci peut nuire à précision de la numérisation.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: Analyseur "intelligent" de typons
On trouve parfois des scans de cartes sans composants, comme la mockingboard :
https://mirrors.apple2.org.za/Apple%20I ... rd/Photos/
https://mirrors.apple2.org.za/Apple%20I ... rd/Photos/
Re: Analyseur "intelligent" de typons
Super ton outil, ça permettrait de refaire les circuits des vieux Elektor, Electronique Pratique and co...
Re: Analyseur "intelligent" de typons
Comme d'autres membres du forum l'ont déjà écrit, pour ce genre de carte refaire tout avec un bon logiciel ne sera pas plus long (peut-être même plus rapide) et donnera un résultat plus professionnel. A l'époque on dessinait à la main sans se préoccuper de l'esthétique, aujourd'hui on peut faire beaucoup plus beau. Sauf, évidemment, si l'objectif est de retrouver l'aspect artisanal original.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- fneck
- Site Admin
- Messages : 17539
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: Analyseur "intelligent" de typons
Moi je demande à voir, si ça fonctionne bien, refaire certains circuits Elector peut-être amusant.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: Analyseur "intelligent" de typons
Je dit bravo super travail.
JL
JL
Recherche Tout sur le TI99/4a que ce soit materiel Texas ou Atronic, Mechatronic, Vidéopac, victor hector
figurine Kinder
figurine Kinder
Re: Analyseur "intelligent" de typons
Quelques exemples en simple face :
Montage "PongTronics" issu du magazine "Popular Electronics" (04/1976) (un pong analogique) :
SpaceWar, issu également du même magazine PE (pas ajouté la sérigraphie encore) : (notez les variations de géométrie des pistes...)
La carte "A" du montage proposé dans le livre "Un microprocesseur pas à pas" (réalisation visible ici) :
Montage "PongTronics" issu du magazine "Popular Electronics" (04/1976) (un pong analogique) :
SpaceWar, issu également du même magazine PE (pas ajouté la sérigraphie encore) : (notez les variations de géométrie des pistes...)
La carte "A" du montage proposé dans le livre "Un microprocesseur pas à pas" (réalisation visible ici) :
Re: Analyseur "intelligent" de typons
En double face j'ai la carte 16 E/S dont on parle ici :
J'ai les PCBs mais pas encore soudés.
EDIT : si certains veulent tester avec des typons spécifiques n'hésitez pas à me demander
J'ai les PCBs mais pas encore soudés.
EDIT : si certains veulent tester avec des typons spécifiques n'hésitez pas à me demander
Re: Analyseur "intelligent" de typons
je retrouve les miens et on en reparle.
JL
JL
Recherche Tout sur le TI99/4a que ce soit materiel Texas ou Atronic, Mechatronic, Vidéopac, victor hector
figurine Kinder
figurine Kinder
Re: Analyseur "intelligent" de typons
Salut,
Bravo Falkor.
Pour Kicad, c'est aussi possible : mon tuto.
Mais comme l'a déjà dit Daniel, les numérisations de typons doivent être de très bonne qualité (300/400 DPI n/b) et la pose des vias et pastilles tournent parfois au cauchemar avec des pastilles de différentes tailles, piste à géométrie variable et autres détails cachant des erreurs de conception, corrigées au dernier moment.
Donc, "Intelligent", oui, mais en redessinant le PCB automatiquement en routant les pistes selon le dessin d'origine (forçage vectoriel), avec les mêmes tailles de pistes et en redressant les composants sur une grille de référence.
De plus, refaire l'ancient avec la qualité "moderne" est dommage, d'autant plus que ce même circuit peut-être optimisé pour les transfères thermiques, taille de pistes, masquage anti-émissions radio et répartition en boucle des courants "forts".
(cf carte Z80 originale et redessinée)
Carte originale mono-face et lignes adresses/data à cabler en fils volants !
Refonte en double-face:
J'aimerai faire un Tuto sur la réalisation de circuits imprimés, mais j'avoue ne pas savoir par où commencer … et surtout par où finir !
Les Tutos c'est bien, mais tout expliquer de A à Z donne la fausse impression qu'il est facile de dessiner un circuit imprimé… alors que c'est le montage lui même qui nous donne la marche à suivre.
Bravo Falkor.
Pour Kicad, c'est aussi possible : mon tuto.
Mais comme l'a déjà dit Daniel, les numérisations de typons doivent être de très bonne qualité (300/400 DPI n/b) et la pose des vias et pastilles tournent parfois au cauchemar avec des pastilles de différentes tailles, piste à géométrie variable et autres détails cachant des erreurs de conception, corrigées au dernier moment.
Donc, "Intelligent", oui, mais en redessinant le PCB automatiquement en routant les pistes selon le dessin d'origine (forçage vectoriel), avec les mêmes tailles de pistes et en redressant les composants sur une grille de référence.
De plus, refaire l'ancient avec la qualité "moderne" est dommage, d'autant plus que ce même circuit peut-être optimisé pour les transfères thermiques, taille de pistes, masquage anti-émissions radio et répartition en boucle des courants "forts".
(cf carte Z80 originale et redessinée)
Carte originale mono-face et lignes adresses/data à cabler en fils volants !
Refonte en double-face:
J'aimerai faire un Tuto sur la réalisation de circuits imprimés, mais j'avoue ne pas savoir par où commencer … et surtout par où finir !
Les Tutos c'est bien, mais tout expliquer de A à Z donne la fausse impression qu'il est facile de dessiner un circuit imprimé… alors que c'est le montage lui même qui nous donne la marche à suivre.
Re: Analyseur "intelligent" de typons
intéressant ton truc la, mois j'ai acheter un program appelle ImagetoPCB pour a partir d'image éditer sous photoshop, j'ai recrée les faces silks, top , bottom du FreHD en fiches bmp, pour example en retirant les lignes de cuivre/chip/resistance qui sont plus utiliser (rs232max pour example) et cela done 3 couleurs, vert pour le SILK, noir pour les tracée et rouge pour les trous. cela donne coller ensembles
puis le program lists les information en fichier bmp puis assemble les fichiers Gerber tous seul et cela donne.
mais bon cela est pas mal de travail pour codée les couleurs mais une fois bien compris cela ne prend pas de temps...
program ce trouve : https://imagetopcb.wordpress.com/faq/
mon prochain project est de recrée le PSU du TRS-80 model 4 a partir d'image du livre .
puis le program lists les information en fichier bmp puis assemble les fichiers Gerber tous seul et cela donne.
mais bon cela est pas mal de travail pour codée les couleurs mais une fois bien compris cela ne prend pas de temps...
program ce trouve : https://imagetopcb.wordpress.com/faq/
mon prochain project est de recrée le PSU du TRS-80 model 4 a partir d'image du livre .
TRS-80 Model 4, 128K Ram, Floppy-80 & FreHD, WIFI MODEM, DWP-210. LSDOS M3/4 & CP/M 2.2
Mon Serveur TTR Discord: https://discord.gg/fjupvXnBWq
Mon Serveur TTR Discord: https://discord.gg/fjupvXnBWq
Re: Analyseur "intelligent" de typons
Salut,
Effectivement, c'est encore plus simple en BMP vers Gerber.
L'avantage et le gain de temps est clairement axé sur le fait que le schéma n'a pas à être saisi… et on gagne facilement 5 heures.
Par contre, la conversion en couche cuivre sur les deux faces ne peut valider un schéma.
Il faut donc vérifier le chevelu et les pistes existantes.
Un fois la vérification effectuée, on peut à loisir modifier l'emplacement des composants, bouger les pistes et optimiser les ponts thermiques.
Effectivement, c'est encore plus simple en BMP vers Gerber.
L'avantage et le gain de temps est clairement axé sur le fait que le schéma n'a pas à être saisi… et on gagne facilement 5 heures.
Par contre, la conversion en couche cuivre sur les deux faces ne peut valider un schéma.
Il faut donc vérifier le chevelu et les pistes existantes.
Un fois la vérification effectuée, on peut à loisir modifier l'emplacement des composants, bouger les pistes et optimiser les ponts thermiques.