micro:bit에서 쉽게 mp3 재생할 수 있는 커스텀 블록과 접속 케이블을 만들었다

4152 단어 DFR0534microbit
micro : bit로 소리는 비교적 간단하게 울릴 수 있지만 mp3 등의 음악을 재생시키는 것은 쉽게 할 수 없습니다.
쉽게 할 수 있도록 맞춤 블록과 장치를 만들었습니다.

케이블은 악어 클립을 개조하여 PH 커넥터를 붙인 것.


DFR0534라고 하는 메모리 내장의 음성 플레이어에 접속할 수 있게 되어 있어, 이것은 모노럴입니다만 SD 카드등도 필요없이 시리얼 통신으로 제어를 할 수 있는 것입니다.
htps : // 아키즈키 덴시. 코 m/분 g/g/gM-13708/
그 밖에도 자주 있는 것으로 DF Player mini등 저렴한 것은 있습니다만, SD카드대가 상당히 높게 붙기 때문에 개인적으로는 전부 코미코미로 이 가격이므로 이쪽이 추천입니다. 단 버튼 조작 등의 단자가 없기 때문에 그러한 조작을 생각하고 있다면 추천은 할 수 없습니다.

스피커 부분도 악어 입 클립으로 했기 때문에 이어폰이나 스피커와도 자주 있는 V1.5에서의 micro:bit로 소리를 낼 때와 같이 접속할 수 있습니다.

동작시킨 것은 이쪽.

코드 만들기가 나쁘고 응답이 느렸습니다. 효과음에 사용할 수 있는 느낌. V2 대응도 했기 때문에 손가락 패치에서도 MP3가 울립니다! 피 c. 라고 r. 코 m/Krms7byKgH — wakasa masao (@wks) December 18, 2020


사용자 정의 블록은 아래를 참조하여 병아리 기반으로 만들었습니다.

htps : // 코 m / 와카사마 사오 / ms / 네 df7f8d6308 828986



코드는 DFPlayer mini를 조작할 수 있는 블록을 베이스로 개조했습니다.

htps : // 기주 b. 이 m / 51 t / dfp



일단, 곡 번호 지정으로 음악이 흐르고 Volume이 조작할 수 있으면 좋을까 그만큼 밖에 쓰지 않습니다.

명령 자체는 다음 사이트를 참조합니다.

htps : // 우우키. df 로보 t. 이 m/ゔぉ이세_모즈ぇ_S쿠__DFR0534



코멘트에 쓰여진 것이 블록명이 되기도 하므로, 그 근처는 좋은 느낌으로 쓰는 것이 좋다.



//% weight=100 color=#0fbc11 icon=""
namespace dfr0534 {
    let isConnected: boolean = false;

    function sendData(dataArr:number[]): void {
        let myBuf = pins.createBuffer(10);
        for (let i = 0; i < 10; i++) {
            myBuf.setNumber(NumberFormat.UInt8BE, i, dataArr[i])
        }
        serial.writeBuffer(myBuf)
        basic.pause(100)
    }

    /**
     * Connect DFR0534
     * @param pinRX RX Pin, eg: SerialPin.P2
     * @param pinTX TX Pin, eg: SerialPin.P1
     */
    //% blockId="DFR0534_connect" block="connect to DFR0534, RX:%pinRX|TX:%pinTX"
    //% weight=100 blockGap=20
    export function connect(pinRX: SerialPin = SerialPin.P2, pinTX: SerialPin = SerialPin.P1): void {
        serial.redirect(pinRX, pinTX, BaudRate.BaudRate9600)
        isConnected = true
        basic.pause(100)
    }

    /**
     * Specified Audio 
     * @param track Track Number, eg: 1
     */
    //% blockId="DFR0534_specifiedAudio" block="Specified Audio Play(1~255):%track"
    //% weight=99 blockGap=20 track.min=1 track.max=255
    export function specifiedAudio(track: number): void {
        if(track<1) track=1
        if(track>255) track=255
        sendData([0xAA,0x07,0x02,0x00,track,track+0xB3])
    }


    /**
     * Set Volume
     * @param volume Volume, eg: 10
     */
    //% blockId="DFR0534_volume" block="set volume(0~30):%volume"
    //% weight=98 blockGap=20 volume.min=0 volume.max=30
    export function volume(volume: number): void {
        if(volume<0) volume=0
        if(volume>30) volume=30
        sendData([0xAA,0x13,0x01,volume,volume+0xBE])
    }
}


실제로 만든 코드는 이쪽을 참고로.

h tps://마케코로. 미 c로비 t. rg / _HgF0rKD6j9



이것으로 간단하게 mp3를 재생할 수 있는 환경이 갖추어져 있으므로 여러가지 놀 수 있다고 생각합니다.

특히 블록 언어로 만들 수 있도록 했기 때문에, Radio로 날리거나 여러가지 디바이스와 제휴하기 쉬워집니다.


좋은 웹페이지 즐겨찾기