Créer un modèle d'antenne cadre en Python dans KiCad

1.Tout d'abord

Il est devenu nécessaire de créer un motif de conducteur enroulé en spirale sur la carte de circuit imprimé. KiCad [^ 1] sur la carte de circuit imprimé CAO n'a pas une telle fonction. Il est très laborieux de créer à la main et il est difficile de créer un motif régulier. Il est réalisé sous forme d'empreinte à l'aide d'un outil indépendant. test3.png

2. Rechercher des outils logiciels

Trouvez l'outil publié. Une recherche sur le Web vous donnera ces images et conseils. Spiki [^ 3] a été introduit sur la page [^ 2] qui présente le plug-in, mais j'ai abandonné car il était difficile de maintenir l'environnement d'exploitation car Python2 et PyQt4 étaient nécessaires. J'ai pu rechercher sur GitHub et utiliser le dernier générateur de bobines kicad [^ 4].

3. Installez Python

Téléchargez le programme d'installation [^ 5] et exécutez-le. La valeur par défaut semble être la version 32 bits. Cette fois, j'ai choisi la version 64 bits. Activez l'option d'ajout PATH pendant l'installation et effectuez également le processus de suppression de la limite de caractères de PATH. J'ai également créé un environnement virtuel avec venv.

C:\Users\user_name>python -m venv venv_kicad
C:\Users\user_name>call venv_kicad/scripts/activate.bat
(venv_kicad) C:\Users\user_name>

Être accro

4. Préférences du générateur de bobine Kicad

Clonez kicad-coil-generator depuis github et suivez README.md pour installer la bibliothèque Python. J'étais en colère de ne pas avoir de roue, mais KiCadModTree a été installé.

(venv_kicad) C:\Users\user_name\kicad_coil_generator>pip install wheel
(venv_kicad) C:\Users\user_name\kicad_coil_generator>pip install -r requirements.txt
(venv_kicad) C:\Users\user_name\kicad_coil_generator>

5. Confirmation du fonctionnement du générateur de bobine kicad

Afficher l'aide.

(venv_kicad) C:\Users\user_name\kicad_coil_generator>python coil_generator.py --help
usage: coil_generator.py [-h](-r R_INNER | -d D_INNER) (-R R_OUTER | -D D_OUTER) -n N_TURNS -w LINE_WIDTH [--direction {counter_clockwise,clockwise}]
                         [-p {SMT,THT,CONNECT}] [-x DRILL_RATIO] [-a RING_WIDTH] [--points_per_turn POINTS_PER_TURN]
                         file_name {spiral,square}

Generates KiCad footprints of spiral/square coils.

positional arguments:
  file_name             path to the file in which to save the footprint; will overwrite previous file (this program cannot addmultiple footprints to the same file, so
                        files have to be concatenated manually)
  {spiral,square}       type of the coil created

optional arguments:
  -h, --help            show this help message and exit
  -r R_INNER, --r_inner R_INNER
                        inner radius of the coil [mm]
  -d D_INNER, --d_inner D_INNER
                        inner diameter of the coil [mm]
  -R R_OUTER, --r_outer R_OUTER
                        outer radius of the coil [mm]
  -D D_OUTER, --d_outer D_OUTER
                        outer diameter of the coil [mm]
  -n N_TURNS, --n_turns N_TURNS
                        number of turns of the coil
  -w LINE_WIDTH, --line_width LINE_WIDTH
                        width of the copper path used [mm]
  --direction {counter_clockwise,clockwise}, --dir {counter_clockwise,clockwise}
                        direction in which the coil turns (starting from outer part)
  -p {SMT,THT,CONNECT}, --pad_type {SMT,THT,CONNECT}
                        type of the pads drawn at the ends of coil's path
  -x DRILL_RATIO, --drill_ratio DRILL_RATIO
                        ratio of the drill in pad to line width (only for SMT/THT pads)
  -a RING_WIDTH, --ring_width RING_WIDTH
                        Width of the ring around the drill
  --points_per_turn POINTS_PER_TURN
                        (spiral only) number of arcs used for each full turn of the coil

(venv_kicad) C:\Users\user_name\kicad_coil_generator>

Être accro

Il ne peut pas être exécuté en utilisant py au lieu de la commande python.

(venv_kicad) C:\Users\user_name\kicad_coil_generator>py coil_generator.py --help
Traceback (most recent call last):
  File "coil_generator.py", line 12, in <module>
    import KicadModTree as kmt
ModuleNotFoundError: No module named 'KicadModTree'

6. Création de motifs avec kicad-coil-generator

Avec un rayon intérieur de 35 mm, un rayon extérieur de 45 mm, 20 tours et une largeur de motif de 0,25 mm, j'ai créé deux types: spirale) et carré. Les fichiers de format d'empreinte Kicad "test1.kicad_mod" et "test2.kicad_mod" ont été générés.

(venv_kicad) C:\Users\user_name\kicad_coil_generator>python coil_generator.py test1 spiral -r 35 -R 45 -n 20 -w 0.25
Line spacing = 0.250 mm

(venv_kicad) C:\Users\user_name\kicad_coil_generator>python coil_generator.py test2 square -r 35 -R 45 -n 20 -w 0.25
Line spacing = 0.276 mm

(venv_kicad) C:\Users\user_name\kicad_coil_generator>dir
Le lecteur C n'a pas d'étiquette de volume.
Le numéro de série du volume est 6A6D-1120

 C:\Users\user_name\kicad_coil_répertoire du générateur

2020/07/18  13:55    <DIR>          .
2020/07/18  13:55    <DIR>          ..
2020/07/18  12:59             6,999 coil_generator.py
2020/07/18  12:59               808 README.md
2020/07/18  12:59                58 requirements.txt
2020/07/18  12:59    <DIR>          screens
2020/07/18  12:59             4,978 spiral.py
2020/07/18  12:59             2,086 square.py
2020/07/18  13:54             8,128 test1.kicad_mod
2020/07/18  13:54             7,743 test2.kicad_mod
2020/07/18  13:23    <DIR>          __pycache__
7 fiches 30,800 octets
4 répertoires 194,298,355,712 octets d'espace libre

(venv_kicad) C:\Users\user_name\kicad_coil_generator>

Importez le fichier d'empreinte généré dans l'éditeur d'empreintes de KiCad pour le visualiser. "test1.kicad_mod" test1.png "test2.kicad_mod" test2.png Je sens que c'est un beau motif.

7. Création d'une empreinte

Sur la base du motif généré, j'ai créé une empreinte avec des tourbillons placés des deux côtés et via des vias au centre. test4.png

Être accro

La pointe de la bobine est un "connecteur", mais si elle est laissée telle quelle, il ne sera pas possible d'effectuer une connexion de câblage après l'avoir placée dans l'éditeur de carte imprimée. Je pense que c'est parce qu'il y a une zone interdite autour du motif de bobine. La forme des connecteurs aux deux extrémités a été changée en «forme personnalisée (ancre circulaire)» et modifiée pour être tirée du motif de bobine.

8. Conclusion

KiCad a la particularité que les données sont au format texte et peuvent être modifiées ou complétées par un programme externe. De nombreuses personnes ont créé et publié des programmes externes utiles. Je tiens à remercier ces personnes et à utiliser efficacement leurs atouts. J'espère pouvoir fournir des outils utiles à l'avenir.

Recommended Posts

Créer un modèle d'antenne cadre en Python dans KiCad
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un conteneur DI avec Python
Créer un fichier binaire en Python
Créer une chaîne aléatoire en Python
Créer une application GUI simple en Python
[GPS] Créer un fichier kml avec Python
Créer un module Python
Modèle de visiteur en Python
Je veux créer une fenêtre avec Python
Créer un graphique de distribution normale standard en Python
Comment créer un fichier JSON en Python
Réécrire des éléments dans une boucle de listes (Python)
Créer un modèle d'investissement dynamique simple en Python
Créer une nouvelle page en confluence avec Python
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Créer un package contenant des commandes globales en Python
Créer un environnement Python
[Docker] Créez un environnement jupyterLab (python) en 3 minutes!
Créer un bot de collecte de données en Python à l'aide de Selenium
[API LINE Messaging] Créez un menu riche avec Python
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
Créez un faux serveur Minecraft en Python avec Quarry
Prendre une capture d'écran en Python
Créer un plugin Wox (Python)
Créer un bookmarklet en Python
Créer un tableau numpy python
Dessinez un cœur en Python
Créer un répertoire avec python
Créer une portée locale en Python sans polluer l'espace de noms
Boucle sur un générateur qui renvoie un itérateur de date en Python
Créer un compte enfant de connect with Stripe en Python
Créons un script qui s'enregistre avec Ideone.com en Python.
Créez le code qui renvoie "A et prétendant B" en python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
Créer un lecteur CSV avec Flask
Créer une interface graphique python à l'aide de tkinter
Créer un environnement Python sur Mac (2017/4)
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème
Créez un environnement virtuel avec Python!
Ecrire des algorithmes A * (A-star) en Python
Implémenter le modèle Singleton en Python
Créez Gmail en Python sans utiliser l'API
Ecrire un graphique à secteurs en Python
Créer une documentation de projet Python dans Sphinx
Créer un framework de décorateur à usage général pour Python
5 façons de créer un chatbot Python
Résoudre ABC037 A ~ C avec Python
Exécutez un algorithme simple en Python
Dessinez un diagramme CNN en Python