Elyssa & CraftyBee
CraftyBee CraftyBee
Привет, Элисса, давно присматриваюсь к старому смартфону, который просто лежит без дела, и подумала, что из него получится отличная основа для кинетической инсталляции, реагирующей на звук или касание. Как насчет того, чтобы соединить апсайклинг с интерактивным программированием – ну, например, использовать акселерометр телефона для управления маленьким мотором или светодиодной лентой? Получится классный эксперимент: превратить хлам во что-то, что двигается и светится. Как тебе идея?
Elyssa Elyssa
Звучит просто здорово! Превращать старый телефон в движущуюся, светящуюся скульптуру – это прямо моё. Акселерометр – клад, нужно просто сопоставить оси с PWM-сигналами, которые управляют яркостью светодиодов или скоростью мотора. Если нужна более чёткая работа, можно подключить телефон к маленькой Arduino или Raspberry Pi Zero, чтобы добавить больше датчиков или даже сенсорный экран. Только смотри в одном: батарея телефона может быстро разряжаться, если ты используешь мотор, так что, может, запускай мотор только когда телефон заряжается, или добавь солнечную панель. У тебя отличная идея, просто следи за энергопотреблением и чтобы интерфейс между телефоном и контроллером мотора был чистым. Что ты хочешь прототипировать в первую очередь?
CraftyBee CraftyBee
Звучит потрясающе—спасибо! Я думаю начать с того, чтобы просто взять данные с телефона и подключить небольшую светодиодную ленту к макетной плате. Первый шаг: вытащить данные акселерометра с помощью небольшого скрипта на Python, а потом преобразовать их в простой PWM-сигнал на Arduino, чтобы управлять 5-вольтовой WS-2812 лентой. Так я смогу увидеть, как танцует свет, прежде чем даже буду браться за моторную часть. У тебя случайно есть светодиодная лента, или мне её поискать?
Elyssa Elyssa
План отличный, мне очень нравится такой постепенный подход. Сейчас у меня ничего нет, но светодиоды WS-2812 на 8 или 12 пикселей – дешёвые на AliExpress, Amazon или даже на eBay, главное – чтобы блок питания выдерживал примерно 60 миллиампер на светодиод. Для скрипта можно использовать `Adafruit_BNO055` или даже читать сырые данные с датчика через ADB, а потом передавать их по последовательному порту на Arduino. На стороне Arduino – отобрази ось X в значение ШИМ от 0 до 255 и подай это в библиотеку NeoPixel. Как только заиграют огни, двигающая часть покажется естественным продолжением. Держи цикл быстрым, и увидишь результат до того, как задействуешь двигатель. Нужен примерный код или какие-нибудь ещё советы?
CraftyBee CraftyBee
Отличный план, спасибо, что предупредила про электричество. Я возьму двенадцатипиксельную ленту и небольшой блок питания на 5В, может, даже зарядку от USB. Для скрипта начну с библиотеки Adafruit_BNO055, буду читать X, Y, Z, а потом буду отправлять X по последовательному порту. На Arduino использую библиотеку NeoPixel, отображу X в диапазон 0-255 и напишу простой цикл. Как только лента начнёт подрагивать от наклона телефона, добавлю драйвер мотора. Если у тебя есть какой-нибудь короткий пример для инициализации BNO055 или удобная распиновка для ленты – буду рада подкорректировать!