Ничего не найдено :(
    В гостях у Самоделкина! » Для детей » Музыкальная игрушка-театр с автоматическим воспроизведением трека выступающего мультгероя

    Музыкальная игрушка-театр с автоматическим воспроизведением трека выступающего мультгероя






    Эту интересную игрушку мастер сделал своей маленькой дочери на Рождество. Предыстория ее изготовления следующая.
    Увидев рекламу замка-игрушки, в котором воспроизводится песня того героя (из мультфильмов Диснея), который помещён в данное время на площадку перед замком, родители решили купить такой замок своей дочери. Но оказалось, что в продаже таких игрушек уже нет, а если ее заказывать, то цена возрастает со 100 до 160 долларов. Тогда мастер решил попытаться сделать подобную игрушку самостоятельно. Учитывая, что он новичок в работе с такими проектами, это было смелое решение.

    Давайте посмотрим, что у него получилось.

    Инструменты и материалы:
    -Raspberry Pi 3;
    -Карта Micro-SD;
    -RFID-модуль RC522;
    -Кнопка включения;
    -RFID-метки;
    -USB-динамик;
    -Соединительные провода;
    -Паяльные принадлежности;
    -Статуэтки мультгероев;
    -Коробка;
    -Планки из бальзы;
    -Бархатная ткань;
    -Красная нить;
    -Ламинат;
    -Дрель;
    -Клеевой пистолет;
    -Швейная машинка;
    -Белая краска;
    -Нож;
    -Компьютер с ПО;


    Шаг первый: проектирование
    Итак, идея была понятна, но вот как ее реализовать не совсем.

    Сначала мастер определил задачи.
    1. Найти способ отличить одного персонажа от другого.
    2. Реализовать пункт 1 физически.
    3. Сделайте проект полностью самодостаточным.

    Сначала мастер хотел сделать проект по принципу "распознавания лица". К сожалению, то что работает на человеке, не работало на куклах.
    Второй идеей было использовать искусственный интеллект и научить программу отличать фигуры. Был найден подобный проект другого мастера. В проекте программа отличала игральные карты по мастям и даже по названиям. Оказалось, не все так просто, у мастера был старенький ноутбук и некоторые функции просто не работали.

    В дальнейших поисках решения мастер наткнулся на RFID - технологию, и понял, что это то, что нужно для проекта.

    Шаг второй: настройка Raspberry
    Это было первое знакомство мастера с Raspberry.
    Сначала мастер загрузил на компьютер ПО необходимое для работы с Raspberry. Затем подключает устройство к компьютеру и прописывает в командной строке
    sudo apt-get update
    sudo apt-get upgrade

    Шаг второй: подготовка комплектующих
    К RFID- модулю припаивает соединительные колодки.


    Музыкальная игрушка-театр с автоматическим воспроизведением трека выступающего мультгероя

    К контактам кнопки включения припаивает провода. Кнопка имеет светодиодную подсветку.



    Шаг третий: монтаж
    Дальше мастер монтирует комплектующие. На схеме кнопка и диод разделены, у мастера объединены в одно устройство. Подключение аналогично схемы.

    Для монтажа кнопки мастер использовал пайку, остальные контакты монтируются с помощью соединительных проводов.
    RC522 Raspberry
    SDA - контакт 24
    SCK - контакт 23
    MOSI - контакт 19
    MISO - контакт 21
    GND - контакт 30
    RST - контакт 22
    3.3 В - контакт 1
    - - -
    Кнопка Raspberry
    Анод (+) - к контакту 8
    Катод (-) - к GND
    Контакты кнопки к контактам 5 и 6 Raspberry




    Шаг четвертый: настройка RC522
    Теперь вернемся к компьютеру.
    В терминале Raspberry Pi настраивает RPi, чтобы иметь возможность использовать последовательный периферийный интерфейс (SPI), выполнив эту команду:
    sudo raspi-config

    Затем выбирает "5 Interfacing Options" и нажимает Enter.
    Затем стрелкой вниз до «P4 SPI» и нажимает Enter. Когда появится вопрос «Вы хотите включить интерфейс SPI?», выбирает «Да» и нажимает «Ввод». Перезагружает Pi.
    sudo reboot

    Устанавливает пакеты, которые понадобятся для взаимодействия с RFID-ридером
    sudo apt-get install python3-dev python3-pip

    Для обработки сигналов от RC522 нужно будет использовать библиотеку spidev python
    sudo pip3 install spidev

    Загружает библиотеку MFRC522
    sudo pip3 install mfrc522

    Создает папку в каталоге Pi, где будут храниться все сценарии и музыкальные файлы для этого проекта. Мастер назвал её "pi-rfid".
    mkdir ~ / pi-rfid

    Теперь нужно создать скрипт, который использует библиотеку MFRC522 для записи данных в метки RFID 13,56 МГц. Чтобы попасть в новую папку, нужно изменить каталог, а затем создать скрипт Python с именем «Write.py».
    cd ~ / pi-rfid
    sudo nano Write.py

    Внутри редактора прописывает код
    #!/usr/bin/env python
    
    import RPi.GPIO as GPIO
    from mfrc522 import SimpleMFRC522
    
    reader = SimpleMFRC522()
    
    try:
    	text = input('New dаta:')
    	print("Now place your tag to write")
    	reader.write(text)
    	print("Written")
    finally:
    	GPIO.cleanup()

    Чтобы сохранить код в редакторе, нажимает CTRL + X, затем Y и Enter .
    Внутри папки pi-rfid запускает скрипт Write.py
    sudo python3 Write.py

    Дальше нужно ввести текст, который нужно сохранить в метке RFID, нажать Enter и поместить метку поверх считывателя RC522.






    Шаг пятый: USB-динамик
    Для работы динамика нужно подключить его к USB-разъему Raspberry. В Raspberry изменить аудиовыход с HDMI на USB следующим образом:
    запускает
    sudo nano /usr/share/alsa/alsa.conf

    прокручивает вниз и заменяет
    defaults.ctl.card 0 
    defaults.pcm.card 0

    на
    defaults.ctl.card 1 
    defaults.pcm.card 1

    Нажимает CTRL + X, затем Y и Enter.

    Треки песен мастер обрезал до нужного размера, экспортировал их в wav и поместил в папку pi-rfid. Например, трек песни Jasmine имеет следующий путь /home/pi/pi-rfid/Jasmine.wav.

    Шаг шестой: редактирование скрипта Read.py
    Теперь нужно отредактировать Read.py. Этот скрипт отвечает за считывания метки и выполнение дальнейших команд. Для редактирования мастер использует SFTP в Sublime Text.
    Открывает Raspberry Pi и вводит
    cd ~ / 
    pirfid sudo nano Read.py

    затем
    #! / usr / bin / env python

    Импортирует пакеты
    import time
    from time import sleep
    import pygame
    import sys
    import RPi.GPIO as GPIO
    from mfrc522 import SimpleMFRC522
    import re
    from subprocess import Popen

    Вводит
    reader = SimpleMFRC522()
    print("Looking for cards")
    print("Press Ctrl-C to stop.")
    textloop = "Start"

    Затем
    try:
    
    	while True:
    		print("Hold a tag near the reader")
    		id, text = reader.read()
    		print("ID: %s\nText: %s" % (id, text))
    		if text == textloop and pygame.mixer.music.get_busy() == True:
    			pass
    		else:
    			character = " ".join(re.findall("[a-zA-Z]+", text))
    			filepath = ("/home/pi/pi-rfid/%s.wav"%character)
    			# Just added the following three lines to prevent errors. 
    			# Code should skip the bad reading and continue to look
    			# for tags
    			if filepath == "/home/pi/pi-rfid/.wav":
    				continue
    			else:
    				print("filepath is: %s"%filepath)
    				pygame.mixer.init()
    				pygame.mixer.music.load(filepath)
    				# pygame.mixer.music.load("%s.wav"%(character))
    				pygame.mixer.music.set_volume(1.0)
    				pygame.mixer.music.play()
    		textloop = text
    		sleep(2)
    except Exception:
    	GPIO.cleanup()
    	pass
    except KeyboardInterrupt:
    	GPIO.cleanup()
    	raise


    Шаг седьмой: настройка кнопки
    В Raspberry Pi вводит
    sudo raspi-config

    Выделяет строку " 5 Interfacing Options " и нажимает Enter. Затем «P6 Serial " и снова Enter. Стрелка " Yes" и снова Enter. Теперь нужно перегрузить устройство
    sudo reboot

    После перегрузки светодиод должен светится.
    Дальше вводит
    sudo apt-get install python-dev
    sudo apt-get install python3-dev
    sudo apt-get install gcc
    sudo apt-get install python-pip

    Устанавливает пакет GPIO, который понадобится для правильной работы кнопки
    wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz

    Затем
    sudo tar -zxvf RPi.GPIO-0.5.11.tar.gz

    Входит в папку
    cd RPi.GPIO-0.5.11

    Устанавливает скрипты
    sudo python setup.py install
    sudo python3 setup.py install

    Дальше создает каталог
    mkdir / home / pi / scripts
    Затем
    sudo nano /home/pi/scripts/shutdown.py

    Прописывает
    #!/usr/bin/python
    
    import RPi.GPIO as GPIO
    import time
    import subprocess
    
    # we will use the pin numbering to match the pins on the Pi, instead of the 
    # GPIO pin outs (makes it easier to keep track of things)
    
    GPIO.setmode(GPIO.BOARD)  
    
    # use the same pin that is used for the reset button (one button to rule them all!)
    GPIO.setup(5, GPIO.IN, pull_up_down = GPIO.PUD_UP)  
    
    oldButtonState1 = True
    
    while True:
        #grab the current button state
        buttonState1 = GPIO.input(5)
    
        # check to see if button has been pushed
        if buttonState1 != oldButtonState1 and buttonState1 == False:
          subprocess.call("shutdown -h now", shell=True, 
            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
          oldButtonState1 = buttonState1
    
        time.sleep(.1)


    Нажимает CTRL + X, а затем Y и перезагружает устройство.
    Затем прописывает команду
    sudo nano /etc/rc.local

    Клавишами со стрелками переходить до " Exit 0". Перед этой записью пишет
    sudo python /home/pi/scripts/shutdown.py &

    Затем CTRL + X, а затем Y.
    Выключает устройство
    sudo shutdown -h now

    Теперь с помощью кнопки можно безопасно включать и выключать устройство.




    Шаг седьмой: включение RC522 при запуске
    Самый последний шаг, который нужно сделать (из программной части), - запустить скрипт «Read.py» RC522 при запуске.
    Мастер пишет команду
    id Pi 

    Pi - это имя пользователя.
    Далее пишет
     sudo crontab -e

    Внизу файла crontab пишет
    XDG_RUNTIME_DIR=/run/user/user_id

    и наконец
    @reboot sudo python3 /home/pi/pi-rfid/Read.py> /home/pi/pi-rfid/log.txt

    Теперь все нужно сохранить CTRL + X, а затем Y.



    С ПО закончено.

    Шаг восьмой: изготовление сцены
    Дальше мастер делает сцену. Настил делает из ламината.





    Устанавливает занавес.






    В коробке размещает электронику. Считыватель RFID-меток закрепляет под крышкой коробки.







    Последним действием мастер закрепляет запрограммированные RFID-метки снизу фигурок мультгероев. Естественно, что каждая метка должна соответствовать своей фигурке.


    Все готово. По словам мастера, его дочь в восторге от игрушки.



    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Стреляющий робопаук с управлением по смартфону

    Как сделать лазерный тир

    10
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    9.5
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 9.83 из 10 (голосов: 4 / История оценок)

    Добавить комментарий

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Опрос
    А Вы уже рассказали на сайте о своей самоделке?

    Последние комментарии

    Все комментарии