Concepteur Hard, bien commencer


Très bientôt, vous serez capable de concevoir des circuits électroniques de haut niveau pour tous vos besoins ! Cette interface fait partie de l'infrastructure software de EBE, notre laboratoire d'électronique embarqué. Elle permet de concevoir des circuit élecroniques de manière simple et instructive. En utlisant une base de donnée de librairies, le programme propose un large choix de composant, effectue les connections, analyse le circuit et exporte un schéma Eagle,  qu'il sera possible de faire fabriquer dans le commerce.


Un peu de théorie

Avant d'aller plus loin, parlons de la façon dont le programme se comporte. L'important est de comprendre la vision systèmique utilisée. Chaque système électronique (et autre) nécéssite un apport d'énergie, d'information et libère également une énergie et une information. Le programme n'est alors qu'un algorythme de liaison entre l'offre et la demande, en fonction de modalités d'échange. Par exemple, une batterie nécéssite un chargeur et libère une énergie électrique (et thermique), elle libère également une information de son niveau de charge. Ajouter un microcontroleur proximité de la batterie permet d'alimenter le microcontroleur, et de traiter le niveau de charge. Les deux composants sont alors dans un état de symbiose, chacun apportant  son lot de complexité au système global. 


Ces commposants sont constitués selon le modèle de programmation orientée objet, c'est à dire qu'ils contiennent eux même les information et les algorythmes nécéssaires à leur propore fonctionnement. Ainsi, chaque composant est une abstraction d'un circuit interne plus complexe, contenant des résistanecs, des capacités, un grand nombre de composants dont il n'est pas nécéssaire de comprendre la fonction.  

Dans cette architecture, chaque composant est décrit dans une librairie texte, qui contient toutes les informations qui le concernent. A chaque composant interne correspond une librairie Eagle, souvent livrée par le fabriquant. Le circuit est dessinée par les composants eux mêmes, chacun est charcgé de trouver de quoi subvenir à ses besoins. Si un voisin offre une ressource qui lui est nécéssaire, le contact est établi et la ressource disponible est consommée. Par exmple, un écran LCD conommant 5V -1A peut être alimenté par  un régulteur 5V -2A, il restera 1A disponible pour les autres composants. Ainsi , aucun conflit ne peut exister dans le circuit global. 




Premier contact


Essayons. A l'ouverture du programme souvre l'interface suivante. Elle sera votre table de conception pour vos projets

  • 1 : Edition du nom du projet
  • 2 : Statistiques actuelles du circuit 
  • 3 : Sauvegarder
  • 4: Ajouter un composant ou un groupe de composants
  • 5: Effacer le circuit complet
  • 6: Exporter le circuit


The application

Pour comprendre le mécanisme de conception avec cette interface, imaginons une application simple: un servomoteur. Tres largement utilisé en modélisme et en robotique, ce moteur permet un controle de position très simple sur un balyage d'environ 180°. Ce moteur pourra être utile à l'ouverture de trappe, déverouillage de porte, petit robot etc. Pour débuter, notre circuit, partons du bout de la chaine d'action, sans chercher plus loin, ajoutons ce moteur au circuit en cliquant sur la bouton 4 "Add". Parcourez l'arborescence de la base de donnée, prenez le temps de vous familiariser avec cette organisation. On ajoute le moteur présent au chemin /devices/motors/servomotors/5V/sg90.dev". L'image du moteur s'affiche sur la table avec une croix rouge.


 

Cette croix est générée par le composant virtuel, signalant qu'une ressource  nécéssaire à son fonctionnement n'est pas fournie par le reste du circuit. Pour l'instant, le circuit est vide, rien d'alarmant. Au cours de la conception, vous pourrez utiliser ces icônes pour visualiser rapidement quels composant ne sont pas encore fonctionnels. En fonction de leu état, trois icônes sont possibles, comme sur l'image ci-contre. Lorsque l'icone verte s'affiche sur tous les composants du circtuits, c'est que le circuit est fonctionnel dans son ensemble.  A présent, la base du cahier des charge de notre application est fixée, mais certaines fonctionnalités sont encores manquantes au circuit pour fonctionner comme on l'imagine.


Terminer le circuit

Procédons par étape. Toujours dans l'esprit de travailler en bout de chaine, il faut penser aux fonctionnalités sous jacentes de l'application finale. Par exemple, vous aurez probablement envie de commander ce moteur depuis votre ordinateur ou votre smartphone. Il faut alors ajouter un capteur WiFi par exemple. Parcourez encore la base de donnée pour trouver un ESP8266, composant très répandu dans le domaine de l'internet des objets. Apres avoir ajouté ce composant, vous devriez obtenir la table ci dessous.



Les bases du circuit ont été fixées en fonction cahier des charges. Il faut maintenant apporter les composants qui permettrons de transmettre les informations depuis l'utilisateur, jusqu'au bras du moteur.


Pour choisir les composants à ajouter au circuit pour permettre aux deux précédents de fonctionner, visitez les détails de chaque composant en cliquant dessus. Pas exemple au servomoteur correspond la fenètre suivante.

prev next


Sur le dernier onglet "Find ressources", cliquez sur le bouton "search".  Tant que la led supérieure est rouge, c'est que le programme parcours la base de donnée à la recherche des composants qui pourraient satisfaire les besoins du composant en question, ici notre servomoteur sg90. Lorsque la reprends sa couleur d'origine, c'est que les composants de la base de donnée ont été triés et ordonnés selon un calcul secret et variable.  A chaque composant est attribué un score en fonction des composants présents dans le circuit et de la complexité d'assemblage résultante. 

Cette interface est centrale dans le procéssus de conception d'un circuit. Le but est de sélectionner un composant parmis une liste de proposition. Ce choix s'effectue en fonction de vos préférences, de ceux que vous possédez ou pas, de la difficuleté d'assemblage, de la complexité de programmation etc. La machine garde en mémoire les composants séléctionnés pour mettre en avant ceux que vous préférez


  1. Le type de ressources nécéssaire au composant
  2. Un composant proposé capable de répondre au besoin
  3. Ajouter le composant proposé au circuit
  4. Parcourir les différents besoins du composant
  5. Parcourir la liste des propositions


Un peu de théorie

Il est temps de vous expliquer le concept de "Ressource" , que les composants s'échangent entre eux. Une ressource est un apport électrique d'énergie ou d'information, discernables selon plusieurs types normalisés.Chacune de ces ressources correspond à un ou plusieurs pads physiques sur le circuit imprimé et est directement reliée à une librairie Eagle.

 A chaque ressource est également attitré une tension maximale, minimale, ainsi qu'une consommation de fonctionnement. Par exemple, une alimentation secteur 12V pourrait offrir Vmin=11.5V, Vmax=12.5V avec une consommation "positive" Imax=2, correspondant le courant total maximal en Ampère qu'il offre à toutes les ressources avec les mêmes caractéristiques. Les ressources d'informations, comme des signaux analogiques, PWM ou bus terrain sont elles aussi soumises à se modèle. Par exemple, un écran LCD fonctionnant avec un bus terrain I2C à 3.3V montrerai les caractéristiques Vmax=3.4V, Vmin=3.2V, et Imax=0.01  correspondant au "pourcentage de bus consommé". Ainsi, une resource de ce type offerte par un microcontroleur pourra fournir 100 composants en I2C. Ceci est du au fait que le protocole I2C permet de gérer un grand nombre de composant en chaine. Avec une liaison PWM ou SPI, cette ressource aurai montré Imax=1 car c'est un protocole à esclave unique. Subtil ! Laissez vous le temps de comprendre ces principes en utilisant la machine, finalement ce n'est pas si important dans l'immédiat.

Après avoir fait votre choix parmis les propositions, ajouter le composant et recommencez jusqu'a ce que tous les composants soient verts. Vous pouvez prendre exemple sur la séquence suivante, contenant les composants suivants:

  • ATMEGA32U4.dev (ref 764)
  • PowerJack_5V.dev (ref 315)
  • Lm117_3V3.dev (ref 340)
  • USB_microB.dev (ref 129)
prev next

Les premiers composants par défaits sont montés de la façon la plus simple possible. N'hésitez à parcourir les options de chacun de ces composants pour ajouter es options à votre circuit final.


Du virtuel au réel

La conception du circuit électronique est terminée ! Il reste encore à développer ce circuit en une carte concrète. Pour cela, il faut passer par le lociciel Eagle, développé par AutoDesk et dont une version gratuite est disponible sur leur site. Si vous ne savez pas utiliser le logiciel, un bon début est de suivre le tutoriel de SparkFun.

En cliquant sur le boutont "Export" sur la table, vous allez pouvoir exporter un fichier script compatible avec Eagle. Sur cette interface, vous pouvez réglez certaines option, comme des trous de fixation, ou un plan de masse par exemple.

Sauvegardez ce fichier ".crc" à un emplacement facilement accessible. 

A l'heure actuelle, Eagle n'est pas disponible pour EBE. Si vous travaillez sur la machine, il est nécéssaire de transférer le circuit sur un ordinateur disposant d'un OS compatible (Windows, IOS ou Linux). Pour cela, vous pouvez utiliser l'application VNC ou passer par SSH via le terminal.

Une fois le fichier sur votre ordinateur personnel, vous pouvez ouvrir un nouveau projet et spécifier l'utilisation de la librairie générale "EBE.lbr", accessible sur la page de téléchargement.

Ouvrez un nouveau circuit et ouvrez le script généré précédement.

Tada !


 

Le script à été transformé par le logiciel en une carte physique ! Il s'agit maintenant de relier les pads entre eux par des pistes de cuivre. Notre habitude de mécaniciens nous dicte de commencer par placer les principaux composants, De resserer les dimensions, placer ensuite les composants secondaires en minimisant l'écart général (minimiser la longueur des lignes jaunes).

Ensuite, relier les pads entre eux en commençant par les lignes d'alimentations. Plus la puissance (tension*courant) est haute, plus la ligne doit être large pour dissiper un minimum d'énergie. 

Quand les lignes d'alimentations sont tracées, vous pouvez lancer l'autorouteur, ou continuer à router la carte manuellement. L'avantage du routage manuel est de pouvoir vérifier chaque signal avant d'usiner une carte. 

La version gratuite d'eagle est limitée en surface et à deux couches maximum. La carte mère de EBE suit ces contrainte malgrés une grande complexité. Cela nécéssite seulement un peu de ruse et de pratique, dont certaines notables:

  • Un bonne pratique pour router un grand nombre de signaux sur deux couche est d'imaginer que les pistes s'attitent entres elles et doivent avoir tendance à venir se coller pour donner des bus les plus rectilignes possible pour éviter des effets électromagnétiques indésirés.
  • Dans la mesure du possible, ne pas supperposer deux signaux colinéaires sur les deux couches, déterminer des régions de croisement et travailler si possible avec des angles droits.

Lorsque le circuit est treminé, vous pouvez le commander tel quel sur OshPark ou via des fichiers Gerbers chez d'autres fournisseurs. Si vous avez de quoi l'imprimer sur place, appréciez votre chance.


Voilà ! On vous laisse avec quelques une de nos axes de reflexions pour la conceptions de nos circuits, en espérant que ces supports vous permettrons d'apprécier d'avantage la conception de circuit imprimés sur mesure !


Si vous avez des remarques, questions ou problèmes, n'hésitez pas à utilise le forum !



PS: Nos sercrets de conception

Avec ce programme, seule reste la difficulté de dresser un  bon cahier des charges de l'application finale. C'est une étape clé de la réalisation d'un projet qui déterminera la rapidité du développement. Voici quelques pistes pour vous aider à  choisir les meilleures solutions de développement avec EBE.


  • Penser digital

A la base de l'électronique, il était nécéssaire de connaire l'intensité de courant parcourant chaque fil du circuit, il sagissait donc d'effectuer une somme de calculs complexe pour en vérifier la validité . Aujourd'hui, la méthode n'est plus la même car le digital à dépassé l'analogique dans les communications. La majorité des transits d'information est déterminé par une suite de 0 ou 1 précisément cadencée. Ainsi, il s'agit de penser l''électricité comme un flux d'information plutôt qu'une valeur physique. En ce sens, il est très facile avec EBE d'organiser un système complexe qui fonctionne en digital, mais difficile de mette en place un traitement de signaux analogiques, comme des amplification ou des filtres.  Ces circuit devront être calculés ailleurs et implémentés dans une librairie comme circuit interne.


  • Penser flexible

Il est très difficile à ce moment de la conception d'avoir une idée claire des difficuletés avenir, notament sur des aspects de programmation. Pensez à rester général pour vous fermer le moins de porte possible. Se souvenir aussi qu'il est souvent nécéssaire de pouvoir visualiser rapidement les comportements du circuit, et qu'il est plaisant de disposer d'une interface, comme d'un écran LCD, une led,  ou une connection sans fil.


  • Rester humble

On se rends mal compte des difficuletés d'assemblages que nécéssitent certains composants. Privilégiez d'abord des application simples avec des composants faciles à souder. Un court-circuit pout endomager la totalité d'une carte électronique. Pensez également à prévoir du matériel de rechange, au cas ou l'assemblage se passe mal. Une carte supplémentaire est toujours la bienvenue dans le meilleur des cas.

 
Commentaires de blog générés par Disqus