LED Cube
Собрал кубик, основываясь на проекте [AlexGyver](https://pikabu.ru/@AlexGyver). + прикрутил акселерометр. Идея была сделать что-то вроде симуляции воды или просто частиц в поле тяжести. Код пока очень примитивный, но картинка уже радует.
По сборке - полная копия кубика Алекса, 512 диодов, работает от 5 Вольт. Акселерометр GY-521.
ПыСы Если кто-то подскажет, как по-человечески ссылку на алекса сделать - буду благодарен.
Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома1
Автор: CyberexTech
Больше интересных фото, видео и комментариев в оригинале материала
В свете широкого внедрения систем домашней автоматизации возникает потребность в более естественном взаимодействии с «умным домом». Как средство натурального взаимодействия между человеком и машиной, голосовой интерфейс заслуженно занимает высокую популярность. В данной статье я поделюсь своим опытом создания бюджетного автономного голосового ассистента для систем умного дома.
❯ Небольшая предыстория
Больше года назад я нашел в своих закромах одноплатный компьютер Raspberry Pi 4 Model B 8 ГБ. Устройство было куплено за небольшую цену в то время, когда человечество ещё не сошло с ума. Без долгих размышлений, я принял решение создать голосового ассистента на базе этого одноплатного компьютера, чтобы управлять своей системой домашней автоматизации. Бонусом к этой идее шли приватность и автономность. В итоге у меня «родилось» устройство под кодовым именем «Мария».
Но в этой статье не пойдет речь об использовании Raspberry Pi 4 Model B, так как в современных реалиях использование данного одноплатного компьютера стоимостью более $190, трудно назвать бюджетным решением.
❯ Давайте изобретать
Недавно компания Xunlong Software, которая занимается выпуском одноплатных компьютеров под маркой Orange Pi, представила интересное решение — плату Orange Pi Zero 2W с 4 ГБ оперативной памяти, стоимостью $27.
Данное решение вполне подходит для нашего проекта, как в техническом, так и в экономическом плане.
Итак, определимся с конструкцией устройства. Изучив спецификацию Orange Pi Zero 2W, у нас формируется следующий список дополнительных компонентов:
Динамик 52мм (просто он у меня уже был $1,3)
Усилитель низкой частоты (буду использовать PAM8403 $0,9 за 10 шт)
USB микрофон (xingzhaotong $1,5)
Шлейф FFC FPC 24pin тип B ($1)
RGB светодиод
❯ Разработка звуковой платы
Согласно документации, аудиовыходы реализованы на боковом разъеме FPC, а интерфейс I2S отсутствует. По крайней мере, мне не удалось его реализовать на этой плате. Таким образом, в качестве аудиовхода мы будем использовать USB-микрофон. В версии «Мария» я использовал I2S-микрофон, который продемонстрировал отличные результаты. Ниже предоставлена распиновка бокового разъёма.
Исходя из вышесказанного, в процессе разработки у нас получается следующая схема «звуковой платы»:
Так могла бы выглядеть плата при производстве на китайской фабрике:
❯ Изготовление звуковой платы
На тот момент, я разрабатывал прототип, и не было известно, как поведет себя схема звуковой платы. Поэтому пришлось выполнять изготовление прототипа платы в домашних условиях, для меня это дело привычное. Плата изготавливалась с помощью фоторезиста и вытравливалась в растворе перекиси водорода, лимонной кислоты и соли.
Немного были переживания относительно качества вытравливания мелких дорожек, но фоторезист не подвёл, всё получилось хорошо.
Ниже показано тестовое подключение звуковой платы к одноплатному компьютеру с помощью шлейфа FFC FPC:
❯ Настало время творчества! Проектируем корпус
Обычно в своих разработках я использую естественный интеллект. Поэтому пришлось придумывать дизайн корпуса самостоятельно, учитывая особенности печати 3D принтера. Разработку модели корпуса выполнял с помощью FreeCAD, результат моделирования вы можете видеть ниже.
Элементы корпуса были спроектированы с учетом оптимизации процесса печати, при этом качество не пострадало. В процессе печати не используются структуры поддержки. Ножки корпуса выполнены из TPU-пластика, использование флекс пластика предотвращает скольжение умной колонки по поверхности стола.
❯ Сборка умной колонки
Подключение элементов устройства выполняется по следующей схеме:
Как видно из схемы, для управления усилителем используется выход 28 (wPi 18) RPI разъёма, данный выход подключается к контакту звуковой платы с обозначением «SOUND EN». К выходам 26, 24, 22 подключается управление RGB светодиода, который выполняет функцию индикатора при выполнения запросов.
Как я упоминал ранее, в качестве микрофона используется USB микрофон марки xingzhaotong, который выглядит так:
Для установки в корпус колонки, нам необходимо его полностью разобрать и оставить только плату. Данная плата подключается согласно распиновки к соответствующим контактам на звуковой плате GND, DP, DM, VCC.
Давайте приступим к сборке устройства. Предварительная примерка платы Orange Pi Zero 2W:
Вид сверху без верхней крышки, на верхней поверхности резонатора виден прикрепленный USB микрофон в центре будет размещен RGB светодиод.
Вид снизу собранной умной колонки. Также снизу располагаются вентиляционные отверстия для охлаждения платы
Для питания устройства используется модуль с разъёмом USB Type C, который фиксируется в специальном адаптере
❯ Немного программной части
В этой статье я не планировал описывать программную часть устройства, так как это занимает большой объем информации, лучше это сделать в отдельной статье. Но ниже будут предоставлены некоторые моменты по программной настройки устройства.
Операционная система:
В качестве операционной системы я использовал Debian Bullseye c версией ядра 6.1.31, скачать можно на официальном сайте Orange Pi.
Управление GPIO:
Для управления GPIO используется официальная библиотека Orange Pi wiringPi.
Установка wiringPi:
apt-get update
apt-get install -y git
git clone https://github.com/orangepi-xunlong/wiringOP.git
cd wiringOP
sudo ./build clean
sudo ./build
После успешной установки Orange Pi wiringPi, мы можем вывести таблицу GPIO:
gpio readall
В итоге мы увидим следующее:
Обратите внимание, что в колонке «V» указано текущее состояние пина RPI.
Чтобы изменить состояние, мы можем воспользоваться следующими командами:
gpio mode 18 out # Изменение типа пина вход/выход (in/out)
gpio write 18 0 # Изменение уровня пина низкий/высокий (0/1)
gpio read 18 # Чтение состояние пина
Пример одного из вариантов управления GPIO из Python скрипта:
import os
os.system("gpio mode 18 out") # Изменение типа пина вход/выход (in/out)
os.system("gpio write 18 0") # Изменение уровня пина низкий уровень
os.system("gpio write 18 1") # Изменение уровня пина высокий уровень
os.system("gpio read 18") # Чтение состояние пина
Проверка наличия микрофона в системе:
Чтобы убедиться в правильности подключения микрофона, в консоли необходимо выполнить следующую команду:
arecord -l
Вывод команды должен быть следующим:
**** List of CAPTURE Hardware Devices ****
card 2: ahubhdmi [ahubhdmi], device 0: ahub_plat-i2s-hifi i2s-hifi-0 [ahub_plat-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
Как видим из вывода, устройство USB PnP Sound Device успешно определилось в системе, если устройство отсутствует, то необходимо убедиться в его корректном подключении.
Настройка аудиовыхода:
Чтобы сконфигурировать аудиовыход под наши задачи, в терминале необходимо выполнить следующую команду:
alsamixer
В консоли появится окно с аудио устройствами, нажав F6 необходимо выбрать наше устройство с именем audiocodec и выполнить настройку как отображено ниже на картинке:
После этого можно выполнить алгоритм теста аудиосистемы.
Вывод списка доступных устройств воспроизведения звука:
aplay -l
Вывод команды:
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: ahubhdmi [ahubhdmi], device 0: ahub_plat-i2s-hifi i2s-hifi-0 [ahub_plat-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
Мы используем линейный выход, поэтому наше устройство имеет имя CDC PCM Codec-0 [CDC PCM Codec-0]. Давайте протестируем вывод звука через наше устройство.
Первое что нужно сделать — это включить наш усилитель с помощью команд:
gpio mode 18 out
gpio write 18 1
Далее нам необходимо запустить тест с помощью генератора шума, командой в терминале:
speaker-test -c2 -Dplughw:0,0 # plughw:0,0 - это адрес нашего звукового устройства
Вывод команды:
speaker-test 1.2.4
Playback device is plughw:0,0
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 131072
Period size range from 16 to 16384
Using max buffer size 131072
Periods = 4
was set period_size = 16384
was set buffer_size = 131072
0 - Front Left
1 - Front Right
Time per period = 2.742858
0 - Front Left
1 - Front Right
Time per period = 5.461073
0 - Front Left
1 - Front Right
Time per period = 0.580064
Во время теста должен наблюдаться «белый» шум из динамика, если это произошло, то подключение и настройка аудиосистемы была выполнена корректно.
❯ Итог
В этой статье я попытался описать реализацию аппаратной части своего DIY проекта голосового ассистента для умного дома. Написание статьи отнимает большое количество времени, поэтому программную часть проекта постараюсь описать в следующем материале, если вам будет интересно.
Предугадывая ваш вопрос — «Почему бы не использовать Yandex Алису и подобные коммерческие решения?», сразу же изложу свою мысль:
Я сторонник автономных решений в плане их использования в критической инфраструктуре. А системы умного дома я отношу к этим категориям, поэтому, с моей точки зрения, использование устройств, зависящих от внешних систем, недопустимо. Описанное в статье решение не использует внешних сервисов для распознавания речи, векторизации запросов, синтеза речи и управления устройствами. И, конечно, я имею полный контроль над алгоритмами моего устройства, включая приватность.
Спасибо за ваше внимание! Ниже под спойлером несколько видео работы собранного устройства.
Файлы проекта:
Так же рекомендуем почитать:
Гитара-синтезатор: как это работает
Привет, Пикабу! Меня зовут Макс и я CTO/co-founder NoLi Music. Изначально у нас была идея воспроизвести кнопки как на Yamaha, но мы сразу упёрлись в несколько ограничений:
Во-первых, Yamaha обладала мембранной клавиатурой, как на пультах от телевизора или некоторых компьютерных, ощущения от игры получаются как от игры на пульте от телека - ты что-то зажимаешь и надеешься, что не наткнёшься на плохой канал. Тактильные ощущения совсем не те - есть “щелчок”, клавиши приходится зажимать сравнительно сильно, делать слайды неудобно.
Во-вторых, на клавишах невозможно делать некоторые гитарные приёмы, такие как вибрато - это когда ты зажимаешь струну, дёргаешь её и отклоняешь на грифе в стороны, создавая “вибрирующий” звук. Бенд - “эффект блюзмена” - тем более не выйдет. Для этого нужно потянуть струну ещё сильнее, сдвинув на половину грифа.
Сначала у нас родилась “гениальная” идея - мы решили сделать кнопки магнитными. Это когда на грифе прикреплён магнит, а над ним в маленьких тубусах левитируют магниты, удерживающие кнопки. Мы собрали прототип одной такой кнопки; он продемонстрировал отличное плавное нажатие без щелчка, а главное, что силу нажатия можно было легко регулировать, просто заменяя магниты. Так мы планировали подобрать идеальное усилие и даже думали выпускать несколько вариантов грифа, soft, medium, hard, благо гитара у нас модульная и гриф легко отсоединяется и заменяется на другой с универсальным коннектором.
Но эти кнопки всё ещё не могли дать того же опыта, что дают обычные струны. Многие музыканты, которые пробовали играть на прототипе, говорили, что всё круто, но кнопки ощущаются как-то не так. Будто бы ты играешь не на гитаре, а на пианино в виде гитары.
Было ясно, что нужно что-то другое.
И вот, в какой-то момент я просыпаюсь с простой, в общем-то, идеей: самый простой способ воспроизвести струны - это использовать струны.
Во время двухдневного брейншторма с нашим инженером мы придумали концепт, который может реализовать это. Мы думали о разных технологиях, вплоть до сенсорного экрана или датчика, но в результате выбрали и продумали концепт, о котором расскажем чуть позже.
Сейчас могу сказать только одно: в итоге у нас используются обычные струны, только зажать их можно лёгким прикосновением, так как звук из них извлекается не за счет акустических колебаний, а полностью электронно.
Словами не передать, как окрылённо мы себя чувствовали! Мы только что придумали, как сделать так, чтобы гитара была полностью аналогична обычной “электрухе”, только гораздо лучше. Конечно, впереди ещё очень большой путь, но мы сделали первый шаг, чтобы перевернуть мир музыки и сделать с обычными электрогитарами то же, что синтезаторы сделали с пианино: оставить их удёлом ценителей.
Мы сразу же бросили разработку грифа на кнопках, через 4 дня был готов proof-of-concept прототип, который демонстрировал работоспособность идеи “в металле” - наша штука весело мигала лампочками каждый раз, когда мы зажимали струну, и данные приходили в нужном формате.
Осталось всего-ничего – превратить это
в это
Конечно же, все думали, что процесс займет максимум пару недель. Спустя 2 месяца работы (инженер работал почти круглосуточно) и 3,5 прототипа мы, наконец, ЗАКАНЧИВАЕМ полноразмерный гриф.
Это было чертовски больно. В первую очередь потому, что мы обещали всем показать рабочий прототип ещё в январе. Вот они, прелести итеративной разработки, можно сказать, Elon Time.
В общем, теперь гитара представляет из себя вот такую штуку:
Есть дека, она же - корпус гитары.
В ней расположена вся основная начинка:
Центральная часть гитары - “мозги”. Сначала мы пробовали сделать всё на микроэлектронике, контроллеры, суровые 2кб оперативки, вот это всё. Но знаете что, Пикабу? Ну его. Мы выбрали Raspberry PI Zero. В нём чуть менее суровые 2гб оперативки, возможность писать на высокоуровневых языках, полноценная ОС (никогда не забуду лицо своего кота, когда он смотрел, как я выхожу в интернет, подключив гитару к телевизору по HDMI), а главное - Raspberry стоит всего около 1500 рублей даже в розницу, что получается дешевле плат от STM.
К “мозгам” подключается отдельная звуковая карта, цепь усиления и динамик. Динамик мы искали максимально качественный, но нашли какой нашли (если есть на примете хорошие динамики до 10см в диаметре - будем очень признательны увидеть советы в комментах). Питает всё это дело наша новая цепь питания, состоящая из акума, выключателей, стабилизатора и портов. Цепи разведены на два вольтажа - один для распберри, другой для динамика (он требует 10-12 вольт).
Сверху, прямо над малинкой, располагается модуль струн для ведущей руки, т.е. правой, если вы - правша. Струны различают силу удара по ним и выдают разный по мощности сигнал. Ещё они оснащены ёмкостным сопротивлением, которое позволяет нам чувствовать прикосновение к струне и, например, играть бой с глушением.
Из распберри есть выход на сенсорный экран, на котором происходит всё взаимодействие с устройством - выбор семплов, режимов игры, коннект с приложением и интерактивный обучающий режим. Пока тут рассказать особо нечего, так что закончим нашу экскурсию на коннекторе для грифа. Он представляет собой VGA-подобный разъем (пока что) и клипсы, которые мы печатаем сами на 3D-принтере. Гриф состоит из платы, корпуса, крышки и механики струн. О нём я рассказывал ранее.
Сейчас мы заканчиваем работу над грифом и занимаемся эргономикой и оптимизацией корпуса - хотим максимально продумать логистику проводов и уменьшить вес и размеры настолько, насколько это возможно.
Ах, да. Наш гриф, в отличие от грифа Ямахи, будет состоять из 17 (а не 12) полноценных ладов, и будет иметь возможность транспонирования (смещения) вверх или вниз по нотному стану. 17 ладов мы выбрали как разумный компромисс между размерами (22 всё же слишком много для компактного инструмента, да и стоить будет дороже) и желанием людей запиливать соляки выше 12 лада. По моему опыту, ладами после 17 пользуется уж очень мало людей, хотя и им, если что, мы дадим возможность реализовать своего маленького Джимми Хендрикса другим способом. Предлагайте, кстати, свои идеи. Самая оригинальная будет удостоена специальной премии “небанальный гитарист” - можем подарить вам укулеле с автографом :)
p.s. Рычажок, настраиваемый с сенсорного экрана, не предлагать, эту идею мы обдумываем и сами :)
Я мог бы рассказать ещё очень много, благо есть о чём: приложение, софт, серверная и девопс часть (обновление прошивки по интернету и CI/CD к железке - не самая скучная тема), но об этом потом, и так получилось довольно много текста.
Ручки из композита М3
Хой, Пикабушники!..
Давно тут не постил ничего, каюсь!..
Сегодня решил исправиться, показать ручки из интересного материала под загадочным названием М3.
М3 представляет собой макромолекулярный материал из очень мелкой металлической пыли (размер порядка микронов) и специальной смолы. В результате перемешивания раствора смолы с этой пылью получается необычный рисунок, напоминающий дамасскую сталь, на которой рисунок получают чередованием марок стали.
В М3 рисунок получается чертовски красивым с металлическим блеском, но по своим свойствам М3 напоминает скорее пластик, потому что молекулы металла находятся слишком далеко друг от друга. Если добавить два металлических порошка, то будет сочетание металлов совсем как в дамасске, или скорее как в мокуме. В бруске этот материал не очень красиво выглядит.
Сверлить нужно с предельной осторожностью, чтобы не перегреть. Ведет М3 себя совсем как пластик, давая бесконечную стружку.
После того, как просверлили - наступает время обработки в токарном станке.
Обрабатывается сложно, с огромным количеством пыли и стружки. Но в конце получается просто конфетка, потому что при полировке проявляются свойства металла.
Сочетание металлического блеска и внешнего вида дамасска создают потрясающую игру света и тени.
Ну а дальше немного слайдов. =)
Мастер по изготовлению кухонных ножей сделал свой самый острый нож из углеволокна.
До этого были попытки изготовить острые ножи из шоколада, кацуобуси (какой-то сорт сушёной рыбы, что ль? высушенное бонито по-другому), полиэтиленовой пищевой плёнки, затем из какого-то драгоценного камня, из железного (бакаутового) дерева, из пасты, сделанной из манной крупы... В общем, отшибленный японец с доступом к хорошим высокотехнологичным инструментам. Однако, последний из ножей, сделанный из углеволокна, он считает самым острым из своих неметаллических поделок.
Обзор и тестирование заморской лампы Energizer
В руках у меня светодиодная лампа из турецкого супермаркета, стоимостью 49,9 турецких лир. Однако, меня удивила цена на эту лампу на eBay — 8,49 долларов, что примерно равно 645 рублям по курсу 76 (тогда еще был такой..). За турецкие лиры она обойдется примерно в 200 рублей. Лампа известной марки "Energizer", которую мы уже знаем по их батарейкам.
Но прежде чем перейти к обзору, давайте оставлю краткую статистику по нашему динамическому рейтингу. Обозначим, так сказать, "слепок сегодняшнего дня".
Думаю, это будет теперь постоянной рубрикой в обзорах, которая поможет читателю понимать, кто в лидерах, а кто в аутсайдерах из производителей. Рейтинг светодиодных ламп е27 же будет постоянно пополняться и меняться взависимости от ваших оценок.
Теперь же к обзору.
Обещают мощность 8,2 ватта, но мне интересно узнать, соответствует ли это действительности. При подключении к сети 220 вольт, лампа потребляет 7,3 ватта. При увеличении напряжения до 230 Вольт, мощность составляет 7,8 Ватт. Коэффициент мощности равен 0,6, что является обычным значением для большинства светодиодных ламп.
Расходы на год составляют 121 рубль при использовании лампы 8 часов в день и тарифе 5,38 рублей за киловатт.
После возвращения напряжения к 220 вольт и примерно 15-минутной работы, мощность остается стабильной - 7,5 ватт. При увеличении напряжения до 230 вольт, мощность возрастает до 7,9 ватт, отличие с составляет менее 5%. Производитель не обманул нас в отношении заявленной мощности.
Чтобы правильно использовать светодиодную лампу, необходимо знать ее реальные характеристики качества света. Цветовая температура этой лампы составляет 2961 Кельвина, индекс цветопередачи 81,8. Точка на диаграмме цветности показывает оттенок света лампы между 2700 и 3000 Кельвина, ближе к 3000 Кельвинам, с невидимым для глаза смещением в желто-зеленый оттенок.
В отношении пульсаций света от этой лампы и их влияния на наше здоровье нет никакого риска. Уровень пульсаций составляет 1,38%, что является очень хорошим показателем, особенно при частоте более 38 кГц. График показывает небольшую амплитуду пульсаций и высокую частоту.
Теперь же интересно узнать, как изменяется количество света и является ли освещенность стабильной при изменениях напряжения в розетках. Лампа находится на высоте метра над столом, и при напряжении 230 вольт освещенность составляет 200 Люкс. Даже при напряжении 250 вольт ничего не меняется, глазом мы этого не заметим. Но если напряжение упадет до 170 вольт, это будет заметно, освещенность составит 9 люкс, почти полная тьма. При 160 вольтах наступает полная темнота. Драйвер этой лампы не обладает хорошей устойчивостью к изменениям напряжения в розетке, поэтому изменение напряжения сети приводит к изменению освещенности, и это будет заметно.
Похоже что есть проблема с работой этой лампы с выключателем с подсветкой. При отсутствии напряжения индикатор на выключателе не светится, но когда напряжение подается, индикатор зажигается, но сама лампа не горит или тлеет очень слабо. Когда я включаю лампу, она светится на полную яркость, но когда ее выключаю, она продолжает тлеть довольно ярко, особенно в полной темноте. Это указывает на то, что данная лампа от Energizer несовместима с выключателем, имеющим подсветку.
Производитель Energizer указал размеры лампы (110x60 миллиметров) на упаковке, и в реальности размеры совпадают с указанными. Здесь можно доверять размерам от Energizer.
Во время работы лампа нагревается достаточно сильно. Корпус нагревается до около 81 градуса Цельсия, колба – 41 градус. Однако, температура диодной платы под рассеивателем не превышает 100 градусов Цельсия, что соответствует допустимому температурному режиму для работы светодиодов в течение продолжительного времени.
Также, я решил сократить количество тестов, которое побликую на неспециализированных ресурсах. Была обратная связь, что очень много лишнего. Оставил только основное, чтобы не пугать публику. Если же возникнет желание ознакомиться с полным набором измерений - предлагаю почитать полное тестирование лампы energizer.
Спасибо за ваше прочтение, Пикабушники, выбирайте лампы с умом, даже если вы в Турции. А я постараюсь публиковать новый обзор и обновления рейтингов каждую неделю, так что подписывайтесь, чтобы оставаться осведомленными!
Человек-бензопила, киберпанк-версия!
Всегда мечтал о функциональном протезе, и решил начать, конечно же, с самого нужного в хозяйстве варианта — протез-пила 😅.
Основа — сучкорез Stihl, управление идёт через миосенсоры от контроллера нашего протеза. Правда, мощности такой штуки хватает не только на ветки, поэтому пришлось запитать её от внешнего аккумулятора.
Видео с подробностями и тестами вот тут 👉 тык.
С вами был Дмитрий, aka dplabs.



















































