Metronom dla muzyków

Metronom dla muzyków
Pobierz PDF Download icon

Równomierne wybijanie rytmu jest dla początkującego muzyka zadaniem niełatwym, jednocześnie istotnym dla uzyskiwania postępów w nauce gry. Dostępne w handlu urządzenia, mające pomagać w tej czynności, są przeważnie przeładowane najróżniejszymi funkcjami, a przez to drogie. Niniejszy układ jest tani i prosty w montażu, zaś jego jedyną - i najistotniejszą zarazem - funkcją jest wystukiwanie równomiernego rytmu.
Rekomendacje: przyrząd może przydać się muzykom i jest alternatywą dla drogich rozwiązań fabrycznych.

Rysunek 1. Schemat ideowy metronomu

Metronom może być zasilany z baterii lub zasilacza sieciowego. Ma sygnalizację optyczną, wewnętrzny głośniczek oraz wyjście słuchawkowe.

Za pośrednictwem trzycyfrowego wyświetlacza LED można ustawić częstotliwość powtórzeń w zakresie 30...250 BPM (ang. Beats Per Minute - uderzeń na minutę) i wybrać jeden z pięciu dźwięków.

Parametry te zostają zapisane w nieulotnej pamięci EEPROM, by przy następnym uruchomieniu urządzenia, nie zachodziła konieczność ponownego ich ustawiania.

Zasada działania

Fotografia 2. Wyświetlacz podczas zmiany wartości BPM

Schemat ideowy metronomu pokazano na rysunku 1. "Sercem" urządzenia jest mikrokontroler US1 typu ATtiny2313. Do wyprowadzeń portu B, za pośrednictwem rezystorów R1...R7, dołączone są katody trzycyfrowego wyświetlacza LED1, który jest sterowany w trybie multipleksowanym: wspólne dla każdej cyfry anody zasilane są poprzez tranzystory T1...T3 z trzech wyprowadzeń portu D. Zastosowanie tranzystorów było konieczne, ponieważ wydajność prądowa poszczególnych wyprowadzeń mikrokontrolera nie przekracza 20 mA. Dioda LED2 służy do sygnalizacji optycznej wybijanego rytmu. Przyciski S1...S3 są dołączone pomiędzy masę a wejście mikrokontrolera. Rezystory R12...R14 utrzymują na nich poziom wysoki podczas oczekiwania na wciśnięcie któregokolwiek z przycisków. Obwód rezystor R15 - kondensator C3 odpowiada za restart mikrokontrolera po włączeniu zasilania. Kondensatory C1 i C2 filtrują zakłócenia, które mogłyby rozprzestrzeniać się po układzie.

Z pinu 2 (Portd0) jest uzyskiwany sygnał akustyczny. Ponieważ wyprowadzenia układów serii AVR - pracujące w charakterze wyjścia - mają mniejszą rezystancję wewnętrzną na poziomie niskim, więc głośnik jest włączony pomiędzy to wyjście, a dodatni biegun zasilania. Składową stałą oddziela kondensator C4. Gniazdo Jack ma wewnętrzny przełącznik, który odłącza głośnik SP po włożeniu do niego wtyczki. Obydwa kanały w wyjściu słuchawkowym są połączone równolegle. Dzięki takiemu rozwiązaniu, układy regulacji głośności, znajdujące się w słuchawkach, mogą działać poprawnie, niezależnie od ich konstrukcji. Istnieje również możliwość wyprowadzenia sygnału np. do wzmacniacza. Połączenie szeregowe mogłoby stwarzać w tej kwestii problemy.

Omówienie programu

Program został napisany w środowisku BASCOM-AVR. Jego kod zamieszczono na listingu 1. Program używa obu timerów mikrokontrolera. Timer0, z preskalerem dzielącym częstotliwość zegara przez 8, steruje wyświetlaczami. Ma on pojemność 8 bitów i jest do niego ładowana wartość 156 (28-100=156), co oznacza, że podprogram obsługi przerwania wykonuje się ok. 800 razy na sekundę, zaś każda cyfra odświeżana jest z częstotliwością trzykrotnie mniejszą, wynoszącą ok. 266 Hz. Jest to wartość wystarczająca dla uzyskania wrażenia braku migotania wyświetlanych cyfr.

Listing 1. Program sterujący pracą metronomu

Listing 1. c.d.

16-bitowy Timer1, z preskalerem dzielącym częstotliwość zegara przez 64, odpowiada za regularne emitowanie sygnałów dźwiękowych przez układ. Przerwanie wywoływane od jego przepełnienia jest wykonywane co 4 sekundy (1 MHz/64=15625 Hz oraz 216/15625 Hz=4 s. Ponieważ odstęp czasu między kolejnymi dźwiękami zawiera się w przedziale od 240 ms (60 s/ 250 PBM=0,24 s) do 2 s (60 s/30 BPM=2 s), wystarczy załadować do niego odpowiednią wartość, by uzyskać żądany interwał. Jest ona obliczana w podprogramie Czas. Najpierw oblicza się konieczną do załadowania wartość, zależną od BPM, która potem jest mnożona przez liczbę sekund w minucie. Część ułamkową podczas dzielenia traci się, gdyż wynik dzielenia jest zapisywany do zmiennej typu całkowitego. Nie trzeba się tym przejmować, ponieważ błąd (1/15625≈0,06 ‰) jest praktycznie niesłyszalny. Podprogram obsługujący przerwanie najpierw emituje dźwięk (jeden z pięciu), a potem załącza diodę LED2 na czas 400 ms - wystarczająco długo, by dostrzec jej mignięcie, z drugiej strony na tyle krótko, by między kolejnymi impulsami były wyraźne przerwy.

Wyboru liczby wystukiwanych impulsów na minutę dokonuje się przyciskiem S1 (zwiększanie wartości) lub S2 (zmniejszanie wartości). Lecz każdy z nich oprogramowany jest, poza wymienioną różnicą, tak samo: między kolejnymi inkrementacjami lub dekrementacjami zmiennej Bpm program wstrzymywany jest na ok. 100 ms; na tyle wolno, by można było dostrzec zmianę na wyświetlaczu, jednocześnie na tyle szybko, by regulacja odbywała się sprawnie. Po każdej iteracji pętli, podprogram Cyfry "rozbija", przy pomocy operacji modulo, zawartość zmiennej Bpm na trzy zmienne, zawierające cyfry gotowe do wyświetlenia.

Fotografia 3. Wyświetlacz podczas wyboru rodzaju dźwięku

Wraz z naciśnięciem przycisku, zmienną Flaga_opoznienia ustawia się w stan wysoki. Po zwolnieniu zaś, odpowiada za obliczenie nowej wartości do załadowania do Timer1, podtrzymanie świecenia wyświetlacza przez 750 ms, zapisanie ustawionej wartości do pamięci EEPROM i na końcu - uruchomienie Timer1. Na czas pracy wyświetlacza jest on wyłączany (poleceniem disable), a to z tego względu, że przerwania od niego generowane, zakłócają proces multipleksowania. Widok wyświetlacza pokazano na fotografii 2.

Bardzo podobnie wygląda obsługa przycisku S3, którym jest dokonywany wybór sygnału dźwiękowego. Różnica polega na tym, że pracuje jedynie środkowa cyfra wyświetlacza (empirycznie ustalono, że liczba 33 wyłącza cyfrę), zaś inkrementowana zmienna Ton pracuje w pętli, podobnie jak Bpm, tyle, że znacznie węższej. Widok wyświetlacza w tej fazie pokazuje fotografia 3.

Do programu wpisano pięć różnych dźwięków. Z pewnym przybliżeniem (gdyż komenda Sound nie służy do generowania dokładnych przebiegów) można przyjąć, że jest to ton podstawowy 440 Hz i jego kolejne wielokrotności. Nic nie stoi na przeszkodzie, by je - według własnego gustu - zmodyfikować lub dopisać nowe, pamiętając jednocześnie o zwiększeniu górnej granicy zmiennej Ton.

Ostatnim omówionym tu elementem będzie sterujący wyświetlaniem podprogram Wyswietlaj. Jest on uruchamiany po przepełnieniu licznika Timer0. Najpierw jest ładowana nowa wartość, po czym są wyłączane wszystkie cyfry, poprzez ustawienie wyprowadzeń sterujących tranzystorami typu PNP. Następnie, odczytując wartość zmiennej Nr_wysw, dokonuje się wyboru jednego z nich i za pomocą polecenia Lookup wyprowadza przez PortB liczbę, zapisaną w postaci binarnej w bloku danych Cyfry, która powoduje włączenie odpowiednich segmentów.

Program działa z domyślnymi, fabrycznymi ustawieniami fusebitów - wewnętrzny oscylator 8 MHz z podziałem częstotliwości zegara przez 8.

Wykaz elementów

Rezystory: (0,25 W)
R1...R7, R11: 100 Ω
R8...R10, R12...R14: 1 kΩ
R15: 4,7 kΩ

Kondensatory:
C1: 100 nF/50 V (ceramiczny)
C2, C3: 22 µF/16 V (elektrolit.)
C4: 100 µF/16 V (elektrolit.)

Półprzewodniki:
LED1: wyświetlacz 7-segmentowy, 3 cyfry, wspólna anoda
LED2: dioda LED 5 mm, zielona
T1-T3 BC557
US1 ATtiny2313

Inne:
JACK gniazdo 3,5 mm stereo, do druku, z wyłącznikiem
S1-S3 monostabilne, styki SPST-NO, wym. (6×6×13) mm
S4 suwakowy, ON-ON, raster 4 mm
SP opis w tekście
podstawka DIL-20

Montaż i uruchomienie

Rysunek 4. Schemat montażowy metronomu

Układ zmontowano na jednostronnej płytce drukowanej o wymiarach 43 mm×78 mm, której schemat montażowy pokazano na rysunku 4. Montaż jest wykonywany typowo: od elementów najniższych po najwyższe. Pod układ US1 należy zastosować podstawkę. Kondensatory elektrolityczne powinny być wlutowane w pozycji leżącej - wówczas wyświetlacz, przyciski, przełącznik i diodę można bezpośrednio przystawić do ścianki. Gniazdo Jack jest tak usytuowane, że można je przykręcić nakrętką do obudowy. W układzie modelowym, jako głośnik SP, zastosowano głośniczek piezoelektryczny (bez generatora), o rezystancji cewki wynoszącej w przybliżeniu 16 Ω. Bardzo dobrze spisuje się przy napięciu zasilania przekraczającym 4 V, lecz poniżej tej wartości staje się za cichy, zwłaszcza do ćwiczeń z perkusją. Innych rozwiązaniem jest użycie zwykłego głośnika elektrodynamicznego o impedancji cewki 8 Ω lub 16 Ω. Zwiększona powierzchnia membrany zapewnia dobrą słyszalność, nawet przy zasilaniu napięciem 3 V.

Układ ATtiny2313 może być zasilany napięciem z przedziału 2,7...5,5 V. Pobór prądu przy włączonym wyświetlaczu wynosi, w zależności od liczby włączonych segmentów, 50...90 mA przy 5 V lub 30...60 mA przy 3 V. W trybie pracy, po wyłączeniu wyświetlacza, pobór prądu spada do kilku miliamperów. Oznacza to, że źródłem zasilania dla metronomu mogą być dwie lub trzy połączone szeregowo baterie o napięciu 1,5 V albo zasilacz sieciowy.

W układzie modelowym zastosowano wyświetlacz świecący w kolorze zielonym.Jest on czytelny nawet przy niskim napięciu zasilania, lecz lepszym rozwiązaniem może być zastosowanie wyświetlacza świecącego na czerwono, z racji mniejszej wartości napięcia przewodzenia zastosowanych w nim diod. W handlu dostępne są również wyświetlacze działające przy mniejszym, niż standardowe, prądzie świecenia każdego segmentu. Zastosowanie takiego przyczyni się do dalszego spadku poboru mocy, lecz wymagać będzie zwiększenia wartości rezystorów R1...R7. Dioda LED2 może być dowolna - warto jednak pamiętać, że zieleń jest kolorem, na który nasze oczy są wyczulone najbardziej. Diody białe lub niebieskie mogą nie funkcjonować przy zasilaniu ich napięciem 3 V.

Po włożeniu zaprogramowanego układu w podstawkę i włączeniu zasilania, układ rozpoczyna pracę bez jakichkolwiek czynności uruchomieniowych.

Michał Kurzela, EP

Artykuł ukazał się w
Elektronika Praktyczna
luty 2014
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów