Table des matières:

Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo : 5 étapes
Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo : 5 étapes

Vidéo: Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo : 5 étapes

Vidéo: Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo : 5 étapes
Vidéo: TRONIK AVENTUR 301 : ATMEGA328P pour économiser des Arduino Uno 2024, Novembre
Anonim
Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo
Anti-effraction « à la maison » / Utilisez Attiny13 pour piloter un moteur pas à pas et un servo
Dispositif de dissuasion contre les cambriolages « Seul à la maison »/Utilisez Attiny13 pour piloter un moteur pas à pas et un servo
Dispositif de dissuasion contre les cambriolages « Seul à la maison »/Utilisez Attiny13 pour piloter un moteur pas à pas et un servo

C'est peut-être l'un de mes projets les plus étranges à ce jour:-) Mais même si vous n'êtes pas intéressé à éloigner les cambrioleurs, ce projet peut être utilisé pour tout ce qui nécessite de piloter un moteur pas à pas ou un servomoteur, ou même plusieurs moteurs à courant continu avec un Attiny13. La plupart d'entre vous se souviendront du film Seul à la maison, où McCauly Calkin essaie de prétendre aux cambrioleurs qu'en fait il n'est pas seul à la maison, en mettant une figurine en carton sur un tourne-disque et en mettant des ficelles sur une autre figurine en carton pour qu'il puisse imiter les gens dansant. Comme je suis souvent loin de chez moi, je suis très conscient de laisser ma maison derrière moi comme si elle était toujours occupée. on dirait que quelqu'un est présent. J'ai ajouté un "Fake TV" qui donne l'impression qu'il y a une télévision en cours de lecture. Toutes ces choses aident, mais s'il s'agit de simuler la présence, il n'y a rien de mieux que le mouvement réel. J'avais donc besoin de quelque chose qui bouge et comme je n'ai pas de tourne-disque et que je voulais quelque chose qui puisse fonctionner pendant mon absence, j'avais besoin de quelque chose d'un peu plus solide. La façon la plus évidente d'avoir une figurine en carton pour créer une impression de mouvement serait pour le faire tourner à 90 degrés pour qu'il bloque alternativement la lumière et ne bloque pas la lumière. J'ai d'abord fait cela avec un servo bon marché mais cela a posé deux problèmes: Je l'ai fait, la traînée serait tout simplement trop pour ce servo. Un servo plus puissant a eu une augmentation de prix très forte, alors j'ai commencé à penser "moteur pas à pas". J'en avais encore un qui était lourd à cause du dissipateur thermique qui y était attaché, ce qui semblait idéal. Un programme pour faire tourner le moteur pas à pas était facilement écrit sur un Arduino, mais la traînée causait toujours un problème car ma figurine en carton avait la taille de un torse humain (environ 80 cm de long). Je devais soit renforcer le carton, le rendant plus lourd, soit le rendre plus petit. Ce dernier semblait être la meilleure solution car je pouvais juste le rapprocher d'une lumière. Pendant tout ce temps, j'avais aussi joué avec l'idée d'avoir une silhouette debout. Des moteurs, des poulies, etc. m'ont traversé l'esprit et bien que je n'aie pas complètement abandonné cette idée, pour l'instant j'ai juste décidé d'ajouter une petite fonctionnalité à la figurine en carton et c'était une tête mobile. Mon idée était de faire tourner la figurine à 90 degrés, ainsi il projetterait une ombre complète, puis lui ferait hocher la tête. et c'est là que mon servo est revenu. En fait, je ne voulais pas sacrifier un arduino entier juste pour transformer une figurine en carton. Au contraire, j'ai deviné qu'un Attiny13 que j'avais traîné pouvait tout aussi bien faire l'affaire: 4 broches pour le stepper, 1 broche pour le servo. c'est exactement ce qu'un Attiny13 a à offrir. J'admets que parfois je peux être très dense car j'ai pensé à toutes sortes de scénarios sur la façon de faire fonctionner la contarption pour qu'elle fonctionne à un moment précis, pour un moment précis, car idéalement je voulais contrôler à partir du « simulateur à domicile » que j'ai mentionné plus tôt. J'ai donc pensé à un fil, ou sans fil, mais l'Attin13 n'était pas la meilleure idée car il y avait un problème avec Manchestercode et j'avais besoin d'une broche pour le récepteur et la sensibilité de ces récepteurs bon marché n'est pas si bonne. J'ai donc déjà pensé à une minuterie commerciale, mais j'ai réalisé que j'étais un idiot. Comme la chose aurait besoin de son propre bloc d'alimentation, pourquoi ne pas prendre un wallwart et le mettre dans un commutateur à distance que je pouvais déjà contrôler depuis mon simulateur At Home. Alors, j'ai commencé à construire mon design final. BOM

Un servomoteur pas à pas pas cherUne boîte en cartonUne Attiny13Une prise IC 8 brochesUn morceau de stripboard 9 bandes de 17 trousQuelques rallonges servoA ULN2003A Prise IC 16 brochesUne résistance de 10 kUne planche à découper en plastique (ou un autre morceau de matériau léger)En-tête mâle 3 broches (pour servo) Connecteur mâle 6 broches (pour moteur pas à pas) ruban adhésif (bien sûr)

De plus: un moyen de programmer l'Attiny

Juste une remarque sur le moteur pas à pas. J'utilise un vieux 55SI-25DAWC, mais si vous devez encore en acheter un, il existe un combo moteur pas à pas/pilote très bon marché: le 28BYJ-48. Le moteur lui-même coûte 1,50 euro, mais pour 2 euros, vous pouvez obtenir le même moteur avec une carte de commande. donc c'est une bonne affaire

Étape 1: « Seul à la maison » Construire l'homme en carton

« Seul à la maison » Construire l'homme en carton
« Seul à la maison » Construire l'homme en carton
« Seul à la maison » Construire l'homme en carton
« Seul à la maison » Construire l'homme en carton

Dans une boîte j'ai découpé un morceau de 40x20 cm et un morceau de 18x18. J'ai attaché les deux pièces ensemble comme une tête et un torse, à l'aide de ruban adhésif, en laissant un petit espace entre les deux pièces, mais recouvert par le ruban adhésif, pour former une charnière pour le cou. (Les photos rendent cela très clair) Dans l'ancienne planche à découper, j'ai découpé un morceau de 20 cm de long, d'environ un demi-cm d'épaisseur (l'épaisseur de la planche) et d'environ 1,5 cm de large. Le 1,5 cm était suffisant pour s'adapter à l'axe de mon stepper. si vous avez un autre stepper, assurez-vous que la pièce que vous coupez est suffisamment large pour l'axe de votre stepper. Percé un trou au point mort qui conviendrait à mon axe.puis j'ai collé le plastique à la base du carton 'Torso'Just sous le "cou", à partir de morceaux de carton, j'ai construit un support pour mon servo. Bien sûr, cela peut être fait avec un fer d'angle (ou du plastique), mais c'est un peu difficile à attacher au torse en carton, j'ai donc juste utilisé du carton pour installer le servo. J'ai ajouté un bras au servo fabriqué à partir d'un morceau de plastique de 11 x 0,6 x 0,6 provenant de la planche à découper et l'ai attaché au servo. Encore une fois, regardez les images pour voir comment cela se fait. Bien que mon stepper soit assez lourd pour transporter une figurine en carton, le couple et la traînée causés par sa rotation feraient que le moteur se met à « marcher », alors j'ai créé une plaque de base à partir de 24 * 11 cm de planche à découper. J'ai percé deux trous pour fixer le moteur pas à pas et j'ai encore suffisamment d'espace pour le contrôleur. Bien que le servo tourne à 180 degrés, j'ai positionné le bras de manière à ce qu'il ne mette pas la tête complètement droite. De cette façon, il retombe facilement lorsque le servo revient à la position 0

Étape 2: « Seul à la maison » Construire le contrôleur

« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur
« Seul à la maison » Construire le contrôleur

Le contrôleur est un Attiny13, rattaché à un ULN2003. Bien que dans ma version, j'ai utilisé un peu plus de broches pour rendre la carte plus flexible à utiliser pour d'autres projets, les seuls en-têtes dont vous avez besoin sont un en-tête servo mâle à 3 broches et un en-tête mâle à 6 broches pour le stepper

Étape 3: 'Home Alone': le logiciel

EDIT 2019 Le projet a été réalisé sur la base du noyau 'Smeezekitty' autrefois populaire pour l'Attiny13. Le MicroCore désormais souvent utilisé de MCUDude a apparemment des problèmes avec les variables dans les instructions delayMicroseconds. Si vous utilisez celui-ci, remplacez "delayMicroseconds(300 + p * (2500 / 180));" par "retard(5);"

Le programme ci-dessus montre comment piloter mon stepper particulier et vous devrez peut-être modifier les valeurs écrites dans PORTB si vous avez un autre stepper. Comme l'Attiny13 est plutôt petit en mémoire et ne fournit pas non plus trop de broches, le programme manque un peu de sophistication. Écrire directement sur PORTB est OK, mais dans ce cas, il écrira également un "0" à PB4 et PB5. PB5 n'est pas vraiment un problème, mais vous pouvez utiliser PB4. Dans mon cas, c'est là que j'ai mis mon servo et cela ne pose pas vraiment de problème car je ne les utilise pas en même temps.

Cependant, si vous souhaitez utiliser un autre microcontrôleur tel qu'un 328 et que vous souhaitez éviter d'écrire sur PB4 et PB5 et PB6 et PB7, utilisez un masque pour n'écrire que sur les bits 0-3. Le masque pour le faire est B00001111.

Si vous souhaitez ensuite définir les bits 0 et 2, procédez comme suit:

Au lieu de PORTB=5, indiquez: PORTB=(PORTB &~mask) | (B00000101);

Pour ceux qui trouvent cela trop cryptique:

il commence par ET la valeur de PORTB avec NOT mask et OU est le résultat avec la valeur que nous voulons écrire et l'attribue à PORTB.

Donc, supposons que PORTB= 00010000 et que nous voulions y écrire 00000101, nous ne pouvons pas l'affecter immédiatement car cela effacerait PB4.

Cependant, si nous faisons comme décrit, cela devient:

PORTB=(PORTB & 1110000) | 00000101

PORTB=(00010000 & 11110000) | 00000101

PORTB=00010000 | 00000101

PORTB= 00010101

Nous avons écrit notre valeur et gardé PB4

Alors, pourquoi ne pouvons-nous pas immédiatement OR PORTB avec la valeur que nous voulons au lieu de l'effectuer en premier ?

Eh bien parce que cela pourrait garder PB4 et PB5… mais cela maintient également PB3-PB0 inchangé si l'un d'eux contenait déjà un '1'

Bien sûr, il ne serait pas nécessaire d'inverser le masque si nous le définissions déjà inversé, mais il est de pratique courante de le faire comme tel.

Étape 4: Dispositif de dissuasion contre les cambrioleurs « Seul à la maison »: utilisez

regardez la vidéo pour voir que ça marche (elle a tourné de -90 degrés, désolé pour ça)

Le but de cet appareil est de projeter des ombres mouvantes sur les rideaux ou les stores. Il fonctionne donc mieux avec des barrières immatérielles. L'appareil lui-même ne doit pas être visible de l'extérieur. Assurez-vous qu'il y a une source de lumière quelque part derrière. Je le contrôle en envoyant un signal RF à l'interrupteur à distance de la prise secteur qui alimente le bloc d'alimentation mural de cet appareil, mais vous pouvez également utiliser une minuterie.

Étape 5: « Seul à la maison » Ce qui n'a pas fonctionné……

Cette vidéo montre l'une de mes expériences précédentes avec un torse plus grand et juste un simple servo. Evidemment pas un bon design

Conseillé: