Bright Brains
На фото успешный и популярный продукт у медиа-артистов по всему миру — прибор для управления лазерами по стандарту ILDA. Лазер в таком случае управляется с помощью гальванометров. Идея простая — положительное напряжение поворачивает зеркало в одну сторону, а отрицательное в другую. Это похоже на обычный звуковой динамик, кроме того, что в первом случае движение поворотное, а во втором — колебательное. Более того, в драйверах гальванометров часто используются обычные усилители звука.
Прибор устроен относительно просто. Отрицательное напряжение формируется с помощью зарядного насоса (charge pump), то есть отдельного блока питания просто нет — напряжение берется с USB и инвертируется. Это дешево и отлично работает с низкими токами (хотя у меня были проблемы с точностью луча, что связано с таким дизайном). Отклонение лазера XY формируется с помощью 16 битного DAC, выход которого уже преобразуется операционными усилителями в необходимые уровни ±5В. Интересно, что для экономии цвет лазера формируется встроенными в STM32H7 12 битными DAC. Такое решение значительно удешевляет конструкцию, используя развитую переферию микроконтроллера.
Интересно, что по сути это довольно замысловатый ЦАП с 5 каналами. Я всегда задавался вопросом – а что если все таки использовать 32 битные звуковые ЦАП, как это делает, например, Robert Henke в своих шоу?
Прибор устроен относительно просто. Отрицательное напряжение формируется с помощью зарядного насоса (charge pump), то есть отдельного блока питания просто нет — напряжение берется с USB и инвертируется. Это дешево и отлично работает с низкими токами (хотя у меня были проблемы с точностью луча, что связано с таким дизайном). Отклонение лазера XY формируется с помощью 16 битного DAC, выход которого уже преобразуется операционными усилителями в необходимые уровни ±5В. Интересно, что для экономии цвет лазера формируется встроенными в STM32H7 12 битными DAC. Такое решение значительно удешевляет конструкцию, используя развитую переферию микроконтроллера.
Интересно, что по сути это довольно замысловатый ЦАП с 5 каналами. Я всегда задавался вопросом – а что если все таки использовать 32 битные звуковые ЦАП, как это делает, например, Robert Henke в своих шоу?
✍3❤1🔥1🤔1
Пожалуй, это самый nerdy stuff, который я делал. Если программирование вам не интересно — пропустите это пост, позже выложу что-нибудь красивое.
Я начал вспоминать, что вообще-то умею писать на Rust, экспериментируя с ним на железе, Взял чип, который использовал ранее в своих миниатюрных устройствах. Это классный чип: Cortex-M0, бодрый 12-битный АЦП на мегасэмпл, периферия, цена — 60 центов. Задача — "помигать" светодиодом прошивкой на Rust, увидеть это на осциллографе.
Взял официальный SVD (system view description, выпускают вместе с arm-чипом), пропустил через svd2rust, далее пришлось помучаться и переписать иницализацию тактирования из CMSIS на Rust, для прошивки использовал probe-rs. Прошиться получилось не сразу, но в какой-то момент прошивка скомпилиролась и залилась! Это было удивительно само по себе. Отладив тактирование, оказалось, прошивка исполняется и не падает, но пины вообще ни в какую не поднимаются.
Кручу даташит не первую неделю, уже начинаю в себе сомневаться, как в друг чатгпт выдает: "А может SVDговно с ошибкой и там промахнулись со смещением? Запиши напрямую в память". Клацаю предложенный write_volatile, обходя кривой адрес — и вдруг осциллограф оживает) вау!
Какой вывод? Значительно углубив понимание arm чипов и в целом лучше поняв как устроена инфраструктура вокруг STM и ESP на Rust, убедился, что Rust и экзотическое железо совместимы и такое сочетание интересно. Это было сложно, но только в первый раз, хоть SVD файл и требует исправления. Китайские микроконтроллеры дешевы, устойчивы к проблемам рынка и открывают интересные возможности при правильном подходе. При этом Rust дает качественно иной опыт программирования на микроконтроллерах, что мне очень нравится.
Я начал вспоминать, что вообще-то умею писать на Rust, экспериментируя с ним на железе, Взял чип, который использовал ранее в своих миниатюрных устройствах. Это классный чип: Cortex-M0, бодрый 12-битный АЦП на мегасэмпл, периферия, цена — 60 центов. Задача — "помигать" светодиодом прошивкой на Rust, увидеть это на осциллографе.
Взял официальный SVD (system view description, выпускают вместе с arm-чипом), пропустил через svd2rust, далее пришлось помучаться и переписать иницализацию тактирования из CMSIS на Rust, для прошивки использовал probe-rs. Прошиться получилось не сразу, но в какой-то момент прошивка скомпилиролась и залилась! Это было удивительно само по себе. Отладив тактирование, оказалось, прошивка исполняется и не падает, но пины вообще ни в какую не поднимаются.
Кручу даташит не первую неделю, уже начинаю в себе сомневаться, как в друг чатгпт выдает: "А может SVD
Какой вывод? Значительно углубив понимание arm чипов и в целом лучше поняв как устроена инфраструктура вокруг STM и ESP на Rust, убедился, что Rust и экзотическое железо совместимы и такое сочетание интересно. Это было сложно, но только в первый раз, хоть SVD файл и требует исправления. Китайские микроконтроллеры дешевы, устойчивы к проблемам рынка и открывают интересные возможности при правильном подходе. При этом Rust дает качественно иной опыт программирования на микроконтроллерах, что мне очень нравится.
👍3❤2
Звонки в телеграм be like.
YouTube
Autechre - Gantz Graf (Official Music Video) 1080p HD
Autechre - Gantz Graf (Official Music Video) HD
🔥3
Bright Brains
Video
Вы можете послать изображение @aprinterbot и получить такое изображение, в это же время оно напечатается у меня. Акция временная, может работать, а может и нет.
🔥4❤3🤩2