Ressources pour les projets étudiants

De Wiki LOGre
Aller à la navigation Aller à la recherche


Logo E3Lab.png

Généralités

L'idée de cette page est de centraliser un certain nombre de ressources, ainsi que de donner quelques conseils pour aider les étudiants qui réalisent des projets d'ingéniérie dans le cadre de leurs études (c'est orienté Fablab de l'Ense³ - plateforme Roboticube - mais utilisable dans d'autres contextes).

Risques

Électrique

La norme UTE C 18-510 définie les limites des domaines de tensions électriques comme suit :

  • Très Basse Tension (TBT) : < 120VDC / < 50VAC
  • Basse Tension (BT) : 120VDC - 1500VDC / 50VAC - 1000VAC
    • Basse Tension A (BTA) : 120VDC - 750VDC / 50VAC - 500VAC
    • Basse Tension B (BTB) : 750VDC - 1500VDC / 500VAC - 1000VAC
  • Haute Tension (HT) : > 1500VDC / > 1000VAC
    • Haute Tension A (HTA) : 1500VDC - 75kVDC / 1000VAC - 50kVAC
    • Haute Tension B (HTB) : > 75kVDC / > 50kVAC

Très Basse Tension

La TBT est divisée en plusieurs catégories, suivant la façon dont elle est générée :

  • Très Basse tension Fonctionnelle (TBTF)
  • Très Basse tension de Sécurité (TBTS)
  • Très Basse tension de Protection (TBTP)

Du point de vue de la sécurité :

  • en TBTF, toutes les règles de la BT doivent être appliquées (idem en cas d'incertitude sur la nature ou la provenance)
  • en TBTS et en TBTP, aucune précaution n’est à prendre pour les risques d'électrisation

Les alimentations TBT utilisées pour les projets doivent donc être de type TBTS.

Dans tous les cas, il convient d'être vigilent sur les risques de court-circuit, pouvant provoquer des brûlures, et potentiellement déclencher des incendies.

Basse Tension

L'utilisation de la BT requière des précautions particulières :

  • il est absolument interdit de travailler sur des projets comportant des pièces nues sous tension ;
  • une double isolation est obligatoire en tout point d'un circuit comportant de la basse tension ;
  • tout projet travaillant sur la Basse Tension doit faire l'objet d'une analyse spéciale en coordination avec un Assistant de Prévention (AP).

Haute Tension

À faire vérifier !!!'

La seule HT utilisable dans le cadre de projets est celle issue de la BT ou TBT. C'est le cas par exemple des raquettes pour tuer les insectes, ou des clôtures pour bétail.

Ces systèmes sont généralement conçus autour de la décharge d'un condensateur, celui-ci libérant son énergie très rapidement. Pour vérifier si le dispositif est sans danger, il faut faire un calcul de l'énergie qu'il est capable de délivrer. TODO TODO TODO

Cas des batteries

Les batteries et accumulateurs font généralement partie du domaine TBT. Mais attention, ici, le risque n'est cependant pas nul.

En effet, une batterie de type Li-ion (ou LiPo) a une très faible résistance interne, et peut donc délivrer un courant très important en cas de court-circuit. Non seulement cela peut engendrer des brûlures, mais la batterie a de grandes chances de prendre feu !

Une batterie au plomb peut également être très dangereuse en cas de court-circuit.

Il faut donc impérativement utiliser un fusible en sortie immédiate des batteries.

Des accus de type Ni-mH sont beaucoup moins dangereux, du fait de leur résistance interne plus élevée.

Cas des panneaux photovoltaïques

Là, le risque réside dans le fait qu'un PV ne peut jamais être éteint : dès qu'il reçoit de la lumière, il génère un courant.

Il convient donc d'utiliser des connecteurs pour isoler les PV du circuit, lorsqu'on doit travailler sur celui-ci.

Mécanique

Chimique

Développement sur microcontrôleur

Présentation des principales plateformes (hardware et software) de développement sur microcontrôleurs.

Micropython

Micropython.jpg

Micropython est une implémentation de Python3 adaptée aux microcontrôleurs.

Il a été écrit à l'origine par l'ingénieur australien Damien George, à l'occasion d'une campagne de financement participatif sur Kickstarter, en 2013. Cette campagne proposait une carte, la Pyboard, basée sur un microcontrôleur STM32F405 (ARM Cortex-M) de STMicroelectronics, et embarquant un interpréteur Micropython.

Au même titre qu'Arduino, Micropython supporte maintenant beaucoup de cartes, sous réserve que celles-ci disposent d'assez de RAM et de Flash.

Le langage Python étant interprété, il ne peut bien sûr pas égaler un code écrit et compilé en C++, mais la puissance des cartes modernes lui permet d'atteindre des vitesses d'exécution au moins aussi bonnes qu'un code en C++ tournant sur une carte Arduino UNO. Le langage Python étant plus simple à appréhender, et offrant plus de garde-fous que le C++, il permet un développement plus rapide. Un autre avantage est que tout le code réside sur le système de fichiers de la carte Micropython, ce qui facilite la maintenance du code, puisqu'il n'y a pas besoin de retrouver tout l'environnement de développement nécessaire pour compiler du code C++ pour faire des modifications (qui n'a pas pesté contre le changement d'API d'une bibliothèque ?). Ce point est particulièrement important pour les projets reconduits d'une année sur l'autre.

Arduino

Arduino-Logo.png

Le terme Arduino regroupe plusieurs concepts :

  • le nom d'une société ;
  • des cartes électroniques ;
  • un langage de programmation et des bibliothèques ;
  • un logiciel (IDE) pour développer et communiquer avec les cartes.

C'est sans conteste Arduino qui a permis la démocratisation du développement sur microcontrôleurs, et le terme est presque devenu générique dans le cadre des projets DIY. La carte Mega 2560 a par exemple été le cerveau des imprimantes 3D pendant des années (et a contribué grandement au développement de cette technologie dans le cercle des makers).

Les cartes Arduino les plus connues, comme la UNO, la Nano, et la Mega sont basées sur des puces ATmega de la société Atmel (aujourd'hui rachetée par Microchip), dont les CPU utilisent un bus de 8 bits. Arduino propose maintenant des cartes utilisant d'autres puces, plus puissantes, mais si ces cartes sont généralement de très bonne facture, elles sont malheureusement assez chères par rapport à la concurrence.

Côté développement, l'environnement Arduino (IDE + bibliothèques) est devenu si populaire qu'il permet non seulement de programmer les cartes Arduino, mais également les cartes des autres constructeurs (sous réserve que ceux-ci fournissent les bibliothèques et compilateurs pour Arduino) ! Du coup, sauf utilisation de ressources spécifiques, il est relativement facile de faire tourner le même code sur plusieurs cartes, ou, du moins, de l'adapter avec un minimum d'efforts.

Le langage utilisé par Arduino est le C++.

PlatformIO / Visual Studio Code

Platformio-Logo.png

PlatformIO est une alternative pour développer sur micro-contrôleur, toujours en C++, avec ou sans les bibliothèques Arduino. PlatformIO est prévu pour s'intégrer très facilement dans l'IDE de Microsoft, Visual Studio Code, mais peut s'utiliser également en ligne de commande, pilotable par Makefile.


BASIC

BASIC, ou Beginner's All-purpose Symbolic Instruction Code (Code d'Instruction Symbolique Multiusage du Débutant), est un langage créé dans les années 1960 pour combler le vide entre le développement en Code Machine ou Langage Assembleur (très bas niveau, nécessitant une connaissance approfondie de la machine), et le COBOL ou le FORTRAN, également complexes. C'est un langage interprété, très facile d'accès, qui a popularisé l'utilisation des micro-ordinateurs dans les années 80.

Un portage de MMBasic, lui même dérivé du MBASIC de Microsoft, a été fait pour les Raspberry Pi Pico 1 & 2. Dans l'esprit Arduino, il intègre tout ce qu'il faut pour accéder aux entrées/sorties, piloter des périphériques comme des écrans, générer du son, ou accéder aux GPIO et bus (I²C, SPI...) du RPi Pico. En outre, il dispose d'une excellente documentation. Cerise sur le gâteau, il intègre même un éditeur de code avec coloration syntaxique ; un simple émulateur de terminal type VT100 comme minicom (Linux) ou Tera Term (Windows) permet de développer, enregistrer, et exécuter des programmes. Il existe même une version permettant de connecter un écran VGA (et un clavier), ainsi qu'une version avec accès réseau !

Là encore, pour des projets simples, cela peut être une solution intéressante. Tout comme Micropython, le code source réside sur la carte elle-même, facilitant ainsi la maintenance et la poursuite des projets d'une année sur l'autre. Même 10 ans après, il sera toujours possible de modifier le code si besoin ;o)

Cartes à microcontrôleurs

Quelques cartes les plus populaires, couvrant une majorité de besoins. Une liste plus complète de cartes est donnée en annexe.

Raspberry Pi Pico

RPi Pico.jpg

Contrairement aux cartes Raspberry Pi classiques, la Pico (et sa petite soeur Pico 2) n'utilise pas un OS (linux), mais se programme directement, comme une carte Arduino.

Elle est équipé du microcontrôleur RP2040, conçu par la fondation Rapsberry Pi, qui intègre un CPU Cortex M0+ épaulé par 2 PIO (Programmable Input Output). Ces PIO permettent d'accéder aux GPIO de manière ultra rapide, via un jeu d'instructions assembleur très simple d'emploi. La puissance de ces PIO ont fait de la RPi Pico une des cartes les plus populaires du moment, pour des applications habituellement réservées à des cartes beaucoup plus complexes (analyseur logique, sortie HDMI...).

En plus de l'environnement Arduino (et du SDK C++ de Raspberry Pi), elle supporte le développement en Micropython. Il existe même un portage du Basic Microsoft, PicoMite ;o)

À noter qu'il existe également la version W, intégrant une puce wifi (CYW43439).

Cerise sur la gâteau, la RPi Pico est vendue au prix imbattable de 4€50 !

Arduino UNO et Nano

Arduino UNO.png Arduino Nano.png

Pour des petits projets, ces cartes restent très intéressantes, du fait de leur simplicité et de leur popularité. La UNO dispose en effet de nombreux shields, ces cartes enfichables ajoutant des fonctionnalités (wifi, drivers moteurs...), ou simplement facilitant le câblage. Quant à la Nano, très similaire à la UNO d'un point de vue fonctionalités, elle est par contre beaucoup plus petite, et c'est elle qui est généralement enfichée sur la carte principale.

Wemos D1 Mini / S2 Mini

Wemos D1 Mini.jpg Wemos S2 Mini.jpg

Développés par la société Espressif, les microcontrôleurs ESP8266 et ESP32 ont la particularité d'intégrer une liaison Wifi, et même bluetooth pour l'ESP32.

Ces cartes sont donc particulièrement intéressantes pour des applications nécessitant une connexion à distance.

Les cartes à base d'ESP32 supportent également Micropython.

Robotique

Électronique

Matériel de labo

Oscilloscope.png GBF.jpg


Prototypage

Breadboard

L'usage des breadboards doit se limiter à des tests simples, unitaires. Dès lors qu'un montage prend de l'ampleur, sans précaution, de nombreux problèmes peuvent apparaître, en particulier dans le domaine analogique.

Les grands fils de prototypage sont à éviter autant que possible : les connecteurs Dupont sont souvent de mauvaise qualité, et la longueur des fils peut engendrer des problèmes électriques.

Il vaut mieux privilégier les jumpers : il permettent des montages plus propres, sans risque qu'un fil se débranche et soit remis au mauvais endroit, conduisant à des courts-circuits (du vécu !).

Il existe des modules permettant d'alimenter les breadboard via les rails prévus à cet effet, en haut et/ou en bas, en 5V et/ou 3,3V.

Ne pas utiliser un montage sur breadboard pour tester un système complet in situ : il y a toutes les chances qu'un fil se débranche, empêchant le bon fonctionnement, voir créant un court-circuit → privilégier l'utilisation de perfboard

À noter qu'une machine pour couper/plier des jumpers de manière automatique est en cours de réalisation par une équipe d'étudiants de GI !


Perfboard

Les Perfboards sont en gros la version soudée des breadboard, et permettent de réaliser des montages plus durables. Elles sont une bonne étapes avant la réalisation éventuelle d'un PCB, mais peuvent tout à fait s'utiliser dans un montage final si le câblage est réalisé proprement. Elles sont par exemple très pratiques pour réaliser des rails d'alimentation, pour distribuer +5V, masse... aux divers modules.

Il est même possible d'utiliser Kicad pour réaliser le schéma sur perfboard : https://forum.arduino.cc/t/perfboard-circuit-design-with-kicad/1283999


Utilisation de shields et breakouts

A000079.png Gravity DFR0848.png

Réalisation de PCB

Un PCB (Printed Circuit Board) permet de réaliser une carte électronique de façon fiable, puisque tous les composants sont sensés être soudés, les connexions réalisées vias de vrais connecteurs, etc...

Plutôt que d'attendre la fin du projet pour en réaliser un, il est conseillé d'en faire plusieurs, et ce dès le début, même si toutes les fonctionnalités ne sont pas implémentées. Cela a plusieurs avantages :

  • se familiariser très tôt avec un logiciel de CAO électronique dans le cas d'une première utilisation ;
  • se rendre compte des problèmes liés à la réalisation de PCB (pastilles trop petites, soudures inaccessibles...) ;
  • vérifier que le design (tout ou partie) fonctionne sous cette forme.

Conseils pour un schéma propre

Tirage manuel

Le Fablab de l'ENSE³ peut réaliser des PCB, via une technique manuelle. Les contraintes (design rules) de réalisation sont les suivantes :

  • largeur de pistes :
    • GND : 80mils
    • VCC : 50mils
    • autres : 30 mils (mini 12mils)
  • isolation : 20mils (mini 13mils)
  • diamètre de perçage mini : 0,8mm (à vérifier)

Dans la mesure du possible :

  • utiliser une taille de pastille la plus grande possible, pour éviter de les arracher au perçage, et pour faciliter le soudage ;
  • éviter de router des pistes entre les pattes des circuits intégrés ;
  • router en premier les pistes les plus courtes ;
  • privilégier les pistes horizontales sur une face, et les verticales sur l'autre ;
  • réaliser les marquages avec les couches cuivre -> respecter la largeur de piste mini pour le texte (cf ci-dessus).
  • pour les double face, favoriser le passage d'une face à l'autre par les pattes des composants traversants pour limiter les vias (non métallisées, donc nécessitant d'être câblées manuellement). Attention cependant à certains composants (condensateurs, potentiomètres, connecteurs...) qui ne sont accessibles que d'un côté, et ne doivent donc être routés que sur la face soudure !

Si le PCB ne comporte que peu de pistes sur la face composants, il n'est pas utile de faire un double face ; quelques straps sur la face composants suffiront.

Qu'il soit simple ou double face, il est important d'identifier l'orientation de chaque face, afin d'éviter les problèmes de tirage miroir. L'identification doit se faire en utilisant du texte sur le layer des pistes de la face considérée, de telle sorte qu'il soit lisible lorsqu'on regarde la face une fois le PCB fini ! Cela veut donc dire écrire en miroir sur la face soudure.

Id Faces Kicad.png

Câblage

De nombreux projets souffrent d'un câblage bâclé, conduisant à de nombreux problèmes : montage non fonctionnel, détérioration du matériel, et perte de temps non négligeable.

Le câblage doit être pris en compte dès le début d'un projet. En particulier, il convient de bien réfléchir à la façon dont les différents modules vont être alimentés : il est souvent intéressant de réaliser des rails d'alimentations, en particulier pour les masses, généralement communes.

Voici quelques conseils de base :

  • utiliser des fils de différentes couleurs :
    • noir (ou bleu) pour les masses ;
    • rouge pour les alimentations (attention à bien les identifier si plusieurs tensions sont utilisées !) ;
    • autres couleurs pour les signaux.
  • utiliser du fil multi brins ; le mono brin disponible au Fablab ne doit servir qu'à réaliser des jumpers provisoires pour breadboard, car il est très cassant et n'est pas fait pour être manipulé ;
  • sertir des férules au bout des fils devant être connecter dans des borniers à vis ;
  • sertir des connecteurs Dupont pour réaliser des prises ;
  • regrouper les fils en toron¹ ;
  • identifier les torons ;
  • maintenir les torons à l'aide de colliers.

Lorsqu'un fil se débranche ou casse, bien réfléchir avant de le remettre en place, afin d'éviter les courts-circuit !

¹ il est très facile de réaliser des torons en torsadant plusieurs fils à l'aide d'une visseuse. Cette opération est plus simple à réaliser à deux, si les fils sont un peu longs. Attention, la longueur totale sera réduite par rapport à la longueur des fils seuls, du fait de la torsade.


Motorisation

Moteurs pas à pas

Moteurs brushless

Ces moteurs, couramment utilisés sur des drones ou des voitures, nécessitent un ESC (Electrical Speed Controller) pour les piloter. Le problème c'est que ces contrôleurs fonctionnent généralement en boucle ouverte, et ne sont donc pas du tout adaptés pour des applications nécessitant des démarrages doux avec fort couple, comme la motorisation de chariot ou d'Hoverboard. Dans ce cas, il faut impérativement utiliser un contrôleur travaillant en boucle fermée, via les capteurs à effet hall ou en quadrature, généralement disponibles dans les moteurs-roues.

Moteurs à balais

Énergie

Alimentations à découpage

  • Vidéos très claires sur les mosfets, les pertes, etc...

Utilisation de batteries

Panneaux photovoltaïques & Éoliennes

USB-C

Mécanique

Impression 3D

Découpe laser

Découpe jet d'eau

Thermique

Annexes

Rercherche documentaire

Documentations, Tutos, How-To

Général

Logiciels

  • Onshape - TODO
  • Thonny - TODO
  • Arduino IDE - TODO
  • Kicad - TODO

Programmation

Batteries

Moteurs et contrôleurs DC

Moteurs et contrôleurs brushless

Moteurs et drivers pas à pas

Servo moteurs

Affichages (LCD, Oled...)

Accéléromètres

Encodeurs rotatifs

Générateurs

Robotique

ORP 1.png

I.A.

  • ChatGPT - TODO
  • Claude.ai - TODO
  • Bonnes pratiques - TODO

Software

Outils de développement

Bibliothèques pour microcontrôleurs

  • Arduino :
    • Simple RPC - permet d'exporter des fonctions Arduino en tant que RPC (Remote Procedure Call)
    • SimpleFSM - implémentation minimaliste de FSM pour Arduino
    • Automatonframework très complet de FSM pour Arduino (permet d'avoir un code simple, modulaire, et très lisible)
    • Shellminator - terminal interactif avec commandes personnalisées (tutoriel)

Hardware

Cartes à microcontrôleur

Par famille de CPU :

  • nRF

Contrôleurs moteurs

Level shifters

Makers

  • How To Mechatronics - projets et documentations de qualité dans divers domaines. À découvrir absolument !

Boutiques

Divers