Никогда не понимал этот праздник. Но идея родилась. Сделать жуткую куклу, которая будет сверкать глазками и жуткие звуки издавать.

imageПод это все подвернулась классная детская голова (спасибо Антон) и конкурс от Onion с розыгрышем специальных китов, купить которые мне таки не позволяет совесть. Раз так, то мозги девочке Лоле я сделал на Omega 2, использовав свои наработки из прошлой статьи.

Всем кому интересно, как такое дело повторить, прошу под кат.

Нам потребуются: два светодиода, динамик, блок питания 12 вольт, датчик движения (только для него и нужно 12 вольт), конвертер питания на 3.3 вольта, конвертер питания на 5 вольт, простой усилитель (класс D любой с питанием 3-12 вольт) и Omega 2. Еще опционально понадобится либо флешка либо sd карта для расширения дискового пространства.

Вскрываем куклу и термоклеем сажаем светодиоды в глаза и динамик в район рта. Выводим проводки в район мозгов Omega 2. Динамик припаиваем к усилителю, светодиоды подключаем к полевым транзисторам… В общем собираем следующую схему.

image

Вместо конвертера на 5 вольт можно взять сдвоенный блок питания на 5 и 12 вольт, что ближе лежит под рукой.

Дальше переходим к настройке софта. Если хотите использовать i2s звук, ставим на омегу прошивку b193, потому что дальше i2s не работает. Если нет, то можно вставить в USB звуковую карточку и тогда настраивать звук по этому гайду. Если делаете как у меня, то про работу со i2s звуком я писал тут. Подключаемся к wifi и увеличиваем дисковое пространство omega 2. Все подробно есть в руководстве тут.После этого выполняем

opkg update
opkg install alsa-utils mpg123 python pyOnionGpio nano 

Теперь наша омега уже, почти, умеет говорить и остается только написать питоновский скрипт для этого дела. Логика проста. Датчик движения размыкает цепь между двумя GPIO. На один мы подаем логическую единицу при включении (у меня это 15 вывод), значение второго читаем (я использую 17 вывод). Когда там 0 (потому что PIR датчик сработал и разомкнул линию) то начинаем воспроизводить жуткие звуки и мигать светодиодами. В остальное время молчим никого не трогаем. Реализация всего этого выглядит вот так.

import onionGpio
import subprocess
import random

gpioOut = onionGpio.OnionGpio(15)
gpioOut.setOutputDirection(0)
gpioOut.setValue(1)

gpioObj = onionGpio.OnionGpio(17)
status  = gpioObj.setInputDirection()

while True:
#проверяем значение порта
    value = gpioObj.getValue()

#если недалеко человек
    if int(value)==0:
    	cmd = "fast-gpio pwm 18 " + str(random.randint(5,15)) + " 50"
    	subprocess.call(cmd, shell=True)
    	cmd = "fast-gpio pwm 19 " + str(random.randint(2,10)) + " 50"
    	subprocess.call(cmd, stdout=subprocess.PIPE, shell=True)
    	cmd = "mpg123 -f 256 -C /mnt/sda1/" + str(random.randint(1,6)) + ".mp3"
    	subprocess.call(cmd, shell=True)

#если все спокойно
    else:
    	subprocess.call("fast-gpio set 18 0", shell=True)
    	subprocess.call("fast-gpio set 19 0", shell=True)

Файлы жутких звуков складываем в /mnt/sda1 под именами 1.mp3, 2.mp3… У меня их 6. и случайным образом включается один из них. Так же случайным образом включается частота ШИМ выходов Omega 2 отдельно под левый и правый глаз. Можно было бы использовать аппаратный ШИМ, но тут возможная нестабильность частоты является плюсом. Потом записываем две строчки в rc.local выполнив команду nano /etc/rc.local

omega2-ctrl gpiomux set i2s i2s
python /mnt/sda1/start.py

Как я думаю вы догадались скрипт, который я привел выше, надо сохранить в директории /mnt/sda1 под именем start.py.

Далее последний шаг. Самый творческий. Макияж. Я просто попросил жену (читер) и она сделала классно. Спасибо тебе большое!

image

Посмотреть как это все работает со звуком можно в ролике, который ниже. В темноте Лола «Пожирательница мужских сердечек» выглядит довольно жутко, если честно. Надеюсь вам понравилось. Спасибо за внимание!


А какие жуткие самоделки делали вы?

Комментарии (11)


  1. Ivanii
    27.10.2018 10:41

    Клево, но 1 вопрос не дает покоя — зачем в проекте линух и 12В?


    1. andrew_atreides Автор
      27.10.2018 10:57

      12 вольт для питания pir датчика, ну а омега тут стоит по тз:)


      1. Ivanii
        27.10.2018 10:59

        Потроха датчика питаются от 3,3 или 5В…


  1. Alex_ME
    27.10.2018 12:51
    +2

    Как-то в детстве делал электронную тыкву. В темноте она включалась, светила глазами и говорила. Транзисторы, задержки за счет зарядки разрядки электролитических конденсаторов, и диктофон, включаемый с помощью реле.


  1. sav13
    27.10.2018 18:11
    +1

    Копеечный MP3 модуль и светодиод прикрутить к PIR датчику
    Посадить все на аккумулятор
    А так получается гвозди микроскопом )))


    1. andrew_atreides Автор
      27.10.2018 18:25

      Ну тут омега в тз была:)а так да, можно это все сделать гораздо проще


  1. Jeyko
    27.10.2018 20:54

    А я ей череп изнутри бы заклеил. А то он светится тоже. Вот если бы из ноздрей и рта вырывалось бы свечение, а не из лобной доли, то было бы еще криповее, мне так кааца.


  1. CKOPOCTb
    27.10.2018 21:10
    +1

    Схема — произведение искусства))


    1. andrew_atreides Автор
      28.10.2018 13:53

      Спасибо :)


  1. KuznecovSerge
    28.10.2018 13:53
    +1

    Делали не совсем страшилку, хотя в темноте было немного жутко.

    На Новый Год на работе вешали филинов со светящими перемигивающими глазами, и избушку на курих ножках, которая пускала дым из трубы.

    Всё на макетке на меге8 или 16 уже не помню.
    В глаза филинов по светодиоду + куча проводов.
    А в избушке был бутылёк с глицерином, в нём ватка и нихром.
    Раз в 30 секунд мега дёргала релюшку, нихром нагревал (не сильно) уже напитавшуюся от глицерина вату, шёл дым.

    Ну и остальное на фото.
    Правда не нашёл фоток со включенными эффектами, поэтому довольствуйтесь описанием.

    image
    image
    image


    1. andrew_atreides Автор
      28.10.2018 13:54

      Ох, круто вышло! :)