Verrouillage de porte Arduino Light & Knock: 4 étapes

Verrouillage de porte Arduino Light & Knock: 4 étapes

Table des matières:

Anonim

C'est un gadget génial pour un club-house secret et pour les personnes comme moi qui semblent toujours perdre leurs clés! Ce projet est basé sur le verrou secret original Knock Lock pouvant être instruit par Grathio (disponible ci-dessous) avec les modifications principales suivantes:

1) a une deuxième entrée secrète pour les personnes présentes qui pourraient entendre votre frappe. Désormais, une photodiode peut enregistrer un "photo knock" (éclair de lumière) à travers le judas!

2) Comprend un pont en H, ce qui lui donne la possibilité de déverrouiller et de verrouiller une porte (modifie le sens de la tension sur le moteur)

3) La programmation enregistre maintenant les niveaux sonores moyens (de fond) et ajuste la sensibilité (valeurs de seuil) en conséquence

*** Les informations ici sont adaptées du instructable de Grathio. Un grand merci à Grathio Labs pour avoir mis à la disposition de nous un guide aussi complet! Je vais vous expliquer la procédure de programmation et de câblage de l'électronique, puis vous diriger vers la procédure explicative de Grathio pour la fabrication d'un support de porte en PVC (malheureusement, je suis toujours en train de créer un boîtier fonctionnel).

Pour l'instructible Knock-Lock original de Grathio, allez à

Provisions:

Étape 1: Outils, fournitures et compétences

Compétences:

Pour mener à bien ce projet, vous devriez être capable de:

Faire la soudure de base.

Lire un schéma.

Avoir quelques connaissances sur les microcontrôleurs (je vais utiliser l'Arduino.)

Improviser

Outils:

Perceuse (idéalement une perceuse à colonne) et un assortiment de forets.

Scie capable de couper des tuyaux en PVC. (Par exemple: assez mcuh n'importe quelle scie.)

Fer à souder et soudure.

Pinces.

Tournevis.

Gaine thermorétractable et / ou ruban électrique.

Pince à dénuder.

Vice.

Lunettes de protection.

Gants.

D'autres choses que vous pourriez trouver utiles: une règle / un ruban à mesurer, un multimètre, une planche à pain, du ruban adhésif, un marqueur magique, du papier de verre, des limes, de la colle chaude. Et si vous êtes comme moi une trousse de premiers soins bien garnie.

Matériaux:

Électronique:

1 microcontrôleur Arduino Uno (ou similaire)

1 motoréducteur 12v à couple élevé

1 petit microphone

1 bouton-poussoir momentané SPST. (normalement "off" / "open")

1 LED rouge

1 LED verte

1 photodiode

1 puce SN754410NE demi-pont en demi-pont en H

1 résistance de 100 000 ohms (1/4 watt)

1 résistance 10k ohm (1/4 watt)

1 résistance 1M ohm (1/4 watt)

2 résistances de 560 ohms (ou tout ce qui alimentera vos LED rouge et verte à 5v)

1 petit morceau de perf board. 5x15 trous ou plus.

1 prise adaptateur murale 12V pour Arduino

C'est également une bonne idée d'avoir une planche à pain pour configurer et tester le circuit avant de le souder. Nous allons le faire à l'étape 3.

Cas:

(Cette conception vient directement de la source Grathio.)

Tuyau en PVC de 20 "1/2".

3 connecteurs en PVC à angle droit 1/2 ".

1 connecteur PVC 1/2 "5 voies. (Exemple)

Bouchon d'extrémité en PVC de 2 1/2 ".

3 ventouses de 1 1/2 ". (Disponible dans les quincailleries et les centres artisanaux.) REMARQUE: Si votre porte ne convient pas aux ventouses, remplacez-les par trois embouts et vous pouvez utiliser des bandes adhésives ou des vis pour monter la serrure.

Bande de métal de 6 "sur 1/2" de large par 1/64 "d'épaisseur (acier, étain, cuivre, etc.) (disponible dans les magasins de quincaillerie, d'artisanat et d'art.)

4,5 "de tôle de 1" de large, 1/32 "d'épaisseur (acier, étain, cuivre, etc.) (disponible dans les magasins de quincaillerie, d'artisanat et d'art.)

2 vis 3/32 "x 3/8" avec écrous. (1/8 "fonctionnera aussi si vous ne pouvez pas trouver les plus petits.)

2 vis de 1,6 mm (métriques) de 16 mm. Idéalement avec des têtes fraisées si vous pouvez les trouver. (Pour sécuriser le moteur. Vérifiez les spécifications de votre moteur pour voir de quelle vis il a besoin. Un moteur que j'ai essayé utilisait du 1,6 M, l'autre 2M. Vous devrez probablement en acheter de longues et les couper à la longueur voulue.)

1 grande ventouse (pour photodiode)

Étape 2: programmez votre Arduino

Vous voudrez télécharger notre croquis avant de faire toute l'électronique afin que nous puissions les tester au fur et à mesure. Le code est joint ci-dessous et contient des commentaires. Votre logiciel / pilotes Arduino doit être installé pour cette étape!

1) Télécharger le fichier ci-joint

2) Connectez votre Arduino à une entrée USB de votre ordinateur.

3) Ouvrez le fichier dans une esquisse Arduino (ou si cela vous pose problème, changez le fichier en un fichier.txt et copiez / collez le code dans une esquisse vide) et compilez-le / vérifiez-le.

4) Téléchargez-le sur votre Arduino!

Dans les étapes à venir, je fournirai des astuces de dépannage concernant des parties spécifiques du code (certains paramètres devront être modifiés pour chaque système). Pour toute personne intéressée par les spécificités du code, j'ai inclus un résumé ci-dessous. L’esquisse est bien commentée, mais c’est un fichier assez volumineux et un peu maladroit à interpréter par moments (n'hésitez pas à le rendre plus élégant et à partager vos succès dans les commentaires!).

Lignes 4-33: Définit les pins, les constantes et les variables Arduino que nous utiliserons dans le code.

- Vous voudrez probablement les modifier pour votre porte / système particulier. Je vais vous guider à travers cette

Lignes 35 à 47 (configuration): définit les modes des broches et lance la surveillance en série

Lignes 49-84, (boucle): définit le comportement du circuit lorsqu'il attend d'entendre (voir) un coup (flash)

- C'est ici que nous avons configuré la fonction Fond / Moyenne, qui échantillonne en permanence les données et calibre les valeurs de seuil en conséquence. Si un signal lumineux ou sonore est enregistré au-dessus de la valeur seuil, il exécute "listenToSecretKnock".

Lignes 86-161 (listenToSecretKnock): Enregistre les coups enregistrés par le microphone.

- Enregistre le temps entre les coups (délai) dans un tableau et envoie les données à validateKnock. Une partie de cette section est dédiée à la direction des indicateurs à DEL, qui clignotent en fonction des coups enregistrés. Si le verrouillage est vérifié, la porte verrouillera ou déverrouillera la porte en fonction de l'état "doorState" (qui indique si notre dernière a été verrouillée ou déverrouillée).

Lignes 163-238 (listenToSecretPhotoKnock): Enregistre les clignotements enregistrés par la photodiode.

- Fondamentalement identique aux lignes 86-161, mais maintenant avec le signal / paramètres de la photodiode. C’est un bon point de départ si vous souhaitez rationaliser le code un peu plus, car il répète beaucoup de ce qui a été utilisé précédemment (sur ma liste de tâches).

Lignes 239-255 (triggerDoorUnlock): Met le moteur en marche pour déverrouiller la porte

- Comprendre cette section concerne le comportement du pont en h, qui détermine le sens de la tension à travers le moteur. Vous voudrez peut-être consulter la fiche technique de votre puce pour mieux comprendre (c'est celle que j'ai utilisée: http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html)

Lignes 257-272 (triggerDoorLock): fait tourner le moteur en sens inverse pour verrouiller la porte

- Cette section répète également certains codages et pourrait bénéficier d'un peu de nettoyage.

Lignes 274-349 (validateKnock): Vérifie si le modèle enregistré correspond à la clé.

- Ceci normalise chaque coup sur la pause la plus longue et compare les intervalles relatifs entre les coups. Cela signifie que vous pouvez faire le même modèle lentement ou rapidement et que le moteur doit toujours être déclenché.

Étape 3: Test du circuit sur une planche à pain

Nous allons brancher tous les appareils électroniques sur une planche à pain et vérifier que tout fonctionne comme nous allons. Vous pouvez trouver le schéma de la maquette et un schéma de mise en page dans les images ci-dessus. VEUILLEZ NE PAS LAISSER TOUT FILS TOUCHER DE MANIÈRE INATTENDUE ET NE PAS NE PAS DÉBRANCHER VOTRE ARDUINO / CIRCUIT DES SOURCES D’ALIMENTATION PENDANT LE CÂBLAGE!

1) Câblez le microphone

Souder une paire de fils de 30 cm (12 ") au microphone. Connectez-la entre la broche analogique 0 et la terre. Reliez également la résistance 1M ohm entre la broche analogique 0 et la terre.

TEST: Avec votre Arduino branché sur votre ordinateur, ouvrez la fenêtre Serial Monitor (en haut à droite de la fenêtre d'esquisse). Vous devriez voir le texte "Démarrage du programme". Appuyez sur le microphone et il devrait indiquer "coup de départ" et "frapper" à chaque fois que vous appuyez dessus. Arrêtez-vous une seconde ou deux et vous verrez probablement "Echec du coup secret". Essayez de taper sur Shave et une coupe de cheveux et voyez si vous pouvez obtenir la "Porte déverrouillée!" message! Ensuite, l’arduino écoute un signal pour verrouiller la porte. La valeur par défaut pour cela (modifiable dans le code) est de quatre frappes équidistantes.

DÉPANNAGE:

- Si vous ne voyez rien ou rien de indésirable dans la surveillance en série, assurez-vous que votre port série est réglé sur 9 600 bauds et réinitialisez l'alimentation.

- Pour régler la sensibilité de la reconnaissance / validation d'un motif de frappe, jouez avec les valeurs de "rejetValeur" et "moyenneRejectValeur" (lignes 13 et 14). Si un choc individuel est désactivé de plus que la valeur rejetée (pourcentage) ou si le timing moyen des chocs est décalé de plus de la valeur moyenne de rejet, l'arduino ne vérifie pas le déclenchement ou ne déclenche pas le moteur.

- Si un seul coup est enregistré plus d'une fois, ou si deux coups sont enregistrés comme le même coup, ajustez "knockFadeTime" (ligne 15) qui définit les millisecondes que nous permettons à un coup de perdre avant que nous en écoutions un autre minuteur).

2) Câblez la photodiode

Connectez le côté anode (généralement celui avec un fil plus court) à 5V et la cathode à la broche analogique 3 et à la terre via une résistance de 100K (voir schéma).

TEST: Éclairez un éclair de lumière sur votre photodiode. Dans la fenêtre du montage en série, vous devriez voir apparaître le texte "Photo Knock Starting" et "Photo Knock" à chaque clignotement de la lumière. Essayez de faire briller la lumière dans le même motif "Rasage et coupe de cheveux" que vous avez utilisé avec les robinets du microphone.

DÉPANNAGE:

- Si vous ne voyez rien lorsque vous allumez une diode, essayez de tester la tension à travers la résistance 100k et assurez-vous qu'elle se comporte comme prévu (la tension monte à + 5V lorsqu'elle est saturée de lumière et à 0 lorsqu'elle est sombre)..

- Si un seul flash est enregistré plusieurs fois, ou si deux flashs sont enregistrés comme un, réglez "photoknockFadeTime" (ligne 16).

3) Câblez les LED

Permet de connecter certaines LED afin de ne pas avoir à utiliser un câble série pour voir ce qui se passe. Connectez la diode rouge à la broche numérique 4 et la diode verte à la broche numérique 5 avec leurs résistances de 560 * ohms correspondantes alignées.

TEST: Si vous alimentez le circuit, la LED verte doit s’allumer et s’éteindre à chaque frappe. Si l'arduino vérifie la bonne séquence, le voyant vert doit clignoter plusieurs fois. La mauvaise séquence devrait faire clignoter la rouge.

DÉPANNAGE:

- Vérifiez la polarité de vos voyants et de toutes vos connexions. Vos LED peuvent nécessiter une résistance différente pour fonctionner sur 5V, alors si elles sont trop faibles ou éteintes, vous pouvez essayer de réduire la résistance.

4) Câblez le bouton de programmation

Souder les fils de 8 "sur le bouton. Connectez un côté du bouton à + 5 V. A l’aide de l’autre broche du bouton, connectez-le à la broche numérique 2 et à la masse via une résistance 10K.

TEST: Appliquer le pouvoir. Lorsque vous appuyez sur le bouton, le voyant rouge doit s'allumer. Maintenez le bouton enfoncé et appuyez sur une séquence simple. Lorsque vous appuyez sur pendant la programmation, les deux voyants doivent clignoter. Lorsque vous avez terminé, vous devez répéter le motif que vous venez d’appuyer sur les deux voyants. Une fois la lecture terminée, le nouveau code de frappe est enregistré et les voyants alternent rouge et vert pour vous en informer.

DÉPANNAGE:

- Assurez-vous que votre bouton est généralement ouvert ("momentanément fermé") en utilisant un ohmmètre pour enregistrer la résistance avec le bouton non pressé. Si cela renvoie zéro ou une valeur basse, le type de bouton poussoir est incorrect.

5) Fil dans le pont en h et le moteur

Pour le pont en h, connectez: les broches 1 et 16 à + 5V; les broches 4 et 5 à GND, les broches 2 à la broche numérique Arduino 3, la broche 7 à la broche numérique Arduino 6 et la broche 8 à Arduino Vin. Souder 8 "de câbles au moteur et les connecter aux broches 3 et 6 du pont en h.

TEST: Alimenter le circuit. Tapez correctement le coup par défaut "Rasage et une coupe de cheveux", et le moteur devrait fonctionner. Appuyez à nouveau sur le motif correct et le moteur doit tourner dans le sens opposé.

DÉPANNAGE:

- Assurez-vous que votre puce est alimentée et mise à la terre.

- Vérifiez le sens de rotation du moteur. La première fois qu'il s'exécute, il devrait tourner de la même manière que vous tournez votre pêne dormant pour le déverrouiller. Sinon, changez les fils du moteur, ce qui devrait inverser le moteur.

- Pour que votre moteur tourne à 180 degrés, ajuster "lockTurnTime" (ligne 17) jusqu'à ce que le moteur tourne d'un demi-tour à chaque fois qu'il est déclenché

Toutes nos félicitations! Vous avez créé un circuit de détection de coups secret et fonctionnel!

Étape 4: Construction d'un boîtier et d'une pièce jointe de photodiode

Pour des étapes détaillées sur la fabrication de la porte / du boîtier, cliquez ici:

Ma monture est basée sur cette conception avec quelques modifications (j'ai eu accès à des outils moins communs via mon école, Pomona College). Je suis resté fidèle à la conception en PVC, légère et portable. J'avais accès à du matériel qui me permettait d'imprimer une carte de circuit imprimé, de sorte que peu de fils devaient être fourrés dans le boîtier. Après avoir soudé le dernier circuit imprimé, j'ai scotché le dessous (qui fait face à l'arduino) pour m'assurer que rien ne touchait l'arduino qui n'était pas censé l'être. Mon moteur ne comportait pas de réduction d'engrenage. Nous avons donc construit un ensemble d'engrenages et un carter d'engrenage en aluminium. Le microphone est fixé à l'extrémité de la longue bande de métal (recouverte d'un ruban rose pour la décoration).

POUR RÉALISER LE PHOTODIODE ADAPTER, percez un trou dans une ventouse légèrement plus petite que la taille de votre diode (pour éviter toute aspiration) et placez la photodiode en regardant de la ventouse vers la surface de la porte. Laissez de longues traces sur la photodiode afin qu’elle puisse couvrir la distance entre votre judas et le pêne dormant.