Робот-самоделка от энтузиаста из США
Детали напечатаны на 3D-принтере, а дизайн, видимо, взят от C-3PO из «Звездных войн»
Источник : Первый научный
Детали напечатаны на 3D-принтере, а дизайн, видимо, взят от C-3PO из «Звездных войн»
Источник : Первый научный
Всем привет!
Сегодня смотрим потрясающее видео, про световой меч и лазерный бластер. Удивительно, но лазерный луч можно сделать любой длины или вообще остановить отрезок луча. Не верите, тогда смотрите видео и напишите в комментариях как я это смог реализовать?
Собираю на ардуино несложное устройство и подключаю к нему лазер через MOSFET ключ, для формирования на лазере хитрых импульсов.
Что бы при комнатном освещении луч хорошо был виден на видеокамере я нашел на чердаке своей дачи старенький фен для волос, который понадобится для создания небольшого задымления в комнате. Меньше чем за 1 минуту фен превращается в дымогенератор.
Нужно всего лишь затолкать пару кусков ваты между спиралью и слюдяным каркасом на котором держится сама спираль. Потом наполнить шприц глицерином для вейпа и им смочить эти куски ваты.
Дымовая завеса уже готова, пора включить бластер и показать на что он способен.
Спасибо за просмотр и что-бы не пропустить видео в котором я раскрою секрет этого волшебства, следите за моими постами.
Мой первый пост.
К Новому Году замутил меч для сына. Цена вопроса 1800 грн. ($66) Кому интересно - под видео описываю затраты. За качество извините, пришлось притемнить видео в процессе съемки, а то ничерта не видно было.
Все началось с того, что стало вдруг интересно попробовать адресную светодиодную ленту WS2812 (144 светодиода на метр). Через месяц наигрался и решил сделать меч.
Основой служит угловой алюминиевый профиль для светодиодной ленты - если таких четыре штуки склеить вдоль то получится круглая палка. На фотографии профиль уже со светорассеивающей накладкой.
Заглушки.
Общая длина 97 см. Длина светящейся части - 73 см.
Ширина ленты 12 мм. А место для ленты в профиле - 10 мм. Просто прижал сильнее когда наклеивал.
Да, здесь наколхозил, ибо времени не было делать красоту с торца. Кнопка включения, штыри для прошивки микроконтроллера, штыри для заряда аккумулятора.
Три кнопки управления.
Внутри трубы удалось поместить: плату с тремя кнопками, батарейный отсек 18650, повышающий преобразователь напряжения MT3608, плата с микроконтроллером (atmega128a) и общий выключатель. Вот так это выглядит. (извините за мыльную картинку).
В микроконтроллер залил бутлоадер Ардуино. Ну и управляю светодиодами с помощью библиотеки FastLED. Я не программист, поэтому эффекты максимально простые, может со временем придумаю более интересные. Памяти в микроконтроллере завались. Как видно на видео - ленты независимы друг от друга. Всего в мече 424 светодиода. Насчет автономности - 40 минут на максимальной яркости белым цветом (самым жрущим аккумулятор). При влючении меч показывает заряд аккумулятора.
Короче сыну понравился меч.
По затратам:
> адресняа светодиодная лента WS2812B (почти 3 метра) - 1050 грн.
> угловой профиль со светорассеивающей накладкой - 40 грн.
> заглушки для профиля - 24 грн.
> труба сантехническая - 10 грн.
> микроконтроллер atmega128a - 200 грн. (на самом деле я покупал лет 8 назад за копейки)
> повышающий преобразователь напряжения - 20 грн.
> высокотоковый аккумулятор Samsung INR 18650-25r - 130 грн.
> батарейный отсек 18650 - 20 грн.
> общий выключатель - 10 грн.
> доставка и прочая мелочь - 300 грн.
ИТОГО: 1804 грн ($66).
Надеюсь кому-то это было интересно. С Новым Годом!
Всем привет!
Сегодня смотрим потрясающее видео, про световой меч и лазерный бластер, по мотивам фильма "Звездные войны" - "Star Wars". Удивительно, но лазерный луч можно сделать любой длинны или вообще остановить отрезок луча. Для этого нужно только ардуинку. Не верите, тогда смотрите видео и напишите в комментариях как я это смог реализовать?
Подписывайтесь, что бы не пропустить видео о том как это работает
Всем привет!
Абсолютное большинство людей при первом взгляде на название поста сразу же вспомнит киновселенную "Звездных войн". А точнее оружие джедаев и ситхов, один из самых известных атрибутов "Звездных войн", - световой меч .
В отличии от реализации реквизита в фильмах Джорджа Лукаса, где использовалась работа аниматоров и компьютерная графика ( мечи в первых фильмах были из самых разных материалов ), современные средства позволяют создавать очень реалистичную имитацию меча без профессиональных навыков проектирования и конструирования электронных устройств. Все, что требуется, как оказалось, - базовые знания схемотехники, программирования на С или С++, запас терпения и аккуратности. Ну и ловкость рук и никакого волшебства :)
P.S. Автор не отвечает за косяки людей, которые руководствуясь данным постом только все сломали. У автора есть на руках рабочий меч и сданный курсовой проект. Автор желает удачи всем тем, кто сейчас собирает что-либо на ардуино или только думает об этом.
*** Кое-что об Arduino Nano ***
В этом конечно же в первую очередь поможет контроллер Arduino NANO.
Платформа ардуино позволяет облегчить жизнь разработчику самоделок, упрощая этапы аппаратной реализации устройства. Начать работать с ней по силам даже абсолютным новичкам, которые никогда не занимались электроникой и последний раз изучали что-то еще в школе на физике.
Arduino NANO в отличии от своего супер популярного брата Arduino UNO обладает гораздо меньшими размерами, но почти не уступает ему в характеристиках. В качестве возможных замен можно использовать arduino micro и arduino mini, однако в случае arduino mini придется поработать с программатором, но это не слишком подходит для новичков, гораздо удобнее пользоваться usb разъемом. Поэтому решено было остановится на arduino nano.
Хотя у arduino nano v.3 уже не популярный разъем mini type b, на сайтах на подобии Aliexpress можно найти аналоги arduino nano с разъемом micro usb, в остальном по характеристикам они ничем не отличаются и стоят гораздо дешевле. Так что если у вас есть время подождать, то можете заказать несколько таких штук.
*** Схема меча ***
Для разработки схемы устройства, по которой позднее оно будет собрано, использовалась программа Fritzing. Главное ее преимущество в том, что принципиальная схема устройства генерируется автоматически по схеме устройства , собранной на плате беспаечной макетной плате, или breadbord.
Создаем схему меча на монтажной плате и дублируем ее в Fritzing.
Так как Fritzing и имеет очень большую библиотеку встроенных и огромное количество пользовательских элементов, однако на данный момент не покрывает все необходимые, в представленной схеме усилитель PAM8302a заменен на усилитель на базе PAM8403, который позволяет подключить 2 динамика и не имеет входа отключения SD. В данном случае, с небольшими изменения по имеющейся комплектации, принципиальная схема устройства выглядит так:
Световому мечу понадобится:
Датчик акселерометр-гироскоп MPU6050 - для распознавания взмахов и ударов
Светодиодная лента ws2811 на 30 или 60 диодов, от количества диодов зависит итоговая яркость меча.
Динамик на 1,5 Вт и 8 Ом и полярный конденсатор на 47мкФ ( который будет использоваться как фильтр высоких частот, а также снижать нагрев небольшого динамика ) или 3 Вт и 4 Ом, диаметром не более 40 мм.
Arduino Nano на базе Atmega328p.
XM1584 понижающий DC-DC преобразователь.
Стерео аудио усилитель 2х3W D-класса на базе PAM8403
Макетная плата для пайки 3*7 см
Кнопка питания на 12 В, обычная кнопка на 12 В
Слот для micro sd, работающий по протоколу SPI
3 аккумуляторные батареи 18650 с защитой или с контроллером питания ( схему подключения можно будет посмотреть далее).
Разъем питания и зарядки, а также сам блок питания на 12 В.
Трубка ПВХ для создания рукоятки меча, диаметр трубки 40 мм.
Заглушка для ПВХ трубы диаметром 32 мм.
Трубка поликарбонатная или ее аналог, длиной от 50 до 80 см.
Небольшой светодиод любого цвета, который вам по душе, примерные характеристики 2 В и 20 мА.
2 резистора на 220 Ом, резистор на 51 кОм и 100 кОм.
3 шлейфа с разъемами на 3 пина.
Монтажные провода для пайки платы и аккумуляторов (лучше с изоляцией из фторопласта), термоусадки подходящего для проводов и контактов кнопок диаметра.
Акриловая эмаль и/или аэрозольная краска желаемого цвета.
Всякая всячина для декорирования по вашему желанию ( у меня был черный коврик для мышки и пластиковая крышка)
Разберем каждый элемент по порядку.
Естественно к Vin входу arduino Nano подключается + цепи батарей, а к Gnd соответственно -.
Для подключения датчика акселерометра- гироскопа необходимо подключить соответствующие выходы элемента к входам ардуино:
Vcc к 3v3
Gnd к A1
Sda к A4
Scl к A6
Таким образом, контроллер будет показания о положении и угловом ускорении устройства.
Эти показания будут обрабатываться каждые 300мс и в соответствии с ними будет вызываться проигрывание звука взмаха и удара различной силы. То, как это происходит я опишу далее в пункте о прошивке устройства.
! В моем случае, датчик был установлен прямо на плату, поэтому пороговые значения для ускорений вышли довольно маленькими из-за чего иногда, но случаются ложные срабатывания меча. Рекомендую установить датчик также через шлейф и подключить его к верхней части трубки, чтобы этой проблемы постараться избежать. Ниже приложу картинку внешнего вида датчика MPU6050. !
Чтобы подключить модуль sd карты подключаем пины модуля к приведенным ниже входам arduino:
Gnd к A0
Vcc к 3v3
Cs к D8
Mosi к D11
Sck к D13
Miso к D12
Хочу предупредить, что модули для подключения Sd и MicroSd карты существуют различные и подключение их к плате ардуино может отличаться. Бывают и просто разъемы для sd карт, не имеющие на плате ничего, такие модули не подойдут для прямого подключения к ардуино.
Также, чтобы использовать карту необходима, чтобы она была отформатирована в FAT16 или FAT32, а также была менее 4 ГБ.
Ленту ws2811 без защиты от влаги можно увидеть ниже.
Для подключения ленты необходимо соединить следующие пины:
Din с D4 через гасящий резистор на 220 Ом
Gnd к землей батарей
+12 к питанию батарей
Понижайка подключается к питанию и земле батарей, усилитель подключается к выходам понижайки, а его информационный вход к D9.
Контрольная кнопка для переключения цветов меча, диод и резистор на 220 Ом подключаются последовательно к входам D4 и D3, как показано на схеме.
К выходам усилителя подключается динамик через конденсатор ( конденсатор подключается + к + усилителя), если он на 1,5 Вт и 8 Ом или напрямую, если она на 3 Вт и 4 или 8 Ом.
Лучше всего использовать батареи с защитой ( облегчить себе жизнь ), в зависимости от размера их можно разместить три вместе или пару и 1 отдельно. Если же вы приобретете батареи с защитой в виде контроллера, то в зависимости от размера их можно установить как они есть, либо подключить 1 батарею отдельно. Важно! Если будете подключать батареи при помощи проводов, то лучше всего скрутить их между собой. В зависимости от качества ваших проводов может случиться такое, что выходное напряжение будет ниже, чем необходимо, потому что на проводах, подключенных к питанию могут происходить наводки ( вики - наводки - "возникновение электрического потенциала, тока от внешнего воздействия электромагнитных полей" )
Ниже приложу фото подключения батарей к контроллеру питания.
Как можно заметить, к А6 пину контроллера подводится питание через делитель напряжения ( резистор на 51 кОм подключен к земле и А6, а резистор на 100кОм подключен к А6 и питанию). Таким образом максимальное питание, поступающее на А6 пин равняется 12 В / 3 = 4В. Назначение его в контроле уровня заряда батареи. Про проверку уровня заряда расскажу подробнее в пункте о прошивке. В принципе не обязательно придерживаться именно этих величин резисторов, важно лишь, чтобы сопротивления резисторов были высокими ( более 10кОм).
*** Пайка на плате ***
Наибольшее затруднение конечно же вызывает пайка платы. Для того, чтобы это было немного проще рекомендую использовать хорошие теплостойкие монтажные провода. Чтобы максимально компактно уместить все устройства на плате пришлось кончено немного потрудится с выбором их расположения. Конечно, можно и не утруждать себя так и установить все устройства в несколько уровней на одной стороне платы. Но легких путей я не ищу.
Кроме того, рекомендую подключать ленту, динамик и кнопку через разъемы, так соединения периферийных элементов, которые не находятся непосредственно на плате и подключаются к контроллеру через провода, будет гораздо надежнее.
Так что ниже прилагаю часть фото моей пайки платы.
*** Прошивка Firmware ***
Теперь пару слов о прошивке для контроллера.
Как уже было сказано ранее, для прошивки ардуино можно использовать язык С++ и создавать классы для работы с различными устройствами ( например, класс Sound - для работы со звуком, класс Sensor - для работы с датчиком и т.д). Главными функция являются setup и loop.
Setup - функция, которая выполняется 1 раз во время запуска устройства. В ней необходимо проинициализировать все глобальные объекты и переменные, установить настройки для библиотек и т.д.
Loop - тело бесконечного цикла, который будет выполняться во время работы меча. Основными функциями, которые исполняются в этом цикле будут ( в последовательном порядке исполнения):
lightEffect() - отображение световых эффектов
checkSensorState() - проверка показаний с датчиков
on_off() - анимация изменение состояния меча и сохранение нового состояния
buttonOp() - исполнение операций по нажатию на кнопку
blow() - анимация и звук удара
swing() - анимация и звук взмаха
! Коротко о данной последовательности. Можно незначительно поменять ее, но важно, чтобы проверка и исполнение анимации взмаха происходили после прохождения функции удара, т.к. удар имеет больший приоритет перед взмахом. Проверка показаний с датчиков естественно не должна быть между функциями blow и swing по понятным причинам. Проверку показаний с датчиков также необходимо производить до исполнения этих функций. !
Нажатиями на контрольную кнопку не только можно включать или выключать меч, также можно изменять цвет меча или в перпективе - фоновые звуки меча.
Для работы со светодиодной лентой я использую библиотеку FastLED. В качестве краткого совета хочу сказать о том, что во время установки и настройки работы библиотеки, в качестве количества LED необходимо указывать не количество непосредственно светодиодов, а количество микросхем, управляющих их работой. Например для 2х метров ленты ws2811 на 30 диодов/метр их будет 20.
В прошивке это будет выглядеть так
FastLED.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ),
где NUM_LEDS - количество микросхем .
Также используются библиотеки MPU6050, Wire для работы с датчиком акселерометра-гироскопа, TMRpcm и SD для работы со звуком.
А сейчас наконец расскажу про проверку уровня заряда.
Для того, чтобы удостовериться, что батареи еще имеют заряд достаточный для работы ( условно можно считать, что это уровень заряда более 10 % или около 3,5 В для батарей 18650), необходимо получить значения напряжения в цепи питания. Т.к. значения напряжения в различные промежутки времени могут колебаться, необходимо последовательно считать величину напряжения n раз. Чем больше n, тем выше точность. Но чтобы не тратить на проверку уровня заряда много времени можно остановиться на n равным от 5 до 10. Значения, которые приходят на пин A6, подключенный к цепи питания через делитель напряжения мы и будем считывать.
Код для расчета уровня заряда приведу ниже:
byte voltage() {
float volts = 0;
float k = 5;
for (int i = 0; i < 5; i++)
{
volts += ((float)analogRead(VOLT_PIN)) * k / 1024 * ((R1 + R2) / R2);
//получаем сумму 5 последовательных измерений уровня напряжения в цепи питания
}
int measure = 100 * (volts / (3*5)) ;
//получаем значение заряда для одной батареи, а также умножаем его на 100, для того, чтобы работать с целыми числами вместо цифр с плавающей запятой с 2 цифрами после запятой
if (measure > 380) //полный заряд
return map(measure, 420, 380, 100, 80);
else if ((measure <= 380) && (measure > 375) )
return map(measure, 380, 375, 80, 50);
else if ((measure <= 375) && (measure > 360)
return map(measure, 375, 360, 50, 25);
else if ((measure <= 360) && (measure > 340) )
//уровень заряда, когда уже нужна зарядка
return map(measure, 360, 340, 25, 8);
else //полностью разряжен, до такого лучше не доводить
return map(measure, 340, 260, 8, 0);
}
Таким образом, по полученному проценту уровня заряда можно ограничивать возможность включения устройства или делать индикацию при помощи мигания диодом на контрольной кнопке. Ниже, для интересующихся, добавляю фото графика разряда батарей 18650 при помощи которых определялись значения measure.
*** Результаты ***
Наконец последнее, но самое главное и интересное. Фото сборки корпуса и результатов)
Спасибо всем, кто дошел до этого места, а особенно тем, кто даже дочитал мой "кратенький" обзор-DIY-самоделку светового меча.
кому интересно почитать перевод описания самого автора прошу сюда - https://exclusive4ubro.wordpress.com/2015/12/10/%D1%81%D0%B2...