mercredi 14 décembre 2022

[Impression 3D] Le G-code

 le fichier STL est converti en un fichier de commande pour l’imprimante 3D. Ce fichier est constitué du « G-code », un langage de programmation qui permet à la machine de comprendre les commandes à suivre pour produire la pièce finale.

Le G-code se compose de commandes G et M, chacune ayant un mouvement ou une action assignée. La combinaison de ces commandes permettra à l’imprimante 3D de comprendre quel modèle suivre pour créer la pièce finale.

1. De quoi est composé un G-code ?

Il faut tout d’abord comprendre la différence entre un G-code un M-code. Ces deux commandes sont incluses dans le fichier et indiquent à l’imprimante comment et où extruder le matériau. La seule différence est que les G-codes sont compris universellement par les imprimantes les utilisant, et que M-Codes sont des codes spécifiques à des lignes d’imprimantes individuelles. Ainsi, comme nous pouvons le voir sur l’image ci-dessous, le langage est composé de plusieurs paramètres. Les éléments de base à connaître pour lire un tel code sont les différentes valeurs alphanumériques.

Les lettres X / Y / Z font référence aux trois axes de l’imprimante 3D qui marquent les coordonnées. Toute valeur de X supérieure à 0 déplace la tête d’impression vers la droite, toute valeur de Y supérieure à 0 déplace la tête d’impression vers l’arrière, et toute valeur de Z supérieure à 0 déplace la tête d’impression vers le haut. En revanche, la lettre F désigne la vitesse à laquelle la buse se déplace (indiquée en mm/minute), tandis que la lettre E se réfère à la longueur du mouvement (indiquée en millimètres). On peut parfois trouver du texte suivi du symbole  » ; » qui sert à fournir des informations sur les commandes ; ces commentaires ne font pas partie du code. 

 

G1. Cette commande constitue 95% du fichier total. Il s’agit d’un code qui ordonne à l’imprimante 3D d’effectuer un mouvement linéaire tout en déposant du matériau à l’endroit spécifié aux coordonnées qui lui sont données. Ainsi, lorsque nous lisons le code « G1 X10 Y20 F1200 », nous demandons à l’imprimante de se déplacer vers la position X=10 mm Y=20 mm dans le plateau à une vitesse plus lente de 1200 mm/min. Contrairement à cette commande, la G0 a le même principe de mouvement, mais sans extrusion de matière par la buse.

G28. Cette commande est utilisée pour que la machine exécute la séquence de démarrage, qui déplacera la tête d’impression vers les bords extrêmes de la machine jusqu’à ce qu’elle entre en contact avec les rebords de l’imprimante. Si aucun axe n’est spécifié, la machine déplacera automatiquement les trois, mais vous pouvez toujours ajouter X, Y, Z à la commande. Il s’agit d’un moyen utile pour déplacer rapidement un axe, en particulier lors de la finition de l’impression.

G92. Demande à l’imprimante de définir la position actuelle de ses axes. Cela peut être utile si vous souhaitez modifier ou décaler l’emplacement de l’un des axes. Cela se fait généralement au début de chaque couche ou juste avant une commande principale ou de rétraction.

M104. Ce code est utilisé pour chauffer un extrudeur, et vous devez indiquer quel extrudeur (dans le cas où vous avez une imprimante 3D à double extrusion), ainsi que la température souhaitée. Ainsi, la commande « M104 S200 T0 » ordonnera à la machine de chauffer l’extrudeur T0 (dans le cas d’une double extrusion, nous aurions T0 et T1) à une température de 200 degrés Celsius, indiquée par la lettre « S ». L’autre version de ce G-code, plus précisément le M109, indiquera à l’imprimante qu’elle doit attendre que l’extrudeur atteigne la température avant de poursuivre avec toute autre commande.

M140 et M190. Ils sont très similaires à ceux déjà mentionnés, sauf que dans ce cas, il ne s’agit pas de l’extrudeur, mais du plateau d’impression. Dans ce cas, la lettre « T » indiquant l’extrudeur à chauffer est omise.

2. Complément d'instructions

La liste des commande est disponible ici : G-Code commandes

Sources: 3dnatives


dimanche 13 novembre 2022

[Robotic arm] Gripper

 


Depuis plusieurs mois, je récupère et imprime le nécessaire pour assembler un bras robotique modèle réduit.
Je me suis basé sur Le projet KAUDA




lundi 7 novembre 2022

[Arduino] Pilotage LED avancé

 Ce tutoriel a pour but de piloter une LED depuis son Arduino en utilisant un transistor NPN de manière à séparer la partie 'commande' de la partie 'puissance'.

Schéma de câblage

 Note : la valeur de la résistance peut être jusqu'à 10 fois supérieure à R1. Cela dans le but de réduire le courant en entrée du transistor.

Programme Arduino

Explications :

Initialisation de la broche numéro '2' de l'Arduino en 'Sortie'. C'est cette branche qui commandera la 'Base' du transistor.
En faisant basculer la sortie '2' à un état 'HIGH', nous rendons le transistor passant ; allumant la LED.
En faisant basculer la sortie '2' à un état 'LOW', nous rendons le transistor bloquant; éteignant la LED.


Source ici

mardi 1 novembre 2022

[Electro] Les transistors bipolaires

 1. Qu'est-ce qu'un transistor ?

Le transistor est également connu sous le nom de transistor bipolaire à jonctions (BJT), est un dispositif à semi-conducteurs alimenté en courant. Il peut servir à réguler le flux de courant électrique dans lequel une petite quantité de courant dans la Base contrôle un courant plus important entre le Collecteur et l'Emetteur.

Ils sont composés de couches semi-conductrices de type 'N' et 'P'.

2. Quelle utilisation ?

Il est possible d'utiliser les transistors pour amplifier un signal faible, comme un oscillateur ou comme un commutateur.

3. Régimes de fonctionnement

Comme expliqué précédemment, la Base du transistor bipolaire permet de commander le passage du courant à travers le composant. Il existe 2 régimes de fonctionnement à cette commande :

Régime de saturation (transistor en commutation) : dans cet état le transistor possède 2 états : bloqué ou passant. L'état est considéré comme bloqué lorsque le courant ne parcours plus le composant. L'état est par ailleurs considéré comme passant lorsque le courant "saturé" circule entre le collecteur et l'émetteur. 

Régime linéaire : ce régime permet de laisser plus ou moins passer le courant à travers le transistor.

4. Schéma électrique


5. Les différents boitiers




mardi 18 octobre 2022

[Imperssion 3D] Mise à jour du micro-logiciel

 Suite à l'installation du CR-Touch, il est nécessaire de mettre à jour le micro-logiciel de la carte mère et de réaliser quelques réglages.

1. Mise à jour micro-logiciel

Depuis mon espace Git : -Ender3-MicroLogiciel

Micro-logiciel mis à jour

2. Nouveaux réglages

a) Z offset 
 
Vous devrez définir votre décalage z. C'est sans doute la partie la plus difficile de la configuration d'un CR Touch. Je m'y suis repris à 3 fois ; il faut être patient et méticuleux.

b) Obtenir le décalage Z

La première chose que vous devrez faire est d'obtenir le décalage en Z. Vous l'obtiendrez en allant dans Menu - Prepare - Auto Home. Une fois l'opération terminée, vous voudrez utiliser une feuille de papier ; comme celle que vous utiliseriez pour niveler manuellement le bed. 

Ensuite, vous allez dans Menu - Prepare- Move Z - Move axis et abaissez l'axe Z jusqu'à ce qu'il gratte le papier. Notez cette valeur car ce sera votre décalage Z ; ici, j'avais '-2,6'. 

Maintenant, relevez l'axe z ou relancez l'auto home.

 c) Définir le décalage Z

Maintenant que nous connaissons la valeur de décalage Z, nous devons la sauvegarder. Aller dans Menu - Control - Bed leveling - Probe Z offset. Une fois dans ce menu, vous indiquerez la valeur de décalage Z que vous avez définie à l'étape précédente ( '-2,6' dans notre cas).  

 d) Finaliser 
 
Maintenant, allez dans le Menu - Control - Bed leveling - Store settings. L'imprimante émet un bip pour signaler que la sauvegarde est faite. Il faut, par la suite, mettre hors puis sous tension l'imprimante.

3. Images des derniers ajouts sur mon imprimante

CR-Touch

Feeder


dimanche 31 juillet 2022

[Impression 3D] Upgrade de ma Ender3-Pro (CR-Touch)

 Encore un peu plus loin....

    Après de multiples problèmes de mise à niveau de mon Bed (via les molettes), j'ai décidé de m'équiper d'un système d'auto-nivellement. L'avantage de ces modules est qu'ils permettent de ne plus toucher aux réglages. Il est nécessaire de les réaliser correctement une première fois seulement.

    Le principe est plutôt simple, un capteur vient lire différents points sur le Bed et conserve les positions en 'Z'. Dès lors, le système compensera automatiquement les défauts de hauteurs.

1. CR-Touch

    Pour ma part, je me suis procuré le modèle officiel de chez 'Creality'.
    
    Ce modèle est compatible avec bon nombre d'imprimantes dont le 'Ender3-Pro', il est facilement connectable à la carte mère si cette dernière est une v4.2.2 ou v4.2.7.
    Il faudra mettre à jour le 'BootLoader' (Marlin) de votre carte mère pour prendre en compte ce composant qui remplace le carte de fin de course en 'Z'.


Comparatif effectué par Creality

2. Montage

    Le principe est assez simple. Il faut connecter le 'CR-Touch' sur la carte mère et déconnecter le 'Z-Stop'.
Attention, ce dernier est souvent collé !



3. Vidéo du montage


Video de montage du 'CR-Touch' (Tripods Garage)


Page officielle :Creality CR-Touch



samedi 16 juillet 2022

[Impression 3D] Upgrade de ma Ender3-Pro (Feeder - Bed)

    Voilà, cela pouvait arriver. Après plusieurs heures d'impressions et quelques modèles imprimés, la première casse est advenue.

    C'est le 'feeder' qui a cédé. La 'jambe de force' qui vient appuyer le filament contre l'entrainement a rompu pendant une impression.

1. Nouveau Feeder

    J'ai opté pour le modèle officiel de Creality ; à savoir le 'MK8- extrudeur feeder'.

    L'avantage majeur de ce modèle est qu'il se met en lieu et place de la version plastique (soyons minutieux pour le démontage/montage) , mais surtout, il est en aluminium. Ce qui le rend beaucoup plus résistant !


Ensemble des pièces

Kit monté

J'ai trouvé mon kit ici : Kit extrudeur+feeder

2. Nouveau Bed

    J'étais vraiment satisfait de mon Bed d'origine. Cependant, à force d'imprimer avec, je l'ai trouvé un moins performant. Ce qui me posait problème, le décollage de la pièce imprimée.

    Pour ce faire, j'ai opté pour un Bed en verre trempé. Les avantages sont nombreux ; par exemple, la surface est plus plane, meilleure accroche, décollage très facile (il suffit d'attendre que la plaque refroidisse) et surface d'accroche lisse.

Bed en verre
J'ai trouvé mon Bed ici : Bed en verre


lundi 27 juin 2022

[Arduino] CNC shield V3

 1. Présentation

    La "CNC shield" a été conçue de manière à pouvoir piloter jusqu'à 4 moteurs pas-à-pas en utilisant d'un Arduino Uno ou Mega.

2. Principe de câblage (simple)

    Présentation d'un câblage simple de moteur pas-à-pas sur la "CNC shield".

    Il faudra vérifier le code couleur du bornier du moteur pas-à-pas afin de connecter convenablement les enroulements sous peine de ne pas pouvoir faire tourner le moteur.. 

3. Position des cavaliers (jumpers)

    Les cavaliers sont utilisés pour la configuration du quatrième axe, du micro pas-à-pas et de la gestion de la butée.

  • Configuration du quatrième axe
    À l'aide de deux cavaliers, le 4ème axe peut être configuré pour cloner l'axe "X", "Y" ou "Z". Il peut également fonctionner comme un axe individuel en utilisant la broche numérique '12' pour le signal pas à pas et la broche numérique '13' comme signal de direction. 


  • Configuration du micro pas à pas pour chaque axe
    Chaque axe dispose de '3' cavaliers qui peuvent être réglés pour configurer le micro pas pour l'axe.
Dans les tableaux ci-dessous, High indique qu'un cavalier est inséré et Low indique qu'aucun cavalier n'est inséré.
Attention : différents types de drivers existent. Les plus courants sont le "A4988" et le "DRV8825".
- DRV8825 : Courant admis jusqu'à 1.5A sans refroidissement, 2.2A avec un refroidissement très efficace (radiateur + ventilateur).
- A4988 : Courant admis 1.2A avec refroidissement, et 2A avec un refroidissement efficace (radiateur).



4. Réglage de la limite de courant (tension de référence "Vref") pour le driver pas à pas

    La tension de référence est ajustée avec un petit tournevis au niveau du potentiomètre situé sur chaque "drivers". Il est recommandé d'ajuster la tension de référence (Vref) par petits incréments (1/4 tour). Pour commencer, il faut régler le courant maximum sur 1A. Si le moteur surchauffe, il faudra réduire la consigne "Vref". Au contraire, si le moteur ne bouge pas ou rate des pas, il faudra augmenter la consigne "Vref".

5. Dissipateur thermique pour driver

    Pour éviter la dégradation du "driver", il est recommandé de placer des dissipateurs sur le composant. Cela permettra de le protéger lors de l'échauffement générer par son utilisation. Attention de bien placer le dissipateur ; ce dernier, ne doit être en contact avec rien d'autre que le "driver".

6. Positionnement du driver sur le 'shield'

    Pour placer le "driver" sur le "shield", il suffit de repérer les broches "Enable" pour les enficher.


Attention : Bien vérifier les tensions d'alimentation tolérables par les divers composants utilisés.

vendredi 3 juin 2022

[Arduino] Mega

1. Présentation

L'Arduino Mega 2560 est une carte microcontrôleur basée sur l'ATmega2560 (fiche technique). Il dispose de 54 broches d'entrée/sortie numériques (dont 14 peuvent être utilisées comme sorties PWM), 16 analogiques entrées, 4 UART (ports série matériels), un oscillateur à cristal 16 MHz, une connexion USB, un prise d'alimentation, un en-tête ICSP et un bouton de réinitialisation.

Il se connecte simplement à l'ordinateur avec un câble USB pour le programmer. Il faudra ajouter une alimentation externe pour utiliser convenablement.

Le Mega est compatible avec la plupart des 'shields' conçus pour l'Arduino 'Duemilanove'.

2. Spécifications techniques

MICROCONTROLLERATmega2560
OPERATING VOLTAGE5V
INPUT VOLTAGE (RECOMMENDED)7-12V
INPUT VOLTAGE (LIMIT)6-20V
DIGITAL I/O PINS54 (of which 15 provide PWM output)
ANALOG INPUT PINS16
DC CURRENT PER I/O PIN20 mA
DC CURRENT FOR 3.3V PIN50 mA
FLASH MEMORY256 KB of which 8 KB used by bootloader
SRAM8 KB
EEPROM4 KB
CLOCK SPEED16 MHz
LED_BUILTIN13
LENGTH101.52 mm
WIDTH53.3 mm
WEIGHT37 g

3. Représentation


4. Brochage





dimanche 29 mai 2022

[Py] eSpeak sur RaspberryPi

 

1. Qu'est ce que eSpeak

Il est possible de faire parler votre Raspberry Pi en utilisant un synthétiseur de voix comme eSpeak afin d ‘en faire un assistant intelligent.

2. Installation de eSpeak

Il suffit d'utiliser la commande suivante.
sudo apt-get install espeak

3. Installation de eSpeak Python3

Vous pouvez aussi installer le package python et l’utiliser directement dans un script.
sudo apt-get install python3-espeak

4. Utiliser eSpeak

La bibliothèque eSpeak est nommée espeak (tout simplement) et doit être importée avec le même nom. 
from espeak import espeak
espeak.synth("Hello you")

5. Utiliser d'autres voix

Pour obtenir la liste des voix différentes (le français américain, ce n'est pas très propre à entendre). 
espeak --voices

mercredi 11 mai 2022

[Py] Opencv sur Raspberry en Python

1. Qu'est ce qu'OpenCv 

OpenCV est une bibliothèque Python utilisée pour traiter des images qui fournit également une vision par ordinateur et un apprentissage automatique.

OpenCV est une bibliothèque tierce ; elle n'est pas fournie lors de l'installation de Python par défaut. La bibliothèque peut être installée pour Python via les gestionnaires de packages Linux et la commande pip.

2. Installation d'OpenCv pour Python2

L'OpenCV peut être installé en utilisant la commande pip pour Python2. 
sudo pip install opencv-python

3. Installation d'OpenCv pour Python3

L'OpenCV peut également être installé pour Python3 avec la commande suivante.
sudo pip3 install opencv-python

4. Mettre à jour OpenCv

Le package OpenCV déjà installé peut être mis à jour à l'aide des commandes pip et pip3. Utilisez les commandes pip ou pip3 avec l'option de mise à niveau pour mettre à jour l'installation OpenCV existante.
sudo pip upgrade opencv-python sudo pip3 upgrade opencv-python

5. Utiliser OpenCv

La bibliothèque OpenCV est nommée cv2 et doit être importée avec le même nom. L'exemple suivant montre comment importer la bibliothèque OpenCV et afficher sa version.

import cv2
print(cv2.__version__)

samedi 7 mai 2022

[Py] Python, l'historique


Python est un langage de programmation interprété, multi-paradigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions.

Le langage Python est placé sous une licence libre et fonctionne sur la plupart des plates-formes informatiques, des smartphones aux ordinateurs (Windows, Unix avec notamment GNU/Linux ) en passant par macOS, ou encore Android, iOS. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.

Welcome to Python

Utilisation

Python est un langage de programmation qui peut s'utiliser dans de nombreux contextes et s'adapter à tout type d'utilisation grâce à des bibliothèques spécialisées. Il est cependant particulièrement utilisé comme langage de script pour automatiser des tâches simples mais fastidieuses. On l'utilise également comme langage de développement de prototype lorsqu'on a besoin d'une application fonctionnelle avant de l'optimiser avec un langage de plus bas niveau. Il est particulièrement répandu dans le monde scientifique, et possède de nombreuses bibliothèques optimisées destinées au calcul numérique.

Interface graphique

Python possède plusieurs modules disponibles pour la création de logiciels avec une interface graphique. Le plus répandu est Tkinter. Ce module convient à beaucoup d'applications et peut être considéré comme suffisant dans la plupart des cas.

Les principaux modules donnant accès aux bibliothèques d'interface graphique sont Tkinter et Pmw (Python megawidgets)51 pour Tk, wxPython pour wxWidgets, PyGTK pour GTK, PyQt et PySide pour Qt, et enfin FxPy pour le FOX Toolkit. Il existe aussi une adaptation de la bibliothèque SDL : Pygame, un binding de la SFML : PySFML, ainsi qu'une bibliothèque écrite spécialement pour Python : Pyglet (en).

Pour débuter

Les tutoriels d'OpenClassRoom pour commencer : Language Python

Sources : https://fr.wikipedia.org/ ; https://www.python.org/

mercredi 16 mars 2022

[3D] Rendu 3D de pièces pour maquette

Nouveau sujet sur la réalisation de pièces 3D (FreeCad) pour l'une de mes maquettes.

Support intérieur pour corde de rappel :

Aileron arrière :

Porte latérale :

mercredi 16 février 2022

[CAO] FreeCAD



FreeCAD est un modeleur 3D à conception paramétrique*. Il est libre et complètement modulaire. FreeCAD est multi-plateforme, il ouvre et sauvegarde plusieurs formats de fichiers tels que STEP, IGES, STL et bien d’autres. Il permet de concevoir très précisément des pièces, des assemblages et des bâtiments en 3 dimensions.
  • Puissant
  • Paramétrique
  • Modulaire

D'abord destiné aux métiers du génie mécanique, avec la CMAO, FreeCAD s'est ensuite étendu à d'autres branches de l'ingénierie, comme l'architecture, grâce à son module BIM. Il supporte la MEF9 et peut être utilisé pour l'IAO, la FAO et la GCVP. FreeCAD possède une architecture modulaire et a vocation à devenir un logiciel de CFAO plus généraliste. Grâce à sa nature libre et open-source, les utilisateurs peuvent étendre ses possibilités en ajoutant divers plug-ins gratuits, ou en se servant du langage de programmation Python.


Exemple de CAO paramétrique



Conception paramétrique :
La conception paramétrique est un mode de fonctionnement des logiciels de conception assistée par ordinateur actuels. Il s'agit de définir une entité par des paramètres qui peuvent être modifiés facilement. De cette façon, on change aisément la définition de la pièce.

Les paramètres peuvent être de plusieurs types : intrinsèques (longueurs, angles), cartésiens (coordonnées par rapport à un repère), situationnels (distance, angle entre 2 éléments)

Une contrainte est un paramètre que l'on ne veut pas pouvoir modifier.


Sources :
https://freecad-france.com/
https://fr.wikipedia.org/wiki/FreeCAD