2023年10月26日 星期四

Klipper -- 加裝蜂鳴器

 參考 

蜂鳴器的種類

蜂鳴器分成電磁式與壓電式 (piezo buzzer)。電磁式蜂鳴器的工作電壓為 1.5V ~ 24V,壓電式蜂鳴器的工作電壓範圍比較廣,為 1V ~ 220V。因此要使用大於 24V的電壓,那就只能選擇壓電式蜂鳴器。但如果工作電壓較小,則建議使用電磁式蜂鳴器,因為壓電式蜂鳴器一般要使用 9V以上的電壓聲音才會比較大。

電磁式蜂鳴器的耗電流從 10mA ~ 150mA 都有,而壓電式蜂鳴器的耗電流大部分都在 10mA以下,且在蜂鳴器啟動時的瞬間,需消耗約三倍的電流,因此如果有省電或是攜帶型產品的需求,建議使用較省電的壓電式蜂鳴器。

前面所說的消耗電流是指輸出為交流的音頻時,以直流來看,電磁式喇叭的直流阻抗非常低,只有 4Ω ~ 16Ω,對直流幾乎等同短路。因此若選用電磁式喇叭,必須要注意沒有輸出時,輸出電壓必須為 0V,不然,不小心會把 MCU 控制板燒壞。我的經驗較幸運些,連接在風扇的端子,電壓選 5V,config 中將開機時誤設為 1。只是開不了機,沒有燒掉板子,喇叭的溫度高到燙手。

壓電式蜂鳴器則類似於電容,使用上較為安全,但輸出電壓要高一些,例如 24V,聲音才夠響。

另外,還有分有源蜂鳴器和無源蜂鳴器。有源,是只裡面有振盪源,接上直流電就會響,使用方便,缺點是無法控制頻率。

這是一個有源蜂鳴器,內部使用壓電式蜂鳴器。體積較大,聲音比較響,也比較好聽些。因為我想要控制頻率,手邊又沒有可用的壓電式蜂鳴器,就把線重焊,跳過電路板,當無源壓電式蜂鳴器使用。

設定

https://www.reddit.com/r/ender3/comments/n2fd1d/beeperbuzzer_pin/ ,網友的設定。

-------------
[output_pin BEEPER_pin]
pin: PB5
pwm: True         ; A piezo beeper needs a PWM signal, a DC buzzer doesn't.
value: 0          ; Silent at power on, set to 1 if active low.
shutdown_value: 0 ; Disable at emergency shutdown
cycle_time: 0.001 ; PWM frequency : 0.001 = 1ms will give a base tone of 1kHz
scale: 4000       ; PWM parameter will be in the range of (0-4000 Hz).
#enable beeper on printer

[gcode_macro M300]
default_parameter_S: 1000
default_parameter_P: 100
gcode:
    SET_PIN PIN=BEEPER_pin VALUE={S}
    G4 P{P}
    SET_PIN PIN=BEEPER_pin VALUE={S}
#Custom M300 code to allow beeper to be used in gcode

[gcode_macro end_tune]
gcode:
    M300 S3135 P75
    M300 S3135 P150
    M300 S1760 P150
    M300 S1760 P150
    M300 S2637 P150
    M300 S2637 P150
    M300 S3135 P150
-------------

https://github.com/jschuh/klipper-macros,較為完整的設定

--------------
[output_pin beeper]
pin: PC5 # Beeper pin. This parameter must be provided.
pwm: True # A piezo beeper needs a PWM signal, a DC buzzer doesn't.
#pwm: false
#scale: 2
value: 1 # Silent at power on, set to 1 if active low.
shutdown_value: 0

[gcode_macro m300]
description: Emits and audible beep.
  Usage: M300 [P<duration>] [S<frequency>]
gcode:
  {% set settings = printer.configfile.settings %}
  {% if "output_pin beeper" in printer %}
    {% set P = (params.P|default(100)|int, 0)|max %}
    {% set S = (params.S|default(1000)|int, 1)|max %}
    SET_PIN PIN=beeper VALUE={% if settings["output_pin beeper"].pwm %}{
        settings["output_pin beeper"].scale|default(1.0) * 0.5
      } CYCLE_TIME={ 1.0 / S }{% else %}1{% endif %}
    G4 P{P}
    SET_PIN PIN=beeper VALUE=0
  {% else %}
    {action_respond_info(
       "M300 is disabled. To enable create an [output_pin beeper] config.")}
  {% endif %}
--------------

test: SET_PIN PIN=beeper VALUE=0.5 CYCLE_TIME=0.0003

command: M300 P1000 S1000

3D Printer Ringtones | Improve your 3D Printer workflow with sound! | M300,建立 midi 的聲調

  • MIDI Files on bitmidi,https://bitmidi.com/
  • MIDI to M300,https://www.layerfused.com/MIDI-M300
  • Alex Yu's great MIDI to M300 converter,https://github.com/alexyu132/midi-m300
  • MIDI極短音效特選集,http://shells.tw/~bill/midi/midi_s/midi_s.htm

midi 檔案播放

可以用 VLC 軟體,搭配 fluidsynth,但需要 SoundFont 檔 (副檔名為 .sf2),可至 https://github.com/FluidSynth/fluidsynth/wiki/SoundFont 找到相關下載。


------------------
G28 W ; home all without mesh bed level
; start melody
M300 S294 P220 ;N1 D4 1/8
M300 S20000 P20
M300 S311 P220 ;N2 D#4 1/8
M300 S20000 P20
M300 S330 P220 ;N3 E4 1/8
M300 S20000 P20
M300 S523 P460 ;N4 C5 1/4
M300 S20000 P20
M300 S330 P220 ;N5 E4 1/8
M300 S20000 P20
M300 S523 P230 ;N6 C5 1/8
M300 S20000 P10
M300 S330 P220 ;N7 E4 1/8
M300 S20000 P20
M300 S523 P230 ;N8 C5 1/8
M300 S20000 P10
M300 S523 P950 ;N9 C5 1/2
M300 S20000 P10
M300 S523 P220 ;N10 C5 1/8
M300 S20000 P20
M300 S523 P220 ;N11 C5 1/8
M300 S20000 P20
M300 S587 P220 ;N12 D5 1/8
M300 S20000 P20
M300 S622 P220 ;N13 D#5 1/8
M300 S20000 P20
M300 S659 P220 ;N14 E5 1/8
M300 S20000 P20
M300 S523 P220 ;N15 C5 1/8
M300 S20000 P20
M300 S587 P220 ;N16 D5 1/8
M300 S20000 P20
M300 S659 P230 ;N17 E5 1/8
M300 S20000 P10
M300 S659 P230 ;N11 E5 1/8
M300 S20000 P10
M300 S494 P220 ;N19 B4 1/8
M300 S20000 P20
M300 S587 P460 ;N20 D5 1/2
M300 S20000 P20
M300 S523 P1420; C5 1/2+1/4
M300 S20000 P20
M300 S20000 P1920; pause one measure
G1 X0 Y200 Z30; home X axis
M84 ; disable motors
--------------------


沒有留言:

張貼留言

網誌存檔