새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


● ha작업중) 디지털 PCM5102 오디오 보드 media_play 스피커 만들기

♨ 카랜더 일정 : 2024년09월09일
  • 링크

  • 첨부
    등록일 2024.10.25 23:14

  • 컨텐츠 정보

    본문

    ● ha작업 ) 디지털 PCM5102 오디오 보드 media_play 스피커 만들기


    인터페이스 I2S DAC 디코더 GY-PCM5102 I2S 플레이어 모듈, 라즈베리 파이 PHAT 포맷 보드, 디지털 PCM5102 오디오 보드

    구입 작업 합니다


    작업 정리 등록

    https://cafe.naver.com/homestation/90

    기본 연결


    인터페이스 I2S DAC 디코더 GY-PCM5102 I2S 플레이어 모듈, 라즈베리 파이 PHAT 포맷 보드, 디지털 PCM5102 오디오 보드

    https://www.youtube.com/watch?v=1T9PKLeBDFc&t=132s

    이제품은 기본적으로 동작 하지 않음

    댓글에 pcb 납땜 잘하면 성공,,,,>> 납땜도 안되고 비전문가 납땜불가능 합니다.

    아래와 같이 납땜을 잘하면 MAX98357A 보다 음질이 pcm5102 가 좋습니다

    PCB 앞면) SCK 연결

    PCB 뒷면)

    H1L : FLT - 일반 지연 필터의 경우 "낮음"

    H2L : DEMP - "낮음" 비활성화

    H3L : XSMT - 비활성화하려면 "높음"

    H4L : FMT - I2S의 경우 "낮음"



    https://ko.aliexpress.com/item/1005006104038963.html

    esphome 구성 파일 

    https://gist.github.com/EverythingSmartHome/055fbdde31a607ef9d695d5cac780e94?permalink_comment_id=4819838


    pin 구조

    3232235521_1725982713.8832.png

    3232235521_1730448213.3862.png


    정보 검토
    i2s_audio:
      - id: i2s_in
        i2s_lrclk_pin: GPIO21 # INMP441 WS 
        i2s_bclk_pin: GPIO22  # INMP441 SCK 
      - id: i2s_out
        i2s_lrclk_pin: GPIO25 # PCM5102 LCK 
        i2s_bclk_pin: GPIO26  # PCM5102 BCK
        
    adf_pipeline:
      - platform: i2s_audio
        type: audio_out
        id: adf_i2s_out
        i2s_audio_id: i2s_out
        i2s_dout_pin: GPIO33 # PCM5102 DIN
    =====================
    <esp32 적용제품>
    ESP32-S3 N16R8 개발 보드, WS2812 LED, CH340, C타입, ESP32, S3, BT, 2.4G 와이파이 모듈, Arduino 8MB PSRAM 16MB 플래시 에 연결

    작업사용 pin연결 정보 
    1) i2s_lrclk_pin: GPIO9  
    2) i2s_bclk_pin: GPIO8  
    3) i2s_dout_pin: GPIO7
    4) vcc : 5V 우측하 2번째
    5) gnd :  좌상1번째  우측하 1번째

    PCM5102는 고성능 DAC(Digital-to-Analog Converter)로, 주로 ESP32와 같은 마이크로컨트롤러와 함께 I2S 오디오 출력을 위해 사용됩니다. 주요 핀 설명은 다음과 같습니다:

    1. VIN: 전원 입력 핀으로, 보통 3.3V 또는 5V로 전원을 공급합니다.
    2. GND: 그라운드 연결 핀입니다.
    3. LRCK (Left-Right Clock): 오디오 데이터가 왼쪽 또는 오른쪽 채널 중 어느 것에 해당하는지를 결정하는 신호를 제공합니다.
    4. BCK (Bit Clock): 오디오 데이터 비트의 전송 속도를 제어하는 클럭 신호입니다.
    5. DIN (Data In): 시리얼 데이터 입력 핀으로, 오디오 데이터가 이 핀을 통해 전달됩니다.
    6. FLT (Filter): DAC의 인터폴레이션 필터 모드를 설정하는 핀입니다.
    7. SCL 및 SDA: I2C 통신용 핀이며, 기본 연결에서는 보통 필요하지 않습니다.
    8. XSMT (Mute Control): 출력 음소거 기능을 제어하는 핀으로, 이 핀을 낮은 레벨로 설정하면 음소거됩니다.

    기본적인 ESP32 연결에서는 DIN, BCK, LRCK, VIN, 그리고 GND가 핵심적인 연결 핀으로 사용됩니다.

    '3232235521_1730448383.0089.png

    3232235521_1730220258.888.png


    

    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view

    관련자료

    댓글목록

    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    i2s_audio:
      i2s_lrclk_pin: GPIO25 #INMP441 WS | PCM5102 LCK
      i2s_bclk_pin: GPIO27 # INMP441 SCK | PCM5102 BCK

    media_player:
    - platform: i2s_audio
      name: media_player_speaker
      dac_type: external
      i2s_dout_pin: GPIO26
      mode: stereo

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    https://gist.github.com/EverythingSmartHome/055fbdde31a607ef9d695d5cac780e94?permalink_comment_id=4819838
    ======================
    ap:
      ssid: "Esp32-Mic-Speaker"
      password: "9vYvAFzzPjuc"

    captive_portal:

    i2s_audio:
      id: i2s_out
      i2s_lrclk_pin: GPIO27
      i2s_bclk_pin: GPIO26

      id: i2s_in
      i2s_lrclk_pin: GPIO14
      i2s_bclk_pin: GPIO21

    microphone:
      platform: i2s_audio
      i2s_audio_id: i2s_in
      id: mic
      i2s_din_pin: GPIO13
      adc_type: external
      pdm: false
      bits_per_sample: 32bit

    speaker:
      platform: i2s_audio
      i2s_audio_id: i2s_out
      id: big_speaker
      i2s_dout_pin: GPIO25
      dac_type: external
      mode: mono

    voice_assistant:
      microphone: mic
      id: assist
      speaker: big_speaker
      use_wake_word: false
      noise_suppression_level: 2
      auto_gain: 31dBFS

      on_listening:
        - light.turn_on:
            id: led
            blue: 100%
            red: 0%
            green: 0%
            brightness: 100%
            effect: pulse

      on_tts_start:
        - light.turn_on:
            id: led
            blue: 0%
            red: 0%
            green: 100%
            effect: pulse

      on_tts_end:
        - light.turn_on:
            id: led
            blue: 60%
            red: 20%
            green: 20%
            effect: pulse

      on_end:
        - delay: 100ms
        - wait_until:
            not:
              speaker.is_playing:
        - script.execute: reset_led

      on_error:
        - light.turn_on:
            id: led
            blue: 0%
            red: 100%
            green: 0%
            brightness: 100%
            effect: pulse
        - delay: 1s
        - script.execute: reset_led
        - lambda: |-
            if (code == "wake-provider-missing" || code == "wake-engine-missing") {
              id(use_wake_word).turn_off();
            }

    light:
      platform: esp32_rmt_led_strip
      rgb_order: RGB
      pin: GPIO33
      num_leds: 2
      rmt_channel: 0
      chipset: ws2812
      name: "led"
      id: led
      effects:
        pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 0.5s
          min_brightness: 0%
          max_brightness: 100%
        pulse:
          name: "Slow Pulse"
          transition_length: 1s
          update_interval: 2s
        random:
          name: Random Effect With Custom Values
          transition_length: 5s
          update_interval: 7s
        strobe:
          name: Strobe Effect With Custom Values
          colors:
            - state: true
              brightness: 100%
              red: 100%
              green: 90%
              blue: 20%
              duration: 500ms
            - state: false
              duration: 250ms
            - state: true
              brightness: 100%
              red: 0%
              green: 100%
              blue: 0%
              duration: 500ms
        flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
        addressable_rainbow:
          name: Rainbow Effect With Custom Values
          speed: 10
          width: 50
        addressable_color_wipe:
          name: Color Wipe Effect With Custom Values
          colors:
            - red: 100%
              green: 100%
              blue: 100%
              num_leds: 1
            - red: 0%
              green: 0%
              blue: 0%
              num_leds: 1
          add_led_interval: 100ms
          reverse: false
        addressable_random_twinkle:
          name: Random Twinkle Effect With Custom Values
          twinkle_probability: 5%
          progress_interval: 32ms
        addressable_fireworks:
          name: Fireworks Effect With Custom Values
          update_interval: 32ms
          spark_probability: 10%
          use_random_color: false
          fade_out_rate: 120

    script:
      id: reset_led
      then:
        - if:
            condition:
              switch.is_on: use_wake_word
            then:
              - light.turn_on:
                  id: led
                  blue: 100%
                  red: 100%
                  green: 0%
                  brightness: 100%
                  effect: none
            else:
              - light.turn_off: led

    switch:
      platform: template
      name: Use wake word
      id: use_wake_word
      optimistic: true
      restore_mode: RESTORE_DEFAULT_ON
      entity_category: config
      on_turn_on:
        - lambda: id(assist).set_use_wake_word(true);
        - if:
            condition:
              not:
                - voice_assistant.is_running
            then:
              - voice_assistant.start_continuous
              - script.execute: reset_led
      on_turn_off:
        - voice_assistant.stop
        - lambda: id(assist).set_use_wake_word(false);
        - script.execute: reset_led

    platform: template
    name: Use Listen Light
    id: use_listen_light
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    entity_category: config
    on_turn_on:
      - script.execute: reset_led
    on_turn_off:
      - script.execute: reset_led

    external_components:
      source: github://pr#5230
      components:
        esp_adf
        refresh: 0s

    답변

    새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-12-04 06:29:18

    오늘의 홈 현황


    • 현재 접속자♨ 221 명
    • 오늘 가입자※ 0 명
    • 어제 가입자※ 4 명
    • 주간 가입자※ 11 명
    • 오늘 방문자 2,879 명
    • 어제 방문자 4,368 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,851,347 명
    • 전체 게시물※ 8,868 개
    • 전체 댓글수※ 25,259 개
    • 전체 회원수 11,346 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑