Skocz do zawartości

DominusSaltus

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Reputacja

3 Neutralna

O DominusSaltus

  • Ranga
    1/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Obawiam się, że nic mi się nie uchowało a samego projektu niestety już nie posiadam. Poszperam może gdzieś na telefonie mi się coś ostało i jakby się coś znalazło to dam znać.
  2. Projekt to niewielkie pianinko, na którym jest możliwość wydobycia jednocześnie czterech dźwięków w tym samym czasie, a skala dźwięków możliwych do zagrania w ogóle wynosi oktawę i jeden półton. Najniższy dźwięk to c4 w notacji amerykańskiej, najwyższy – cis5. Zmianę wysokości dźwięku w tym zakresie umożliwia ultradźwiękowy czujnik odległości. Interwały pomiędzy dźwiękami wydobywanymi przez poszczególne przyciski są stałe i wynoszą: pierwszy przycisk (od lewej) – pryma, drugi przycisk - tercja mała, trzeci przycisk – tercja duża, czwarty przycisk – kwinta czysta. Ustawienie dłoni lub płaskiego przedmiotu przed czujnikiem pozwala na dobór prymy. I tak, gdy obiekt znajdzie się w odległości 3-4 cm od czujnika wysokości dźwięków są następujące: c4, dis4, e4, g4; w przypadku, gdy odległość będzie wynosić 23-24 cm: fis4, a4, b4, cis5. Takie dobranie interwałów pozwala na uzyskanie podstawowych trójdźwięków zarówno durowych jak i mollowych. Pomimo tylko czterech przycisków, przy odrobinie wprawy, użytkownik jest w stanie dotrzeć do każdego dźwięku pomiędzy c4 a cis5. Dodatkowo, na czterocyfrowym siedmiosegmentowym wyświetlaczu pokazywane są nazwy dźwięków aktualnie przypisanych do przycisków. Zapalona kropka oznacza krzyżyk, czyli podwyższenie dźwięku o pół tonu (tzn. jeśli wyświetlona na pierwszej pozycji litera to „C.” oznacza to, że pryma wynosi cis4 (cis5 nie jest dostępne dla prymy i możliwe jest jej zagranie tylko na czwartym przycisku – kwincie czystej). Całość obsługuje Atmega328p, która komunikuje się z czujnikiem odległości HC-SR04, wysyła sygnał do wzmacniacza audio lm386 oraz wyświetla za pomocą rejestru przesuwnego 74hc595 i ekspandera I2C pcf8574 poszczególne dźwięki na wyświetlaczu. Zasilanie doprowadzane jest przez złącze śrubowe ARK, przy czym szczególnie zalecane jest zasilanie czterema bateriami AA 1.5V – łącznie 6V. Powyżej zamieszczone są dwa zdjęcia gotowego układu. Pianinko zostało wykonane na dwóch płytkach prototypowych tego typu. Zostały one połączone śrubami w plastikowych dystansach. Poniżej schemat ideowy układu: Poniżej opisy poszczególnych modułów projektu: a) Układ wzmacniacza audio oraz podłączenie przycisków Sygnał z mikrokontrolera zostaje w pierwszej kolejności przefiltrowany przez filtr RC składający się z rezystora 330 Ω oraz kondensatora 100 nF połączonych równolegle. Częstotliwość odcięcia wynosi około 4800 Hz (zakres częstotliwości słyszalnych przez człowieka wynosi od 20Hz do 20kHz, jednak w tym przypadku nie ma potrzeby stosowania tak dużego zakresu). Następnie szeregowo umieszczone są kondensator C2 zapewniający odcięcie składowej stałej sygnału, rezystor R17, który ogranicza napięcie wejściowe na wzmacniacz oraz potencjometr pełniący funkcję regulatora głośności. Poza tym dołączone do układu zostały kondensatory i rezystory pełniące funkcje redukcji zakłóceń. Do pinów 1 i 8 został dołączony drugi potencjometr z kondensatorem 10 μF – pełnią funkcję gain w powyższym układzie. Przyciski zostały podłączone między potencjał a masę przez rezystory 220 Ω oraz do pinów cyfrowych mikrokontrolera. b) Podłączenie mikrokontrolera oraz układ stabilizacji napięcia c) Podłączenie wyświetlacza i czujnika Anody poszczególnych cyfr wyświetlacza zostały podłączone przez tranzystory, ponieważ wyjścia układu PCF8574 nie mają odpowiedniej wydajności prądowej, by wysterować diody w wyświetlaczu. Użycie ekspandera jest konieczne z powodu niedostatecznej ilości pinów cyfrowych mikrokontrolera. Użyte biblioteki: MusicWithoutDelay.h – biblioteka umożliwiająca zaimplementowanie odgrywania muzyki bez opóźnienia w głównej pętli programu SensorToButton.h – biblioteka ułatwiająca obsługiwanie zarowno przycisków jak i czujników NewPing.h – biblioteka obsługująca czujnik odległości PCF8574.h – biblioteka obsługująca ekspander Notes.h – biblioteka własna zawierająca definicje oraz deklaracje stałych Część z bibliotek została zmodyfikowana: #define MAX_SENSOR_DISTANCE 26 Dobrana maksymalna wartość odległości w centymetrach (sensor nie będzie oczekiwać na pingi dłużej niż potrzeba, aby dźwięk przebył wymagane 26 centymetrów – dzięki temu zmniejszone zostaje do minimum opóźnienie w programie potrzebne na odczyt odległości), (NewPing.h) void SensorToButton::debounceIt(uint16_t r){ changed = defaultTo; //true for isWasPressed(), false for isWasReleased() if (r > myThreshold1 && r <=myThreshold2) { //modyfikacja warunku state = myDir; } Modyfikacja warunku w bibliotece SensorToButton.cpp: Zmiana strlen_P() na sizeof() w MusicWithoutDelay.cpp w konstruktorze przy zapisywaniu nazwy piosenki: pLoc=loc; loc = sizeof(mySong); totalTime = 0; skipCount = pLoc; // while (((unsigned)skipCount) < sizeof(mySong)) { totalTime += skipSolver(); } Obsługa układu: Aby włączyć układ, należy podłączyć zasilanie 6V do złącza śrubowego (po lewej masa, po prawej potencjał dodatni). Następnie naciskając przyciski można odtwarzać odpowiednie dźwięki. Wysokość dobierana jest na podstawie odległości przeszkody od czujnika ultradźwiękowego. W specyfikacji czujnika zalecane jest użycie płaskiej powierzchni o polu równym około 0.5 metra kwadratowego, ale na potrzeby tego projektu wystarczy nieduża powierzchnia, np. Okładka zeszytu czy notesu. Przeszkoda powinna być umieszczona w odległości od 3 cm (najniższe dźwięki) do 24 cm (najwyższe). Gdy będzie ustawiona poza tym przedziałem lub nieprostopadle do sensora możliwe jest błędne działanie układu lub pozostawiona będzie ostatnia znana wartość. Nazwy dźwięków można odczytywać na bieżąco z wyświetlacza, przy czym lewa cyfra odpowiada lewemu przyciskowi itd. Wyświetlają się litery: c, d, e, f, g, a, b oraz kropki oznaczające podwyższenie dźwięku o półtonu. Głośność można regulować potencjometrami znajdującymi się z tyłu układu – lewy spełnia funkcję volume, prawy natomiast – gain. Przydatne linki: Dokumentacja biblioteki MusicWithoutDelay Dokumentacja mikrokontrolera Atmega328p Artykuł dotyczący budowy układu wzmacniacza audio https://www.instructables.com/id/Temperature-Displayed-on-4-Digit-7-segment-common/ Dokumentacja układu PCF8574 Dokumentacja układu 74hc595
×
×
  • Utwórz nowe...