DRO universel basé sur Arduino Nano - shDRO

Mesdames et messieurs, bonjour.

Dans cet article, je parlerai du développement d'un appareil pour prendre des mesures à partir de règles numériques et d'autres capteurs situés sur des machines de tournage et de fraisage.

Le développement n'est pas encore terminé et ce qui a été fait pour le moment sera décrit.

Peu importe, bienvenue au chat.

Pourquoi son propre développement, mais pas un produit fini.
J'ai deux machines à métaux (chinoises): le fraisage et le tournage.

Je leur produis périodiquement des produits de divers degrés de complexité (je ne suis pas opérateur de tourneur ou de fraiseuse, ce n'est qu'un hobby). Et, si le produit est complexe, alors vous avez dû prendre une calculatrice et calculer la progression du cutter ou du cutter. Et aussi, si la course fraise / fraise s'avérait être assez grande, il fallait alors tenir compte des révolutions des poignées de l'étrier, ce qui était franchement agacé. En conséquence, j'ai pensé au DRO (les étriers numériques ont été achetés juste à cet effet pendant longtemps, mais le manque de temps a constamment retardé la fabrication).

Avant de commencer le développement de mon DRO, j'ai dû répondre à deux questions concernant la pertinence de mon propre développement:

  • pourquoi ne pas acheter le produit fini?
  • il existe de nombreux projets DRO sur le réseau, de différents niveaux de difficulté, avec des descriptions détaillées de la fabrication de bricolage. Alors pourquoi ne pas en récupérer un?

Je me réponds.

Oui, il existe de nombreux produits sur le marché, nationaux et étrangers, avec des prix différents et des fonctionnalités différentes. Le même Ali propose un DRO prêt à l'emploi avec trois lignes optiques au prix d'environ 13 000 roubles. - un prix très bas pour un tel appareil. Mais je suis intéressé par le processus de fabrication lui-même, donc l'option "acheté et installé" a été abandonnée.

Répondant à la deuxième question, je me mets à la place d'une personne qui assemblera lui-même l'appareil selon une description, et ce qu'il devra faire. À savoir:

  • acheter les composants nécessaires: processeur, indication, boutons et petites choses comme résistances, condensateurs, stabilisateurs, etc. (sans cela, bien sûr, nulle part);
  • selon la complexité du projet, fabriquer / acheter une carte de circuit imprimé;
  • puis soudez tout et flashez le processeur;
  • après, faites le travail sur les bugs;

Et seulement après ces étapes, vous obtenez un produit fini. Chaque étape prend un certain temps, et comme une personne est une créature paresseuse et impatiente (dans le bon sens de ces mots), elle veut voir le résultat du travail de l'appareil le plus rapidement possible, même s'il est intermédiaire. Et pourtant j'ai décidé de développer mon appareil de telle manière qu'une personne, même au tout début du processus d'assemblage, verrait des résultats intermédiaires de son travail.

Maintenant, il fallait choisir une carte pour la mise en œuvre.

Choisissez entre Arduino basé sur Atmega et STM.

Je suis un programmeur de haut niveau, mais au travail, je devais programmer des microcontrôleurs Atmega et MSP-430, je ne connaissais pas la STM. J'ai donc choisi Atmega. J'ai choisi la carte la moins chère (ou pas? Je viens de les avoir) Arduino Nano basé sur le microcontrôleur Atmega328.

Caractéristiques ShDRO:

(fonctionnalité barrée qui n'a pas encore été implémentée)

  • Carte Arduino Nano, processeur Atmega328;
  • 12 canaux / ports Arduino indépendants auxquels les lecteurs sont connectés;
  • Chaque canal a les propriétés suivantes: Type (CLKin, DATAin, Ain, Bin, etc.), EI (Enable Interrupt), IL (Interrupt Level), Inv (Invented Signal);
  • nombre maximum d'appareils connectés: 6;
  • chaque appareil peut se voir attribuer un ou plusieurs canaux sur 12 disponibles;
  • prise en charge des protocoles: 24BIT, 21BIT , BCD7 , BIN6, signal en quadrature, signal périodique du tachymètre (il est possible d'ajouter de nouveaux protocoles);
  • console: permet d'utiliser le programme terminal pour configurer et tester shDRO pendant l'assemblage et le fonctionnement;
  • en mode console, un «pseudo» analyseur logique est implémenté qui vous permet de lire les niveaux de canaux spécifiés dans la console et de déterminer le protocole d'échange. Le nombre maximum d'échantillons est de 256, le temps minimum mesuré entre les échantillons est de 8 microsecondes. Au moins un canal en cours d'analyse doit être configuré pour interrompre;

Schéma modulaire:



L'appareil se compose des modules suivants:

  • trois stabilisateurs de tension 5v., 3v., 1.5.v. Stabilisateurs 3v. et 1.5.v. réglable. Ces niveaux de tension sont utilisés dans les étriers numériques (1.5v.) Et dans la ligne iGAGING (3v.);
  • 4 indicateurs à huit chiffres et sept segments basés sur le MAX7219, connectés en cascade au SPI matériel;
  • un clavier. Le clavier se compose de deux matrices résistives: 2x4 et 4x4 dans ce cas, la disposition des pistes sur la carte est plus simple (mais vous pouvez faire deux matrices 3x4, à qui c'est plus pratique). Chaque matrice est connectée au canal ADC;

    L'utilisation de matrices résistives est un gros inconvénient pour moi, car au fil du temps, la résistance des boutons augmentera et les niveaux de tension mesurés par l'ADC changeront en conséquence. Mais la matrice «honnête» manquait tout simplement des pieds / ports de la carte (pour 24 boutons, 10 ports sont nécessaires). Sur cette base, le micrologiciel implémente la fonctionnalité d'apprentissage du clavier, l'apprentissage peut être effectué à tout moment et vous n'avez pas besoin d'une connexion avec le programme du terminal (la formation sera écrite ci-dessous).
  • un haut-parleur connecté à la branche matérielle du temporisateur 1;
  • carte adaptateur, conçue pour coordonner les niveaux entre les appareils et les ports Arduino;
  • 4 connecteurs femelles DB9 (pour de bon, vous devez installer 6 connecteurs, car shDRO prend en charge jusqu'à 6 appareils, mais je n'ai pas encombré le futur panneau arrière du boîtier, en supposant que trois connecteurs seront utilisés pour les axes et qu'un connecteur sera partagé entre d'autres appareils) . Les connecteurs sont les plus simples, avec des pieds pour souder les fils. Les fils, à leur tour, sont soudés à la carte adaptateur;

    Le choix de ce type de connecteur est dû aux raisons suivantes: fiabilité (par rapport aux connecteurs USB et RJ-45), un grand nombre de broches et la facilité de câblage. Et j'ai aussi une ligne optique avec ce type de connecteur.

Schéma du circuit:



Dans la partie suivante, je décrirai la logique de shDRO, décrirai les commandes de console actuellement disponibles et exposerai également la première version du firmware.

La deuxième partie.

Source: https://habr.com/ru/post/fr446408/


All Articles