mercredi 21 juin 2023

[Arduino] Module Bluetooth

 Le Bluetooth est un standard de communication qui permet l’échange de données bidirectionnel à très courte distance et qui utilise des ondes radio UHF.

Le module utilisé est un Bluetooth HC-05 ou « HC 05 » ; son code d’appareillage est « 1234 ».

Afin de sécuriser ce module, nous allons effectuer la modification du nom et du code. Nous allons utiliser des commandes AT (ATtention) afin d’effectuer la configuration.

1. Présentation du HC 05

Le module présente 6 broches pour permettre d’établir la connexion.

  • VCC broche d’alimentation. Typiquement connectée à la broche 5V de l’Arduino.
  • GND masse. Typiquement connectée à la broche GND de l’Arduino
  • RX broche de réception. Typiquement connecté à la broche de transmission (TX) de l’Arduino
  • TX broche de transmission. Typiquement connecté à la broche de réception (RX) de l’Arduino
  • State retourne 1 lorsque le module est connecté
  • Key ou EN doit être alimentée pour entrer dans le mode de configuration et ne doit pas être connecté pour être en mode communication.
La particularité du module est qu’il peut être utilisé en mode esclave (dans ce cas il est équivalent à un module HC-06 et s’utilise de la même manière) ou en mode maître, ce qui veut dire qu’il peut de manière autonome se connecté à un autre module Bluetooth.

2. Câblage du module avec l'Arduino

On commence par injecter le programme suivant. Attention, la vitesse est de 38400 Bauds.


Démarche de câblage :
Une fois le câblage précédent effectué, la LED du module Bluetooth doit normalement clignoter rapidement
  • Débrancher le fil 5V <-> VCC
  • Appuyer et maintenir le poussoir sur le module Bluetooth
  • Rebrancher le fil 5V <-> VCC
  • Relâcher le bouton poussoir du module Bluetooth
  • La LED du module doit clignoter lentement (toutes les 2s)
Dans le moniteur série, vous devez déjà sélectionner « NL et CR » puis envoyer le message AT, et attendre la réponse OK.

Configuration :

Il est donc possible de changer le nom du module Bluetooth et son password.
Changer le nom : AT+NAME=Votre_Nom
Changer le password: AT+PSWD=Votre_Nom

Attention, il faut utiliser 12 caractères maximum et ne pas utiliser de lettres accentuées, ni d’espaces.
Par défaut, le nom est HC-05 et le pin est 1234.

Une fois le changement effectué (le module nous répond OK) :
  • Débrancher le fil KEY
  • Débrancher et rebrancher la carte Arduino
  • Vérifier avec son smartphone en se connectant au module Bluetooth (par l’intermédiaire de la configuration Bluetooth de votre mobile Android).
Si les changements ne sont pas visibles, redémarrer l’étape de configuration.

Remarques :
Il existe d'autres commandes comme :
  • AT+ROLE=<Param> pour modifier le rôle du module esclave ou maître (Ex: pour passer le module en maître AT+ROLE=1).
  • AT+UART=<Param1>,<Param2>,<Param3> avec Param1, 2 et 3 les paramètres de communication série: le baud rate, le bit d’arrêt et le bit de parité  respectivement. (Par défaut, 9600,0,0. Ex: si vous voulez changer le baudrate en 115200 tapez AT+UART=115200,0,0).
Plus d'informations par ici

3. Exemple de code en mode esclave

Le module HC-05 sera connecté en esclave à une application smartphone.


dimanche 12 mars 2023

[IT] Problème d'espace sur support amovible

 Il arrive que suite à des formatages voter clé USB (ou autre) n'affiche plus la capacité d'origine, mais complètement aberrante (par exemple 400 ou 500 Mo).

La capacité de stockage peut être rétablie par l'utilisation de 'Disk part'.

Attention : avant d'essayer cette méthode, assurez-vous qu'il n'y a pas de fichiers importants sur la clé USB pour éviter une perte de données.

  •  Connectez la clé USB qui n'a plus sa capacité d'origine à votre ordinateur.
  • Tapez « diskpart » dans la zone Exécuter, puis appuyez sur Entrée.


  • Tapez « list disk » dans l'invite de commande pour afficher tous les disques en ligne.
  • Choisissez votre USB en tapant la commande « select disk ». Ici, j'utilise « select disk 1 ».
  • Tapez « clean » pour supprimer toutes les données sur la clé USB.
  • Tapez « create partition primary » pour créer une nouvelle partition sur la clé USB.

Il arrive que l'opération échoue. Dans ce cas, je réalise l'opération une seconde fois.

mardi 7 février 2023

[Electro] Protocole RS232

Le RS-232 (parfois appelée EIA RS-232, EIA 232 ou TIA 232) est une norme standardisant une voie de communication de type série. Disponible sur presque tous les PC depuis 1981 jusqu'au milieu des années 2000, il est communément appelé le « port série ». 

Sur les systèmes d'exploitation MS-DOS et Windows, les ports RS-232 sont désignés par les noms COM1, COM2, etc. Cela leur a valu le surnom de « ports COM », encore utilisé de nos jours. Il est graduellement remplacé par le port USB depuis l'apparition de ce dernier.

1. Historique :

Le protocole d'origine, RS-232, a été standardisé par l'EIA (Electronic Industries Alliance) en 1962. Des déclinaisons ont suivi, notamment les RS-232C en 1969 et RS-232D en 19864. Peu à peu tombé dans l'obsolescence, il finit par être remplacé par les ports USB et FireWire4 dans les années 2000.

Toutefois, les liaisons RS-232 sont encore utilisées dans l'industrie pour connecter différents appareils électroniques (automate, appareil de mesure, etc.).

2. Description :

Le standard RS-232 permet une communication sérielle, asynchrone et duplex entre deux équipements. La transmission des éléments d'information (ou bit) s'effectue bit par bit, de manière séquentielle.

La connectique de cette liaison se présente fréquemment sous la forme du connecteur DB-9 ou DB-25, mais peut aussi être d'un autre type (RJ25). Seule la version DB-25 est vraiment standardisée, la DB-9 est une adaptation d'IBM lors de la création du PC AT.

3. Protocole :

Pour établir une communication effective via RS-232, il est nécessaire de définir le protocole utilisé : notamment, le débit de la transmission, le codage utilisé, le découpage en trame, etc. La norme RS-232 laisse ces points libres, mais en pratique on utilise souvent des UART qui découpent le flux en trames d'un caractère ainsi constituées :
  • 1 bit de départ ;
  • 7 à 8 bits de données ;
  • 1 bit de parité optionnel ;
  • 1, 1.5 ou 2 bits d'arrêt.
Le bit de départ a un niveau logique "0" tandis que le bit d'arrêt est de niveau logique "1". Le bit de donnée de poids faible est envoyé en premier suivi des autres (on parle de "MSB" pour "Most Significant Bit" et de "LSB" pour "Least Significant Bit"). 

La spécification RS-232 prescrit des débits inférieurs à 20 000 bit/s. Cependant, les débits utilisés en pratique varient entre 75 bit/s et 115 200 bit/s.

4. Signal électronique :

Un niveau logique "0" est représenté par une tension de +3 V à +25 V et un niveau logique "1" par une tension de −3 V à −25 V (codage NRZ). D'ordinaire, des niveaux de +12 V et −12 V sont utilisés.

Il existe une "zone morte" allant de +3 V à -3 V qui est destinée à l'adsorption du bruit de ligne. Cependant, cette plage peut être différente. Par exemple, la définition V.10 a une "zone morte" de +0.3 V à -0.3 V.

La norme V.28 indique qu'un "0" est reconnu si la tension est supérieure à +3 V et qu'un "1" est reconnu si la tension est inférieure à −3 V

5. Limitations :

Le protocole RS-232 présente de sérieuses limitations en termes de performances de portée et de débit de données.


dimanche 5 février 2023

[IT] OPC-UA

 

Plus connu sous l’acronyme OPC UA, le protocole 'OPen Connectivity – Unified Architecture' est un standard d’échange de données adapté aux besoins des systèmes industriels. Il est particulièrement dédié à l’Internet Industriel des Objets (IoT ou IIoT).

1. Historique :

La norme OPC est maintenue par la fondation OPC, consortium industriel regroupant un ensemble hétéroclite de constructeurs qui crée et maintient les standards et les normes de l’automation.

Hormis la standardisation du dialogue entre machines et systèmes d’information, le protocole OPC-UA est d’abord élaboré pour la sécurisation des flux de données lors des échanges intra et/ou inter-équipements d’automatisme industriel.

Il est important de préciser que c’est un standard ouvert. Il est par exemple possible de partir du projet Open62541 directement disponible sur la plateforme de gestion de code source github. Cette version est écrite en C99 et C++. Mais il existe aussi des partages plus officiel comme l’OPC Foundation qui propose des librairies en .NET.

2. Architecture :

Ce protocole repose sur le principe de client-serveur. Un serveur OPC est un logiciel adapté à un ou plusieurs constructeurs d’automates/machines. Un serveur OPC "sert" des données au client qui les "réclame".

Le plus souvent installé sur le même serveur que l’application, ce serveur client se connecte aux automates par l’intermédiaire d’un réseaux Ethernet "classique".

Le client va sélectionner, trier et traduire les informations renvoyées par l’automate pour les traiter dans son logiciel.

Comme les serveurs peuvent à la fois être des clients eux-mêmes, ils peuvent aussi collecter et compiler des données d’autres serveurs à leurs propres clients, et ainsi de suite. Les informations échangées s’adaptent à chaque équipement.

3. Avantages :

  • Un standard ouvert
  • Il est conçu pour l’interopérabilité
  • Son concept de "Publisher/subscriber"
  • Il est conçu sur une architecture orientée service appelée SOA (Service oriented Architecture)
  • La sécurité de transmission a été intégrée dès sa conception que ce soit au niveau de l’authentification ou lors des échanges de données
  • Il est flexible et évolutif grâce aux nombreuses implémentations que ce soit en C/C++ mais aussi en Java, .NET, NodeJS ou encore Python
  • Une large compatibilité dans l'industrie actuelle
  • De grands industriels ont dores et déjà implémentés cette norme

samedi 21 janvier 2023

[IT] MQTT

Plus connu sous l’acronyme MQTT, le protocole 'Message Queuing Telemetry Transport' est un protocole de messagerie léger adapté aux clients qui doivent utiliser peu de code et sont connectés à des réseaux peu fiables ou limités en bande passante.

1. Historique :

Créé par Andy Stanford-Clark et Arlen Nipper en 1999, MQTT est un protocole de messagerie qui, à son origine, visait à permettre aux capteurs utilisés dans l’industrie pétrolière et gazière d’envoyer leurs données à des serveurs distants. À l’époque, la seule solution pour ces cas de figure était la liaison satellite, une option extrêmement onéreuse. Les acteurs de l’industrie, qui avaient déployé des milliers de capteurs sur le terrain, avaient besoin d’un mode de communication capable de transmettre des données avec toute la fiabilité requise, tout en consommant un minimum de bande passante.

MQTT a été standardisé en tant que format ouvert par l’Organization for the Advancement of Structured Information Standards en 2013. À ce jour, l’OASIS gère encore le standard MQTT.

2. Architecture :

MQTT est un protocole de messagerie 'push-subscribe' basé sur le protocole TCP/IP. Dans l’architecture MQTT, il existe deux types de systèmes : les clients et les brokers (courtiers). 

Le broker est le serveur avec lequel les clients communiquent. Il reçoit les communications qui émanent des clients et les retransmet à d’autres clients. Ainsi, les clients ne communiquent pas directement entre eux, mais toujours par l’intermédiaire du broker. Chaque client peut être soit éditeur, soit abonné, soit les deux.

MQTT est un protocole orienté événements. Afin de minimiser le nombre de transmissions, les données ne sont envoyées ni à intervalles définis, ni en continu. Un client publie uniquement quand il a des informations à transmettre, et un broker n’envoie des informations aux abonnés que quand il reçoit de nouvelles données.

3. Architecture messages :

MQTT minimise également ses transmissions grâce à un système de messages à la construction allégée et bien cadrée. Chaque message se compose d’un en-tête fixe de 2 octets, auquel peut s’ajouter un en-tête facultatif. La charge utile des messages est, pour sa part, limitée à 256 Mo. Les trois niveaux de qualité de service laissent aux concepteurs de réseau le choix de minimiser le nombre de transmissions de données ou d’en maximiser la fiabilité. On parlera de 'QoS' (Quality of Service).

QoS 0 — c’est le niveau minimal de transmission de données. Quand on choisit ce niveau de QoS, chaque message est envoyé à l’abonné une seule fois, sans accusé de réception. Il est donc impossible de savoir si l’abonné l’a reçu. Dans ce niveau de qualité de service, les messages sont expédiés « au plus une fois ». Comme ce niveau de QoS part du principe que les messages sont systématiquement remis, ces derniers ne sont pas conservés en vue d’un envoi ultérieur aux clients qui seraient déconnectés au moment de leur transmission.

QoS 1 — le broker tente de remettre le message, puis attend un accusé de réception de la part de l’abonné. Si cet accusé n’est pas reçu dans le délai défini, le message est réexpédié. Avec cette méthode, l’abonné peut recevoir le message plus d’une fois si le broker ne reçoit pas de confirmation de réception dans le temps imparti. Dans ce niveau de QoS, les messages sont assurés d’arriver « au moins une fois ».

QoS 2 — le client et le broker utilisent deux paires de paquets pour s’assurer que le message a été remis, et pour vérifier qu’il n’a été reçu qu’une seule fois. Dans ce niveau de QoS, les messages sont assurés d’arriver « exactement une fois ».

4. Rubriques :

Sous MQTT, les messages sont publiés en tant que topics (rubriques), c’est-à-dire de structures hiérarchisées qui utilisent le caractère slash (/) comme délimiteur. Ces structures ressemblent à l’arborescence de l’explorateur Windows. 

Ainsi, une structure de type 'capteurs/PétroleetGaz/Pression/' permet à un abonné de préciser qu’il souhaite ne recevoir que les données émanant des clients publiant dans la rubrique Pression, ou peut-être, s’il souhaite élargir ses horizons, toutes les données du rubrique 'capteurs/PétroleetGaz'. 

Les rubriques ne sont pas créées sous MQTT à proprement parler : si un broker reçoit des données publiées sur une rubrique qui n’existe pas à ce moment-là, celle-ci sera automatiquement créée, après quoi les clients pourront s’y abonner.

5. Messages conservés :

Pour alléger au maximum le protocole, les messages reçus ne sont pas conservés sur le broker, sauf à ce qu’ils soient indiqués comme "conservés". On parle alors de messages conservés. Les utilisateurs qui veulent sauvegarder les messages qu’ils reçoivent devront le faire en dehors de MQTT. Il y a toutefois une exception à la règle.

6. Sécurité :

MQTT facilite le chiffrement des messages à l'aide de la couche de sécurité TLS et l'authentification des clients à l'aide de protocoles d'authentification modernes, tels que OAuth.

Certaines options de sécurité sont toutefois disponibles, au prix toutefois d’une augmentation du nombre de transmissions et du poids des données.

Sécurité réseau – Si l’on sécurise le réseau alors les transmissions de données MQTT non sécurisées est sans gravité. Dans un tel cas de figure, d’éventuels problèmes de sécurité proviendraient du réseau lui-même.

Identifiant et mot de passe — MQTT intègre un système d’identifiants et de mots de passe qui permet aux clients d’établir une connexion avec un broker. Cela étant, on déplorera que les identifiants et mots de passe soient transmis en clair.

SSL/TLS – Comme MQTT est basé sur TCP/IP, le protocole SSL/TLS apparaît comme la solution logique pour sécuriser les transmissions entre les clients et les brokers. Malheureusement, son recours alourdit nettement la charge d’un protocole dont la vocation première est de rester léger.

7. Mosquitto :

Mosquitto est le broker le plus souvent utilisé pour les projets ESP8266 (Arduino et Raspberry). Lancé en 2008, il est disponible sur toutes les plateformes (MacOS, Windows XP-10, Linux). Deux méthodes sont possibles pour l'installer : depuis le terminal d'un ordinateur, avant de le lancer depuis le terminal, ou de l'installer en utilisant putty (SSH) et en accédant au Root.

Sources MQTT_1MQTT_2MQTT_3

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

dimanche 14 novembre 2021

[Impression 3D] Réglage du plateau

 L'impression exige un peu de préparation avant de lancer le nivellement. 

  1. La première étape consiste à s’assurer que la surface du plateau chauffant d’impression est impeccable.
  2. placez la plaque sur le plateau à l’aide des pinces fournies.
  3. Passez ensuite à la vérification de la buse  elle doit être propre et exempte de tout résidu de matériau, aucun bout de plastique ne doit ressortir de son extrémité.

1. Préparation

Pour préparer la machine avant le nivellement, il faut positionner correctement la buse et le plateau.

  1. Allumez votre imprimante 3D.
  2. À l’aide de la molette de contrôle, sélectionnez le menu PREPARE.
  3. Faites défiler jusqu’à AUTO HOME et appuyez sur la molette. Le plateau chauffant va se déplacer à l’avant gauche du plateau avant de s’arrêter.
  4. Retournez alors dans PREPARE.
  5. Défilez jusqu’à DISABLE STEPPERS et appuyez sur la molette. Cette étape vous permet de déplacer plus facilement le plateau vers l’avant ou l’arrière.
  6. Ensuite, faites tourner chacune des quatre molettes de nivellement dans le sens inverse des aiguilles d’une montre pour abaisser le plateau. Il suffit normalement d’un ou deux tours : l’idée est de s’assurer que le plateau est plus bas que l’extrémité de la buse.

2. Le nivellement

L'outil nécessaire pour niveler le plateau est une feuille de papier. Pour ma part, je mets mon plateau à chauffer à 60°C avant de le niveler. 

  1. Déplacez la buse de sorte qu’elle soit positionnée au-dessus de la molette de réglage inférieure gauche du plateau.
  2. Glissez la feuille de papier entre la buse et le plateau. Si vous êtes parvenu à déplacer la buse, c’est qu’il y a suffisamment d’espace entre les deux.
  3. Élevez très doucement le coin à l’aide de la molette. Un rappel : en tournant dans le sens des aiguilles d’une montre (vue d’au-dessus), vous faites monter le plateau. En même temps que vous tournez la molette, faites bouger doucement la feuille de papier d’avant en arrière. Dès que vous sentez la moindre résistance en déplaçant la feuille, vous avez atteint le bon point
  4. Il ne vous reste plus qu’à répéter l’opération pour les trois autres coins du plateau, en repositionnant la buse au-dessus de chacune des molettes. Pensez à déplacer la buse lentement, afin de ne pas abîmer le plateau dans le cas où elle se trouverait trop près de la surface. Si vous êtes confronté à cette situation, pas de panique : il suffit d’abaisser un peu le coin que vous souhaitez niveler afin de créer un peu d’espace.
  5. Une fois que vous avez réglé les quatre coins, vérifiez-les à nouveau. Il vous faudra en effet peut-être faire quelques ajustements pour que les quatre soient parfaitement calibrés.
  6. A présent, il vous faudra contrôler le nivellement de la zone où votre impression se déroulera. Si besoin, il vous faudra ajuster.

3. Video YouTube

Vidéo explicative trouvée sur Youtube.


Source : https://all3dp.com/fr/2/nivellement-plateau-ender-3-bed-leveling/