Bonjour à tous! Depuis mon enfance, j'aime l'univers de Star Wars. Quand j'avais 7 ans, j'ai regardé les épisodes 4 à 6 tellement de fois que je pouvais raconter leur contenu en détail.
Sans aucun doute, les impressions les plus vives des films sont les combats au sabre laser. Il y a deux ans, je suis tombé sur Internet sur un court article sur le choix d'un sabre laser en cadeau, je me suis intéressé et j'ai étudié ce sujet en détail.
à la fin de l'année, 8 épisodes sont sortis, le 4 mai approche à grands pas et à la veille de la Journée internationale de la guerre des étoiles, j'ai décidé d'écrire cet article.
Sous la coupe, je partagerai des informations sur les fabricants de sabres laser et parlerai de la création d'une épée économique avec un son basé sur Arduino.
Maintenant, sur Internet, il existe de nombreux fabricants commerciaux de sabres laser, les plus remarquables Ă mon avis:
â â â Genesis Custom Sabres - PoignĂ©es sur mesure de trĂšs haute qualitĂ©, le prix d'une Ă©pĂ©e personnalisĂ©e avec son varie entre 1500 et 3000 USD.
â â â Sabre Forge est un excellent choix, les prix sont plus abordables, mais les Ă©pĂ©es ne sont pas aussi authentiques que dans Genesis CS. Le prix d'une Ă©pĂ©e avec un son d'environ 300 USD.
â â â Ultrasabers est l'un des magasins les plus humains en termes de prix. Une Ă©pĂ©e avec un son de base coĂ»te environ 160 USD. Vous pouvez commander des composants individuels pour votre projet.
â â â The Custom Sabre Shop - Un site avec un magasin et un designer pour construire votre Ă©pĂ©e.
Il existe d'autres fabricants de sabres laser, par exemple,
â â â Makoto Tsai , qui fabrique les Ă©pĂ©es les plus brillantes sur la base de bandes LED faites maison.
Mais que se passe-t-il si vous ne voulez pas dépenser beaucoup d'argent, mais que vous voulez vraiment un sabre laser? Il n'y a qu'une seule issue: accumuler 5 000 roubles et vous fabriquer une épée.
Au moment du dĂ©marrage de mon projet, je n'avais pratiquement aucune expĂ©rience en programmation, les connaissances en Ă©lectronique Ă©taient totalement absentes. J'ai peut-ĂȘtre fait quelque chose qui n'Ă©tait pas de la meilleure façon, mais je continue Ă Ă©tudier et serai heureux de vos conseils.
En décrivant le processus de création d'une épée, j'essaierai de décrire toutes les principales difficultés.
Commençons donc. Voici une liste de tout ce que j'ai utilisé:- Arduino Pro micro 5v ~ 250 roubles sur Ali
- Module de son WT588D-U ~ 250 roubles sur Ali
- Step-up 3-5V ~ 100 roubles sur Ali
- Haut-parleur Ă28mm, 8ohm, 2W ~ 40 roubles sur Ali
- AccéléromÚtre ADXL335 ~ 200 roubles sur Ali
- N-MOSFET IRF530N x2 ~ 40 roubles chez Amperka
- LED Luxeon rebel 3W ~ 70 roubles sur Ali
- Objectif pour LED 8 ° ~ 50 roubles sur Ali
- Batterie CR123A x2 3.7V ~ 400 roubles sur Ali
- Batterie Krona 9v pour alimentation Arduino
- Support de batterie ~ 15 roubles sur Ali
- Bouton anti-vandalisme ~ 100 roubles sur Ali
- Interrupteur Ă bascule ~ 50 roubles sur Ali
- Tube en polycarbonate blanc 1 "~ 800 roubles Ă Moscou (il y a beaucoup de magasins, ils sont sur Google)
- Tuyau en PVC pour la fabrication de poignées
Vous aurez également besoin de fils, d'une vis pour fixer le tuyau en polycarbonate dans la poignée et d'un capuchon pour le tuyau en polycarbonate avec un réflecteur.
J'ai commandé une casquette avec un réflecteur dans la boutique de sabre personnalisé à partir de 7 $, la livraison pour les petits articles coûte 14 $.
Vous devrez également obtenir des sons pour l'épée quelque part, généralement un ensemble de sons d'activation / désactivation, des bruits de fonctionnement (bourdonnement), des sons de balançoires (swing), des sons de collisions (choc).
J'ai acheté un ensemble de sons sur le site Web de
Saberfont pour 7 $, mais je suis sûr que vous pouvez trouver des sons gratuits.
Les composants totaux sortent environ 5 000 roubles si vous achetez des sons, sinon, dans la région de 4 000.
Il existe deux principaux types d'éclairage de la "lame" - une LED puissante à la base du tube en polycarbonate, dont la lumiÚre est réfléchie par un capuchon à l'extrémité du tube et le deuxiÚme type est une bande LED segmentée faite maison. Des segments sont nécessaires pour allumer l'épée en douceur, comme dans les films.
Par exemple, Makoto utilise plusieurs rubans segmentés dans ses épées les plus brillantes.
Je recommande d'utiliser une LED puissante pour la premiĂšre version, elle est beaucoup plus simple et assez lumineuse.
Je veux dire tout de suite que les épées sur la vidéo sont plus brillantes que dans la vie, car la matrice de la caméra accumule la lumiÚre, contrairement à nos yeux. Ne vous attendez pas à ce que votre épée brille comme dans les films.
Je propose de commencer l'assemblage du prototype avec les réglages sonores.
La partie la plus difficile du projet a Ă©tĂ© de gĂ©rer le son, le module WT588D dans mon cas s'est avĂ©rĂ© ĂȘtre une option idĂ©ale, car Il fournit une lecture continue des fichiers audio, il ne nĂ©cessite pas de lecteur flash.
Avant de télécharger des fichiers sur WT, j'ai dû les éditer un peu, pour cela vous pouvez utiliser le programme gratuit
Audacity .
Il est nécessaire d'ouvrir chaque fichier tour à tour, de sélectionner la zone sonore (j'ai eu quelques secondes de silence à la fin de chaque fichier), dans le coin inférieur gauche de l'écran il faut régler la fréquence de 16000 à 22000 Khz. Si la fréquence est supérieure à 22000, WT ne permettra pas de télécharger le fichier. Exportation suivante sélectionnée - 16 bits.
Pour télécharger des fichiers sur le WT588D, vous aurez besoin d'un
programme pour télécharger les sons du fabricant du module - Waytronic (cela ne fonctionne que sous Windows, je l'ai exécuté sur MAC via BootCamp).
Vous devez exécuter le logiciel et sélectionner l'anglais dans les paramÚtres. Il existe plusieurs modes de fonctionnement dans le WT588D, j'ai choisi le mode unifilaire, car Il nécessite un minimum de soudure, le module communique avec l'Arduino via une broche.
Le champ de travail est divisé en 3 parties, à gauche est une liste de fichiers téléchargés sur le module, au milieu est une liste de listes de lecture, à droite est une liste de fichiers dans une liste de lecture.
Pour télécharger des fichiers, faites un clic droit sur la liste des fichiers téléchargés et sélectionnez Charger - recherchez et sélectionnez le fichier audio traité dans Audacity. Répétez l'opération pour tous les fichiers.
Ensuite, vous devez crĂ©er des listes de lecture, en ajoutant beaucoup de sons rĂ©pĂ©titifs du bruit de l'Ćuvre aprĂšs le son de l'inclusion et les sons des oscillations / collisions. Ceci est nĂ©cessaire afin de ne pas Ă©crire de code pour passer au bruit aprĂšs avoir allumĂ© / glissĂ©.
Nous appellerons le nombre de listes de lecture plus tard dans notre sketch. AprÚs avoir téléchargé des sons et préparé des listes de lecture, vous devez connecter l'alimentation au WT, connecter un haut-parleur et connecter la broche de données du WT à Arduino. Connectez également un bouton pour allumer / éteindre la lumiÚre / le son et une LED via le MOSFET à l'Arduino.
Voici mon schéma de connexion:

J'alimente le WT Ă partir d'une batterie distincte de 3,7 V via MOSFET, en utilisant une augmentation jusqu'Ă 5 V, auquel cas j'obtiens le volume de sortie maximal.
Vous devez d'abord enregistrer tout ce qui sera utilisé dans le croquis:
#define WT588D_SDA 8 // WT588D // const int xpin = A0; const int ypin = A1; const int zpin = A2; int oldtime; int newtime; int ADXL = 3; int BUTTON_PIN = 7; // int LED_PIN = 9; //MOSFET int WT_MOSFET = 6; //MOSFET WT588D int i = 0; byte file_count = 1; bool saberon; bool swingsound; void setup() { Serial.begin(9600); pinMode(BUTTON_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); pinMode(ADXL, OUTPUT); pinMode(WT_MOSFET, OUTPUT); pinMode(WT588D_SDA, OUTPUT); digitalWrite(ADXL, LOW); digitalWrite(LED_PIN, LOW); digitalWrite(WT588D_SDA, HIGH); digitalWrite(WT_MOSFET, LOW); saberon = false; swingsound = false; oldtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); // }
Pour que WT fonctionne, dans l'esquisse, vous devez déclarer la commande WT_Send_Command (*), pour cela, ajoutez le code suivant à la fin de l'esquisse:
void WT588D_Send_Command(byte addr) { digitalWrite(WT588D_SDA, LOW); delay(100); for (int i = 0; i < 9; i++) { digitalWrite(WT588D_SDA, HIGH); if (bitRead(addr, i)) { delayMicroseconds(600); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(200); } else { delayMicroseconds(200); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(600); } } digitalWrite(WT588D_SDA, HIGH); delay(50); }
L'étape suivante consiste à écrire le code de sorte que lorsque le bouton est enfoncé, la LED s'allume et la liste de lecture est lue avec le son. Lorsque le bouton a été pressé à nouveau, la LED s'est éteinte et la liste de lecture s'est éteinte.
Si vous n'avez pas d'expérience en programmation, pour une meilleure compréhension du code, je vous recommande de lire les documents suivants:
âą
Tutoriel Arduino Ifâą
Tutoriel boolĂ©en Arduinoâą
Tutoriel sur le bouton ArduinoVoici mon code pour reconnaßtre l'état d'un bouton et activer / désactiver les effets:
if (digitalRead(BUTTON_PIN) == LOW) { if (saberon) { WT588D_Send_Command(* ); delay(700); saberon = false; { analogWrite(LED_PIN, LOW); digitalWrite(WT_MOSFET, LOW); delay(1); } } else { digitalWrite(WT_MOSFET, HIGH); delay(100); WT588D_Send_Command(* ); { analogWrite(LED_PIN, HIGH); delay(1); } saberon = true; } }
Si tout est fait correctement, vous devriez, lorsque vous appuyez sur le bouton, entendre le son de l'allumage et le bruit, la LED devrait s'allumer. Lorsque vous appuyez à nouveau, le son est coupé et la LED doit s'éteindre.
La partie principale du croquis est prĂȘte, maintenant nous allons connecter l'accĂ©lĂ©romĂštre et faire jouer WT aux sons des vagues.
ADXL335 est assez facile à utiliser, il n'a pas besoin de connecter de bibliothÚques. Voici le schéma de connexion:
Pour que l'accéléromÚtre fonctionne, nous prendrons deux mesures et, sur la base d'une comparaison des lectures, jouerons le son d'une onde.
Je recommande de placer l'accéléromÚtre aussi prÚs que possible d'une extrémité de la poignée.
newtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); delay (100); if (newtime - oldtime >= 75 || newtime - oldtime <= -75) { if (swingsound) { swingsound = false; delay (50); } else { swingsound = true; WT588D_Send_Command(* ); delay (150); } } Serial.print(oldtime); Serial.print("\t"); Serial.print(newtime); Serial.print("\t"); Serial.print(newtime - oldtime); Serial.println(); oldtime = newtime;
Tout, le prototype est prĂȘt. Il est temps de crĂ©er une poignĂ©e et d'y mettre toute la farce.
J'ai fabriqué un manche en PVC, un insert pour une lame d'un diamÚtre de 28 mm.
J'ai eu des problÚmes avec la poignée, par conséquent, la premiÚre version était trop petite, maintenant j'en fais une nouvelle.
Dans la fabrication des poignĂ©es en PVC, vous n'ĂȘtes limitĂ© que par votre imagination, je ne peux que donner un conseil - avant de peindre, traitez la surface du tuyau avec du papier de verre fin, sinon la peinture ne tiendra pas bien.
Voici la premiÚre version de ma poignée, dans le couvercle j'ai percé des trous et placé un haut-parleur, et la lame est fixée dans le tuyau avec quatre vis:
Je n'ai pas inclus l'effet de choc dans mon Ă©pĂ©e, je rattraperai peut-ĂȘtre la prochaine fois. Mais si vous souhaitez activer le clash, vous aurez besoin d'un capteur de vibrations ou d'une configuration d'accĂ©lĂ©romĂštre pour reconnaĂźtre les accĂ©lĂ©rations courtes. Si quelqu'un peut configurer l'accĂ©lĂ©romĂštre, ne soyez pas trop paresseux pour partager le code, je l'inclurai dans un article vous mentionnant comme auteur.
Voici un petit test d'épée dans la rue la nuit:
mise Ă jour:
J'ai terminé le manche et travaillé sur la synchronisation des sons, ajouté un son de choc voici une vidéo mise à jour:
Je suis sûr que Geektimes lit un grand nombre de personnes trÚs talentueuses et compétentes, je vous demande de partager votre avis, de donner des conseils. Il est possible que grùce à la collaboration, nous puissions encore plus simplifier / optimiser le processus.
Assurez-vous de partager vos résultats, il est trÚs intéressant de voir ce que vous obtenez!
Merci Ă tous pour votre attention! Et que la force soit avec toi!