Мені з дитинства подобається всесвіт Зоряних Воєн. Коли мені було 7 років я стільки разів переглядав епізоди 4-6, що міг в найдрібніших подробицях переказати їх вміст.
Безперечно найяскравіші враження від фільмів - битви на світлових мечах.
Два роки тому я наткнувся в інтернеті на коротку статтю про вибір репліки світлового меча в подарунок, зацікавився і вивчив цю тему в подробицях.
В кінці року виходить 8 епізод, 4 Травня не за горами і в переддень міжнародного дня Зоряних Воєн я вирішив написати цю статтю.
Під катом я поділюся інформацією про виробників світлових мечів і розповім про створення бюджетного меча зі звуком на базі Arduino.
Зараз в інтернеті існує багато комерційних виробників реплік світлових мечів, найцікавіші на мій погляд:
Genesis Custom Sabers - Дуже якісні репліки на замовлення, ціна за елітний кастомний меч зі звуком варіюється в районі 1500-3000 USD.
Saber Forge - великий вибір, ціни більш демократичні, але і репліки не настільки автентичні як в Genesis CS. Ціна на меч зі звуком близько 300 USD.
Ultrasabers - один з найгуманніших магазинів щодо цін. Меч з базовим звуком коштує близько 160 USD. Можна замовляти окремі складові частини для свого проекту.
The Custom Saber Shop - сайт з магазином і конструктором для збірки свого меча.
Є й інші виробники реплік, наприклад Makoto Tsai. який робить найяскравіші світлові мечі на базі саморобних світлодіодних стрічок.
Але що робити якщо вам не хочеться витрачати багато грошей на покупку репліки, а світловий меч дуже хочеться? Вихід один - накопичити 5,000 рублів і зробити меч самому.
На момент початку свого проекту досвіду програмування у мене практично не було, пізнання в електроніці повністю були відсутні. Можливо я зробив щось не кращим чином, але продовжую вчитися і буду радий вашим радам.
В описі процесу створення меча я постараюся описати всі основні складності.
Отже, приступимо. Ось список всього що я використовував:
- Arduino Pro micro 5v
Вам так само знадобляться дроти, гвинт для фіксації полікарбонатовой труби в рукоятці і ковпачок для полікарбонатовой трубки з відбивачем.
Ковпачок з відбивачем я замовляв в Custom saber shop від стоїть там 7 доларів, доставка для малогабаритних товарів коштує 14 доларів.
Ще потрібно буде десь роздобути звуки для меча, зазвичай це набір з звуків включення / вимикання, шуму роботи (hum), звуки помахів (swing), звуки зіткнень (clash).
Я купував набір звуків на сайті Saberfont за 7 доларів, але я впевнений що можна знайти безкоштовні звуки.
Разом з компонентів виходить близько 5,000 рублів якщо купувати звуки, якщо немає, то в районі 4,000.
Існує два основних види підсвічування «леза» - один потужний світлодіод біля основи полікарбонатовой трубки, світло якого відбивається ковпачком на кінці трубки і другий тип - саморобна сегментування світлодіодна стрічка. Сегменти потрібні для плавного включення меча, як у фільмах.
Наприклад, Makoto в своїх найяскравіших мечах використовує кілька сегментованих стрічок.
Я рекомендую використовувати для першого билда один потужний світлодіод, це набагато простіше і досить яскраво.
Пропоную розпочати складання прототипу з налаштування звуку.
Найскладніше в проекті було розібратися зі звуком, модуль WT588D в моєму випадку виявився ідеальним варіантом, тому що він забезпечує безперервне відтворення звукових файлів, для нього не потрібно флешка.
Перед завантаження файлів на WT, мені довелося їх небагато відредагувати, для цього можна використовувати безкоштовну програму Audacity.
Потрібно запустити ПО і вибрати в налаштуваннях English.
У WT588D існують кілька режимів роботи, я вибрав One-line mode, тому що він вимагає мінімуму пайки, модуль обмінюється даними з Arduino через один пін.
Робоче поле поділене на 3 частини, зліва - список завантажених на модуль файлів, по середині - список плейлистів, праворуч - список файлів в плейлисті.
Для завантаження файлів потрібно натиснути правою кнопкою миші по списку завантажених файлів і вибрати Load - знайти і вибрати оброблений в Audacity звуковий файл. Повторити для всіх файлів.
Далі потрібно скласти плейлисти, додавши багато повторюваних звуків шуму роботи після звуку включення і звуків помахів / зіткнень. Це потрібно для того, щоб не писати код для перемикання на шум після включення / помахів.
Номери плейлистів ми будемо викликати далі в нашому скетчі.
Після завантаження звуків і підготовки плейлистів потрібно підключити живлення до WT, підключити динамік, і з'єднати Data пін WT c Arduino. Так само підключити до Arduino кнопку для включення / вимикання світла / звуку і світлодіод через MOSFET.
Ось моя схема підключення:
Я маю WT від окремого акумулятора 3.7В через MOSFET, використовуючи step-up до 5.5В, в такому випадку отримую максимальну гучність на виході.
Для початку потрібно прописати все що буде використано в скетчі:
Для роботи WT, в скетчі потрібно декларувати комманду WT_Send_Command (*), для цього додайте в кінець скетчу наступний код:
Наступним кроком потрібно написати код для того щоб при натисканні кнопки, включався світлодіод і програвався плейлист зі звуком включення. При натисканні кнопки ще раз, світлодіод вимикався і грав плейлист виключення.
Ось мій код для розпізнавання стану кнопки і включення / вимикання ефектів:
Якщо все зроблено правильно, ви повинні при натисканні кнопки чути звук включення і шуму, світлодіод повинен включатися. При повторному натисканні, звук вимикання і світлодіод повинен гаснути.
Основна частина скетчу готова, тепер підключимо акселерометр і змусимо WT відтворювати звуки помахів.
ADXL335 досить простий у використанні, для нього не потрібно підключати будь-які бібліотеки. Ось схема підключення:
Для роботи акселероментра ми будемо робити два виміру і на основі порівняння показань програвати звук помаху.
Акселерометр я рекомендую розміщувати якомога ближче до одного з кінців рукоятки.
Все, прототип готовий.
Пора створити рукоять і помістити в неї всю начинку.
Рукоятку я робив з ПВХ труби, вставка для леза діаметром: 28мм.
З рукояткою у мене виникли проблеми, в результаті перша версія виявилася замалою, зараз роблю нову.
У виготовленні рукояті з ПВХ ви обмежені лише вашою фантазією, можу лише дати одну пораду - перед фарбуванням обробіть поверхню труби дрібної наждачкою, інакше фарба буде погано триматися.
Ось перший варіант моєї рукояті, в кришці я висвердлив отвори і розмістив динамік, а лезо фіксується в трубі чотирма гвинтами:
Ось невеликий тест меча вночі на вулиці:
Я впевнений, що Geektimes читає велика кількість дуже талановитих і умілих людей, прошу вас, поділіться своєю думкою, дайте пораду. Можливо що завдяки колаборації ми зможемо ще більше спростити / оптимізувати процес.
Обов'язково діліться своїми результатами, дуже цікаво подивитися що вийде у вас!
Всім дякую за увагу! І нехай прибуде з вами сила!