Aide Besoin d'aide pour lire une carte SD avec Arduino

  • Auteur de la discussion JCS
  • Date de début
J

JMe87

Apprenti
Bonjour a tous,
reponse a Jean-Claude par message prive pour ne pas polluer.
Bonne journee a tous
Jacques
 
J

jpbbricole

Compagnon
Salut JCS

Hier j'ai encore utilisé mon diviseur à PIC
Question de curieux, comment fonctionne ta machine à PIC, tu lui "envoies" toutes les dents à faire ou dent après dent, aurais-tu une petite explication.

Bonne soirée
Cordialement
jpbbricole
 
J

JCS

Compagnon
Jpbbricole,

voici le principe de ma machine à tailler à PIC :

Pour chaque nombre de dents, j'ai un fichier. Cela me semble être la seule méthode viable pour qu'après un tour complet de broche, on se retouve
exactement au même point, pour tous les nombres de dents. Cela permet aussi de faire des taillages spéciaux, comme par exemple une roue de compte (ou chaperon) sulka.fr/rcompte ,came et autres.

Au lancement du programme, le PC demande le nombre de dents (pour un taillage clasique), il charge en mémoire le fichier correspondant, il demanade
la profondeur d'engagement de la fraise et l'avance. Il envoie au PIC, le N° du moteur PAP à actionner, le sens et le nombre de pas à effectuer. Le PIS va commander les drivers en conséquence.
Une fois l'action terminée le PIC envoie un acquiescement afin que le PC envoie une nouvelle commande, ainsi de suite jusqu'à ce que ce soit fini.

Une solution serait d'envoyer les infos à l'Arduino, du PC, mais je ne sais pas faire :cry:

Bonne soirée.

JC.
 
Dernière édition:
J

jpbbricole

Compagnon
Une solution serait d'envoyer les infos à l'Arduino, du PC, mais je ne sais pas faire :cry:
Merci pour les informations, intéressant. Pour l'envoi d'infos, c'est assez simple, je te fais un exemple.

Bonne soirée
jpbbricole
 
J

JCS

Compagnon
Si ça peut t'aider, je peux t'envoyer mon programme en Basic.

JC.
 
J

JCS

Compagnon
Et voilà, c'est juste pour 1 axe, la division, pour faire simple.
Si besoin, je t'envoie pour les 3 axes :


'===================================================
'================== DIVISEUR.BAS ===================
'============ commande du diviseur LORCH ===========
'================ Sulka JUIN 2010 ==================
CLS


PRINT

CHDIR "\QB45\LORCH"

FILES


PRINT " Programme pour DIVISEUR LORCH 37800 pas/tour"

PRINT " DIVISEUR SEUL TAILLAGE MANUEL "

debut:
PRINT " V1006"
PRINT : PRINT
INPUT "Nombre de dents ", nd


IF nd < 10 THEN st = 1: GOTO fichier
IF nd < 100 THEN st = 2: GOTO fichier
IF nd < 1000 THEN st = 3: GOTO fichier
IF nd < 10000 THEN st = 4: GOTO fichier

fichier:

f$ = STR$(nd): f$ = RIGHT$(f$, st)
f$ = "L" + f$ + ".dat"



PRINT
INPUT " Pret ? O/N ", R$
IF R$ = "o" THEN GOTO suite
IF R$ = "O" THEN GOTO suite
RUN
suite:

CHDIR "\QB45\LORCH"
DIM R(400)
OPEN "i", 1, f$
d = 0

lecture:
d = d + 1
INPUT #1, R(d)
IF EOF(1) = 0 THEN GOTO lecture
PRINT


CLOSE

taille:

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

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

PRINT "taille dent "; t; "sur "; d
dent: Input " Tapez s pour dent la suivante ";R$
IF R$ = "s" THEN GOTO suit
IF R$ = "S" THEN GOTO suit
goto dent
suit:
NEXT t

PRINT "taillage termine"
PRINT


CLOSE
'nouvelle passe:

INPUT "Nouvelle passe ? O/N "; P$
PRINT

IF P$ = "o" THEN GOTO npasse
IF P$ = "O" THEN GOTO npasse

END

npasse:

print
INPUT " On continue O/N "; P$
PRINT

IF P$ = "o" THEN GOTO taille
IF P$ = "O" THEN GOTO taille

END

@+
JC.
 
J

jpbbricole

Compagnon
Salut JCS

Programme facilement adaptable pour envoi sur un Arduino.
C'est quel Basic?
Connais-tu le Basic VBA (macro Excel)?

Cordialement
jpbbricole
 
J

JCS

Compagnon
Salut JP,

C'est du GW-Basic, que j'ai appris dans les années 80, avec le ZX81 et le Commodore 46, puis PC. J'avais encore le neurone vif à cette époque !
J'ai acheté un bouquin sur VBA, mais je n'ai pas été plus loin...:cry:
Le programme que j'ai montré est celui qui est dans mon vieux PC avec un port série . Je crois que j'ai retrouvé celui qui est dans le PIC, je vais essayer de te l'envoyer aujourd'hui.
Je n'ai pas réussi à le faire fonctionner sous USB.

@+
JC.
 
J

jpbbricole

Compagnon
C'est du GW-Basic, que j'ai appris dans les années 80, avec le ZX81 et le Commodore 46,
Tu est battu, de peu! moi c'était en 1977 avec un Tandy TRS-80 et basic Microsoft:smileyvieux:

J'ai pas mal pratiqué le PIC Microchip avec Picbasic PRO.
Je pourrais faire marcher l'Arduino avec ton programme en GW-Basic avec une toute petite modification, dans un premier temps.

Bonne journée
jpbbricole
 
J

JCS

Compagnon
JP,

Ce qui me pose problème c'est d'envoyer les infos à l'Arduino sur le port USB à partir de GW Basic. J'ai essayé avec un convertisseur série <=> USB, mais je n'ai pas réussi de façon satisfaisante.
Concernant le sketch Arduino, cela ne devrait pas me poser problème. C'est simplement un problème de communication pour mettre mon PC en communication avec Arduino,
afin de lui envoyer et recevoir des infos.
J'attends toujours mon lecteur de carte SD, pour tenter de me passer du PC.
Une solution serait peut-être aussi de piloter l'engin avec un Raspberry, j'ai commencé à bidouiller avec, ça a l'air très puissant !
On peut alors mettre le fichier sur la clé USB et y brancher un petit moniteur, le pied !

Peut-être serait-il intéressant d'ouvrir une discussion dédiée...

Mon système fonctionne parfaitement avec un PIC 16F84, mais pour le fun, cela me plait d'essayer de faire mieux et dans l'air du temps.


Je ne peux plus espérer le "5 lignes" de Jacques. Il m'a dit que j'avais causé vilain et que j'en serai privé :oops:

@+
JC.
 
Dernière édition:
J

jpbbricole

Compagnon
Ce qui me pose problème c'est d'envoyer les infos à l'Arduino sur le port USB
Oui, j'avais pas tout compris du premier coups:smt021, j'ai constaté tout ça, ce matin, en faisant des essais avec Qbasic.
mais pour le fun, cela me plait d'essayer de faire mieux et dans l'air du temps.
Surtout sur de si belles machines!
Uns solution, vu le prix des tablettes Windows actuelles, avec un basic plus moderne comme le gratuit Visual Basic Express ou la solution Excel qui permet de mixer commandes, calcul et basic...
Ce qui permettrai, dans un premier temps ou définitivement, de garder ton PIC.
Le tout gros avantage de la solution Excel est que la création d'un interface utilisateur des plus fun est super facile à créer contrairement aux autres logiciels de programmation où il faut tout construire.
Dès que possible, je te fais un exemple.

Cordialement
jpbbricole
 
J

JCS

Compagnon
Uns solution, vu le prix des tablettes Windows actuelles, avec un basic plus moderne comme le gratuit Visual Basic Express ou la solution Excel qui permet de mixer commandes, calcul et basic...

Ce serait une excellente solution ! Même avec un mini PC. Une fois résolu le problème de communication il n'y aura plus d'obstacle.
Je vais me documenter sur Visual Basic Express.

Concernant "ma belle machine", c'est une simple Proxonn, avec un diviseur home made.

Merci pour ces infos.

JC.
 
J

JMe87

Apprenti
Bonjour a tous,
etant, une nouvelle fois, pris a parti par Jean-Claude, me voici oblige de revenir.
Il a manifestement des problemes pour comprendre le francais.
Je lui ai dit que c'etait possible de programmer la division avec un Arduino et que cela ne prendrait pas plus de 5 lignes. Je n'ai pas pris d'engagement.
Par message prive je lui ai dit que je n'avais pas d'interet a la chose et que cela ferait double emploi avec le lien que je j'ai publie ici.
Le 29 mars 2017 il a publie sur Youtube une video sur un periodemetre. Ici www.youtube.com/watch?v=o5xcNRws48g
Il a donc a sa disposition tout ce qu'il faut pour faire un essai et constater l'evolution de la technique. 20 minutes a tout casser pour voir ce qu'il est possible de faire avec un Arduino tout seul.
Desole mais je ne peux par faire plus.
Jacques.
N.B.: il n'y a pas pire sourd que celui qui ne veux pas entendre.
 
J

JCS

Compagnon
Salut Jacques,

Il semble effectivement que l'un de nous deux doit avoir un gros problème de compréhension.
La vidéo citée fait partie de la discussion :https://www.usinages.com/threads/ajuster-la-frequence-quartz-dun-arduino.99810/

Cela n'a rien à voir avec le sujet présent, sauf qu'il utilise un Arduino.

Comme je tente de l'expliquer depuis 10 ans sur certains forums, pour faire un diviseur numérique précis, il ne suffit pas de diviser bêtement
le nombre de pas pour un tour de broche par le nombre de dents...

@+
 
V

vres

Compagnon
Ce qui me pose problème c'est d'envoyer les infos à l'Arduino sur le port USB à partir de GW Basic. J'ai essayé avec un convertisseur série <=> USB, mais je n'ai pas réussi de façon satisfaisante.

Je ne comprend pas L'Arduino c'est déjà sur un port série :belzedar: avec un adaptateur USB intégré c'est vrai, mais c'est toujours un port série pour le PC.
 
S

speedjf37

Compagnon
Je ne comprend pas L'Arduino c'est déjà sur un port série :belzedar: avec un adaptateur USB intégré c'est vrai, mais c'est toujours un port série pour le PC.

Bonjour,

Comme le dit CNCSERV l'Arduino c'est déjà un port série (celui qui sert au téléchargement et au pseudo debug).

Par contre pour pouvoir l'utiliser avec un logiciel indépendant il faut que l'IDE Arduino (ou autre logiciel de téléchargement ) soit fermé afin de libérer le port.

Il faut aussi bien entendu que les paramètres soient compatibles (vitesse bauds parité nb bits).

Cordialement JF
 
J

JMe87

Apprenti
Bonjour a tous, Jean-Claude,

desole mais c'est toi qui est dans l'erreur depuis 10 ans.
1) je lis ton programme basic, tu definis 37800 pas par tour. Manifestement tu utilises les fractions de pas. Erreur, impossible de stabiliser un moteur pas-a-pas sur une fraction de pas. On ne peux utiliser, pour un diviseur, que des pas entiers mais on peux passer de l'un a l'autre en utilisant les fractions si necessaire (mais parfaitement inutile ici).
2) la precision : soit a tailler une roue de, mettons, 25mm de diametre, avec ton "calcul" tu "esperes" positionner la fraise par rapport a la roue avec une resolution de (25 * 3.14)/37800 = 0.002077 mm soit 2 microns! Soit 1/25 de l'epaisseur d'un cheveux!. En esperant qu'il n'y a pas de jeu dans le diviseur, ce qui est impossible sinon il ne tournerait pas, crois-tu que cette precision est indispensable pour realiser, reparer, modifier une horloge du 17/18e siecle.
3) ma proposition (avec des arrondis, des pas entiers, un diviseur 40 tours pour 360° et un moteur 200 pas est de ((25 * 3.14) / 8000) / 2) = 0.004906 mm soit 5 microns. C'est beaucoup trop precis mais je ne peux pas faire moins, j'ai deja le diviseur et le moteur.
Tout ca pour ca !!
Jacques
 
J

JCS

Compagnon
Vous avez en théorie raison !
Le problème, en pratique, est que QBasic ne peux adresser que Com1 et Com2 et l'USB est au dessus :oops:
J'avais essayé avec JustBasic, sensé adresser au dessus de 2, mais sans succès.

@+
JC.
 
V

vres

Compagnon
Com1 et Com2 et l'USB est au dessus
Tu peux choisir le port Com dans le gestionnaire de périphérique. Il va peut être te dire qu'il est déjà utilisé mais ce n'est pas grave... sauf si tu as déjà 2 ports Com physiques sur le PC
 
J

jpbbricole

Compagnon
Bonsoir à tous

Il y a un moyen d'avoir le port COM USB en COM1 ou COM2:
Connecter l'Arduino
Dans gestionnaire de périfériques, dérouler Ports(COM et LPT)

Dans propriété du port COM2 (par ex.)
Dans Paramètres du port/Avancé...
Changé le numéro du port COM en 8 (par ex.)

Faire la même chose avec le port COM de l'Arduino et le mettre en COM2

Ca peut, éventuellement marcher...

Cordialement
jpbbricole
 
J

JCS

Compagnon
Jacques,

desole mais c'est toi qui est dans l'erreur depuis 10 ans.
1) je lis ton programme basic, tu definis 37800 pas par tour. Manifestement tu utilises les fractions de pas. Erreur, impossible de stabiliser un moteur pas-a-pas sur une fraction de pas. On ne peux utiliser, pour un diviseur, que des pas entiers mais on peux passer de l'un a l'autre en utilisant les fractions si necessaire (mais parfaitement inutile ici).

C'est toi qui me désole,

- A me harceler depuis 10 ans. Mes 3 machines fonctionnent parfaitement bien, ne t'en déplaise. Je n'ai aucune intention d'imposer et je n'ai rien à vendre. Je cherche simplement à faire plus "moderne", pour le fun.

- Tu ne sais pas lire ? Je n'arrête pas d'expliquer le principe que j'ai adopté. Ici, si tu prends le temps de tout lire tu comprendras peut-être, enfin ! :
http://sulka.fr/diviseur_numerique/cn.pdf

- Dans le programme cité :
PRINT " Programme pour DIVISEUR LORCH 37800 pas/tour"

PRINT " DIVISEUR SEUL TAILLAGE MANUEL "

L'instruction PRINT m'indique simplement quel diviseur utiliser, afin d'éviter les erreurs !
En aucun cas la valeur citée entre dans le programme !!!!

- Tu me fais penser à ces politiques que l'on voit en ce moment à la télé, beaucoup de paroles, de promesses, de grandes théories, mais qu'y a t il derrière ???

- Si tu as fait un truc qui fonctionne bien, en bon utilisateur d ce forum, ouvre une discussion et partage ! La concurrence est saine !

Bon W-E à tous.

JC.
 
Dernière édition:
J

jpbbricole

Compagnon
Salut JCS

Pour que tu puisses te faire une idée de ce que l'on peut faire, pour ton diviseur, avec une feuille Excel et quelques macro.
Ce n'est qu'une "fiction" imaginée par un non pratiquant de la chose (diviseur)!
Le servo image le mouvement de la fraise.

La commande
upload_2017-4-24_20-45-19.png


J'ai installé Visual Basic Express et ai fait les premiers essais de communications avec un Arduino, c'est assez prometteur. Ca pourrai remplacer Excel.

Cordialement
jpbbricole
 
J

JCS

Compagnon
Salut JP,

Merci pour ces infos. Je vais essayer d'étudier cela de près ce W-E. Toutefois, je constate que le moteur fait un petit pas en arrière à la division 2 et 3, je crois et aussi qu'il manque quelques pas pour un tour complet. Je pense qu'il s'agit de quelques réglages, le principe est très intéressant.

J'ai reçu de nouveaux lecteurs de carte SD. que je vais essayer aussi ce W-E, s'il est pluvieux...

@+
JC.
 

Sujets similaires

M
Réponses
185
Affichages
24 843
wika58
wika58
Haut