Odgrywanie melodii po zakończeniu druku

Odgrywanie melodii po zakończeniu druku

Czołem drukarze!
W domyślnej konfiguracji mojej Prusy MK3 brakowało mi jednej rzeczy – jakiegoś akustycznego powiadamiania o zakończeniu druku. Sama drukarka jest tak cicha, że nawet siedząc w tym samym pokoju nie zawsze od razu się orientowałem, że druk się skończył i mogę puszczać kolejny ;)

Na szczęście da się ten temat bardzo prosto ogarnąć dodając jedynie kawałek GCODE do plików generowanych przez slicer.

Jak zmusić drukarkę 3D do wydania dźwięku?

Zacząć trzeba od tego, że grać mogą jedynie te drukarki, które są wyposażone w buzzer, czyli fizyczny element wydający dźwięki. Większość drukarek takie buzzery ma standardowo na płytach głównych lub przy wyświetlaczach.

Za wydawanie dźwięków odpowiada gcode M300, którego używa się w następującym formacie:

Gdzie S to częstotliwość dźwięku w Hz, a P to jego długość w milisekundach.

Info o gcode M300 znajdziecie na reprap wiki.

Skąd brać gotowe melodie?

Szukając w internecie gotowych GCODE dla drukarek 3D można znaleźć trochę popularnych melodii. Np. tutaj znajdziecie kilka gotowców do użycia w Waszych drukarkach.

W bardzo prosty sposób możemy wykorzystać także melodie zapisane w formacie RTTTL, który jeszcze w czasach internetu na impulsy był wykorzystywany do komponowania utworów w telefonach komórkowych. I melodii w tym formacie są w sieci pewnie całe miliony!

Ja w swoich Prusach używam tego motywu:

Który w drukarce brzmi tak:

Jak skonwertować melodię w formacie RTTTL na GCODE dla drukarki 3D?

Do konwersji można użyć konwertera dostępnego tutaj: http://ddrboxman.github.io/RepRapRingtone/.

RTTTL to GCODE converter

Zasada działania jest banalnie prosta – wklejamy melodię w formacie RTTTL, klikamy Convert i mamy gotowy GCODE dla drukarki 3D.

Jak dodawać melodię automatycznie do każdego generowanego GCODE?

Chyba każdy ze slicerów pozwala modyfikować początkowe i końcowe fragmenty GCODE, które są dodawane do każdego generowanego programu.

W przypadku Slic3r PE, którego ja używam, taka opcja znajduje się tutaj:

Slic3r PE - custom gcode

Wystarczy wkleić gcode z naszą melodią na samym końcu w polu End G-code, aby melodia była dodawana do każdego generowanego pliku.

W bardzo podobny sposób można dodawać własne powiadomienia dźwiękowe przy zmianie warstwy, koloru, itp.

Mam nadzieję, że komuś się ta wiedza przyda i ułatwi życie :)

Pozdrawiam!
Łukasz

Ocena: 5/5 (głosów: 3)

Podobne posty

12 komentarzy do “Odgrywanie melodii po zakończeniu druku

  • “Zacząć trzeba od tego, że grać mogą jedynie te drukarki, które są wyposażone w buzzer”

    Wieeeeelkie kłamstwo ;) Grać może każda drukarka która ma silniki, na takiej samej zasadzie na jakiej działa Floppotron.
    Jest wiele stron gdzie można przerobić midi na gcode do swojej maszyny, drukarki 3D, frezarki CNC, plotera itp.
    Wystarczy wyszukać frazę “Midi to gcode”.
    Aby nie było że jestem gołosłowny, proszę bardzo link:
    https://www.ultimatesolver.com/en/midi2gcode

    Otrzymany gcode wystarczy wprowadzić w slicerze do sekcji “end code” i gotowe – nie zależnie od tego czy buzzer mamy czy nie, a i w niektórych przypadkach brzmi to lepiej z racji na możliwość wydobycia niższych tonów oraz polifonii(każda oś może “grać” niezależnie od siebie różne dźwięki).

    Odpowiedz
  • A mi się marzy coś innego…
    Oglądam sobie ostatni odcinek jakiegoś fajnego serialu (co się tak fajnie ganiaja i strzelają, albo coś w tym stylu), drukarka stoi w drugim pokoju (drzwi zamknięte i żaden dźwięk nie dociera), a w pewnym momencie słyszę “Cześć, wydruk skończony, temperatura stołu spadła do XX stopni, możesz iść zdjąć wydruk”…
    W sumie program mam napisany, tylko muszę jakoś się uporać z zasilaniem…

    Odpowiedz
    • Teoretycznie nie wydaje się to ciężkie do ogarnięcia. Jeżeli do drukarki podpięty jest octoprint, to wystarczyłoby wysłać jedno zapytanie GET, a w smartfonie obsłużyć to aplikacją Automate.
      W podobny sposób miałem zrobione informowanie o temperaturze pieca w fablabie – jak temp. była za wysoka, to arduino wysyłało GET, a mi smartfon za pomocą syntezatora mówił “Uwaga, temperatura pieca przekroczyła 100C”.

      Odpowiedz
      • Tak, mam octoprinta, tylko nie chcę smartfona angażować. Program mam napisany na ESP8266, działa całkiem zacnie, tyle że przy dłuższych wydrukach akumulator (pojedynczy 18650) może nie wystarczyć – a mam takie ustawienie mebli, że ładowarki wygodnie nie podłączę.

        Odpowiedz
    • Postaw na ESP lub Rasp serwer, ten niech odbierze od drukarki sygnał o zakończeniu druku, generuje RSS z komunikatem o zakończeniu druku. Jeśli masz dostatecznie inteligentne urządzenia w domu, to powiadomią Cię o tym fakcie. Np TV przełączy się na TVP Religia, pralka zacznie wirować, lodówka rozmrozi mielone, dom podniesie rolety… Możliwości nie ma końca. Ewentualnie asystent G zawibruje Ci w kieszeni.

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?