KursyPoradnikiInspirujące DIYForum

Kurs micro:bit – #4 – dźwięki, czujnik położenia i liczby losowe

Kurs micro:bit – #4 – dźwięki, czujnik położenia i liczby losowe

Tym razem poznamy podstawowe bloczki, które pozwolą wydobyć z micro:bita różne dźwięki – od pojedynczych nutek aż do wesołych melodyjek.

Przy okazji sprawdzimy również, jak wykorzystać czujnik położenia (akcelerometr i magnetometr) do tego, aby wykrywać np. potrząśnięcia.

W tym przypadku od razu możemy przejść do zadań praktycznych. Płytka micro:bit nie posiada wejścia, do którego możemy bezpośrednio podłączyć słuchawki, ale na szczęście w zestawie do kursu znajduje się specjalny moduł z małym głośnikiem, który wpinamy do wejścia P0/P14.

Przy poprzednich modułach mieliśmy dowolność podczas wybierania gniazda. Tym razem jest jednak inaczej, ponieważ moduł głośnika zadziała poprawnie tylko wtedy, gdy będzie podłączony do P0/P14. Ograniczenie to wynika z budowy samego micro:bita – nie będziemy teraz wnikać w szczegóły.

Wszystkie bloczki związane z muzyką znaleźć można w czerwonej zakładce Music. Dostępne są tam elementy, które generują pojedyncze dźwięki lub całe melodie. Zaczniemy od prostego testu. Bloczek reagujący na naciśnięcie przycisku uzupełniamy funkcją generującą dźwięk, która nazywa się play tone.

Program generujący pojedynczy dźwięk

Program generujący pojedynczy dźwięk

Wgrywamy program i testujemy – po wciśnięciu przycisku A z głośnika powinien wydobyć się krótki dźwięk. Oczywiście mamy wpływ na to, jaki dźwięk usłyszymy i ile czasu będzie on trwał.

Wszystko za sprawą ustawień użytego bloczka. Po kliknięciu na nazwę dźwięku zobaczymy klawiaturę, z której można wybrać dowolny dźwięk, a korzystając z rozwijanej listy obok, możemy wybrać, jak długo będzie on trwał.

Wybór dźwięku z klawiatury

Wybór dźwięku z klawiatury

Osoby, które grają na instrumentach, na pewno poradzą sobie z samodzielnym komponowaniem prostych melodyjek, pozostałych zachęcam do różnych eksperymentów. Nawet bez żadnej wiedzy na temat muzyki można szybko stworzyć (np. za pomocą dwóch dźwięków i pętli) prostą syrenę alarmową.

Prosta syrena alarmowa

Prosta syrena alarmowa

Efekt działania tego programu będzie następujący:

Generowanie melodii na micro:bit

Na szczęście środowisko MakeCode udostępnia nam również gotowy bloczek, dzięki któremu nawet osoby niemające żadnego pojęcia na temat tworzenia muzyki mogą dodać do swoich projektów gotowe melodie. Zacznijmy od wykorzystania bloczka start melody – z rozwijanej listy melodyjek wybieramy w nim tę, która opisana jest jako enterteiner.

Program odtwarzający melodię

Program odtwarzający melodię

Od teraz po wciśnięciu przycisku nasz micro:bit powinien odgrywać prostą melodyjkę. Każde wciśnięcie przycisku włączy jedno odegranie melodii. Możemy jednak sprawić, że muzyka zacznie grać w koło – w tym celu zmieniamy drugie ustawienie bloczka: start melody na forever. Dzięki temu dźwięk będzie zapętlony. Warto jednak od razu dodać do programu opcję zatrzymania dźwięku – tutaj przyda się nowy bloczek: stop melody all. Testowy program może więc wyglądać następująco:

Program prostego odtwarzacza muzycznego

Program prostego odtwarzacza muzycznego

Po wgraniu tego programu nasz micro:bit będzie zachowywał się jak mały odtwarzacz muzyczny, który posiada przyciski do włączenia i wyłączenia muzyki. 

Automatyczna kartka urodzinowa

Oczywiście mamy pełną kontrolę nad działaniem naszego prostego odtwarzacza. Muzyką można więc sterować nie tylko za pomocą przycisków, ale również za pomocą poznanych wcześniej czujników. Dzięki temu można bardzo łatwo stworzyć ciekawe projekty!

Gotowe zestawy do kursów Forbota

 Komplet elementów  Gwarancja pomocy  Wysyłka w 24h

Moduły do wykonania wszystkich ćwiczeń z kursu micro:bita dostępne są w formie gotowych zestawów! W komplecie m.in.: micro:bit, czujnik gestów i odległości oraz taśma diod RGB.

Zamów w Botland.com.pl »

W sprzedaży dostępne są np. kartki urodzinowe, które po otwarciu automatycznie zaczynają grać Happy Birthday to You – pora zrobić coś takiego samodzielnie! Do naszego micro:bita podłączamy głośnik na P0 oraz czujnik światła na P1.

Jeśli taki układ zamkniemy w pudełku, to za pomocą czujnika światła szybko wykryjemy, gdy ktoś je otworzy (bo zrobi się wtedy znacznie jaśniej). Możemy zatem łatwo napisać program, który po otwarciu pudełka odegra piosenkę Happy Birthday to You i wyświetli na ekranie krótkie życzenia.

Program elektronicznej kartki urodzinowej

Program elektronicznej kartki urodzinowej

Jeśli coś w programie nie jest dla Ciebie zrozumiałe, to koniecznie wróć do poprzedniej części kursu, gdzie opisane zostały czujniki analogowe oraz warunki. Jeśli jednak wszystko jest jasne, to możesz przejść do testowania naszej „kartki urodzinowej”. Układ można włożyć do pudełka (trzeba tylko doprowadzić przewód z zasilaniem), ale można też zrobić prosty test, w którym czujnik zakryty będzie ręką, a jego odsłonięcie będzie symulowało otwarcie pudełka.

Zmiana tempa muzyki

Podczas korzystania z bloczków muzycznych warto wspomnieć jeszcze o możliwości zmiany tempa, w jakim odtwarzane są melodie. Tutaj pomocny jest bloczek change tempo by (bmp), który pozwala na przyspieszenie albo spowolnienie odgrywanego utworu. Najłatwiej sprawdzić to, używając prostego programu, w którym jeden przycisk będzie zwiększał tempo, a drugi – zmniejszał.

Oczywiście na początku programu musimy najpierw włączyć jakąś melodię. Tutaj, aby efekt był łatwo słyszalny, wykorzystamy zapętloną melodię nyan. Cały program powinien więc wyglądać następująco:

Program demonstrujący zmianę tempa

Program demonstrujący zmianę tempa

Od teraz każde naciśnięcie przycisku A będzie przyspieszało melodię, a przycisku B – spowalniało ją. Efekt powinien prezentować się następująco:

Czujniki położenia w praktyce

Na samym początku kursu wspomnieliśmy, że na pokładzie micro:bita znaleźć można dwa małe czujniki: akcelerometr i magnetometr. Dzięki nim możemy wykryć, co fizycznie dzieje się z płytką. Mowa tutaj np. o wykrywaniu potrząśnięć, delikatnych uderzeń, pochylenia w lewo/prawo itd. Takie sytuacje wykryć można za pomocą bloczka on shake z zakładki Input

Wykorzystanie czujników położenia w praktyce

Wykorzystanie czujników położenia w praktyce

W bloczku tym możemy wybrać zachowanie, na które ma on reagować. Do wyboru jest:

  1. potrząśnięcie,
  2. ułożenie logotypem do góry,
  3. ułożenie logotypem do dołu,
  4. ułożenie diodami do góry,
  5. ułożenie diodami do dołu,
  6. pochylenie w lewo,
  7. pochylenie w prawo,
  8. swobodny upadek,
  9. przeciążenie (np. w wyniku uderzenia) o wartości ponad 3 g, 6 g oraz 8 g.

Elektroniczna kostka do gry

Opcji jest dużo, ale najczęściej wykorzystuje się jednak reakcję na potrząśnięcie i na pochylenie płytki w lewo oraz prawo. Pora sprawdzić, jak czujniki te działają w praktyce. Zacznijmy od napisania programu prostej kostki do gry, która po potrząśnięciu wyświetli na ekranie liczbę z zakresu od 1 do 6 i odegra krótką melodię. Gotowy kod wygląda następująco:

Program prostej kostki do gry

Program prostej kostki do gry

Wewnątrz bloczka reagującego na potrząśnięcie umieszczony został bloczek show number, który służy do wyświetlania liczb na ekranie micro:bita. W miejscu na wpisanie liczby, która ma być wyświetlana, wstawiony został bloczek pick random z zakładki Math – za jego pomocą można losować liczby z podanego zakresu (tutaj od 1 do 6).

Po wgraniu programu nic nie powinno się dziać. Wystarczy jednak potrząsnąć delikatnie micro:bitem, aby na ekranie pojawiła się wylosowana liczba, a z głośnika popłynęła krótka melodyjka.

Efekt po potrząśnięciu micro:bitem

Efekt po potrząśnięciu micro:bitem

Nasz micro:bit jako tajemniczy instrument

Na koniec proste ćwiczenie – możesz teraz zaszaleć i zbudować zawiły program, który sprawi, że Twój micro:bit będzie tajemniczym instrumentem. Tylko Ty będziesz wiedział, co trzeba wcisnąć lub jak przechylić płytkę, aby wydobyć z niej konkretny dźwięk. Działanie układu możesz też urozmaicić, np. wyświetlaniem dodatkowych ikon. Przykładowy program może wyglądać następująco:

Przykładowy program tajemniczego instrumentu

Przykładowy program tajemniczego instrumentu

Eksperymentuj do woli, aby dobrze poznać wszystkie melodie i opanować działanie czujników położenia! Jeśli uda Ci się stworzyć ciekawy program, to koniecznie pochwal się nim w komentarzu do kursu – udostępnij program lub pokaż film.

Jak udostępniać program dla micro:bita?

Jeśli chcesz udostępnić komuś swój program, możesz przesłać mu plik hex, ale znacznie wygodniej będzie udostępnić projekt bezpośrednio z poziomu środowiska MakeCode. Aby było to możliwe, trzeba kliknąć przycisk Share (w lewym górnym rogu edytora), a następnie w nowym oknie ustawić nazwę projektu i nacisnąć przycisk Publish project:

Wygodne udostępnianie projektów

Wygodne udostępnianie projektów

Po chwili pojawi się nowe okno z linkiem do projektu – wystarczy go skopiować i przesłać koledze:

Link do udostępnienia projektu

Link do udostępnienia projektu

Każdy, kto kliknie tak wygenerowany link, będzie miał dostęp do Twojego projektu, będzie mógł go wgrać na swoją płytkę lub wprowadzić w nim zmiany – nie wpłynie to jednak na zawartość Twojego projektu, bo wszystkie edycje będą wykonywane na kopii.

Dodatek (dostępny w książce)

Osoby, które zdecydowały się na dodatkowe wsparcie naszej działalności i kupiły kurs w formie książki lub e-booka, znajdą tu informacje, jak sprawdzać stan przycisków wewnątrz innych bloczków, np. on start i forever, jak sprawdzać, czy ktoś trzyma wciśnięty przycisk, a także przykładowe rozwiązania do poniższych zadań dodatkowych.

Zadania dodatkowe

Zad. 4.1. Stwórz program pokazujący na ekranie za pomocą strzałki, w którą stronę (w lewo/prawo) ostatnio przechylono micro:bit. Wykorzystaj do tego wbudowany w płytkę akcelerometr.

Zad. 4.2. Napisz program „nocnego dręczyciela”, który będzie wydawał krótkie dźwięki co 5 sekund, ale tylko wtedy, gdy w pomieszczeniu będzie ciemno. Jeśli schowasz gdzieś taki układ, to będzie on niepokoił domowników trudnym do namierzenia dźwiękiem, który ustanie, kiedy tylko włączą oni światło. Wykorzystaj głośnik podłączony do P0/P14 oraz czujnik światła podłączony do P1/P15.

Zad. 4.3. Rozbuduj program „nocnego dręczyciela” w taki sposób, aby wydawał dźwięki w losowych odstępach czasu (od 3 do 10 sekund). Dodaj też mechanizm, który ukryje przed domownikami prawdziwą funkcję układu – np. przycisk A powinien wyświetlać Twoje imię, a przycisk B powinien wyświetlać na chwilę ikonę serca.

Podsumowanie

Za nami podstawowe informacje na temat generowania dźwięków za pomocą micro:bita. W kolejnych częściach kursu będziemy korzystać z głośnika podczas budowy innych projektów, zaznajomimy się też wtedy dokładniej z bloczkami związanymi z muzyką.

Czy wpis był pomocny? Oceń go:

Średnia ocena 4.8 / 5. Głosów łącznie: 140

Nikt jeszcze nie głosował, bądź pierwszy!

Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!

W następnej części poznamy najbardziej rozbudowany czujnik, który znajduje się w naszym zestawie. Mowa o sensorze, który potrafi zidentyfikować aż dziewięć gestów! Za jego pomocą będziemy mogli zbudować urządzenia, które będą reagowały m.in. na ruch dłonią w lewo, w prawo i do góry.

Autor kursu: Damian Szymański

Nawigacja kursu

dźwięki, kurs, kursmicrobit, micro:bit, muzyka

Trwa ładowanie komentarzy...