Étape 10 : Améliorations apportées par la communauté de Instructables
Cette étape est prévue pour le partage des améliorations faites par les lecteurs de Instructables.Poignée de main - par « spiralout11235 »
La première amélioration est de « spiralout11235 » (nom d’utilisateur habile!) qui a mis en place le protocole de communication série entre l’esquisse de traitement et de l’Arduino (pour la gravure de raster). Ceci élimine le besoin d’établir des délais dans le schéma de traitement. En outre, l’Arduino croquis commande PWM caractéristiques de sortie laser et quelques autres modifications, vous remarquerez que si vous regardez attentivement le code.
Il a gentiment offert de partager ses idées et le code. Voici ses notes :
Croquis de l’Arduino : version 4.0 Handshake
Croquis de traitement : Handshake 2.0
Notes de version : Handshaking est maintenant mis en place : plus besoin de définir des délais dans le traitement. Cela signifie Arduino et traitement envoyer et recevoir des données lorsque l’autre est prêt. Traitement attend jusqu'à ce qu’il reçoit des données Serial : SerialEvent() déclenche et lecture jusqu'à ce que le saut de ligne « \n ». Donc, Serial.print () est jusqu'à ce que Serial.println() est la commande entière de Arduino. (Images noir et blanc uniquement ; aucune échelle de gris)
1. Arduino println attend de traitement pour recevoir cela et il renverra et de sortir un « A ». « Connexion établie ».
2. Arduino envoie un « 1 » pour signaler qu’il est prêt pour le « linelength » de la prochaine série d’instructions.
3. Si le traitement reçoit « 1 » il envoie (linelength + 10) (raisons expliquées dans le code).
4. Arduino attend maintenant linelength. Série de lectures quand il s’agit et écrit linelength = linelength-10. Arduino envoie « 2 » signalisation prêt pour le bloc d’instructions.
5. Si le traitement reçoit « 2 », il envoie le bloc d’instruction suivant.
6. Arduino reçoit le bloc d’instructions et continue la lecture de chaque octet jusqu'à numBytes = linelength (nombre attendu d’octets) comme assurance de base de données complètes
7. Répétez les étapes 2 à 6 jusqu'à ce que tous les jeux d’instructions sont envoyées.
En outre, j’ai accroché un bouton et un Pot
-Démarrage de Arduino, alors que c’est la recherche de traitement pour commencer (fonction establishContact()), il permet à l’utilisateur d’appuyer sur un bouton pour allumer le laser ; le pourcentage de « on » est déterminé par la lecture du Pot. Après l’installation, bouton/pot ne sont pas utilisés.
-Cela m’a permis de mettre en place la laser tirage/limitation de courant (à Pot max) ainsi que ma cible (à faible Pot) s’alignent
-Bouton : un côté à la terre, un côté pour axe de 12, qui est fixé à INPUT_PULLUP
-Pot (10k ou quoi que ce soit assez élevé pour ne pas faire sauter la goupille (20mA je crois)): 1 fin à 5V, l’autre au Gnd, le milieu et la broche 14 ou analogiques (A0)
* Après l’installation, puissance du laser est déterminée à partir des laserPercentage variable définie
Laser de contrôle doit être au pin 10 (ou pas avec le PWM) pour analogWrite() de travailler. Si vous n’avez pas un Pot encore, il suffit de nourrir broche 14 5V donc laser est fixé à pleine puissance.
Les fichiers de transformation et Arduino sont dans le fichier "Handshake.zip" ci-dessous.
Si vous souhaitez partager vos améliorations ou des suggestions, envoyez-moi un message (via Instructables ou getburnt1 et moi pouvons chargez-les à cette étape.