Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Audio'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 15 wyników

  1. Witam. Realizuję projekt matrycy mikrofonów z wykorzystaniem mikrofonów MEMS ICS-52000 oraz mikrokontrolera, który służy do zbierania danych z mikrofonu w celu dalszej analizy dźwięku np. w MATLAB'ie. Mam problem z komunikacją z mikrofonami. Mikrofony ICS-52000 mają wyjście TDM i mam takich mikrofonów połączonych w łańcuch zgodnie z dokumentacją (zdjęcie poniżej). Celem jest pobranie danych z mikrofonów i zapisanie ich na dysku. Póki co mam gotową konstrukcję i próbuję pisać program, który pobierze dane z każdego mikrofonu. Moje pytanie brzmi: W jaki sposób zrealizować mogę komunikację TDM (Time Division Multiplexing)? Nie ma na ten temat za wiele materiałów. To co udało mi się znaleźć to zastosowanie interfejsu SAI (Serial Audio Interface) i próbowałem ten interfejs wykorzystać jednak podłączając tylko jeden mikrofon w celu jego stestowania nie działało to tak jak powinny. Próbowałem pobrać dane przez HAl_SAI_Receive_DMA() i w funkcji callback void HAL_SAI_RxCpltCallback(SAI_HandleTypeDef *hsai) przypisać wartość do zmiennej, jednak nie działało to. Szczerze to nie ma zbyt wielu przykładów zastosowania tego interfejsu do rejestracji dźwięku, a z dokumentacji co udało mi się wyczytać to SAI wspiera TDM. Konfiguracja interfejsu SAI Mode: Master Konfiguracja zegara: Po włączeniu SAI w tej konfiguracji mam 3 piny: SAI1_SD_A - wyjście danych SAI1_SCK_A - zegar SAI1_FS_A - frame select (word select) Czy zegar jaki podaje na wyjścia mikrofonów równy jest wartości zegara SAI1 (24MHz)? Czy częstotliwośc SAI1_FS_A równa jest częstotliwości audio (48kHz), czy musze ten pin obsługiwać w jakiś sposób? Według dokumentacji mikrofony są synchronizowane przez sygnał WS, więc mikrofony dzielące ten sam zegar będą samplowane synchronicznie.
  2. Hej. Mam amplituner Beomaster 1100 typ 2609. Stary, duński sprzęt ale nadal fajny. Mam problem z jasnością świecenia dwóch żarówek, które z jednej strony świecą jako POWER ale też "podpowiadają" czy kręcić pokrętłem w lewo czy w prawy gdy szukam fali FM. Sterują tym dwa tranzystory. Nie mogę dojść co tu nie gra. Radio nie działało w ogóle ale naprawiłem. Uwalony był rezystor. Wymieniłem też rezystory mocy R19 i R24. Serwisówka podaje że mają być 3W a były wlutowane 2W. Z jednego to się kopciło gdy FM złapało stereo. Wylutowałem tranzystory IC2 i IC3 i wyglądają na dobre. Tester urządzeń elektronicznych rozpoznaje je dobrze. Jedynie co mnie dziwi to dlaczego między B a C mam spadek napięcia 0.6V a między B a E 1.2V? Tranzystory to MPSA13. Bang-Olufsen-Beomaster_1100-Service-Manual.pdf strona 22, dział 8-1. Wcześniejszy schemat dotyczy innego typu amplitunera.
  3. Cześć, przeprowadzam akwizycję dźwięku z 4 mikrofonów MP34DT01-M przy użyciu interfejsu SAI oraz biblioteki pdm2pcm na STM32H743. 1. Moje pierwsze pytanie dotyczy typów zmiennych użytych w buforach PDM i PCM. Dane z 4 mikrofonów zapisuję w 32-bitowych slotach (po 8 bitów na mikrofon) w każdej ramce. Obecnie wygląda to u mnie tak: #define PDM_buffer_size 4096*4*6 //szóstka dobrana eksperymentalnie #define PCM_buffer_size 4096*4 // równy output_samples_number uint32_t PDM_buffer[PDM_buffer_size]; //bufor wejściowy PDM uint16_t PCM_buffer[PCM_buffer_size]; //bufor wyjściowy PCM HAL_SAI_Receive_DMA(&hsai_BlockA1, (uint8_t*)PDM_buffer, PDM_buffer_size); //rozpoczęcie akwizycji PDM_Filter(&(((uint8_t*)PDM_buffer)[0]), &(((uint16_t*)PCM_buffer)[0]), &PDM1_filter_handler); //konwersja PDM na PCM mikrofon A PDM_Filter(&(((uint8_t*)PDM_buffer)[1]), &(((uint16_t*)PCM_buffer)[1]), &PDM2_filter_handler); //konwersja PDM na PCM mikrofon B PDM_Filter(&(((uint8_t*)PDM_buffer)[2]), &(((uint16_t*)PCM_buffer)[2]), &PDM3_filter_handler); //konwersja PDM na PCM mikrofon C PDM_Filter(&(((uint8_t*)PDM_buffer)[3]), &(((uint16_t*)PCM_buffer)[3]), &PDM4_filter_handler); //konwersja PDM na PCM mikrofon D Jednak deklaracja HAL_SAI_Receive_DMA wygląda następująco: HAL_StatusTypeDef HAL_SAI_Receive_DMA(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size) Z jednej strony wskaźnik jest 8-bitowy, a rozmiar bufora 16-bitowy, a mój jest 32-bitowy. Proszę o info, czy mam to dobrze. 2. Druga kwestia dotyczy rozmiaru użytych buforów. O ile PCM_buffer jest dość oczywisty i równy wartości output_samples_number (the number of samples by request) pomnożonej przez 4 mikrofony, o tyle z PDM_buffer mam już kłopot. Wartość dobrałem eksperymentalnie, aż zadziałało, natomiast nie mam pojęcia, dlaczego z tą szóstką już działa, a np. z czwórką nie. Korzystam z decimation ratio równym 64. 3. Zgodnie z RM0433 str. 2254 dwie pierwsze ramki (zielona pętla) są nieprawidłowe. I o ile dla mikrofonu A mi się to sprawdza, o tyle dla pozostałych 3 mikrofonów pojawia się jeszcze jeden moment, w którym wartości są nieprawidłowe (na czerwono w załączonym pliku). (Ten cały pierwszy przebieg 1-4096 pomijam w zapisie, więc to nie jest dla mnie problem, choć nie wiem, dlaczego tak dziwnie wygląda.) Dodatkowo załączam wykres z wszystkich 4 mikrofonów, który w zasadzie powinien być jedną (pogrubioną) sinusoidą. Na tym wykresie kolejne wartości to odpowiednio próbki: A1,B1,C1,D1, A2,B2,C2,D2, A3,B3,C3,D3... Widać, że na początku każdego cyklu akwizycji (4*4096 próbek) następuje jakby przesunięcie w fazie. Na pierwszym wykresie zresztą też te nieprawidłowe wartości w czerwonej pętli wyglądają jak ucięta sinusoida i rozpoczęcie kolejnej w niewłaściwym miejscu. Proszę o wszelkie pomysły i podpowiedzi, co mogę mieć źle, jaka jest przyczyna błędu lub jak jej zapobiec. Na razie nie załączam kodu, ale jest on dość prosty i w czasie pojedynczego cyklu (4*4096) nie dzieje się nic poza akwizycją i konwersją.
  4. Witam, Posiadam dwa mikrokontrolery z rodziny STM32. Pierwszy na płytce Nucleo-64 STM32F103RB, drugi na płytce Waveshare CoreH7XXI STM32H743IIT6. Postawiłem sobie za cel zbudować przetwornik cyfrowo analogowy R2R w oparciu o mikrokontroler. Wiem, że można wykorzystać do tego FPGA, ale ja postanowiłem całość oprzeć o mikrokontroler - cele naukowe i rozwojowe. IDE z którego korzystam, to STM32CubeIde. Z racji tego, że nie mam na co dzień do czynienia z mikrokontrolerami, a traktuję to jako hobby, to z góry przepraszam, jeśli popełniam jakieś rażące błędy, lub posiadam braki w wiedzy, ale dopiero się uczę. Skonfigurowałem USB na płytce Nucleo, jako USB Device, przyłączyłem middleware USB_DEVICE, klasa Audio Device Class, ustawiłem parametr częstotliwości na 48000 sampli/s, RCC HSE ustawiony na Crystal/Ceramic Resonator. Zegary skonfigurowane na korzystanie z kwarcu i PLL, USB taktowane 48MHz. Wlutowałem kwarc 8MHz i dwa kondensatory 30pF (takie akurat miałem pod ręką), wlutowałem rezystor 1k5 (1448Ω) pomiędzy 3.3V a pin USB D+ skompilowałem projekt, wgrałem na płytkę. Zrobiłem sobie około 40cm przewód z taśmy 4 żyłowej z jednej strony zakończony wtykiem USB, z drugiej wtykami goldpin. Podłączyłem D+, D- i GND, zasilanie pobieram z USB od programatora (przy czym przestawiałem też zworkę na E5V i całość zachowuje się tak samo). Podłączam mikrokontroler pod USB - urządzenie znalezione, poprawnie zainstalowane, widnieje jako STM32 Audio Class https://imgur.com/nBjyhkV. Inicjalizacja urządzenia się powiodła, wszystko wygląda dobrze - https://imgur.com/1LDmdm7. Na oscyloskopie kwarc pokazuje stabilne 8.00MHz. I teraz się zaczynają schody. Uruchamiam audacity, częstotliwość projektu ustawiam na 48KHz (choć to bez znaczenia, na każdej jest ten sam problem), generuję falę prostokątną 1KHz, wybieram moje urządzenie i klikam play. Oto, co się dzieje w snifferze - https://imgur.com/JjXmSkf. Proszę zwrócić uwagę na czasy - pierwsze dwa pakiety URB_FUNCTION_SELECT_INTERFACE wykonują się bardzo szybko. PC wysyła do uC żądanie i otrzymuje odpowiedź w ciągu 2ms - to jest moment kliknięcia play. Następnie mamy pakiety transferu danych, których jest mało, ze względu na to, że bardzo szybko kliknąłem stop. I tutaj zaczyna się sedno problemu. Kliknięcie stop ponownie powoduje żądanie URB_FUNCTION_SELECT_INTERFACE, które od PC do uC idzie od razu, ale w drugą stronę całość się zamraża na równo 5 sekund (+czasami kilka-kilkanaście ms, co widać w różnicach czasowych). Kliknięcie play i ponownie 5 sekund zwłoki i później lecą dane. Stop - znów 5 sekund i tak w kółko. Odpięcie USB i ponowne jego podpięcie daje jednorazowy szybki play, a potem sytuacja się powtarza. Wygląda to tak, jakby mikrokontroler przez 5 sekund próbował coś robić (tylko co?) a potem przechodził do właściwej pracy. Dodatkowo nie jestem w stanie poprawnie debugować pracy USB na tym mikrokontrolerze. Debuger poprawnie zatrzymuje się na pierwszej linii kodu, następnie klikam resume, urządzenie się pojawia. Gdy natomiast klikam play w audacity, dostaję komunikat "Błąd otwierania urządzenia dźwiękowego". Pakiet URB_FUNCTION_SELECT_INTERFACE (odpowiedź od uC) zwraca status 0xc0000011 https://imgur.com/EzQhRPh. I teraz, żeby było ciekawiej, powtarzam dokładnie tą samą procedurę na płytce z STM32H743IIT6 i wszystko działa tak, jak powinno, play i stop działa zawsze i od razu. Dlaczego zatem nie użyję H7 do USB? Ponieważ chcę zrzucić operacje pobierania danych z komputera i wstępną obróbkę na jeden cpu, a odtwarzanie, precyzyjny timer 48KHz i kierowanie danych na GPIO na drugi procesor (tutaj też są cele naukowe i rozwojowe - chcę spróbować różnych podejść i zrobić to na dwóch procesorach, mogąc jednocześnie obserwować komunikację między nimi). Czy ktoś się spotkał z takim problemem? Być może jest to kwestia tego, że CubeMX coś źle generuje, ale niestety nie jestem jeszcze aż tak biegły, żeby ogarnąć całą bibliotekę USB i potrzebuję wsparcia od osób bardziej doświadczonych :) Pozdrawiam, Mateusz
  5. Witam! Widziałem, że na Forum pojawił się już wzmacniacz lampowy to i swój zrobiłem. PCB zrobiłem metodą termotransferu z tego projektu: http://skarabo.net/sid-21-se.htm Mam zastosowane lampy 6N2P-EW i 2x6P14P-EW, do tego gotowe( nie chciało mi się robić PCB) moduły z oczkami 6E2 czyli chińskimi klonami EM84/87. Transformatory głośnikowe pochodzą z zezłomowanych odbiorników wschodnioniemieckich, trafa identyczne choć mocowanie inne. Są to transformatory, które pracowały z EL84 i głośnikiem 4Ω, jest to układ z odczepem do kompensacji tętnień zasilania, napięcie anodowe idzie na odczep, jeden koniec uzwojenia na anodę lampy 6P14P, drugi, przez rezystor 1kΩ 5W(osobny dla każdego kanału) na wspólny kondensator 47uF i z niego zasilany jest stopień wstępny na 6N2P. Zasilacz to transformator Sizei TE84/148, uzwojenia 250 i 20V połączone w przeciwfazie(mam 250V w gniazdkach), dalej rezystor drutowy z obejmą do regulacji, prostownik, 2 kondensatory 100uF 450V, rezystor 510Ω i kondensator 100uF, napięcie anodowe ustawiłem obejmą na 253V. Żarzenie idzie na wzmacniacz przez rezystor 0,47Ω 10W i 2,2Ω 5W dla oczek, są dwie gałęzie. Wszystkie obwody są zabezpieczone bezpiecznikami: 0,5A sieć, 4A żarzenie, 150mA anodowe, nic się nie przepala. Sygnał sterujący dla oczek magicznych jest brany z wtórnych uzwojeń transformatorów głośnikowych, same trafa zabezpieczone rezystorami 33Ω 5W, równolegle do gniazd głośnikowych. W środku spagetthi ale tak zawsze robiłem( robię dla siebie, nie na zarobek). Obudowa powstała ze sklejki- nie mam możliwości obróbki metalu a zlecić w lockdownie to bym się nie doczekał w tym roku. Zdjęcia z testów na stole, zasilacz anodowy to stary, blisko 40 letni grat ale daje radę, Zhaoxin, którego używałem do żarzenia już wymiękał, praw fizyki nie da się oszukać. Są to zdjęcia stare, wzmacniacz doczekał się wlotu powietrza, tandetny, chiński potencjometr który przerywa będzie po niedzieli wymieniony na Alps Blue 2x50kΩ, jest zamówiona płytka do niego. Wzmacniacz wczoraj doczekał się prowadzenia masy, bo trochę jeszcze brumi, muszę uziemić jeden koniec uzwojenia żarzenia i wywalić tandetne przewody sygnałowe, konstrukcja jest cały czas ulepszana choć gra bardzo ładnie, mimo skromnych 5W na kanał, głośnik na zdjęciu to Grundig z 1969 roku, mam dwa takie, kiedyś kupiłem we Flensburgu( mam tam rodzinę) Chcę zrobić definitywny porządek z buczeniem, choć nie jest źle, jak każde stare radio z lat 50-60-tych, wzmacniacze estradowe też buczały, podobnie wszystkie Polskie konstrukcje. Brzmienie jest CUDOWNE!!!! Piękne, aksamitne, niemęczące w przeciwieństwie do klasy D, która ma brzmienie ostre i agresywne. Przepraszam za takie a nie inne wykonanie, raz że nie mam czym zrobić, dwa to koronawirus męczy cholernie, nic się nie chce. Płytka polakierowana lakierem PVB( przy lampach i przebicie i przepalenie laminatu bardzo łatwo) Koszty: Trafa głośnikowe ze strychu- 0zł Laminat i elementy bierne- około 40zł Podstawki lampowe, trafo sieciowe, mostek prostowniczy, 6N2P- około 243zł Lampy końcowe NOS- 55zł sztuka Oczka 6E2- 130zł Potencjometr Alps -60zł Gniazda i oprawki- 40zł Razem: 623zł, obudowy nie liczyłem I tak nieźle jak na wzmacniacz lampowy, to jest sprzęt audiofilski a ten kosztuje krocie( to nie jest kolejny knot na LM3886 czy innym TDA7294, jakimi zapchany jest internet i który gra nieciekawie i bez wyrazu, bez charakteru. Teraz właśnie go słucham i choć noc jakoś nie chce go wyłączyć,
  6. Cześć wszystkim, potrzebuję zbudować audio switcha takiego jak na znalezionym schemacie lecz nie potrafię dobrać odpowiedni przełącznik obrotowy i w tej sprawie właśnie pisze do was tu na forum.
  7. Witam, rozpoczynam naukę elektroniki od zdobywania podstaw i budowy syntezatora modularnego sterowanego napięciem (bardzo fajna baza wiedzy, zwłaszcza podstaw a temat mnie interesuje). Do zasilania musiałem zbudować prosty zasilacz symetryczny +/-12VDC zasilany gniazdkowym zasilaczem transformatorowym. Układ dość gruntownie sprawdziłem przed podłączeniem i mam na nim napięcia +11,7V oraz -12V. Prostowanie jednopołówkowe może się wydawać kiepskim rozwiązaniem jednak jest to dość standardowy projekt do tego zastosowania, na bazie: http://musicfromouterspace.com/index.php?MAINTAB=SYNTHDIY&VPW=1358&VPH=652 Wszystko wydawało się być dobrze jednak mam problem podczas prototypownia pierwszego oscylatora na bazie przerzutnika Schmitta w którym użyłem WO TL074 jako bufor na wyjściu przerzutnika. Kiedy piny zasilające WO są podłączone do masy i +12V wszystko działa dobrze lecz kiedy podłączam go do szyn +/- 12V słyszę tylko zakłócenia. Chcę rozwiązać problem zanim pójdę dalej z układem 1. Coś jest nie tak z moim zasilaniem? 2. Może być to wina samego TL074? Kupiłem je w Chinach i sprawdzałem kilka z podobnym efektem. Pisze głównie z nadzieją, że będzie to oczywiste rozwiązanie jednak jak podejrzewam, wina leży gdzieś po mojej stronie ale już nie mam pomysłu gdzie. Oscylator w obecnej formie (jak rozwiążę obecny problem rozwijam dalej): Na CV jest podawane napięcie 0-5V z klawiatury/sekwencera - układ ma w przyszłości pracowac w standardzie 1V/oktawę. Załączam nagranie różnicy dźwięku podczas zasilania V- na TL074 na masie a potem na -12V. Nagranie może być z tych głośniejszych więc proszę mieć to na uwadze. https://drive.google.com/file/d/1Aj22gcSi09Wipek-1tJJ2HbsDH03-eiC/view?usp=sharing Postarajcie się nie osiwieć przez schematy -pierwszy był pomocniczy w prostym programie którego użyłem do przeniesienia układu zasilania na veroboard a drugi z racji braku czasu nabazgrałem na szybko. Pobrałem KiCAD jednak jakoś brakuje mi czasu, żeby przyzwyczaić się do jego trochę dziwnego workflow.
  8. Witam w moim pierwszym poście na forum i proszę o wyrozumiałość i brak fachowego języka. Mój pierwszy ale nie ostatni projekt to mini centrum muzyczne oparte na Raspberry Pi 0 WH oraz JustBoom Amp Zero. Podejrzewam że płytki Rpi nie muszę przedstawiać natomiast do drugiej płytki wrzucam link: JustBoom Amp Zero Jest to w sumie gotowiec jak klocki wsadzić jedno w drugie i działa ale... Pierwszym problemem jest to że nie wiadomo czy płytka Amp będzie dostępna. Drugim to zasilacz. Producent posiada w sprzedaży dydykowany zasilacz ale trochę drogo wychodzi więc może ktoś się zna i poleci coś innego. Drugą płytką którą biorę pod uwagę jest HiFiBerry MiniAmp. Tutaj niestety obawiam się słabego dźwięku na głośnikach które mam. Ostatnią opcją którą rozważam jest Pirate Audio Headphone i do tego głośniki 2.1 komputerowe. Proszę o pomoc w znalezieniu zasilacza. Oraz o wypowiedź który z przedstawionych zestawów będzie najlepszy. Kilka odpowiedzi na pytania które mogą się pojawić. Dlaczego Pi 0? Mikołaj mi włożył do buta, chyba byłem grzeczny. Wiem że są tańsze rozwiązania, które załatwiły by wszystkie problemy które mam, ale podoba mi się możliwość zarządzania takim centrum przez aplikację w telefonie, przez zwykłą przeglądarkę nawet. Obsługa dysku NAS znajdującego się w sieci domowej. Oraz możliwość słuchania radia z internetu.
  9. Witam serdecznie! Przychodzę do Was z pytaniem czy jest opcja aby stary mikser audio podłączyć do komputera przez Arduino? Na jednym ze zdjęć jest przedstawiony mikser a na drugim wszystkie wyjścia/wejścia z/do niego. Z góry dziękuję wszystkim za pomoc!
  10. Po stworzeniu głośnika Bluetooth opartego o wzmacniacz 3W przyszła pora na coś mocniejszego. Celem, jaki chciałem osiągnąć było zwiększenie mocy głośnika i zachowanie jego mobilności. Udało się to osiągnąć ponad 10-krotnie. Głośnik Bodzio (bo tak został nazwany :P) ma moc 35W. Nazwa nie jest przypadkowa, ma nawiązywać do jego drewnianej obudowy, więc przyjął przydomek po sklepie z meblami. Najciekawsze jest w nim to, że został zrobiony z kolumny znalezionej na ulicy 🙂 Przygotowanie Schemat budowy głośnika Bluetooth nie był mi obcy, gdyż podobny projekt już kiedyś robiłem. Pierwszą rzeczą, jaką trzeba było zrobić to dobór wzmacniacza. Kolumna ma jeden głośnik wysokotonowy i jeden niskotonowy więc wystarczy tutaj wzmacniacz mono. Znalazłem odpowiedni na allegro o mocy 35W. Niestety w wyrzuconej kolumnie nie działał głośnik niskotonowy, więc trzeba było również dokupić odpowiedni, pamiętając, aby jego moc była większa niż wzmacniacza. Wszystkie elementy są wypisane poniżej: Lista elementów: LM2940 Buck LDO (do zasilania Bluetooth) [6zł] Step Up LM2587 (do ładowania akumulatorów) [5zł] BMS 3S Li-ion Akumulatorki 18650 6 szt. [24zł] Wzmacniacz mono 35W audio TDA8932BT klasa D Złącze jack 3,5mm [5zł] Bluetooth USB audio stereo [13zł] Głośnik niskotonowy (basowy) 4Ω Głośnik wysokotonowy 4Ω Kondensatory: 22uF; 2,2uF Rezystory: 1kΩ ; 10kΩ LED czerwona i zielona Złącze uUSB Potencjometr 50kΩ logarytmiczny [5zł] Przełączniki 2 szt. Jak zwykle najpierw zabrałem się za rozrysowanie schematu oraz przemyślenie pozycji takich elementów jak potencjometr do regulacji głośności, przełączniki, wejście jack, itp. Praca Za układ zasilania odpowiada 6 sztuk akumulatorków 18650 z odzysku. Są połączone w pakiet 3S po dwie sztuki, dla zwiększenia napięcia oraz pojemności. Pojemność pojedynczego ogniwa wynosi ok. 2000mAh co daje w sumie akumulator o napięciu 12V i pojemności 4000mAh. Gdybyśmy chcieli taki kupić nowe akumulatorki do takiego pakietu to koszt wyniósłby ok. 45 zł. Proces ładowania i rozładowywania kontroluje BMS. Ważnym założeniem jest ładowanie głośnika z zasilacza 5V przez µUSB, gdyż na imprezie czy, gdziekolwiek poza domem ciężko o zasilanie 12V, a noszenie zasilacza zawsze przy sobie jest uciążliwe i zmniejsza mobilność głośnika, dlatego zdecydowałem się na ładowarkę, jaką mają wszyscy. Można było co prawda umieścić zasilacz sieciowy 12V wewnątrz obudowy, ale trzeba by było kombinować, gdzie ukryć przewód do zasilania, więc ładowanie go przez µUSB było najwygodniejszym sposobem. Napięcie z 5V jest podnoszone dość wydajnym przekształtnikiem Boost zwiększającym napięcie do 12,6V po to, aby pojedyncze ogniwo było naładowane do 4,2V oraz wydajność ładowania był na tyle duża, aby można było ładować i słuchać muzyki jednocześnie. Do linii 5V idącej z zasilacza dodana została LED koloru czerwonego, informująca o tym, że głośnik jest ładowany. Centralnym punktem schematu jest wzmacniacz, do którego schodzi się większość elementów. Sygnał dochodzi przez potencjometr do regulacji głośności oraz przełącznik SW2 do zmiany pochodzenia sygnału (BT lub jack). Wszystkie masy oczywiście są wspólne i połączone. Za zasilanie modułu Bluetooth odpowiada przetwornica Step Down LM2940, która redukuje napięcie do 5V. Nie jest ona w żaden sposób połączona z linią zasilania. Napięcie ładowania, a zasilania elementów 5V pomimo tej samej wartości odpowiada za zupełnie inne rzeczy i połączenie ich razem spowodowałoby niepotrzebne zamieszanie w układzie. Moduł Bluetooth został podłączony przez SW3 do zasilania i włącza się dopiero w momencie zmiany pochodzenia sygnału. Na wyjściu wzmacniacza znajduję się głośnik niskotonowy odpowiadający za bass oraz wysokotonowy z filtrem górnoprzepustowym opartym o kondensator 2,2 µF. Wybrałem ten rodzaj filtru, aby uniknąć stosowania rezystora mocy, przez który przechodziłby sygnał do głośnika niskotonowego w przypadku filtra dolnoprzepustowego. W prawej dolnej części schematu znajduję się jeszcze jeden układ. Łatwo można się domyślić co to jest, ale na razie nie będę zdradzał więcej szczegółów. Zostanie on omówiony, gdy całość (część, za którą odpowiedzialny jest ten układ) zostanie skończona. Lutowanie i składanie obudowy Gdy większość elementów została skompletowana, przyszedł czas w połączenie wszystkiego w całość i sprawdzenie, czy działa . Okazało się, że głośnik gra perfekcyjnie i ma naprawdę dużą moc. Kiedy całość była jeszcze prototypem można było się pobawić np. filtrem górnoprzepustowym, a dokładniej doborem kondensatora. Metodą prób doszedłem do wniosku, że wartość 2,2 µF jest najlepsza. Ze wzoru na częstotliwość graniczną filtru: f=1/2ΠRC wychodzi około 18kHz. Jednak w praktyce (nie wiem dlaczego) ta wartość jest mniejsza. Układ zasilania Układ ten został dokładnie opisany w przypadku omawiania schematu, wiec tutaj zamieszczę tylko kilka zdjęć. Co do samego łączenia elementów to zlutowane jest tak jak widać na obrazku na dole wpisu, wszystkie ogniwa złączone są taśmą izolacyjna, a całość przyklejone na klej na gorąco w rogu obudowy. Lutowanie płyty głównej Schemat PCB jeśli można go tak nazwać został zrobiony symbolicznie, gdyż montaż elementów jest robiony na oko na dużej płytce uniwersalnej. Najważniejsze w tym schemacie są linie łączenia modułów ze sobą. We wszystkich układach dolutowane uprzednio przewody zostały zastąpione goldpinami, dzięki którym można wlutować moduł w płytkę. Wszystkie złącza zostały podpisane. Został jeszcze problem, jak zamontować płytkę w środku obudowy. Po kilku próbach udało wykombinować mi się coś takiego. Śruba przyklejona do tulei dystansowej, które z kolei zostały przyklejone na klej dwuskładnikowy (klej na gorąco nie trzymał mocno) do obudowy głośnika. Taki montaż ma swój plus, gdyż bardzo łatwo jest wyjąć płytkę z głośnika w celu naprawy lub modernizacji. Montaż elementów w obudowie Za tą część powinniśmy się zabrać, zanim cokolwiek zamontujemy lub przykleimy w obudowie, gdyż będzie tutaj trochę wiercenia/cięcia co może doprowadzić do przypadkowego uszkodzenia zamontowanych elementów . Zabieramy się za wywiercenie otworów pod potencjometr, LED'y i przełączniki. Niestety ciężko mi powiedzieć jakim wiertłem wierciłem jaką dziurę, bo nigdzie tego nie zapisałem, więc trzeba dobrać odpowiednią samemu. To samo robimy z otworami na złącze jack i gniazdo ładowania. Kiedy już mamy wszystkie otwory, oczyszczamy głośnik z zabrudzeń, gdyż będziemy teraz wszystko przyklejać/przykręcać. Zamiast gniazda µUSB montowanego do obudowy użyłem takiego przewodu, ponieważ to było jedyne gniazdo, jakie miałem, które dało się wmontować. Cena gniazd montowanych na obudowę jest dość droga, więc nie kupowałem go. Zostało jeszcze przymocować głośniki do przedniego panelu. Głośnik niskotonowy został kupiony specjalnie pod otwór po poprzedniku, aby nie bawić się w powiększanie dziury. Natomiast głośnik wysokotonowy został zabrany z jakiejś starej kolumny, która kiedyś dostałem do rozbiórki. W przypadku pierwszego nie było żadnych problemów z montażem. Głośnik pasował idealnie w otwór i miał miejsce na przekręcenie go wkrętami. Z mniejszym głośniczkiem było więcej zabawy. Nie chciałem go wklejać, ponieważ w przyszłości będzie on zastąpiony innym, lepszym zamiennikiem, więc musiał być on również wkręcany. Trzeba było wywiercić w metalowej ramce otaczającej go, dziury na wkręty. Całe szczęście w otwór pod nim mieścił się na styk, więc nie trzeba było nic przerabiać w obudowie 🙂 Składanie obudowy w całość Zadanie niby proste, a okazało się najtrudniejsze w całym projekcie. Wcześniej głośnik był klejony, ja natomiast nie chciałem tego robić, gdyż, potrzebuje mieć dostęp do wnętrzności, aby móc go rozwijać i modyfikować. Gdyby obudowa była projektowana przez mnie od zera to pewnie nie byłoby problemu, ponieważ zostałoby to przemyślane jeszcze w fazie planowania. Pierwszym pomysłem było wmontowanie zawiasu (takiego jak w drzwiczkach od szafki) oraz zamknięcia na kluczyk. Chciałem, aby wszystko było ukryte wewnątrz i nie psuło wyglądu głośnika, stąd decyzja o takich rozwiązaniach. Niestety po kupieniu, okazało się, że montaż ich będzie nie lada wyzwaniem. Znalezienie miejsca na zawias wewnątrz obudowy okazało się praktycznie niemożliwe. Podobnie z zamknięciem na kluczyk, trzeba by było dużo pozmieniać, a na końcu i tak by wyszło paskudnie. Tak więc ten pomysł został odrzucony. Stwierdziłem, że nie ma co kombinować i przykręcę po prostu go na śruby. Mimo prostoty nawet to rozwiązanie przysporzyło problemów. Założenie o niewidoczności mocowań wymagało ukrycia śrub pod osłonką. Nie chce się tutaj już rozpisywać, gdyż liczba podejść była dość duża, więc omówię tylko końcowe rozwiązanie. Na dole panel z głośnikami trzyma się na dwóch śrubach M5 specjalnie uciętych na długość, aby pasowały do osłonki, która od dołu trzyma się właśnie na nich. Natomiast od góry jest jedna śruba na środku, która wkręca się do nagwintowanego uprzednio kątownika. Nie dało się rozwiązać tego tak jak u dołu, ponieważ po bokach są diody i przyciski, a najkrótszy kątownik, jaki znalazłem nachodził na nie. Dodatkowo trzeba było przyciąć górę metalowej otoczki głośnika wysokotonowego, gdyż przeszkadzała ona we wkręceniu śruby. Uchwyt - projekt 3D Specjalnie na potrzebę tego głośnika zaprojektowałem uchwyt do noszenia do druku 3D. Jest on dostępny na thingiverse. Dwa wymogi, jakie miała spełnić to: nie psuć designu głośnika, czyli po prostu być w miarę ładna, oraz być składana. Z tymi wytycznymi i zarysem w wyobraźni zabrałem się za projektowanie. O ile sama rączka poszła dość gładko, to głowiłem się trochę jak ukryć mocowania, aby nie rzucały się w oczy. Wymyśliłem chyba dość ciekawą rzecz, a mianowicie przykręcamy dwa małe elementy, w które później wkładamy bolce od rączki (na których się obraca) i na samą górę jeszcze zaślepki, które maskują to wszystko. Myślę, że całość nie wygląda najgorzej, jest elegancka i zajmuje mało miejsca. Design Na koniec zostawiłem zaprojektowane naklejki na głośnik opisujące poszczególne funkcje. Naklejkę zaprojektowałem na wymiar dzięki uprzednio zrobionemu zdjęciu centralnie z góry z linijką w tle. Pozwoliło to odwzorować dokładne wymiary w programie Inkspace. Plik przygotowany do druku znajduje się w repozytorium (najlepiej na jakimś śliskim papierze, wtedy jakość jest znacznie lepsza). Po wydrukowaniu całość trzeba jeszcze powycinać. Naklejkę widoczną u góry głośnika najpierw obrysowałem cyrklem, a potem wyciąłem według linii ołówka. Całość została przyklejona na taśmę dwustronną i trzyma się bardzo dobrze. Podsumowanie: Jestem bardzo zadowolony z części elektronicznej tego głośnika. Została zbudowana profesjonalnie i nie było z nią żadnych problemów. Całość znajduje się na płytce, która jest zdejmowalna co ułatwia modernizacje. Nic nie jest łączone w pająka, a wszystkie przewody idą do płyty głównej i są podpisane, także podłączenie wszystkiego to zaledwie chwila. Jakość dźwięku jest bardzo dobra. Z głośnikami takich marek jak JBL (mowa tu o głośnikach o podobnej mocy) nie ma co konkurować, gdyż jakość elementów plus membrany pasywne tworzą nieskazitelną barwę dźwięku, ale wygrywa z nimi na pewno pod względem ceny, która jakby nie patrzeć jest prawie 10 razy mniejsza (55 zł). Natomiast z głośnikami niższych półek jak najbardziej konkuruje 🙂 Wygląd w mojej opinii jest bardzo dobry. Naklejki i rączka są jak najbardziej użyteczne i pasują stylowo do całości. Jedyna rzecz konieczna do wymiany to głośnik wysokotonowy, gdyż ten, który aktualnie się znajduje pochodzi z odzysku i słuchać, że nie jest w najlepszej kondycji. Przy następnych projektach proces montażu przemyśleć na samym początku jeszcze w fazie planowanie, gdyż rozmieszczenie elementów ma potem wpływ na to, w jaki sposób całość będzie zmontowana i oszczędzi nam sporo czasu. Plany na przyszłość: Wymiana głośnika wysokotonowego Membrany pasywne, aby wzmocnić jakość dźwięku oraz zasłonić dziury z tyłu Włączanie na wodę Źródła i linki: Najnowsza wersja projektu do pobrania pod tym linkiem. Są tam wszystkie pliki niezbędne do wykonania głośnika samodzielnie. Repozytorium na GitHub https://www.ti.com/lit/ds/symlink/lm2940c.pdf https://pl.wikipedia.org/wiki/Zwrotnica_głośnikowa https://pl.wikipedia.org/wiki/Filtr_górnoprzepustowy http://kaczanowski.org/elektronika/kolumna/dwa.htm https://www.youtube.com/watch?v=H17oSRbnjnU Zapraszam również do wpisu na moim blogu 🙂
  11. Witam wszystkich, Realizuje właśnie projekt, którego celem jest generowanie tonu o zadanej częstotliwości i określonym poziomie głośności. Do tego wykorzystuje przetwornik dac CS43L22 znajdujący się na płytce a jako wyjście złącze jack. Poniżej mój kod odpowiadający za stworzenie dyskretnego sinusa: void Build_sin(float F_Out) { float sample_dt = F_Out/F_SAMPLE; uint16_t sample_N = F_SAMPLE/F_Out; float sin_val; for(uint16_t i=0; i<sample_N; i++) { sin_val = sinf(2*PI*sample_dt*i); dataI2S[i*2] = (sin_val ); //prawy tor dataI2S[i*2 + 1] =(sin_val ); //lewy tor } Na wyjście przekazuję go za pomocą HAL_I2S_Transmit_DMA w następujący sposób: HAL_I2S_Transmit_DMA(&hi2s3, (uint16_t *)dataI2S, sample_N*2); Regulację głośności realizuję za pomocą funkcji SetVolume która wygląda w następujący sposób: void CS43_SetVolume(uint8_t volume) { int8_t tempVol = volume - 50; tempVol = tempVol*(127/50); uint8_t myVolume = (uint8_t )tempVol; DataReg[1] = myVolume; write_register(PASSTHROUGH_VOLUME_A,&DataReg[1]); write_register(PASSTHROUGH_VOLUME_B,&DataReg[1]); DataReg[1] = VOLUME_CONVERT_D(volume); write_register(CS43L22_REG_MASTER_A_VOL,&DataReg[1]); write_register(CS43L22_REG_MASTER_B_VOL,&DataReg[1]); } Macro VOLUME_CONVERT_D(vol) wygląda tak: (((volume) > 100)? 24:((uint8_t)((((volume) * 48) / 100) - 24))) Moje pytania są następujące: 1) W jaki sposób przekłada się poziom sygnału, stworzonego w funkcji Build_sin(), podawany na wyjście przetwornika na poziom głośności uzyskany w słuchawkach? 2) Czy w przypadku zmiany Master volume z powiedzmy 0 dB na -3 dB otrzymam na wyjściu sygnał audio pomniejszony o 3 dB względem wcześniejszego? Z góry dziękuje za odpowiedź i pozdrawiam
  12. Cześć, Zaczynam właśnie naukę programowania STM32 i chciałbym zrobić odtwarzacz audio. Posiadam płytkę STM32F411E-Disco, która jest wyposażona w DAC CS43L22. Planowałem wykorzystać interfejs I2C. Ze schematu układu odczytałem PB6 jako linie zegara i PB9 jako linie danych. Skonfigurowałem linie w programie STM32CubeMX. Znalazłem w dokumentacji adres urządzenia: 10010100 = 0x94(Write); 10010101 = 0x95(Read). Korzystam z bibliotek HAL, więc ustawiłem rejestr adresu CS43L22_ADDRESS (0x4A << 1). Następnie w pętli wykonuję: HAL_I2C_Mem_Write(&hi2c1, CS43L22_ADDRESS,CS43L22_REG_BEEP, 1, &beep,1,100); CS43L22_REG_BEEP to 0x1C na podstawie dokumentacji &beep jest wskaźnikiem na CS43L22_BEEP 0x74, które wg. dokumentacji powinno dawać na wyjściu dźwięk 1kHz trwający 1,5s. Niestety tak się nie dzieje. Bardzo proszę o pomoc. W którym miejscu popełniłem błąd? Z góry dziękuje za pomoc i wyrozumiałość. Pozdrawiam CS43L22_datasheet.pdf
  13. Witam. Jakie są sposoby na połączenie Raspbery Pi z Arduino? I czy jest taka możliwość np. kontrolowania Arduino z Rasppbery , lub np. wykorzystania Raspbery jako monitora Arduino czy coś jak "serwera" kilku Arduino, I jeśli można jak to zrobić.
  14. Za chwilę mnie coś strzeli... Program najprostszy chyba z możliwych (bez żadnych bibliotek): #include <Arduino.h> #include <i2s_reg.h> #include <i2s.h> int g_samrate = 8000; uint32_t last_micro_call; uint32_t idle_micros = 100000; void init_audio() { i2s_begin(); i2s_set_rate(g_samrate); last_micro_call = micros(); } void put_sample(int16_t sample) { uint32_t usample; usample = sample & 0x0000ffff; usample |= usample << 16; if (micros() - last_micro_call > idle_micros) { last_micro_call = micros(); yield(); } // wersja 1 najprostsza - działa źle i2s_write_sample(usample); /* // wersja 2 - to samo while (i2s_is_full()) { delay(1); last_micro_call = micros(); }*/ /* // wersja 3 - to samo while (!i2s_write_sample_nb(usample)) { delay(1); last_micro_call = micros(); }*/ } void finalize_audio() { for (int i=0; i<1000 && !i2s_is_full(); i++) i2s_write_sample_nb(0); i2s_end(); } void setup(void) { } void loop(void) { int i; init_audio(); for (i=0;i<4000;i++) { float a = i * (3.141592/10); int16_t s = sin(a) * 4096; put_sample(s); } finalize_audio(); delay(500); } Efekt działania: co prawda pika sobie bardzo ładnie, ale mniej więcej połowa (całkowicie losowo) "piknięć" jest głośniejsza i zniekształcona - tak jakby wejściowa próbka przesunęła się o bit w lewo. Miałem podobny efekt kiedyś gdy próbowałem coś zrobić z TDA1543 ale uznałem, że to pewnie wina połączeń na paszczatej płytce stykowej albo 8kHz to dla niego za mało... Co ciekawsze - podobny program, ale używający hacku PWM działa ślicznie... Ktoś coś... jakieś pomysły? Bo mi się skończyły 😞 Po sprawdzeniu: zamiana na bibliotekę ESP8266Audio i użycie AudioOutputI2S nic nie zmienia.
  15. Witam jest to mój pierwszy projekt na forbocie, więc proszę o wyrozumiałość :). Pokażę wam jak zrobiłem swój wzmacniacz do głośnika bez dużej ilości kondensatorów a właściwie ogranicza się tylko do dwóch. A więc zaczynamy, oto co będziecie potrzebować: -Kondensatora elektrolitycznego 1000uF - Kondensatora 10uF -Potencjometru 10k x2 -Wzmacniacza LM386 A więc to jest wszystko co potrzebujecie, aby zrobić wzmacniacz. Do całego głośnika trzeba wyposażyć się w obudowę oraz głośniki i gniazdo Jack. Połączenia: Zamieszczę tutaj zdjęcie połączeń na płytce stykowej, ponieważ nikt by nie zrozumiał mojego rozpisania. Zamalowalem na nim elementy, których nie użyłem. Na dodatek dołączam zdjęcia gotowego głośnika... A tutaj gotowa obudowa: Jakość obudowy nie powala ale to w końcu diy... Dla tych co chcą zrobić wzmacniacz z przwdopodobnke lepsza jakością dźwięku to zamieszczam schemat:
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.