Skocz do zawartości
MR1979

Mini konsolka do gier na STM32

Pomocna odpowiedź

@MR1979 zapowiada się ciekawie! Przeniosłem do działu z worklogami, zachęcam do publikowania częstych aktualizacji 🙂

Udostępnij ten post


Link to post
Share on other sites

Jeśli jako dźwięk odtwarzasz tylko sygnał prostokątny to po co tam wzmacniacz, który cały czas żre prąd nawet jeśli nie gra? Ja bym zrezygnował w ogóle ze wzmacniacza i wstawił jakiś buzzer piezo, który możesz sterować bezpośrednio z pinu. A jak już wzmacniacz to bez R1 i C1 tylko baza przez rezystor do pinu (sterujesz cewką głośnika tak samo jak przekaźnikiem).

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Chyba właśnie o to chodzi, żeby ten sygnał prostokątny (relatywnie) wysokiej częstotliwości wygładzić tym filterem R-C, żeby zrobić z niego przebieg bardziej przypominający sygnał audio.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Tyle że to owszem jest filtr RC, ale górnoprzepustowy - czyli raczej nic nie wygładzi, wręcz przeciwnie.

Zależy wszystko od tego jak to będzie podłączone. Jeśli będzie to zwykły sygnał PWM (tak jak w Arduinowym tone) - żadne kondensatory ani polaryzacja bazy nie są potrzebne. Jeśli to ma być coś w stylu delta-sigma (tyle że to już nie PWM) to filtr RC będzie potrzebny - ale tu go nie ma.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
25 minut temu, ethanak napisał:

Jeśli będzie to zwykły sygnał PWM (tak jak w Arduinowym tone) - żadne kondensatory ani polaryzacja bazy nie są potrzebne

Dokładnie tak. Zastanawiające, że projektujemy spore rzeczy na mikrokontrolerach, wyświetlaczach i cudach na kiju a wykładamy się na pierwszym z brzegu tranzystorze. Stosowanie wzmacniacza w klasie A w ogóle jest bez sensu w projekcie zasilanym baterii. Równie dobrze można grzałkę sobie z boku podłączyć i ręce ogrzewać. Więc albo prosty klucz i sygnał prostokątny, albo sygnał "analogowy" (np. PWM odfiltrowany) i wzmacniacz w klasie B sklecony z paru tranzystorów lub jednej gotowej płyteczki nawet na dziadku LM386 czy jakimś nowszym wynalazku.

https://www.deeptronic.com/electronic-circuit-design/small-audio-power-amplifier-using-3-transistors/

https://abc-rc.pl/product-pol-7673-Modul-wzmacniacza-audio-LM386-wzmocnienie-do-46dB-wejscie-10K.html

https://abc-rc.pl/product-pol-9543-Mini-modul-wzmacniacz-audio-OEP3W-3W-2-5-5V-Klasa-D.html

Wzmacniacze liniowe są o tyle fajne, że można nimi coś powiedzieć lub zagrać w miarę prostymi środkami. Odgrywanie próbek PCM jest trywialne a takie audio na pewno znacznie podnosi atrakcyjność. Za to gdy nie ma takiej potrzeby, równie dobrze można je sterować prostokątem i odgrywać pipczenie bez marnowania prądu jak w pierwotnej propozycji.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Kolejny update z frontu.

Walczyłem głównie z dźwiękiem. I tak, za radą kolegów powyżej przerobiłem następujące wersje:


1. Modulacja PWM + filtr dolnoprzepustowy.
+ Od strony oprogramowania wszystko ładnie dało się zrobić. Była tablica z wartościami dla funkcji SIN. Zrobiłem 2 kanały z wykorzystaniem jednego timera (wg instrukcji marek1707 znalezionym na tym forum w innym wątku).
- Zastosowanie najprostszego filtru RC nie dało najlepszych rezultatów. Jakość dźwięku była taka sobie. Sygnał na oscyloskopie był daleki od tego co oczekiwałem.
- Miksowanie 2 lub więcej kanałów dość mocno obciąża procesor (bo częstotliwość PWM musi być kilka razy większa od przewidywanej max częstotliwości dźwięku). Gdyby mój układ nie miał nic innego do roboty poza graniem muzyki to poszedłbym w tym kierunku.

2. Symulacja złącza I2S wg instrukcji z ST AN5086 (łatwo znaleźć w google). Czyli linia SCK z SPI jest jednocześnie triggerem dla timera który steruje linią WS (kanał lewy/prawy). - Tak symulowany I2S podłączyłem na próbę do prostego wzmacniacza audio MAX98357A. Tu niestety poległem i nie udało mi się zmusić układu do działania. Uzyskałem sygnał SPI zgodny z oczekiwaniami (przynajmniej tak wyglądało na oscyloskopie), ale wzmacniacz milczał. Podejrzewam że powodem są duże wymagania co do bitrate na wejściu. Bo nie wysyłałem danych ze standardowymi prędkościami audio jakie stosuje się w I2S. Jest też duża szansa że mój sygnał wyjściowy nie do końca był zgodny z wymaganiami I2S.

 

W końcu zrezygnowałem z "zaawansowanego" dźwięku. Czas jednak nie był zmarnowany bo dużo się nauczyłem i nabytą wiedzę wykorzystam w kolejnych projektach.

Ostatecznie zdecydowałem się na zwykły sygnał prostokątny z jednym tranzystorem w roli klucza. Do tego napisałem prostą bibliotekę do odgrywania melodyjek, oraz prostych efektów audio. Całość wykorzystuje jeden Timer. Piszę teraz w Pythonie konwerter plików midi na tablice array które będę mógł użyć w moim projekcie. Zobaczymy co z tego wyjdzie.

Z innych rzeczy to dodałem sterowanie podświetleniem wyświetlacza. Ale to już drobnostka.

Projekt płytki prawie skończony. Jeszcze pozostała kosmetyka. Na razie wygląda to tak:
mc_psu1.thumb.PNG.6b1a383616555225686b40a76d7746f3.PNGmc_psu2.thumb.PNG.5014641fc839d9a932695d6f58ff3abe.PNGmc_psu3.thumb.PNG.90f6e253fdec1130e496a58d041d2447.PNG

Pozdrawiam,
Marek

Edytowano przez MR1979
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites
Anonim

Jeśli nie ma DAC do dyspozycji to można zawsze filtr na wyjściu pwm zrobić na jakimś wzmacniaczu operacyjnym tak, żeby wycinał częstotliwość samplowania. Mam tak zrobione przy bluepillu ze wzmacniaczem TDA2822 w trybie mono (shemat w DS) na wyjściu. Może 100dB nie daje ale wystarczająco do komunikacji z urządzeniem i odsłuchiwania plików wave z karty SD tak więc polecam sprawdzone rozwiązanie.

Udostępnij ten post


Link to post
Share on other sites

Witam po przerwie 🙂

Wreszcie mam czas żeby wrócić do projektu. W oczekiwaniu na płytkę drukowaną dopracowuję obudowę:

IMG_20200521_194747.thumb.jpg.54c2b50d7a55c44a83e57ca3949551f9.jpg IMG_20200521_194738_1.thumb.jpg.cc2968a0b54c34a99b5ed6f7fb77342d.jpg IMG_20200521_194911_1.thumb.jpg.c15d657f18fa16297702e1792744bf3e.jpg IMG_20200521_194916_1.thumb.jpg.28c85e0340d4eb011901527391f354ac.jpg IMG_20200521_194921.thumb.jpg.a48eacb32bcedf39ada4a627e6a49a03.jpg IMG_20200521_194934.thumb.jpg.591af1079bf5e13b95a3046698c37219.jpg

Na razie wydrukowałem dwa prototypy. Na ich podstawie powstała długa lista poprawek które na bieżąco nanoszę na projekt w Fusion360. Obie połowy są spasowane idealnie. Zrobiłem też test wkładów gwintowanych. Montaż lutownicą przebiegł bez najmniejszych problemów, a obudowa wraz z śrubami TORX od razu nabrała profesjonalnego wyglądu. Chociaż teraz żałuję że nie zamówiłem czarnych śrub.

Mam też pewien problem z wydrukiem 3D, bo płaskie powierzchnie nad suportami wyglądają bardzo źle.... przykład poniżej:

IMG_20200521_194954.thumb.jpg.ba9c1799f1d11a09605c8ea1e34c0271.jpg

Do tej pory wszystkie wydruki były na średnich ustawieniach z warstwą 0,2mm. Zrobiłem już kilka testów z warstwą 0,1mm, oraz mniejszym odstępem między supportem a modelem i jest lepiej, ale i tak pewnie ostatecznie odwrócę model tak że wszystkie powierzchnie wspierane przez suporty będą wewnątrz obudowy.

To tyle na dziś.

Pozdrawiam,
Marek

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
11 godzin temu, MR1979 napisał:

Zrobiłem też test wkładów gwintowanych

Super to wygląda 🙂 zainspirowałeś mnie do przetestowania tych insertów.

11 godzin temu, MR1979 napisał:

pewnie ostatecznie odwrócę model tak że wszystkie powierzchnie wspierane przez suporty będą wewnątrz obudowy.

Środek jest chyba bardziej szczegółowy od tyłu 😞 A myślałeś może o zastosowaniu wypełniaczy do plastiku? Można by to zamalować, przeszlifować i później pomalować.

Edytowano przez Gieneq

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, Gieneq napisał:

Super to wygląda 🙂 zainspirowałeś mnie do przetestowania tych insertów.

Korzystam z serii BN1936 firmy BOSSARD. Wkłady te łatwo wstępnie osadzić w otworze bo na dole mają kilka mm kompletnie gładkie. Otwór montażowy drukuję o 0,1mm większy niż zaleca producent w nocie katalogowej.

1 godzinę temu, Gieneq napisał:

Środek jest chyba bardziej szczegółowy od tyłu 😞 A myślałeś może o zastosowaniu wypełniaczy do plastiku? Można by to zamalować, przeszlifować i później pomalować.

Niestety nie mam warunków ani narzędzi do szlifowania plastiku w mieszkaniu.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
12 godzin temu, MR1979 napisał:

płaskie powierzchnie nad suportami wyglądają bardzo źle.... przykład poniżej:

Nie wiem jakiego slicera używasz, ale Cura ma coś takiego jak "support roof" - może pomoże?

Udostępnij ten post


Link to post
Share on other sites
9 godzin temu, ethanak napisał:

Nie wiem jakiego slicera używasz, ale Cura ma coś takiego jak "support roof" - może pomoże?

korzystam właśnie z Cury i opcje support roof mam włączoną. Chętnie bym przetestował Simplify3D ale nie mają nawet wersji próbnej. Jak ktoś korzystał z tego oprogramowania to chętnie wysłucham opinii.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...