Étape 9: Électronique et contrôle
Nous avons utilisé le contrôleur de moteur Pololu Jrk 21v3 USB avec Feedback (JRK) - ces contrôleurs fonctionnent comme l’électronique dans un servo de passe-temps, mais ont beaucoup plus de contrôle - vous pouvez définir les paramètres PID, à moteur gamme etc via un programme de Windows et le connecteur USB, et ils ont plusieurs méthodes de saisie pour contrôle (signaux de R/C, série) et la rétroaction (nous avons utilisé la tension linéaire - potentiomètre). Pour le bac à sable original, nous maintenant à l’aide de l’une d'entre elles pour l’axe X et toujours à l’aide d’un servo à haute vitesse et haute puissance modifié (pour rotation continue) pour l’axe des Y (qui nécessite moins d’énergie pour se déplacer).
Avant d’utiliser l’Arduino, nous avons relié les contrôleurs JRK un à la fois à un PC et utilisé l’utilitaire de configuration pour configurer les contrôleurs de JRK.
Avec les contrôleurs JRK, l’algorithme de PID peut être réglé assez serré donc nous sommes proches, mais pas aussi précis que certaines configurations de commande numérique par ordinateur. Mais, c’est beaucoup plus que nous avions besoin pour notre application. Pour les moteurs de 200 tr/min, nous avons utilisé sur l’axe des X, nous nous sommes retrouvés avec P = 3, 5, I = 0 et D = 20. Nous ne sommes pas des experts à cela, et peut-être ils peuvent être à l’écoute mieux. Nous utilisons l’auto mise à l’échelle de l’entrée - le mode d’entraînement pour faire la gamme de mouvement carte le 0-4095 pleine gamme. Cela facilitera le programme de contrôle de l’installation car il ne faudra pas tout constantes d’étalonnage ou de la plage 0 à 4095 - quelque chose nous n’avions pas avec les servomoteurs du projet précédent.
Programmation du contrôleur et la connexion Ethernet
Il y a beaucoup d’options pour installer cette fonctionnalité pour contrôle de l’Internet. Pour le projet précédent, nous avons utilisé un Siteplayer Telnet Ethernet au module série branché directement à un contrôleur de servo Lynxmotion SSC-32 et le servo ou contrôleur de JRK se branche sur la CSS en utilisant le mode de commande de R/C. Il s’agit d’une bonne configuration pour le contrôle serveur web car il doit commandes telnet seule (simple en PHP) pour le contrôler tant que le serveur web met en mémoire tampon et envoie les commandes bien. La SSC Lynxmotion-32 autorise également les commandes à exécuter sur une période de temps (quelques secondes en général), donc oblique déplace bien travailler avec le calendrier - le petit axe de distance se déplaçant plus lentement.
Pour ce projet, nous avons décidé d’utiliser un Arduino pour exécuter les contrôleurs JRK. Ainsi, nous avons besoin à temps les commandes de position pour rendre le X et Y axes se déplacent ensemble uniformément. Nous aurions également pu utiliser l’Arduino pour piloter un Lynxmotion SSC-32, mais depuis les JRKs prennent également les commandes série directement, il semble plus propre d’avoir un moins ensemble des planches.
Pour connecter les JRKs à l’Arduino, nous avons utilisé la broche TX sur l’Arduino câblé pour les deux broches de RX des JRKs - un simple câble un fil Y depuis les JRKs ont chacun une adresse utilisée dans les commandes, ils peuvent seulement être connectés sur la même broche TX. Les moteurs sont connectés aux connecteurs A et B, et + 12v et la masse à ces connecteurs. Assurez-vous que les contrôleurs de l’Arduino et JRK partager le fil de terre pour le TX fonctionne. Nous avons utilisé une alimentation de PC, donc nous avons dû 12v pour les moteurs et 5v de l’Arduino.
Voici le Arduino Sketch , nous avons utilisé pour tester se déplaçant la Table XY à des postes au hasard. Il montre comment faire la boucle de chronométrage pour les contrôleurs JRK, les mouvements de diagonales sera droites. Ce code utilise l’horloge pour l’heure la position à chaque boucle. En n’utilisant ne pas de retards, nous permettons à l’étape suivante en ajoutant le Shield Ethernet, exécutant l’Arduino comme un serveur web trop.
Comme avant, nous pourrions utiliser un Ethernet à équipement de série comme le Siteplayer Telnet pour envoyer des commandes à l’Arduino, mais nous pouvons aussi utiliser un bouclier Ethernet pour exécuter l’Arduino. Les images montrent que l’installation et le simple web UI nous avons utilisé pour l’essai. Il n’y a aucun PC ou serveurs web - serveur web entière est sur l’Arduino + Ethernet Shield ! L’esquisse pour que l’installation est ici. Vous aurez besoin de mettre votre propre adresse IP, et nous avons eu un programme d’installation sur notre pare-feu pour le faire fonctionner de redirection de port.
Cet web Arduino UI pourrait être prolongé pour permettre plusieurs commandes, enregistrez-les dans un tableau sur l’Arduino et reproduire les mouvements dans l’ordre. Dès que nous aurons cette configuration pour TeleToyland, nous faire cela, ou continuer à utiliser le serveur pour mettre en mémoire tampon eux comme avant.
Notes de câblage final
En fin de compte, nous avons utilisé un Arduino Mega pour obtenir l’espace mémoire supplémentaire pour tamponner les commandes - il devrait y avoir place pour à peu près 1 700 les commandes de 4 octets, que nous avons utilisé.
Pour le projet, nous avons eu 6 couleurs (R, Y, G, B, blanc doux et blanc brillant) de bandes de del - nous aurions pu utiliser ceux multicolore, mais ceux-ci ont été assez faciles à utiliser. Pour alimenter leur, nous avons utilisé IRLB8721 N canal MOSFET de puissance de Adafruit. Ils sont très facile à utiliser. Broche 1 va à une goupille de Arduino d’e/s, broche 2 va du côté de la masse de la LED, et broche 3 va au sol d’alimentation électrique. La LED + pin va à la + alimentation 12v.
Nous avons utilisé deux MOSFET plus - un pour le servo qui monte et descend la plume et l’autre pour commander un relais DPDT qui déconnecte les moteurs lorsqu’ils ne sont pas utilisés. Nous le faisons sur TeleToyland car il y a des périodes sans exploitation, et maintenant le servo et les moteurs mis sous tension réduiront leur durée de vie. Donc le code final de Arduino que nous utilisons leur pouvoirs sur, fait tous les coups, puis s’éteint leur.
C’est tout. Nous espérons que cela vous inspire pour faire votre propre tele-robots web connecté !