Table des matières:

Signal lumineux à main de vélo : 10 étapes (avec photos)
Signal lumineux à main de vélo : 10 étapes (avec photos)

Vidéo: Signal lumineux à main de vélo : 10 étapes (avec photos)

Vidéo: Signal lumineux à main de vélo : 10 étapes (avec photos)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Novembre
Anonim
Signal lumineux à main de vélo
Signal lumineux à main de vélo

L'objectif de ce projet est de créer une lumière qui s'adapte sur un gant de vélo et pointe dans la direction du virage prévu, pour augmenter la visibilité la nuit. Il doit être léger, facile à utiliser et intégré aux mouvements existants pour la signalisation (ajustement minimal de la méthode de signal (vous n'avez pas besoin d'appuyer sur un bouton, il s'exécute lorsque vous signalez)). Cela ferait un excellent cadeau de vacances.

Remarque: Cela nécessite des connaissances préalables sur la façon de souder et une idée de la façon de programmer les AVR est un gros plus. Dans cet esprit, amusez-vous, soyez patient et postez des photos de votre produit ci-dessous ! Voici une vidéo: Et voici une photo de la mienne:

Étape 1: Pièces

les pièces
les pièces

x1 ATmega 32L 8PU (www.digikey.com)x1 prise DIP 40 broches (www.digikey.com)x1 8x8 LED Array (www.sparkfun.com)x1 74138 Démultiplexeur (www.digikey.com)x2 Flex Sensors (www.sparkfun.com)x(Many) Résistances 180 ohms et 10k ohmx2 Carte de circuit imprimé (www.sparkfun.com)x6 Entretoises (www.sparkfun.com) et vis pour s'adapter (Magasin de matériel local)x1 Accéléromètre sur la carte de dérivation (www.sparkfun.com)x2 Embases - Mâle (www.sparkfun.com), Femelle (www.sparkfun.com) et Angle Droit (www.sparkfun.com)x1 LM7805 (www.digikey.com)x2 Prises 8 broches (J'ai eu le mien à Radio Shack)x1 pile 9vx1 velcrox1 velcrox1 gant de vélo à doigts completsx1 bobine de fil de polyesterx1 programmeur (j'ai celui-ci)x1 dénudeur de fil et clipx1 multimètreCertaines des pièces:

Étape 2: préparer les planches

Préparer les planches
Préparer les planches
Préparer les planches
Préparer les planches
Préparer les planches
Préparer les planches
Préparer les planches
Préparer les planches

Tout d'abord, ajoutez les entretoises. Vous devrez en visser deux ensemble pour obtenir la bonne hauteur. Assurez-vous que les entretoises descendent du côté avec les patins SQUARE. De cette façon, vous pouvez ponter les pastilles avec de la soudure en bas et ponter avec la pastille commune en haut pour vous connecter à la terre. Ensuite, ajoutez le réseau de LED et soudez-le. Il doit être aussi loin du bord de la carte avec les deux supports que possible avec le YS face au côté opposé. La broche en bas à gauche est la broche 1. (Elle est également marquée sur la photo.) Ensuite, ajoutez les deux prises 8 broches l'une au-dessus de l'autre de manière à former une prise 16 broches. Assurez-vous d'avoir un espace à gauche, puis soudez-le. Ensuite, divisez les en-têtes mâle et femelle en sections à 10 et 11 broches. Vous aurez besoin de deux fois plus d'en-têtes féminins. Soudez-les comme sur la photo. En ce qui concerne les en-têtes mâles, vous devez déplacer la broche pour qu'il y ait une quantité égale de chaque côté du plastique. Il est plus facile de regarder une photo pour voir ce que je veux dire, alors jetez un œil au n ° 6. J'ai utilisé des pinces et cela a très bien fonctionné. Maintenant, si vous prenez les en-têtes mâles et que vous les placez entre les 2 en-têtes femelles, vous verrez qu'ils sont maintenant de la bonne taille pour connecter les panneaux supérieur et inférieur ensemble.

Étape 3: ajouter les résistances

Ajouter les résistances
Ajouter les résistances
Ajouter les résistances
Ajouter les résistances
Ajouter les résistances
Ajouter les résistances

Ces résistances vont entre le réseau de LED et le 74138 (Terre) pour protéger le réseau. Pliez l'un des fils de la résistance sur le dessus pour que les deux fils soient parallèles. Montez-les sur les broches 7, 9, 10, 11, 12, 13, 14 et 15 et soudez. J'ai trouvé que cela fonctionne mieux si vous alternez la direction de la résistance comme vous pouvez le voir sur les deuxième et troisième images.

Étape 4: câbler le haut

Câbler le haut
Câbler le haut
Câbler le haut
Câbler le haut
Câbler le haut
Câbler le haut
Câbler le haut
Câbler le haut

C'est de loin l'étape la plus longue du projet alors j'espère que vous aimez souder ! Suivez simplement le schéma ci-dessous et assurez-vous de tester la continuité avec votre multimètre. Au cas où vous voudriez savoir comment je suis arrivé avec le schéma, regardez la fiche technique de la baie et du 74138.

Étape 5: Remplir le bas

Remplir le bas
Remplir le bas
Remplir le bas
Remplir le bas
Remplir le bas
Remplir le bas
Remplir le bas
Remplir le bas

Il est maintenant temps de placer nos composants de base sur la carte inférieure. Tout d'abord, nous allons faire la prise DIP à 40 broches qui va aussi près du haut à gauche que possible tout en laissant une rangée d'espace sur le côté gauche. (Voir l'image #1.) Soudez-le puis placez les en-têtes. Le moyen le plus simple de le faire est de connecter ceux du haut à ceux qui iront en bas à l'aide de vos en-têtes mâles modifiés. Si vous avez tout fait correctement, vous devriez vous retrouver avec les trois broches du haut sur l'en-tête gauche à côté des broches en bas à droite de la prise. C'est acceptable. Nous n'utilisons que la goupille la plus basse à droite et comme vous pouvez le voir, nous avons une vue claire sur elle depuis une autre direction. Ajoutez maintenant le régulateur de tension comme indiqué sur l'image. J'ai fixé le mien à travers le trou dans le dissipateur de chaleur en métal avec une vis et un écrou. Le dissipateur thermique est un autre moyen de mettre la puce à la terre et le boulonnage à la carte fournit un contact solide avec la connexion commune. Ceci est connecté au bas ainsi qu'au haut car les deux sont connectés avec des entretoises métalliques. Cependant, si vous n'utilisez pas la connexion commune pour la terre, NE boulonnez PAS le dissipateur thermique à la carte car le dissipateur thermique sert de terre et vous risquez de court-circuiter quelque chose. Prochain fil dans le clip de la batterie. Le rouge va à la broche de gauche (avec le dissipateur de chaleur vers le haut et les broches vers le bas) le noir au milieu et la broche de droite produit +5v. Vous pouvez maintenant câbler l'alimentation vers le haut (voir photo #2). Maintenant pour le connecteur du programmeur. J'ai un adaptateur que j'ai fabriqué pour mon programmeur, mais vous voudrez probablement incorporer un en-tête à 6 broches (3x2) dans votre conception. Cependant, si vous avez un adaptateur comme moi, voici ce que j'ai fait. J'ai pris un en-tête à angle droit et un en-tête femelle et je les ai soudés ensemble (Photo #3). Ensuite, je l'ai attaché à la carte avec la première broche connectée à la broche 6. Maintenant, vous devez alimenter et mettre à la terre la puce ainsi que le câblage d'une résistance pour tirer la réinitialisation haut. J'ai couru une résistance de 10k de la broche 9 à la broche 10, puis j'ai connecté la broche 10 à +5v. La broche suivante (11) va à la connexion commune (Masse). Enfin, regardez l'image #4 pour terminer cette étape (c'est assez explicite).

Étape 6: câblez le bas

Câbler le bas
Câbler le bas
Câbler le bas
Câbler le bas
Câbler le bas
Câbler le bas

Vous vous souvenez de cette étape vraiment amusante où vous devez faire passer plus de 30 fils pour faire fonctionner un réseau de LED ? Maintenant, c'est à vous de le refaire ! En bas !. Celui-ci est un peu plus rapide mais pas mon beaucoup. Encore une fois, regardez le schéma et vérifiez toutes vos connexions avec votre multimètre. Ne vous inquiétez pas, c'est la dernière grosse soudure du projet et vous avez presque terminé.

Étape 7: Capteurs Flex et l'accéléromètre

Les capteurs Flex et l'accéléromètre
Les capteurs Flex et l'accéléromètre
Les capteurs Flex et l'accéléromètre
Les capteurs Flex et l'accéléromètre
Les capteurs Flex et l'accéléromètre
Les capteurs Flex et l'accéléromètre

Nous aborderons d'abord les capteurs de flexion, mais vous êtes sur la dernière ligne droite en ce qui concerne le matériel. Je pense que les images ci-dessous expliquent à peu près ce qu'il faut faire. Connectez une broche à +5v l'autre à la troisième ou quatrième broche en partant du haut sur le côté droit de l'AVR (Le microcontrôleur au cœur de ce projet). Lorsque j'ai assemblé cela pour la première fois, j'ai pensé que c'était tout ce que j'avais à faire, mais il s'avère que pour que l'AVR puisse lire les capteurs flexibles, vous devez mettre une résistance de la broche sur le capteur allant à l'AVR à la terre (voir les photos # 10 et 11). J'ai utilisé un 10k. Cela divise la tension allant à l'AVR qui double pratiquement la sensibilité du capteur. Maintenant pour l'accéléromètre. Parce que l'accéléromètre est juste un cheveu plus grand que l'espace entre les deux cartes et parce que nous pourrions vouloir le remplacer un jour, j'ai décidé d'utiliser des en-têtes pour le faire sortir de la carte et le connecter. Utilisez une embase à angle droit pour vous connecter aux 6 broches de la carte de dérivation. Maintenant, prenez un autre en-tête à angle droit et soudez un en-tête femelle aux broches courtes, puis soudez-le dans le coin inférieur gauche de votre carte. Branchez l'accéléromètre pour vous assurer qu'il s'adapte, débranchez-le, puis connectez les broches appropriées à Vcc (+5v) et Gnd. Ensuite, connectez la broche de sortie X à la broche 40 et Y à la broche 39. Vous devez maintenant être configuré pour ajouter les circuits intégrés (circuits intégrés) et l'allumer.

26 décembre 2009: J'ai découvert que la façon dont j'ai monté le capteur de flexion de l'index provoquait la dégradation du matériau reliant le capteur aux broches. Depuis, j'ai acheté un capteur de remplacement et j'ai collé à chaud un morceau de plastique mince sur le capteur pour éviter que cette zone ne soit la partie qui se plie le plus. J'ai tagué l'emplacement sur la photo ci-dessous.

Étape 8: Ajout des circuits intégrés et du premier programme

Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme
Ajout d'IC et du premier programme

C'est probablement l'étape la plus facile de tout le processus. Encore une fois l'aide de l'image. Assurez-vous d'avoir les jetons dans le bon sens comme expliqué dans l'image #3. Je voudrais d'abord connecter l'alimentation sans rien connecté et toucher le dissipateur de chaleur sur le régulateur de tension. S'il fait chaud, il y a un court-circuit et vous devez revenir en arrière et vérifier vos connexions. Procédez de cette façon, en ajoutant une puce à la fois, en sentant la chaleur et une fois que tout est en place, serrez les écrous sur la planche inférieure pour que les deux planches soient solidement fixées ensemble. Ensuite, vous programmerez l'AVR. Si vous ne l'avez jamais fait auparavant, une recherche rapide sur Google donne une pléthore de résultats. Si j'étais vous, je mettrais mon AVR sur une maquette et le programmerais dessus avant de l'essayer sur votre travail acharné. J'ai écrit un programme simple pour transmettre les informations reçues des capteurs flexibles à la matrice de LED. Cela devrait vous donner une idée de base de ce qui fonctionne et ne fonctionne pas dans votre circuit. Voici une vidéo du code en action……et voici le code: #define F_CPU 800000UL#include #include #include void ADCINIT(){ ADMUX = 0b01100000; ADCSRA = 0b10000000;}int main(){ int a; a = 0; int b; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b1110000; ADCINIT(); while(1) { ADMUX = 0b01100011; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _delay_ms(1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b1110000; PORTB = ADCH; _delay_ms(1); PORTB = 0x00; }}

Étape 9: attacher votre circuit à un gant

Attacher votre circuit à un gant
Attacher votre circuit à un gant
Attacher votre circuit à un gant
Attacher votre circuit à un gant
Attacher votre circuit à un gant
Attacher votre circuit à un gant

Je pense qu'il existe de nombreuses façons d'attacher votre circuit à votre main et pendant un certain temps, j'ai pensé que je laisserais le soin au lecteur, mais j'ai ensuite décidé que l'instructable ne serait pas complet sans cette fermeture. Je suis allé dans mon magasin de vélos local et J'ai eu le gant à doigt complet le moins cher que j'ai pu trouver. Le doigt complet est nécessaire car sinon vous ne pouvez pas très bien fixer les capteurs de flexion. Je suis ensuite allé dans un magasin de tissus et j'ai acheté du fil de polyester et du velcro autocollant. J'ai mis le gant et placé le circuit sur ma main. Une partie du positionnement est le confort mais une autre partie est les capteurs de flexion. Ils devraient descendre au milieu de deux doigts. J'ai cousu des boucles autour des trois entretoises pour maintenir la carte principale (voir photo n° 2), puis j'ai fait des boucles lâches aux 3/4 de la longueur de chaque doigt du capteur de flexion (n° 3 et 4). Assurez-vous de ne pas coudre votre gant fermé. Ensuite, j'ai collé un morceau de velcro sur le côté de mon pouce pour maintenir la batterie. J'ai trouvé après avoir testé qu'il est vraiment rentable de coudre cela aussi car le bâton ne dure pas trop longtemps. Ensuite j'ai mis une boucle de velcro autour du 9v (Photo 5). Cette configuration semble plutôt bien fonctionner. Comme vous le voyez sur les images des première et dernière diapositives, j'ai maintenant ajouté des manchons pour les capteurs de flexion, mais si vous n'avez pas le temps, les boucles devraient faire l'affaire. Lorsque vous avez terminé votre projet, veuillez publier des photos de votre produit fini. au dessous de. J'aimerais voir ce que vous avez trouvé pour attacher le circuit!

Étape 10: Le vrai code

Le vrai code
Le vrai code

Merci de m'avoir accompagné jusqu'à présent. N'oubliez pas que mon code n'est pas parfait. J'ai trouvé qu'il faut un peu d'apprentissage pour que le signal fonctionne correctement. Je continuerai d'essayer de perfectionner mon système et je garderai cette page à jour avec le nouveau code une fois que je l'aurai écrit. 26 déc 2009: NOUVEAU CODE ! C'est affiché où était l'ancien code. Un grand merci à Jacob pour la simplification. Cela fonctionne vraiment bien. C'est ici. Merci d'avoir lu et n'oubliez pas de voter ! #include #include #include // Définit ou efface les bits dans les registres #define setBit(sfr, bit) (sfr |= (1 << bit)) #define clearBit(sfr, bit) (sfr &= ~(1 << bit)) #define flipBit(sfr, bit) (sfr ^= (1 << bit)) #define FALSE 0 #define TRUE 1 #define matrixX(x) (PORTA = (x - 1) << 5) #define matriceGY(y) (PORTD = y) #define matriceRY(y) (PORTB = y) void delay(unsigned int delay) { unsigned int x = 0; while(x < délai) { x++; } } void initMatrix() { DDRD = 0xFF; // Contrôle vert DDRB = 0xFF; // Contrôle rouge DDRA = 0xE0; // Contrôle au sol } void matrixRowDraw(char greenmask, char redmask, char column) { matrixX(column); entier je = 0; for(i = 0; i < 8; i++) { matrixGY(greenmask & (1 << i)); matriceRY(masque rouge & (1 << i)); _delay_us(150); } matriceGY(0x00); matriceRY(0x00); } void matriceLeft() { matriceRowDraw(0x10, 0, 1); matriceRowDraw (0x20, 0, 2); matriceRowDraw (0x40, 0, 3); matriceRowDraw (0xFF, 0, 4); matriceRowDraw (0xFF, 0, 5); matriceRowDraw (0x40, 0, 6); matriceRowDraw (0x20, 0, 7); matriceRowDraw (0x10, 0, 8); } void matrixRight() { matrixRowDraw (0x18, 0, 1); matriceRowDraw (0x18, 0, 2); matriceRowDraw (0x18, 0, 3); matriceRowDraw (0x18, 0, 4); matriceRowDraw (0x99, 0, 5); matriceRowDraw (0x5A, 0, 6); matriceRowDraw (0x3C, 0, 7); matriceRowDraw (0x18, 0, 8); } annuler adcInit() { ADMUX = 0x60; ADCSRA = 0x80; } char adcGet(char chan) { ADMUX = 0x60 | chan; ADCSRA |= 0x40; while(bit_is_clear(ADCSRA, ADIF)); retour ADCH; } char adcAvg(char chan, char avgnum) // Moyenne uniquement jusqu'à 256 échantillons { int i = 0; total entier non signé = 0; for(i = 0; i < nummoy; i++) { total += adcGet(chan); } renvoie le total/nummoy; } int main() { initMatrix(); adcInit(); while(1) { while(adcAvg(3, 50) > 0x45 & adcAvg(2, 50) > 0x70) // Les valeurs hexadécimales ici doivent être modifiées en fonction de la configuration de l'utilisateur pour déterminer la sensibilité des capteurs flexibles. { if(adcAvg(1, 50) > 0x4F) { matriceRight(); } if(adcAvg(1, 100) < 0x4F) { matriceGauche(50); } } } renvoie 0; } Un merci spécial aux chambellans, mes parents et amis qui ont aidé.

Finaliste du concours Fêtes maison

Conseillé: