FORUMAMONTRES
AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
| |
 

 Diviseur numérique

Aller en bas 
+4
Philippe-ch
Nezitic
-Tom-
caput
8 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Diviseur numérique   Diviseur numérique EmptyMar 3 Jan 2023 - 12:22

Bonjour,

J'ouvre une nouvelle discussion sur la fabrication d'un diviseur numérique pour le taillage des roues et pignons. Cela fait presque 20 ans que je m'intéresse à la question. J'ai construit plusieurs machines qui fonctionne parfaitement bien. Elles sont toutefois pilotées par un vieux PC de bureau. Je souhaiterais miniaturiser.
Aujourd'hui on trouve des microcontrôleurs très performants et très bon marché. Toutefois il faut maîtriser leur langage de programmation !
Si, sur ce forum, il y a des spécialistes de la RASPBERRY qui s'intéresse à la question, ce serait formidable. Ensemble on pourrait faire de grande choses !

Voilà ce que je peux faire avec la machine que j'ai bricolée :






Je suis prêt à partager ma modeste expérience pour permettre à certains de créer leur propre garde temps.

@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
caput
Membre référent
caput


Nombre de messages : 6806
Localisation : Ile de France
Date d'inscription : 26/08/2008

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 3 Jan 2023 - 12:54

Bonjour JC, sujet intéressant mais je n’ai malheureusement aucune compétence en électronique ou électricité, mais seulement en mécanique et en programmation. J’ai fait beaucoup de développement avec de nombreux langages mais pas en Python. Mais apparemment le C ou C++ convient également.
Revenir en haut Aller en bas
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 3 Jan 2023 - 13:31

Bonjour Caput,

Mon système fonctionne sous Basic, que je maîtrise assez bien. Je l'ai appris en autodidacte dans les années 1980 sur ZX81 et Victor. Je bidouille un peu avec Arduino (CC+ compilé, il me semble). Le Raspberry est un petit PC. Avec Python cela devrait être possible. Toutefois, à 74 ans, mon disque dur entre les deux oreilles est saturé ! Il faudrait l'aide de neurones frais !

@+
JC

;
Revenir en haut Aller en bas
https://sulka.fr En ligne
caput
Membre référent
caput


Nombre de messages : 6806
Localisation : Ile de France
Date d'inscription : 26/08/2008

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 3 Jan 2023 - 17:02

JC ; Il faut que je passe à La Châtre rendre visite à George et je viendrais te rendre visite.
Revenir en haut Aller en bas
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 3 Jan 2023 - 17:26

@Caput,

Super ! Ce sera avec grand plaisir ! Juste me prévenir un peu avant que je sois à la boutique.

A bientôt.
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
-Tom-
Membre très actif



Nombre de messages : 151
Age : 25
Localisation : Strasbourg
Date d'inscription : 26/06/2021

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 4 Jan 2023 - 10:39

C'est vraiment top. Je suis développeur mais j'ai aucunne compétence en electronique/robotique.
Je suppose que tu entres des données dans ta console, que des calculs sont faits, et les mouvements de ta machine sont controllés ainsi ?


Un raspbery tourne généralement sur Linux.
Et linux semble supporter le basic (ubuntu sur ce lien) : https://askubuntu.com/questions/6023/what-basic-intepreters-are-available
Revenir en haut Aller en bas
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 4 Jan 2023 - 11:35

Bonjour Tony,

Merci pour ta réponse. En fait, mon programme Basic me demande le nombre de dents à tailler, la profondeur de pénétration de la fraise et l'avance (si la roue à tailler est épaisse ou dans le cas d'un pignon). Ensuite la machine se débrouille toute seule. C'est une 3 axes.
La dernière que j'ai fabriquée n'a qu'un axe, seulement la division : https://www.sulka.fr/diviseur_numerique/cn.pdf

Pour revenir au Raspberry, je pense que Python est plus approprié qu'une adaptation illusoire du Basic, qui tourne sous DOS.

Si tu maîtrises Python, ce serait formidable ! Je maîtrise le reste.
@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Nezitic
Membre Hyper actif
Nezitic


Nombre de messages : 579
Localisation : 44/49
Date d'inscription : 16/01/2019

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 4 Jan 2023 - 18:04

Bonjour,

Si je comprends bien
  • vous avez un programme informatique écrit en Basic et qui fonctionne sur un PC de bureau
  • ce programme prend en entrée 3 paramètres :
  • - nombre de dents
  • - profondeur de pénétration
  • - avance


Pour pouvoir utiliser ce programme sur un Raspberry, il y a donc deux composants importants :
  • le programme en lui-même, qu'il faudra certainement réécrire en python - mais, a priori, cela ne devrait pas poser particulièrement de problème
  • la gestion des entrées/sorties : c'est-à-dire comment fournir les 3 paramètres d'entrées


Sur ce dernier point, il y a un peu plus de réflexion à faire en amont : comment implémenter un système qui permette de saisir ces 3 paramètres ?
Sur un PC, c'est facile : on a un clavier, une souris et un écran.
Sur un Raspberry, il faudra certainement utiliser une combinaison de bouton (un 'plus', un 'moins', un bouton de confirmation) ainsi qu'un afficheur pour contrôler la saisie - en fait, à peu de chose près ce qu'on va retrouver sur un réveil numérique.
Il est également possible de passer par un écran tactile qui permettra de gérer à la fois la saisie des paramètres et l'affichage.


Comment se fait la communication entre le programme et la machine ? Connaissez-vous la connectique et le protocole ?
Revenir en haut Aller en bas
Nezitic
Membre Hyper actif
Nezitic


Nombre de messages : 579
Localisation : 44/49
Date d'inscription : 16/01/2019

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 4 Jan 2023 - 18:04

Bonjour,

Si je comprends bien
  • vous avez un programme informatique écrit en Basic et qui fonctionne sur un PC de bureau
  • ce programme prend en entrée 3 paramètres :
  • - nombre de dents
  • - profondeur de pénétration
  • - avance


Pour pouvoir utiliser ce programme sur un Raspberry, il y a donc deux composants importants :
  • le programme en lui-même, qu'il faudra certainement réécrire en python - mais, a priori, cela ne devrait pas poser particulièrement de problème
  • la gestion des entrées/sorties : c'est-à-dire comment fournir les 3 paramètres d'entrées


Sur ce dernier point, il y a un peu plus de réflexion à faire en amont : comment implémenter un système qui permette de saisir ces 3 paramètres ?
Sur un PC, c'est facile : on a un clavier, une souris et un écran.
Sur un Raspberry, il faudra certainement utiliser une combinaison de bouton (un 'plus', un 'moins', un bouton de confirmation) ainsi qu'un afficheur pour contrôler la saisie - en fait, à peu de chose près ce qu'on va retrouver sur un réveil numérique.
Il est également possible de passer par un écran tactile qui permettra de gérer à la fois la saisie des paramètres et l'affichage.


Comment se fait la communication entre le programme et la machine ? Connaissez-vous la connectique et le protocole ?
Revenir en haut Aller en bas
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 4 Jan 2023 - 23:21

Bonsoir Nezitic,
Vous avez parfaitement compris le principe. 
Comme je le suggérais dans mon précédent message, il faudrait effectivement écrire un programme en Python, ce que je ne sais pas encore faire. Je maîtrise parfaitement tout le reste.
On peut très facilement connecter un clavier, une souris et un écran à un Raspberry. Ici une soliution intéressante : https://www.amazon.fr/dp/product/B08NPTK7NW/?tag=clubic-guide-achat-21
Je connais bien la connectique et le protocole de ma machine puisque j'ai construit ma premère il y a une vaingtaine d'annés   https://www.sulka.fr/mat/
Lorsque l'on a renseigné les 3 paramètres , le programme va lire un fichier correspondant au nombre de dents. Il mémorise les données pour les envoyer dent après dent  à une interface que j'ai fabriquée avec un PIC 16F84 programmé en Basic , qui gère les drivers des moteurs PAP. La laison entre le PC et l'interface se fait par le port série. Lorqu'elle a acompli sa mission, elle envoie un acquitement au PC, qui envoie les infos pour tailler la dent suivante.
Avec le Raspberry on pourrait commander directement les drivers
En résumé, ce que je cherche c'est de l'aide pour écrire un programme en Python afin de me passer de mon vieux  PC qui prend trop de place et aussi partager ma modeste expérience.
@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Nezitic
Membre Hyper actif
Nezitic


Nombre de messages : 579
Localisation : 44/49
Date d'inscription : 16/01/2019

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyJeu 5 Jan 2023 - 8:50

Bonjour Torzio,

OK, merci pour ces informations complémentaires.
Oui connecter un écran et un clavier à un Raspberry, il y a en effet plusieurs solutions.
Pour la liaison série, il existe des cartes RS232 donc ça ne devrait pas poser particulièrement de problème non plus.

En soi, Python est un langage simple et assez facile à prendre en main - il est d'ailleurs souvent utilisé pour faire découvrir la programmation.

Concernant le programme : il s'agit d'une réécriture dans un nouveau langage, donc l'important est de bien comprendre le besoin et le code original.
Cette réécriture peut être plus ou moins complexe, ça va dépendre en grande partie de la complexité du programme d'origine.
Je peux vous proposer mon aide, avec plaisir - je précise quand même que je ne suis pas développeur de métier.
Revenir en haut Aller en bas
Philippe-ch
Animateur Chevronné
Philippe-ch


Nombre de messages : 1382
Age : 75
Localisation : Suisse
Date d'inscription : 02/11/2015

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyJeu 5 Jan 2023 - 10:21

Juste pour info, j'ai un Raspberry PI 4 et pour le clavier un Logitech K400 (sans fil) plus ou moins 40.- euros. Pour écran une dalle LCD tactile entre 7 et 12 pouces, doit se trouver pour aussi entre 40 et 50 euros.
Revenir en haut Aller en bas
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyJeu 5 Jan 2023 - 10:44

Bonjour,

@Nezitic,

Avec le GPIO de la Raspberry, pas besoin de se compliquer la vie avec une liaison série, on commande directement les drivers des moteurs PAP !

Ce week end je vais mettre mon programme Basic en ligne. Toutefois, le projet consiste à intéresser le plus de monde possible. De faire découvrir la magie de la robotique au service de l'horlogerie. mais pour cela il faut commencer tout doucement.  Commencer par installer et maîtriser l'environnement Raspberry, par écrire, par exemple, un code très simple qui va faire clignoter 3 leds (pour simuler les PAP), à partir d'infos résidants dans un fichier. Lorsque l'on arrivera à faire ça, tout deviendra possible. Il restera alors à passer à la partie mécanique.

@Philippe-ch,

Merci pour l'info. il existe même une tablette Raspberry avec le port GPIO accessible : https://www.amazon.fr/SunFounder-RasPad-3-0-Raspberry-compatible/dp/B08T95BQVD/ref=asc_df_B08T95BQVD/?tag=googshopfr-21&linkCode=df0&hvadid=507176508362&hvpos=&hvnetw=g&hvrand=13849323146530863928&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9055098&hvtargid=pla-1220515517953&psc=1

@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyLun 16 Jan 2023 - 21:57

Torzio a écrit:
Bonsoir Nezitic,
Vous avez parfaitement compris le principe. 
Comme je le suggérais dans mon précédent message, il faudrait effectivement écrire un programme en Python, ce que je ne sais pas encore faire. Je maîtrise parfaitement tout le reste.
On peut très facilement connecter un clavier, une souris et un écran à un Raspberry. Ici une soliution intéressante : https://www.amazon.fr/dp/product/B08NPTK7NW/?tag=clubic-guide-achat-21
Je connais bien la connectique et le protocole de ma machine puisque j'ai construit ma premère il y a une vaingtaine d'annés   https://www.sulka.fr/mat/
Lorsque l'on a renseigné les 3 paramètres , le programme va lire un fichier correspondant au nombre de dents. Il mémorise les données pour les envoyer dent après dent  à une interface que j'ai fabriquée avec un PIC 16F84 programmé en Basic , qui gère les drivers des moteurs PAP. La laison entre le PC et l'interface se fait par le port série. Lorqu'elle a acompli sa mission, elle envoie un acquitement au PC, qui envoie les infos pour tailler la dent suivante.
Avec le Raspberry on pourrait commander directement les drivers
En résumé, ce que je cherche c'est de l'aide pour écrire un programme en Python afin de me passer de mon vieux  PC qui prend trop de place et aussi partager ma modeste expérience.
@+
JC


Bonjour,

Projet intéressant. Merci du partage.

Pourquoi ne pas programmer le microcontroleur directement pour qu'il prenne les trois paramètres et dirige seul les contrôleurs des pap sans utiliser ni PC ni port série ?
L'Arduino peut être très facilement utilisé à cet effet et on peut lui brancher quelques composants électroniques pour réaliser une interface agréable (petit clavier, petit écran, encodeur rotatif, etc) 

Bien-sûr Raspberry (ou Odroid par exemple) permettent des interfaces bien plus jolies comme un server web ou un grand écran tactile  (mais sont longues à installer, à configurer, et à programmer aussi).

Cadrature
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyLun 16 Jan 2023 - 22:18

Bonsoir Cadrature,
Merci pour votre intérêt au projet. 
Cahier des charges : un écran, un clavier, une  unité centrale avec une mémoire morte pour stocker les paramètres des différents nombres de dents, 3 drivers pour les moteurs PAP. Jpbbricole, qui est un spécialiste de l'Arduino m'a fait un sketch qui fonctionne bien, mais qui n'est pas aussi performant que mon systéme sur Windows XP, qui fonctionne en Basic.
Ce que je souhaite c'est reproduire la même chose qu'avec mon PC mais en moins encombrant.
Dans un premier temps, j'aurais besoin de quelques lignes de code pour lire des données dans un fichier (nombre de pas) et de faire tourner un moteur PAP de ce nombre de pas. 
Merci d'avance.
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 8:44

Torzio a écrit:
Bonsoir Cadrature,
Merci pour votre intérêt au projet. 
Cahier des charges : un écran, un clavier, une  unité centrale avec une mémoire morte pour stocker les paramètres des différents nombres de dents, 3 drivers pour les moteurs PAP. Jpbbricole, qui est un spécialiste de l'Arduino m'a fait un sketch qui fonctionne bien, mais qui n'est pas aussi performant que mon systéme sur Windows XP, qui fonctionne en Basic.
Ce que je souhaite c'est reproduire la même chose qu'avec mon PC mais en moins encombrant.
Dans un premier temps, j'aurais besoin de quelques lignes de code pour lire des données dans un fichier (nombre de pas) et de faire tourner un moteur PAP de ce nombre de pas. 
Merci d'avance.
JC

Bonjour

Je ne comprends pas en quoi la programmation de l'Arduino n'est pas aussi performante que le système sous PC.
On peut programmer un "sketch" (qui est un bout de code C++) qui fait largement ce que fait un programme écrit en Basic.
C'est même plutôt simple car on utilise des bibliothèques non disponibles en Basic.

Vous pouvez m'envoyer le code Basic (ou un fichier contenant la description du projet) ? Ça me permettra d'y voir plus clair et de voir pourquoi votre programme sur PC est plus performant que le "sketch".

J'avais bien dans mes cartons l'idée de faire un tel projet (avec un Lorch 6mm de récupération). La partie gestion de projet,
électronique et informatique ne me posent pas de problème. Bizarement, c'est plutôt la partie mécanique qui me semble compliquée.


Pour respecter le cahier des charges, j'imagine assez bien un boitier autonome (sans liaison PC autre qu'au moment de son flash) qui enferme les éléments électroniques:

- Ecran LCD
- Clavier numérique (pour sélectionner rapidement)
- Encodeur rotatif (pour programmer rapidement un nombre)
- Arduino
- Alimentation, interrupteurs et LEDs
- Fiches pour USB, Alimentation, moteurs pap et éventuellement interrupteurs de fin de course

La programmation de l'ensemble des éléments (y compris la vitesse des moteurs, leur sens de rotation, la durée des pause, etc.) se ferait alors directement à partir du clavier numérique ou de l'encodeur rotatif.

Exemple (ce n'est qu'un exemple rapidement imaginé) pour la taille d'un pinion:
- Choisir un programme fraisage pinion par exemple "A1" après avoir positionné le chariot croisé XYZ dans sa position initiale à la main (pas de couple sur les pap) (XY étant un chariot croisé, Z étant un chariot vertical portant un module de fraisage par exemple), enregistrer
- Positionner le chariot dans sa position finale de fraisage (X), enregistrer

- Positionner le chariot dans sa position de changement de pas (Z), enregistrer
- Positionner sur un point intermédiaire avant remise à zéro (X, Z), enregistrer
- Programmer le pas en nombre de dents, enregistrer
- Programmer la vitesse d'avance de fraisage, enregistrer
- Programmer la vitesse d'avance retour au point initial, enregistrer
- Programmer la vitesse d'avance rotation, enregistrer

A1 fera une série de séquences
- Avance lente X
- Recul rapide Z
- Avance rapide Rotation
- Recul rapide X
- Avance rapide Z

Et ainsi programmer quelques "programmes" (A, B, C...), et pour chacun des séquences spécifiques.


L'idée est de ne pas faire un truc aussi universel qu'un interpréteur de code G mais de faire beaucoup plus simple que
la liaison série depuis votre PC.
L'interprétation de code G par l'Arduino est une alternative, mais plus lourde du point de vue de cet interpréteur et du programme qui produit le code G sur le PC.

Bien évidemment on peut faire la même chose avec un RaspberryPi ou un Odroid et la puissance permettrait de programmer
un plus grand nombre de programmes (la place EPROM d'un microcontroleur de type ATMega328P est très limitée).

Cadrature


Dernière édition par Cadrature le Mar 17 Jan 2023 - 9:22, édité 1 fois
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 9:21

Bonjour Cadrature,

Ici mon diviseur avec Arduino. Sketch conçu par Jpbbricole : ICI
Je m'en sers pour fabriquer les alliances diamants.

Pour plusieurs raisons je suis arrivé à la conclusion qu'il est préférable d'avoir des fichiers correspondants aux roues à tailler, plutôt que de les calculer à chaque fois. Cela est préférable dans le cas du taillage d'une roue de compte, par exemple ou d'un limaçon. Cela fait 20 ans que je fonctionne ainsi et je n'ai pas à m'en plaindre. Le seul problème est que mon vieux PC me prends de la place.

Je vais essayer de mettre aujourd'hui en ligne mon fichier Basic.

@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 9:41

Torzio a écrit:
Bonjour Cadrature,

Ici mon diviseur avec Arduino. Sketch conçu par Jpbbricole : ICI
Je m'en sers pour fabriquer les alliances diamants.

Pour plusieurs raisons je suis arrivé à la conclusion qu'il est préférable d'avoir des fichiers correspondants aux roues à tailler, plutôt que de les calculer à chaque fois. Cela est préférable dans le cas du taillage d'une roue de compte, par exemple ou d'un limaçon. Cela fait 20 ans que je fonctionne ainsi et je n'ai pas à m'en plaindre. Le seul problème est que mon vieux PC me prends de la place.

Je vais essayer de mettre aujourd'hui en ligne mon fichier Basic.

@+
JC

Merci pour le lien que je vais lire.

Je vois que vous êtes aussi bijoutier ! Vous avez de nombreuses cordes à votre arc !

Si c'est une question de place, en effet, une solution mobile de type RaspberryPi ou Odriod est éventuellement pertinente.
Mais je reste interrogatif car le PC peut être délocalisé (via clé USB par exemple)


J'ai lu le programme Basic sur le document "/flycutters.pdf". Il me reste à voir le programme qui lit les fichiers dXXXX,
et surtout le programme qui prévoit la programmation des chaperons.
Le programme qui déchiffre dXXXX lit chaque ligne et lance autant de pas qu'indique le nombre j'imagine. C'est ça ?

Tout cela est falicement réalisable en continuant de fonctionner avec des fichiers (mais plutot de code G) produit par
un programme et à charger sur la machine, un peu comme on fait classiquement avec les imprimantes 3D ou en CNC:

Coté PC on utilise un logiciel de conception qui produit finalement du codeG
Coté microcontrôleur on utilise un interpréteur de code G (GRBL) pour driver les contrôleurs pap

- Sur PC délocalisé: un programme qui produit un fichier codeG en fonction des paramètres donnés. On copie le fichier sur une clé USB
- Sur la machine: un programme qui interprète le code G sur la clé USB pour driver les controleurs pap

Ce n'est pas une méthode qui pourrait vous convenir ?




Cadrature

ps
Gardez votre PC, un musée va finir par vous en faire une offre intéressante ;-)
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 13:43

Code:

'=================================================
'================= RCOMPTE.BAS ====================
'======= commande de la machine … tailler ========
'============== Sulka 26 mai 2005 ================
CLS
              
              
                PRINT

                CHDIR "\QB45\taillage"

                FILES
              

                PRINT : PRINT : PRINT

                PRINT "               Taillage  ROUE DE COMPTE"

debut:

                PRINT : PRINT


                INPUT "profondeur en 1/10 Š de mm ", prof
                INPUT "Avance en 1/10Š de mm ", av

fichier:

                CLS : PRINT : PRINT : PRINT : PRINT
                PRINT "Roue de Compte     "
                PRINT "  Profondeur =     "; prof / 10; " mm"
                PRINT "      Avance =     "; av / 10; "mm"
                PRINT
                INPUT "On continue O/N    "; R$
                IF R$ = "o" THEN GOTO suite
                IF R$ = "O" THEN GOTO suite
                RUN
suite:
        
                CHDIR "\QB45\TAILLAGE"
                DIM R(400)
                OPEN "i", 1, "RCOMPTE.DAT"
                 d = 0

lecture:                          
                d = d + 1
                INPUT #1, R(d)
                IF EOF(1) = 0 THEN GOTO lecture
                FOR t = 1 TO d
                PRINT R(t); t,
                NEXT t
                PRINT
                PRINT "Nombre de dents    "; d
                PRINT "  Profondeur =     "; prof / 10; " mm"
                PRINT "      Avance =     "; av / 10; "mm"
                CLOSE

                PRINT : PRINT
                COLOR 2


                PRINT "       METTRE LA FRAISE EN MARCHE"
                PRINT : PRINT

                INPUT "On continue O/N  "; R$
                IF R$ = "o" THEN GOTO taille
                IF R$ = "O" THEN GOTO taille
                RUN
              
taille:

        OPEN "COM1:2400,N,8,1" FOR RANDOM AS #1


                FOR t = 1 TO d


                SENS = 1      'avance profondeur
                NP = prof * 200
                MOT = 1
                PRINT #1, "X", SENS, NP, MOT

              
                INPUT #1, R
                PRINT "phase 1"


                SENS = 1      'avance avance
                NP = av * 200
                MOT = 2
                PRINT #1, "X", SENS, NP, MOT

                INPUT #1, R
                PRINT "phase 2"

              
                SENS = 2      'recul profondeur
                NP = prof * 200
                MOT = 1
                PRINT #1, "X", SENS, NP, MOT
                INPUT #1, R
                PRINT "phase 3"

                SENS = 2      'recul avance
                NP = av * 200
                MOT = 2
                PRINT #1, "X", SENS, NP, MOT
                INPUT #1, R
                PRINT "phase 4"

                SENS = 1      'diviseur
                NP = R(t)
                MOT = 3
 
                PRINT #1, "X", SENS, NP, MOT

                INPUT #1, R
                PRINT "taille dent "; t; " termin‚e"

                NEXT t

                PRINT "taillage "; d; " / "; nd; " dents termin‚"

                PRINT "ParamŠtres : ": PRINT
                PRINT "Nombre de dents", nd
                PRINT "profondeur = ", prof / 10; " mm"
                PRINT "Avance = ", av / 10; "mm"


                END

Voici le code Basic qui réside sur mon vieux PC pour le taillage des chaperons comme ICI. Il envoie des infos, via le port série, à une interface que j'ai réalisée avec un PIC 16F84, toujours programmé en Basic. Celle-ci va piloter les moteurs PAP. Lorsque le travail est fini, l'interface va envoyer un acquittement au PC qui va alors envoyer les infos suivantes.

Mon système est très rustique, mais je l'ai conçu moi-même avec les outils que je maîtrisais. A ma connaissance il n'existe pas de machine similaire à portée de ma bourse.

Je fabrique aussi des bijoux en impression 3D, mais pas besoin de "mettre les mains dans le cambouis", j'ai payé mon imprimante 200 € !
Si quelqu'un peut faire un système de division numérique plus "moderne", je suis preneur. La partie mécanique est aussi de ma conception. 
ICI ma première machine à tailler, réalisée il y a une vingtaine d'année.


@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 16:50

OK, je crois comprendre. Mais c'est violent, la dernière fois que j'ai lu du Basic, c'était il y a 40 ans...
Alors ma lecture est imparfaite.
Il y a une passe de lecture du fichier RCOMPTE.DAT l'on trouve certainement les écartements du chaperon, et une phase de taille qui produit des lignes de triplets "SENS, NP, MOT" vers le port série c'est bien ça ?
Je n'ai pas compris la lecture depuis ce port série... l'attente d'un retour de fin de travail ???
La programmation du PIC a dû être assez sportive.




Citation :
Mon système est très rustique, mais je l'ai conçu moi-même avec les outils que je maîtrisais. A ma connaissance il n'existe pas de machine similaire à portée de ma bourse.

Si, il me semble qu'il est plus simple et pas plus couteux de faire la même chose à partir d'un programme écrit dans un langage de programmation générique. Les amis ont dit Python, pourquoi pas ? Tout est bon: C, Java, Python et même Basic !
Le programme produit à peu près la même chose, mais par exemple en GCode (qui remplace favorablement les
triplets maison envoyés au PIC).
Si vous voulez garder vos vieilles habitudes de goto, utilisez C, il admet aussi les goto et vous serez peu dépaysé.

Une méthode bien plus simple:

On fait le fichier GCode avec un bête programme sur le PC qui se trouve dans le salon. On l'enregistre dans une carte SD branchée sur une petite prise USB par exemple.

De l'autre coté, dans l'atelier, une machine de moins de 100€ avec Arduino, lecteur de carte SD, drivers de pap qui lit ce fichier et conduit les moteurs.

Vous avez toujours un fichier par travail et plus le gros PC en liaison série avec la machine.

L'idée de garder le "PC" en liaison série avec la machine, mais de le remplacer par un RaspberryPi, me semble moins évidente et plus couteuse.

Cadrature

PS
Mais je répète que l'ensemble est réalisable maintenant dans un seul appareil, sous un même "sketch" sans PC et avec un bête Arduino. C'est encore plus simple et pas beaucoup plus couteux.
Par exemple l'utilisation d'un écran tactile LCD TFT de quelques pouces qui permet de programmer le chaperon confortablement, ou les autre programmes de taille prévus.
Il serait bien-sûr possible de sauvegarder et de retrouver les différents fichiers dans une carte mémoire et même de les copier vers un PC.

En général ce n'est pas l'option choisie par les concepteurs CNC car les logiciels de conception qui produisent le GCode sont sophistiqués et doivent être utilisés sur des PC.
C'est l'option luxe que j'évoquais (un logiciel à découper les chaperons tout bien beau qui produit un fichier gcode ;-)
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 17:42

En fait, pour des tailles spéciales je donne un nombre plutôt qu'un nom, dans le cas de la roue de compte je l'ai appelé 999, comme j'ai peu de xchance d'avoir une roue de 999 dents à tailler.

"SENS, NP, MOT" = SENS sens de rotation (1 ou 2).  NP = nombre de pas que doit exécuter le moteur et MOT = moteur qui doit exécuter l'action ( dans mon cas c'est 1, 2 ou 3.


J'aurais puy utiliser le port imprimante et adresser directement les drivers moteur, mais c'était beaucoup trop compliqué pour moi.


Concernant le PIC 16F84, je l'ai programmé avec Pic Basic Compiler en Basic, simplement. 


Dès que j'ai maitrisé les moteurs PAP, à la fin du siècle dernier, j'ai eu l'idée de fabriquer une machine à tailler. Une de mes élucubrations :








L'avantage avec l'Arduino ou la Raspberry,, c'est qu'il n'a a plus besoin d'interface, on peut adresser directement les drivers. La Raspberry a aussi l'avantage d'avoir un port HDMI, pour connecter un écran et un lecteur de carte mémoire.


Ce que je cherche, c'est simplement un bout de code qui aille lire des données dans un fichier de la carte SD, les mémorise puis envoie des impulsions sur le port GPIO afin de piloter un moteur PAP. Après je devrais me débrouiller, mais si on est plusieurs, ce serait plus rigolo !


@+
JC
Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 18:53

Citation :
L'avantage avec l'Arduino ou la Raspberry,, c'est qu'il n'a a plus besoin d'interface, on peut adresser directement les drivers. La Raspberry a aussi l'avantage d'avoir un port HDMI, pour connecter un écran et un lecteur de carte mémoire.


Ce que je cherche, c'est simplement un bout de code qui aille lire des données dans un fichier de la carte SD, les mémorise puis envoie des impulsions sur le port GPIO afin de piloter un moteur PAP. Après je devrais me débrouiller, mais si on est plusieurs, ce serait plus rigolo !


@+
JC

Très amusant le machin qui tricote :-)

La situation avec le PIC16F84 était exactement la même que celle avec Arduino (un Arduino n'est qu'un microcontrôleur
ATMega328p avec des trucs pour l'alimenter simplement et un port USB pour interfacer facilement UART). 
Bref, une sortie état haut vers un driver de PAP, c'est en rien différent de ce que vous aviez fait.
L'intérêt de l'Arduino, c'est la facilité de programmation. Pour RaspberryPi, on n'a pas un microcontroleur,
mais un vrai processeur et un système d'exploitation et donc la possibilité d'avoir des logiciels, des accès mémoire
plus conséquents et un écran. Mais encore faut-il programmer ce qu'on voit à l'écran...

Pour le bout de code, je ne dois toujours pas comprendre le besoin. Je dois être un peu bouché...


Cadrature
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMar 17 Jan 2023 - 23:06

Cadrature a écrit:

Cadrature

Toutes mes excuses, il semble que je me sois mal expliqué.

Mes souhaits : remplacer mon système PC interface à PIC par une Raspberry et trouver un génie bienfaiteur qui fera le code qui va bien.

En attendant, si quelqu'un pouvait me faire un petit bout de code pour m'aider à "mettre le pieds à l'étrier". 
Ce code, en Python, devrait lire les valeurs dans un fichier situé sur la carte SD. Par exemple 1, 4, 2, 5,  mémoriser, faire clignoter une LED de la première valeur, puis de la deuxième après appui sur une touche, etc.
Cela me permettrait de mieux comprendre le fonctionnement de la Raspberry et de Python. A partir de là je devrait pouvoir adapter à mes besoins.

Je maîtrise assez bien l'environnement Arduino ci-dessous une bobineuse que j'ai fabriquée :



Un autre projet de pendule en attente, avec un ATtiny 85 (mini Arduino):



Ici un période mètre pour balancier :

Revenir en haut Aller en bas
https://sulka.fr En ligne
Cadrature
Animateur



Nombre de messages : 781
Localisation : France
Date d'inscription : 07/07/2016

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyMer 18 Jan 2023 - 8:48

Bonjour,

No problem.

A mon avis vous en savez largement assez pour ce que vous voulez faire.
Vous avez fait bien plus compiqué avec Arduino, en électronique et même en programmation
(C++, vous pouvez oublier Basic ;-).

Si vous maintenez l'usage du RaspberryPi ; vous pouvez suivre cette vidéo:
https://www.youtube.com/watch?v=4hWG9X6kstY&t=638s

Il a un RaspberryPi installé avec Linux et fait clignoter une LED depuis GPIO.
Que du bonheur, d'autant qu'il donne le code Python ! :-)

Il s'en sert avec une connexion ssh (c'est le plus simple car on n'a besoin que de connecter la RaspberryPi
avec un câble RJ45 à son ordinateur ou à sa box, ou directement en wifi si on possède une antenne).
Il faut installer un serveur ssh (sudo apt install open-sshserver; sudo systemctl enable ssh), configurer
une clé publique, l'exporter, etc.
La documentation est faite pour ça, mais à mon avis c'est plus sur ces problèmes de configuration
et d'installation que vous allez galérer, pas sur l'installation d'une résistance pullup sur un bouton
ou une capacité de découplage sur un driver pap. C'est plutôt ces problèmes qui se posent aux autres
et que vous savez faire, en plus de votre maîtrise en horlogerie bien-sûr.
Donc partager avec qqun qui fait déjà des montages I/O sur son RaspberryPi me semble une bonne solution.
Dommage que je sois si loin et pas à la retraite :-)

Mais je répète (je suis très têtu, désolé) : ce qu'il fait avec le GPIO d'un RaspberryPi de plus de 100€
pour contrôler des moteurs ou faire clignoter des leds peut être fait exactement de la même manière (en plus simple)
avec un microcontôrleur monté sur un Arduino de 15€.
Le seul intérêt du RaspberryPi serait dans le logiciel dont vous n'avez pas parlé (celui qui permet de programmer
plein de divisions avec une belle interface).


Bonne journée
Cadrature
Revenir en haut Aller en bas
En ligne
Torzio
Membre Hyper actif
Torzio


Nombre de messages : 579
Age : 75
Localisation : Tout près du centre de gravité de la France
Date d'inscription : 12/05/2022

Diviseur numérique Empty
MessageSujet: Re: Diviseur numérique   Diviseur numérique EmptyDim 22 Jan 2023 - 13:06

Bonjour Cadrature,

Mon système de diviseur est extrêmement simple. Il faut exactement 28800 pas moteur (de mémoire) que l'on va nommer NPM, pour faire un tour exact de broche. 

Donc, pour tailler une roue de 33 dents on va diviser 28800 par 33, ce qui fait 872,7272727272727. Problème, on a besoin de nombres entiers. Un petit programme va intercaler de temps en temps 1 pas supplémentaire pour arriver à une suite de nombres entiers pour arriver à exactement un tour complet. L'erreur sera minime et largement acceptable mécaniquement. Pour s'en assurer il suffit de diviser le périmètre de la roue par le NPM pour 1 tour exact.
Cette suite de nombres correspondant au nombre de pas pour la division de chaque dent. Dans le cas présent, 872 ou quelque fois 873 pas vont faire tourner la roue à tailler d'1/33 de tour. Ces suites de nombres sont contenu dans des fichiers textes. 33 dents, va avoir pour nom de fichier 33.TXT.
Au lancement, le Raspberry va demander le nombre de dents, On va renseigner 33, il va alors ouvrir le fichier 33.TXT et mémoriser les valeurs qu'il contient. Ensuite, avec notre accord (je passe quelques autres infos) il va commencer à tailler les dents en schématisant.

Là ou je bute, c'est pour l'écriture du code pour transposer mon principe écrit en Basic sur PC sur Raspberry avec Python.

@+
JC.
Revenir en haut Aller en bas
https://sulka.fr En ligne
 
Diviseur numérique
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Diviseur? Proxxon UT 400 CNC
» Faire un plateau diviseur pour tour LORCH
» Et l'affichage numérique ?
» La rupture numérique ...
» La photo numérique macro...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUMAMONTRES :: Forum général de discussions horlogères :: Forum de discussions sur les montres vintages et sujets techniques-
Sauter vers: