Le but de ce projet a été aussi bon marché que j’ai pu éventuellement faire un traceur de 3 axes. En supposant que vous avez déjà un Arduino il fini par me coûte 30 $ pour construire. S’il vous plaît comprendre que les moteurs qui sont à l’intérieur de CD-ROM ne sont pas fortes. Si le stylo se résume trop loin, elle s’arrête les moteurs de déplacement. Cela n’endommagera pas les moteurs mais j’ai pensé qu’il serait utile de mentionner. Mais si vous cherchez un moyen peu coûteux d’expérimenter avec 3 axes de cela pourrait être pour vous.
Le programme lit binaire 0 & 1 s stockés dans un tableau word en mode de ligne/colonne & puis commande les moteurs en conséquence. Vous pouvez modifier ce qu’il imprime en changeant les données dans le tableau « l’image ». C’est assez basique et ne devrait pas être trop difficile à comprendre ou modifier pour s’adapter à vos désirs mieux.
J’ai inclus le schéma que j’ai suivi pour le câblage de la H-Bridge Motor Drivers (SN754410NE). Je m’excuse de ne pas avoir un schéma complet, je n’ai pas trouvé un moyen facile pour les rendre. J’ai utilisé un régulateur 5V de LM317 pour chaque pont en H, mais honnêtement depuis, j’ai utilisé un ordinateur alimentation me donner 5V vous ne devriez pas même besoin du LM317. Vous pourriez juste prendre le 5v de l’alimentation électrique et fil à chaque pont en H. Dans mon cas, j’ai construit le tableau de commande avant de choisir une alimentation.
Partie liste quantité coût Total
H-Bridge Motor Driver 1 a (SN754410NE) 3 $2,35 $29,25
Régulateur de tension (LM317) 3 ~$1.95
10uF/25V condensateur 3 ~$0.45
Used CD-ROM 3 ~$5.00
Arduino Duemilanove/UNO (cet indestructible suppose que vous avez déjà un);)
Si vous n’avez pas déjà un Arduino, le coût total sera plus proche de 60,00 $.
Début
#include < Stepper.h >
changer cela au nombre d’étapes sur votre moteur
#define étapes 200
Créez une instance de la classe de moteurs, spécifiant
le nombre d’étapes du moteur et les broches il a
attaché à
Stepper stepperX (marches, 6, 7, 8, 9) ; plate-forme (haut) x
StepperY pas à pas (étapes, 2, 3, 4, 5) ; plate-forme de y (en bas)
Stepper stepperZ (étapes, 10, 11, 12, 13) ; stylo de z
int x_inc = 0 ;
int y_inc = 0 ;
int z_pos = 0 ;
image de mot [16] = {}
0b0000001110000000,
0b0010011111000100,
0b0010001110000100,
0b0010000100000100,
0b0011111111111100,
0b0000011111000000,
0b0000011111000000,
0b0000001110000000,
0b0000011111000000,
0b0000011111000000,
0b0000110001100000,
0b0001100000110000,
0b0001100000110000,
0b0011100000111000,
0b0011100000111000,
0b1111111111111111
};
void setup()
{
régler la vitesse des moteurs à 60 RPM
stepperX.setSpeed(60) ; bas (60 t/mn)
stepperY.setSpeed(60) ; haut (60 t/mn)
stepperZ.setSpeed(60) ; Stylo (60 t/mn) ;
Delay(2000) ;
}
void loop()
{
pour (int rang = 0; ligne < 16 ; ligne ++) {}
penUp() ;
stepperX.step(-x_inc) ;
x_inc = 0 ;
pour (colonne int = 0; colonne < 16 ; colonne ++) {}
booléenne pixel = bitRead(image[row],column) ;
if(pixel == 1) {}
penDown() ;
déplacer l’axe des abscisses avant 5 étapes pour chaque bit dans le tableau
stepperX.step(10) ;
x_inc = x_inc + 10 ;
Delay(15) ;
}
else {}
penUp() ;
déplacer l’axe des abscisses avant 5 étapes pour chaque bit dans le tableau
stepperX.step(10) ;
x_inc = x_inc + 10 ;
Delay(15) ;
}
}
penUp() ;
Axe y position pour le rang suivant
stepperY.step(10) ;
y_inc = y_inc + 10 ;
Delay(15) ;
}
penUp() ;
Retourner l’axe X/Y vers la position d’origine
stepperX.step(-x_inc) ;
stepperY.step(-y_inc) ;
Boucle sans fin
{while(1)}
}
}
Sub penDown()
{
Si le stylo est déclenché
Si (z_pos == 0) {}
passer la plume sur le papier
stepperZ.step(83) ;
Delay(15) ;
z_pos = 83 ;
}
}
Sub penUp()
{
Si le stylo contre le papier
if(z_pos == 83) {}
déplacer le crayon de papier
stepperZ.step(-83) ;
Delay(15) ;
z_pos = 0 ;
}
}
FIN