Table des matières:
- Étape 1: Schémas et matériel
- Étape 2: fabrication du PCB hébergeant les LED
- Étape 3: fabrication de la boîte
- Étape 4: Préparation de la cravate
- Étape 5: Coller les fibres optiques
- Étape 6: Mettre la fibre optique à travers la cravate
- Étape 7: Coller les fibres optiques à la cravate
- Étape 8: Le code
- Étape 9: Produit final
Vidéo: Cravate Starry Sky Led: 9 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Il y a quelque temps, j'ai trouvé un jouet d'enfant avec de la fibre optique dans un magasin à un dollar et j'ai commencé à réfléchir à ce que je pouvais en faire.
Une des idées folles que j'ai eues, c'était de faire une cravate avec l'effet d'un ciel étoilé.
J'avais encore des arduino pro mini, des cartes adafruit et des batteries qui conviendraient probablement à ce projet.
Donc, dès que j'ai trouvé une belle cravate large dans un prêteur sur gages de ma ville et que j'ai trouvé une boîte qui pourrait s'adapter au matériel, j'ai décidé d'y aller et d'essayer de la construire.
Cette instructable vous montre comment je l'ai fait.
Il fonctionne sur un arduino pro mini, un chargeur adafruit powerboost 500, emmerich icr 18650nh-sp et 5 LED blanches. Le code rend le changement de luminosité de la LED aléatoire. (Les 40 premières secondes de la vidéo sont à la vitesse 3x)
Étape 1: Schémas et matériel
J'utilise le matériel suivant:
- PCB avec LED Ice white et résistances 220 Ohm.
- Arduino pro mini (j'ai utilisé une contrefaçon)
- Chargeur Adafruit Powerboost 500
- Accu Li-ion Emmerich ICR-18650NH-SP
- Fibres optiques (en différentes tailles)
Étape 2: fabrication du PCB hébergeant les LED
J'ai coupé une bande d'un PCB pour contenir les LED et utilisé les broches LED pour le souder au PCB principal.
Connecté toutes les cathodes (-) à GND et utilisé la moitié des broches pour le souder collé au PCB principal.
Connecté toutes les anodes (+) aux résistances, et avec des câbles à l'arduino.
Les LED doivent chacune être connectées à l'un des ports PWM suivants: 3, 5, 6, 9, 10, 11
J'ai fait beaucoup d'erreurs avec ce projet et j'ai oublié de vérifier les bons ports PWM, j'ai donc dû ressouder quelques-uns plus tard. Testé avec High/Low, je ne l'ai donc remarqué que plus tard.
J'ai commencé avec 7 LED, mais il n'y avait que 6 ports PWM et l'une des LED que j'ai ressoudées est morte. J'ai juste gardé les 5 LED de travail et je n'utilise pas la 6ème.
Étape 3: fabrication de la boîte
J'ai utilisé un Bosch GRO (comme un Dremel) et une perceuse pour découper la forme de la batterie, le bouton, le port micro-usb, les en-têtes de l'Arduino et les fibres optiques. (utilisez un masque anti-poussière !)
Collé la batterie au boîtier avec 2 bandes.
Vis utilisées pour monter la carte Adafruit et le PCB.
Les frottements d'ouverture et de fermeture ont endommagé certains fils. J'ai dû les ressouder et utiliser de la colle pour éviter que cela se reproduise.
Étape 4: Préparation de la cravate
Suppression des coutures de la partie inférieure de la cravate pour s'adapter à la feuille de caoutchouc.
Pour cacher le matériel et pouvoir toujours y accéder si nécessaire, j'ai décidé d'utiliser une fermeture à glissière.
Je ne suis pas douée avec une machine à coudre, alors ma douce maman a mis une fermeture éclair au dos de la cravate.
Après cela, j'ai collé la feuille de caoutchouc dans la cravate. J'avais peur d'utiliser trop de colle qui saturerait le tissu et serait visible de l'avant, alors j'ai essayé de l'égaliser et de ne pas en mettre trop. Dans l'ensemble, cela a l'air bien, mais à quelques endroits, j'ai remarqué trop ou trop peu de colle, car elle passait à travers le tissu ou n'adhérait pas très bien au tissu. Heureusement, ce n'est qu'à peine visible de près en pleine lumière.
La boîte et la cravate sont maintenant terminées. Il est temps de coller les fibres optiques !
Étape 5: Coller les fibres optiques
Le jouet avait un gros faisceau de fils de fibre optique qui se séparait facilement. J'ai essayé de les coller un par un au début, mais j'ai vite remarqué qu'il serait préférable de faire des petits paquets et de les coller à la LED en une seule fois. Cela faciliterait la stabilité jusqu'à ce que la colle soit sèche. J'ai foiré la première LED pour comprendre cela.
Assurez-vous d'utiliser une colle transparente! Celui que j'ai utilisé a séché très lentement et la colle à séchage rapide que j'ai essayée sur la première LED est devenue blanche, rendant certaines fibres de la première LED moins lumineuses.
J'ai collé de petites feuilles de caoutchouc noir pour éviter les fuites de lumière sur le dessus et pour séparer les LED.
L'une des feuilles empêchait le boîtier de se fermer, j'ai donc ajouté un élastique pour maintenir le couvercle fermé.
Étape 6: Mettre la fibre optique à travers la cravate
En partant du bas, j'ai pincé des trous avec une aiguille et j'ai passé les fibres une à une. Les fibres de chaque LED se répartissent au hasard sur la cravate.
J'ai collé une bande noire à l'arrière qui devait aller jusqu'à la plus petite partie de l'attache pour garder le poids de la boîte, mais après avoir passé tous les fils et senti la tension des fils, j'ai décidé de coller tout à la cravate était une meilleure idée et a coupé la bande.
Étant donné que les fils de fibre optique du jouet étaient si courts, il était difficile de les ajuster sur toute la cravate. J'étais limité dans le positionnement de la boîte et j'ai eu du mal à tout rendre aussi plat que je le voulais.
Étape 7: Coller les fibres optiques à la cravate
J'ai collé tous les fils de fibre optique sur la feuille de caoutchouc pour éviter que les fils ne se détachent de la feuille de caoutchouc et pour rendre l'attache plate.
Pour m'assurer que je n'ai pas collé la pince à la cravate en appuyant dessus, j'ai mis du papier entre les deux. Ça n'a pas l'air génial mais ça marche bien. Et vous ne le voyez pas quand il est fermé.
Une fois la colle séchée, j'ai coupé les fils sur le devant et un peu la feuille de caoutchouc juste au-dessus du fil le plus haut, car l'attache était un peu trop longue.
Les photos avec la chemise blanche sont faites avant que je coupe ce dernier morceau de caoutchouc.
Étape 8: Le code
Ci-dessous le code que j'ai écrit pour la cravate.
Toutes les LED ont un réglage "moyenne" (pas réellement une moyenne mais une luminosité moyenne).
Dès qu'il atteindra cette moyenne, il décidera avec 3/4 de chance de passer à une luminosité inférieure. Il définit également de manière aléatoire une nouvelle luminosité minimale, une luminosité maximale, un temps d'attente pour la luminosité minimale et maximale et la vitesse à laquelle il augmente ou diminue à chaque tour (1-255) à partir de 5 valeurs prédéfinies. Ensuite, il effectuera un cycle jusqu'à ce qu'il atteigne à nouveau la moyenne. Seules 2 LED peuvent être dans un cycle élevé en même temps.
Chaque état est représenté par une valeur entière (1-7) déterminant s'il va en moyenne-faible, faible-moyenne, en attente faible, mise à jour, etc.
Pour plus d'informations sur le téléchargement de code sur l'arduino, veuillez consulter www.arduino.cc
/* Starry Sky Tie * * Il s'agit d'un script pour faire disparaître au hasard 5 LED d'une luminosité moyenne à une luminosité inférieure * ou supérieure avec des paramètres aléatoires inférieurs, supérieurs et de synchronisation * pour ressembler à un ciel étoilé lorsqu'il est utilisé avec des fibres optiques. * Dans ce cas, ceux-ci seront mis en œuvre dans une égalité. * * Chance haut/bas = 1/4 en haut, 3/4 en bas, avec un maximum de 2 * allant jusqu'au max en même temps. * * La moyenne reste la même. * Les options minimum, maximum et de synchronisation changent de manière aléatoire * à partir de 5 options chaque fois qu'une LED atteint à nouveau la moyenne. * * Créé par Billy Jaspers, mai 2019. *
/ Déclarer les épingles
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Variables de temps
currentTime long non signé; temps d'attente long non signé[5]; non signé long lastRound;
// Variables LED
int BrightMin [5] = { 10, 10, 10, 10, 10 }; // Luminosité minimale int brightAvg [5] = { 200, 200, 200, 200, 200 }; // Luminosité moyenne int brightMax[5] = { 240, 240, 240, 240, 240 }; // Luminosité maximale int timeWaitLow[5] = { 1000, 1000, 1000, 1000, 1000 }; // Temps d'attente int timeWaitAvg[5] = { 5000, 5000, 5000, 5000, 5000 }; // Temps d'attente int timeWaitMax[5] = { 4000, 3000, 3000, 3000, 3000 }; // Temps d'attente int increment[5] = { 2, 5, 4, 5, 2 }; // Incrément de luminosité int currentBright[5]= { 200, 230, 210, 210, 235 }; // Luminosité actuelle
// Possibilités de variables LED
int BrightMinPos[5] = { 5, 20, 40, 5, 20 }; // Possibilités de luminosité minimale int brightMaxPos[5] = { 240, 245, 230, 225, 245 }; // Possibilités de luminosité maximales int timeLowPos[5] = { 3000, 5000, 4000, 2000, 1000 }; // Temps d'attente sur les possibilités de faible luminosité int timeHighPos[5] = { 3000, 1000, 500, 2000, 4000 }; // Temps d'attente sur les possibilités de luminosité élevée int timeAvgPos[5] = { 3000, 5000, 4000, 7000, 8000 }; // Temps d'attente sur les possibilités de luminosité moyenne int incrementPos[5] = { 2, 4, 5, 3, 1 }; // augmentation des possibilités de luminosité
// Variables
bool démarrage = vrai; // Les paramètres de démarrage doivent-ils être démarrés ?
// Variables directionnelles
/* 0 = Attente à la moyenne 1 = va Moy à Low 2 = attend Low 3 = passe Low à Moy 4 = passe Moy à Max 5 = attend à Max 6 = passe High à Moy 7 = Mise à jour des variables*/ int statusLED[5] = { 0, 0, 0, 0, 0 }; int montantHighLED = 0; taux de rafraîchissement int = 50; bool statusWaiting[5] = { false, false, false, false, false}; // La Led attend ?
// Variables aléatoires
nombre aléatoire long; // Long pour stocker un nombre aléatoire long randomNumberTwo; // Long pour stocker le deuxième nombre aléatoire
// compteurs
entier je = 0; // Compteur pour la boucle principale
void setup() {
Serial.begin (115200); // Démarrer série randomSeed(analogRead(A0)); // Définir une graine aléatoire
// Déclarer les sorties
pinMode (LED01, SORTIE); pinMode (LED02, SORTIE); pinMode (LED03, SORTIE); pinMode (LED04, SORTIE); pinMode (LED05, SORTIE); }
// Écrire des données dans les LED
void writeToLED(){ analogWrite(LED01, currentBright[0]); analogWrite(LED02, currentBright[1]); analogWrite(LED03, currentBright[2]); analogWrite(LED04, currentBright[3]); analogWrite(LED05, currentBright[4]); }
// Boucle principale
void loop() { if (startup){ // Paramètres de démarrage lastRound = millis(); // Définir lastRound pour le démarrage writeToLED(); // Écrire les données de démarrage dans la LED startup = false; // Désactiver le démarrage } currentTime = millis(); // Définir l'heure actuelle
if (currentTime - lastRound >= refreshRate){
for (i=0;i<5;i++){ if (statusLED == 7){ // -7- Mise à jour de la Led randomNumber = random(5); BrightMin = brightMinPos[randomNumber]; // Définir une valeur aléatoire pour la luminosité minimale randomNumber = random(5); brightMax = brightMaxPos[randomNumber]; // Définir une valeur aléatoire pour la luminosité maximale randomNumber = random(5); timeWaitLow = timeLowPos[randomNumber]; // Définir une valeur aléatoire pour un temps d'attente réduit randomNumber = random(5); timeWaitMax = timeHighPos[randomNumber]; // Définir une valeur aléatoire pour un temps d'attente élevé randomNumber = random(5); timeWaitAvg = timeAvgPos[randomNumber]; // Définir une valeur aléatoire pour le temps d'attente moyen randomNumber = random(5); incrément = incrémentPos[randomNumber]; // Définir une valeur aléatoire pour la valeur d'incrément randomNumber = random(2); // Définir une valeur aléatoire pour la direction randomNumberTwo = random(2); // Définir une valeur aléatoire pour la direction if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg){ statusLED = 0; // Si au point le plus bas: aller à Waiting Avg }else{ currentBright = currentBright+increment; // Sinon: Plus haute luminosité } }else if (statusLED == 2){ // -2- Waiting Low if (!statusWaiting){ // Si pas d'attente: waitTime = millis(); // Définir le temps d'attente statusWaiting = true; // Commence à attendre }else if(statusWaiting && currentTime-waitingTime >= timeWaitLow){ // Si l'attente ET timeWaitAvg est passé: statusWaiting = false; // Arrêter l'attente statusLED = 3; // Définir statusLed sur En attente de mise à jour } } else if (statusLED == 1){ // -1- Going Moy to Low if (currentBright <= brightMin){ statusLED = 2; // Si au point le plus bas: Aller à Waiting Low }else{ currentBright = currentBright-increment; // Else: Lower Brightness } }else if (statusLED == 6){ // -6- Going Max to Avg if (currentBright = timeWaitMax){ // Si l'attente ET timeWaitAvg est passée: statusWaiting = false; // Arrêter l'attente statusLED = 6; // Définir statusLed sur En attente de mise à jour } } else if (statusLED == 4){ // -4- Going Avg to Max if (currentBright >= brightMax){ statusLED = 5; // Si au point le plus bas: Aller à Waiting High }else{ currentBright = currentBright+increment; // Else: Higher Brightness } }else if (statusLED == 0){ // -0- Attente moyenne if (!statusWaiting){ // Si pas d'attente: waitTime = millis(); // Définir le temps d'attente statusWaiting = true; // Commence à attendre }else if(statusWaiting && currentTime-waitingTime >= timeWaitAvg){ // Si l'attente ET timeWaitAvg est passé: statusWaiting = false; // Arrêter l'attente statusLED = 7; // Définir statusLed sur En attente de mise à jour } } } i=0; dernierRound = millis(); // Défini quand le dernier tour est terminé. writeToLED(); // Écrire toutes les données dans les LED } }
Étape 9: Produit final
Je pense que ça a bien marché. La cravate n'est pas trop épaisse, rigide, longue ou lourde et l'effet étoile est incroyable.
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Cravate de piano de travail: 6 étapes
Cravate de piano de travail: Les années 1980 ont apporté de nombreuses grandes réalisations dans le domaine de la mode et de la musique. Il y avait de la musique de synthé, le keytar funky, des leggings et la cravate de piano classique pour hommes. Ces cravates étaient portées ironiquement (et non ironiquement) par de nombreuses personnes à la mode (et démodées)
Construire un tableau de bord météo à l'aide de l'API Dark Sky : 5 étapes (avec photos)
Construire un tableau de bord météo à l'aide de l'API Dark Sky : Dark Sky est spécialisé dans les prévisions et la visualisation météo. L'aspect le plus cool de Dark Sky est son API météo que nous pouvons utiliser pour récupérer les données météo de presque n'importe où dans le monde. Ce n'est pas seulement le temps est pluvieux ou ensoleillé mais températu
Lancez votre diaporama de photos de vacances avec une touche de magie ! : 9 étapes (avec photos)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : Au fil des ans, j'ai pris l'habitude d'emporter une petite figurine avec moi en voyage : j'achète souvent un petit artoy vierge (comme celui sur la photo) et je peins il correspond au drapeau et au thème du pays que je visite (dans ce cas, la Sicile). T
SKY CAM une solution de caméra aérienne : 10 étapes (avec photos)
SKY CAM une solution de caméra aérienne : ce Instructable vous expliquera comment j'ai fait un système de caméra de câble à télécommande (semi-autonome) pour mon projet de produits électroniques GCSE à l'école et, espérons-le, vous permettra de créer votre propre système ! Ceci est conçu comme un guide approximatif