GY-521 / MPU-6050
The MPU6050 IMU has both 3-Axis accelerometer and 3-Axis gyroscope integrated on a single chip.
-> 3 axis accelerometer :: En bref, il peut mesurer l'accélération gravitationnelle le long des 3 axes et en utilisant quelques mathématiques de trigonométrie, nous pouvons calculer l'angle auquel le capteur est positionné. Ainsi, si nous fusionnons ou combinons les données de l'accéléromètre et du gyroscope, nous pouvons obtenir des informations très précises sur l'orientation du capteur.
-> 3 axis gyroscope :: Le gyroscope mesure la vitesse de rotation ou le taux de variation de la position angulaire dans le temps, le long des axes X, Y et Z. Il utilise la technologie MEMS et l'effet de Coriolis pour la mesure, mais pour plus de détails, vous pouvez consulter mon tutoriel intitulé Comment fonctionnent les capteurs MEMS. output : Les sorties du gyroscope sont exprimées en degrés par seconde. Pour obtenir la position angulaire, il suffit donc d'intégrer la vitesse angulaire.
I2C protocol : A5 -> SCL A4 -> SDA VCC (+) GND (-)
![[6_steppers_bb.svg]]
https://www.omc-stepperonline.com/fr/3-pieces-serie-e-nema-17-bipolaire-42ncm-59-49oz-in-1-5a-42x42x38mm-4-fils-avec-1m-cable-connecteur-3-17he15-1504s https://www.steppermotor.fr/goods-974-Moteur-pas-%C3%A0-pas-Nema-17-s%C3%A9rie-E-bipolaire-5-17HE15-1504S-18-degr%C3%A9s-42Ncm-15A-4-fils.html
-> Série E Nema 17 Bipolaire 42Ncm(59.49oz.in) 1.5A 42x42x38mm STEPPERONLINE 17HE15-1504S
-> Spec Electrique:: Angle de pas : 1.8° Courant évalué(1) : 1.5A Résistance/phase : 2.3 Ohms Couple de maintien : 42Ncm
-> Spec physique:: Longeur de l'arbre : 23.5mm Diamètre de l'arbre : 5mm Type d'arbre de sortie : D
-> Wiring :: The wires from one coil get connected to 1A and 1B and the other to 2A and 2B. The polarity doesn't matter. RED -> B- BLU -> A- GRN -> B+ BLCK -> A+
A+ | A- | B+ | B- | ||
---|---|---|---|---|---|
Black | Blue | Green | Red |
A+/A- (same coil) B+/B- (same coil) according to pdf
-> Vref = Imax 8 Rs Un A4988 avec des Rsense de 0.2 ohm (Marquage R200) et un moteur avec un Imax à 1.5A, Inom = 1.06A : Vref = 1.06 8 0.1 = 0.84V. (70%)
-> Vref = Imax / 2 Un DRV8825 avec des Rsense de 0.1 ohm (Marquage R100) et un moteur avec un Imax à 1.5A, Inom = 1.06A : Vref = 1.06 5 0.1 = 0.53V. (70%)
-> Vref = (Irms 2.5V) / 1.77A Vref = (1.06 2,5) / 1.77 = 1.49V (70%) FAQ pinout and spec MAX current -> 1.77A
Power supply for 6 steppers motors Quelle alimentation pour alimenter 6 steppers motor qui fonctionnent en même temps ?
RESSOURCES :: https://www.omc-stepperonline.com/support/how-to-choose-a-power-supply-for-my-stepper-motor
COMMENT CHOISIR SON ALIM ::
Ci-dessous le tableau sont la tension recommandée pour les moteurs pas à pas, vous pouvez choisir une conduite une bonne tension selon votre application.
taille du moteur | tension d’entraînement |
Nema 8~Nema 17 | 12~24VDC |
Nema 23, Nema 24 | 24~48VDC |
Nema 34 | 48~100VDC/30~70VAC |
Nema 42~Nema 52 | 110~220AC |
Par exemple: 3 unités de moteurs avec 3A courant nominal chacun et la tension d’entraînement est 36V, la
puissance estimée est d’environ: 33A36V*1.2=388.8W. Ainsi, vous pouvez choisir un fournisseur de
puissance 36V 400w
Veuillez noter: la formule est juste une valeur d’estimation de puissance, condition de
travail différente aura besoin de puissance différente. Par exemple, dans un système à 3 axes, pas tous les 3
moteurs fonctionnant en même temps, et pas tous les 3 moteurs fonctionnant avec la charge maximale etc. Dans
cette condition, la valeur de puissance pourrait être inférieure à la valeur par laquelle calculée par formule.
=> Pour Série E Nema 17 Bipolaire 42Ncm P = 6 x 1,5 x 24 x 1,2 P = 259,2 W > 300W
Les rouleaux mesurent
Echanges entre le 7 et le 8janv 24, récup le 18_19 janv
Bonjour,
Meilleurs voeux pour cette belle année 2024 !!
Dans le cadre d'un festival artistique qui se
déroulera du 3 au 5 mai 2024 dans le quartier de Rosendael. Nous aimerions savoir s'il était possible de
récupérer des rouleaux en cartons d'impressions vierge, des papiers destinés à être jeter pour la création
d'une oeuvre artistique pour le festival Confluence.
En effet, ayant une pratique artistique travaillant
le réemploi et nous aimerions s'il était possible venir récupérer vos déchets pour la création d'une
oeuvre .
Merci pour votre réponse,
Cordialement,
Imprimerie PACAUD devis@pacaud.com
J’ai ici à l’imprimerie des tubes cartons rigides marrons . J’en ai une bonne vingtaine dont je dois me
débarrasser. (différentes dimensions 1.37 m – 1.5 m – 1.27 m)
Gaëtan.L
Tester les 6 moteurs pas à pas avec l'alim trouvé au dessus Faire fonctionner les 6 moteurs en même temps avec des vitesses différentes
Test d'un moteur avec un driver DRV8825 DOC branché à l'alimentation.
Teste avec le module pour moteur pas à pas, je n'ai pas réussi à le faire fonctionner correctement, le moteur broute.
J'ai pu faire fonctionner correctement le moteur avec un driver DRV8825 branché à l'alimentation et le code simple-stepper-without-lib sur une arduino uno.
Branchement de 6 drivers sur une breadboard avec des capacitors de 330uF-35V ::
Mauvais branchements
Useful to set a zero position :: setCurrentPosition(0); Warning: Do not call this function while a move is in process!
Une autre est [runToPosition()], qui appelle simplement [run()] jusqu'à ce que la position cible soit atteinte - c'est-à-dire qu'elle bloque jusqu'à ce que la position soit atteinte.
Résumons le fonctionnement d'AccelStepper. Lorsqu'un objet AccelStepper est créé, maxSpeed et acceleration sont fixés à 1,0. currentPosition et targetPosition sont fixés à 0, et speed est fixé à 0,0. Dans le cas le plus simple, pour commencer le mouvement, setSpeed() doit être appelée pour fixer une vitesse pour les appels ultérieurs à runSpeed(). En utilisant les valeurs par défaut, la vitesse sera limitée à 1,0 pas par seconde. Appelez maintenant runSpeed() aussi souvent que possible, généralement dans la boucle principale. Le moteur fonctionnera continuellement à une vitesse constante. SetSpeed() peut être appelé avec un nombre négatif pour provoquer un mouvement dans la direction opposée (setMaxSpeed() n'a pas besoin d'être appelé, mais la vitesse sera limitée à 1 pas par seconde ou moins).
Plus on augmente les microstep plus le moteur tourne lentement, et moins il est bruyant. Pour avoir une vitesse
équivalente il faut augmenter setSpeed()
.
NO MICROSTEPPING FULL STEP
Bcp de vibrations (donc de bruit)
setMaxSpeed
1000 to 3500 -> ok max
setSpeed
50 to 50 -> trop de vibrations
setSpeed
1000 to 1600 -> OK 1600 = superFast
MICROSTEPPING SET TO 1/16
Peu de vibrations
-> Feedback motor.speed() and motor.currentPosition()
setMaxSpeed
1000 to 3500 -> ok max
{setSpeed} 50 to 1000 -> a-coup
{SetSpeed} 1000 to 3500 -> OK
MICROSTEPPING SET TO 1/32
Peu de vibrations
-> Feedback motor.speed() and motor.currentPosition()
setMaxSpeed
1000 to 3500 -> ok max
{setSpeed} 50 to 1500 -> a-coup
{SetSpeed} 1500 to 3500 -> OK
A4988 et DRV8825 semblent équivalent en terme de vitesse pour les mêmes valeurs données. LE TMC2209 est beaucoup poins rapide pour les mêmes valeurs (divisé par min 4), mais semble plus stable.
Use setMaxSpeed(), then setAcceleration(), then moveTo() or move() to set a target, then call run() repeatedly to
accelerate the motor, move to the target, and decelerate to a stop.
Only one of the run functions needs to be
called in the loop.
WORKS
setup(){
setMaxSpeed(1500);
setAcceleration(400);
moveTo(position);
}
loop(){
if(digitalRead(sensor)){
while(motorA.distanceToGo() > 0 && motorB.distanceToGo() > 0 && motorC.distanceToGo() > 0 && motorD.distanceToGo() > 0 && motorE.distanceToGo() > 0 && motorF.distanceToGo() > 0){
motorA.run();
motorB.run();
motorC.run();
motorD.run();
motorE.run();
motorF.run();
}
}
}
ADD
motorA.moveTo(-positionA);
motorB.moveTo(-positionA);
motorC.moveTo(-positionA);
motorD.moveTo(-positionA);
motorE.moveTo(-positionA);
motorF.moveTo(-positionA);
while(motorA.distanceToGo() < 0 && motorB.distanceToGo() < 0 && motorC.distanceToGo() < 0 && motorD.distanceToGo() < 0 && motorE.distanceToGo() < 0 && motorF.distanceToGo() < 0){
motorA.run();
motorB.run();
motorC.run();
motorD.run();
motorE.run();
motorF.run();
}
TO RUN IS THE OPPOSITE DIRECTION AFTER
TODO ::
check exemple accelStepper multiStepper lib
currentPosition()
et speed()
pendant le sketch