Étape 4: Le circuit de l’Arduino et logiciel
Le programme était simple :
1. Si un livre secret (avec un micro incorporé) a été tiré, ouvrir (ou fermer) la porte.
2. Si un motif secret knock est détecté, ouvrir (ou fermer) la porte.
Je n’avais jamais travaillé avec ou programmé un Arduino avant, mais je ne savais pas comment programmer et trouvé l’Arduino pour être super facile de travailler avec. Il est venu avec des tonnes de court, facile à comprendre des exemples qui faisait les choses exactes que je voulais - actionner des relais et écouter les microphones. En expérimentant en bits, tout d’abord à l’obtention du système juste ouvrir et fermer les relais corrects, puis faire écouter les coups, j’ai pu construire progressivement un programme personnalisé qui la porte commandée.
Activation du livre secret
Il était facile d’obtenir l’Arduino pour actionner la porte. J’ai branché un micro-interrupteur de contact momentané à l’Arduino qui est en position normalement fermé lorsque le poids du livre est à ce sujet. Lorsque vous basculer le livre retour, le poids se détache l’interrupteur et ouvre le circuit. L’Arduino détecte cette et contrôles une porte d’état variable pour voir si la porte est ouverte ou fermée. Cela déclenche le code pour exploiter le relais correct pour ouvrir ou fermer la porte.
La boucle principale du code vérifie juste deux choses - quel est l’état du bouton poussoir et équivaut à cet État comme c’était la dernière fois qu'il a été vérifié ? Si c’est le cas, alors le livre n’a pas été activé, alors écoutez pour frapper. Si un coup retentit, bifurquer vers une fonction pour écouter les coups plus voir si elles correspondent au code secret.
Frapper la détection
Pour obtenir le code secret knock, je suis éternellement redevable à Grathio labs pour un instructable pour savoir comment construire un coup secret détection de verrouillage d’un Arduino. En utilisant le code affiché, j’ai été en mesure de ré-utiliser l’algorithme de détection de knock secret sans avoir à en créer un sur le mien. Je dois vous les gars une bière ! La partie la plus difficile de réutiliser le code devait l’insérer dans mon programme. Je ne comprend pas un interrupteur de programmation afin de me permettre de changer le code de knock pour des raisons de simplicité. Alors, j’ai utilisé la partie de leur code qu’écoute coups, sortie les valeurs à la série monitor, puis codé en dur dans le programme. Pas souple, je comprends, mais je voulais quelque chose de simple et directe.
Sécurité
Je voulais ajouter des dispositifs de sécurité pour la porte peut être soudainement arrêtée et inversée si nécessaire. Si vous utilisez le livre d’activer la porte et ne parviennent pas à renvoyer le livre à sa position d’arrimage dans les 3 secondes, la porte s’arrête. En outre, si vous tirez le livre après 3 secondes, la porte s’arrête. Si vous tirez le livre une fois de plus, la porte s’inversera.
J’ai pensé que quelqu'un d’autre que moi pourrait jouer avec la porte et accidentellement coincé dedans. J’ai pensé que la chose probablement que quelqu'un ferait s’ils ont tiré sur le livre et la porte a commencé à ouvrir involontairement serait de retirer le livre à nouveau dans l’espoir d’arrêter la porte. C’est ce qui se passe.
En exigeant que le livre doit être retourné à la position d’arrimage dans les 3 secondes, la personne qui tire le livre est tenue de laisser aller de lui, ce qui signifie que leur main est libre de l’ouvrage lui-même. La bibliothèque prend 18 secondes pour ouvrir, il y a donc beaucoup de temps pour obtenir la main de la route. Je suis conscient qu’en s’appuyant sur le logiciel de sécurité est une mauvaise idée, donc l’ouverture de la bibliothèque est plus large que la bibliothèque elle-même. Je suis sûr qu’une main pourrait être facilement retirée simplement en poussant vers l’arrière la bibliothèque (dans la pièce) même si la bibliothèque ferme complètement. Les ressorts de pression sur la main, mais je doute assez pour briser ou piéger en permanence. Du côté de la salle, l’ouverture est aussi assez large pour tirer un coup de main.
Bouton poussoir de sortie pour les occupants de la chambre
Depuis la publication de cette instructable, j’ai ajouté un bouton de sortie pour permettre à l’occupant de la chambre sortir facilement. Sans le bouton poussoir de sortie, la seule façon de fermer ou ouvrir la porte de la chambre côté est à l’aide de la frapper en secret. J’ai trouvé le bouton poussoir sur eBay pour environ 20 $. C’est un bouton de contact momentané qui a les deux normalement fermé et normalement ouvert (NC/NO) tiges d’elle. J’ai il branché en série avec le bouton-poussoir de la bibliothèque. Activation de des boutons comme ça provoque la porte à exploiter.
Comme en pressant la touche provoque la porte arrêter, et poussant à nouveau provoque la porte à l’inverse, le bouton est utile lors de l’entrée et la sortie de la salle. Vous n’avez pas à attendre pour la bibliothèque entièrement ouvrir ou fermer avant d’inverser l’avec la touche. Vous ne pouvez pas interrompre la porte ouvrant ou en fermant la séquence à l’aide de la frapper, donc le bouton permet d’économiser un peu de temps.
Le bouton s’allume si vous lui fournir 24 volts, mais je ne prévois pas il allumer. Je dois relier une alimentation indépendante et faites passer le câble à la lumière et ce n'est pas la peine. Le bouton est tout à fait visible et dit « Pousser à la sortie » sur elle. C’est suffisant.
Connexion de la carte relais et microphone
Les raccordements réels pour les composants sont détaillés dans les commentaires de logiciel, mais ils sont ici :
1. relais Conseil : Relais 1 se connecte à broche 7 sur Arduino. Relais 2 se branche sur la broche 8. Connectez la carte relais également au sol et 5v sur Arduino.
2. microphone : Brancher à la terre, 5v et la goupille à analogique A0 (zéro) fiche sur Arduino.
3. livre microcontact : connecter commun NF à broche numérique 2 et la terre. N’importe qui se connecte à la broche 2 ou au sol.
4. les relais doivent être connectés au câble qui va à la prise DIN pour l’actionneur linéaire. Après à savoir comment le contrôleur de poche qui est venu avec l’actionneur a travaillé, j’ai acheté un câble double avec un DIN brancher dessus pour je puisse préserver le contrôleur manuel et faites-le comme une sauvegarde en cas de défaillance de l’Arduino.
** Note : les couleurs de fil que je montre peut-être pas le même si vous essayez de reproduire cela!!! Si vous le câblage du contrôleur incorrectement, vous brûlerez probablement sur votre contrôleur de moteur sur votre actuateur linéaire cher!!! Vous devez confirmer indépendamment que cela fonctionne pour votre vérin. NE suivez pas simplement aveuglément cette photo ***
5. en utilisant le câble DIN identique, j’ai acheté, j’ai couper le câble au connecteur DIN et séparés et dépouillé les fils.
6. j’ai soudé des câbles d’extension aux broches Câble fiche DIN indiqués sur le schéma à l’étape 4 de les étendre à la carte relais. J’ai utilisé des gaines thermorétractables tuyaux (disponible chez Radio Shack) sur chacun soudé le fil pour les empêcher de courtcircuit. J’ai utilisé un petit tube pour fils individuels, il rétréci, puis utilisé les plus grands tubes pour s’adapter à tous les fils à l’intérieur et chaleur réduite que pour les fixer ensemble. J’ai marqué chaque fil étendu avec un morceau de ruban adhésif je savais qui épingle sur la prise DIN, à qu'il est allé. J’ai triple vérifié cela par continuité testant à l’aide de mon multimètre.
7. j’ai connecté chaque fil du côté de la sortie de la carte relais, comme le montre le diagramme ci-dessus. J’ai eu aussi de n’utiliser un fil de liaison de la normalement ouvert (aucun) relais sur 1 au non sur relais 2 et le contexte de nommage sur le normalement fermé (NF) sur relais 2 relais 1 pour dupliquer le circuit qui le controller portable avait à l’intérieur. Ces connexions sont vis terminal, donc c’était facile pour les relier.
8. côté entrée de la carte relais, j’ai couru connecteurs du 5V et GND sur l’Arduino au GND et 5V sur la carte relais. J’ai connecté le Dans1 sur la carte de relais à la broche numérique 7 sur l’Arduino et IN2 sur la carte de relais à la broche numérique 8 sur l’Arduino.
C’est tous les travaux électrique que je devais faire. Je suis en train d’ajouter un bouton-poussoir plus à l’intérieur de la salle afin que l’occupant peut ouvrir la bibliothèque en poussant un bouton. J’ai sera fil qui en série avec le poussoir livre secret. Étant donné que ce circuit est normalement fermé (NC), je vais utiliser les bornes NC sur le bouton Ajouter. Lorsque je la pousse, le circuit est ouvert, il détectera l’Arduino et la bibliothèque va ouvrir ou fermer, selon le cas. (Voilà comment le bouton livre secret fonctionne maintenant.
Le code fonctionne très bien et je l’ai inclus ici, mais vous l’utilisez à vos propres risques. Je ne suis pas un programmeur professionnel et je ne prenons aucune responsabilité pour toute utilisation, que vous pouvez lui demander.
Un problème étrange avec elle qui est la première fois après avoir lancé le programme sur l’Arduino lorsque vous tirez sur le livre, rien ne se passe. La deuxième fois, il fonctionne parfaitement et fonctionne parfaitement après cela. Je suis sûr, il est logique dans la boucle qui est à l’origine qui mais c’est trop mineur pour couler. Il n'arrive que la toute première fois, que le programme s’exécute. N’hésitez pas à le corriger et de valider la solution si cela vous dérange.