Blog (83)
Komentarze (2k)
Recenzje (1)

Co dwie szafy to nie jedna — nowa dusza Fonica M123 [cz.2]

@cyrylloCo dwie szafy to nie jedna — nowa dusza Fonica M123 [cz.2]16.01.2017 15:14

W drugiej części wpisu o odnowieniu szaf grających fonica M123, pokażę pozostałe prace jakie zostały wykonane aby zakończyć projekt. W pierwszej części mieliśmy już przyszykowane szafy do montażu pozostałej elektroniki.

Obsługa 100 przycisków

Tutaj do obsługi przycisków użyłem moduł LN HUB32IO dla Banana Pro, który posiada 32 piny GPIO oraz hub USB. W moim przypadku jako, że panel z przyciskami posiada 8 rzędów po 13 i 12 przycisków (po 4 z każdej ilości) użyłem matrycy przycisków 8x13 przez co korzystam z 21 pinów modułu i odczytuje za pomocą ich wciśnięcia 100 przycisków.

Matryca przycisków
Matryca przycisków

Nadaje stan wysoki w danej chwili na pierwszy poziom przycisków a następnie odczytuję pionowo, który z przycisków został wciśnięty. Przechodzenie pomiędzy poziomami jest szybkie i jest przełączana co 5ms. To wystarcza na odczytywanie w szybkim czasie 100 przycisków.

[code=c++] int BananaPins::isButtonPressed() { int pin = 0; int colSize = 0; for(int j = 0; j < 8; j++) { digitalWrite(200 + j, HIGH); delay(10); if(j < 2 || j > 5) colSize = 13; else colSize = 12; for (int i = 0 ; i < colSize ; i++) { if(digitalRead (100 + i) == 1) { //printf ("BananaPins 1 is set on: %i\n", pin + 1) ; delay(20);/////!!!!!!!! więcej???? if(digitalRead (100 + i) == 1){ printf ("BananaPins is set on: %i\n", pin + 1) ; digitalWrite(200 + j, LOW); return (pin + 1); } } //printf("J: %d, pin %d\n", j, pin + 1); pin++;

} delay(5); digitalWrite(200 + j, LOW); } return -1; } [/code]

Jak widać po wciśnięciu sprawdzam jeszcze raz po 20ms odczyt czy przycisk dalej jest wciśnięty aby wyłapać tak zwane drgania przycisku. Myślę, że szerzej opisać działanie i dokładny kod matrycy przycisków można by było przedstawić w osobnym wpisie.

Wrzutnia monet

Jako, że oryginalnie szafa posiadała wrzutnię monet o nominale 2 zł w nowej wersji też nie mogło jej zabraknąć. Użyłem do tego akceptor monet CH-923 rozpoznający 3 monety.

Akceptor monet programuje się za pomocą przycisków i wyświetlacza z boku urządzenia. Ja ustawiłem obsługę trzech monet 1, 2 i 5 zł. Przy programowaniu wybiera się ilość testowych wrzutów monet dla danego nominału na podstawie którego urządzenie uczy się rozpoznawać monetę (próbkowanie), ilości impulsów jakie zostaną wysłane do kontrolera oraz dokładność próbkowania monet. Na poniższym filmiku można zobaczyć jak programuje się taki akceptor. [youtube=https://www.youtube.com/watch?v=G_ubo3hjXhI] Uchwyt na akceptor oraz skrzyneczkę na monety (skarbonka) zaprojektowałem a następnie uchwyt wydrukowałem zaś skrzyneczkę na monety wyciąłem na laserze.

[1/2]
[2/2]

[join][img=skrzyneczki][join][img=skrzyneczki2]

Oprócz akceptora musiałem wykonać również nowe rynny (stare były niekompletne i uszkodzone) po których pieniążki będą wpadać do akceptora i z niego wypadać do skarbonki albo na zewnątrz w razie nierozpoznania. Tutaj użyłem technologi druku 3D. Nie miałem prostego zadania bo sam otwór na monetę znajduje się z prawej strony panelu z przyciskami a otwór na nierozpoznane monety na prawym boku poniżej połowy wysokości i jest to dość spory odcinek dla monety.

[1/2]
[2/2]

Trochę zeszło mi czasu z projektem tego bo było pełno wydruków i poprawek. A obie szafy w środku nie maja identycznych otworów (wykonywane były ręcznie dlatego miały drobne przesunięcia). Rynnę wyjściowa została zaprojektowana przez kolegę Piotrka , który lepiej radzi sobie z zawijanymi modelami w Rhino a w tym przypadku była potrzeba aby moneta miała taki tor wyjścia w spirali. Ja natomiast zająłem się rynną wejściową.

[1/2]
[2/2]

[join][img=rynna2][join][img=rynna3]

Po zamontowaniu rynien musiałem je na nowo zaprogramować akceptor monet bo prędkość wpadania do niego była inna niż wcześniej przez co akceptor miał problemy z rozpoznaniem ponad 90% wrzutów monet. Dodatkowo zaprojektowałem i wydrukowałem maskownice otworów na monety.

[1/2]
[2/2]

Atrapa mechanizmu kręcenia płyty winylowej

W szafie co prawda muzyka jest odtwarzana z MP3 ale są w niej płyty winylowe dlatego nie mogło zabraknąć atrapy mechanizmu kręcenia płyty winylowej. Atrapę standardowo zaprojektowałem zaś elementy były zarówno drukowane jak i wycinane.

Płyta jest poruszana za pomocą 12V silnika DC. Obroty ustawione są za pomocą układu step-down z potencjometrem do ustalenia napięcia na wyjściu i załączane przekaźnikiem gdy odtwarzane są utwory.

[1/2]
[2/2]

Podświetlenie listy utworów

Jednym z najbardziej czasochłonnych etapów były moduły podświetlające panele na karteczki z tytułami utworów. Wg specyfikacji kartki miały być podświetlane a po wyborze utworu oznaczyć się innym kolorem aby można było wiedzieć, że utwór został poprawnie wybrany. Tutaj użyłem diod RGB na układzie ws2812b, które zasila się napięciem 5V i steruje za pomocą tylko jednego pinu GPIO.

[1/2]
[2/2]

[join][img=diody3][join][img=diody4]

Jak widać zaprojektowaliśmy i wycięliśmy z Piotrem skrzyneczki na diody, które zamontowane zostały z tyłu panelu. Poniżej możecie zobaczyć efekt testów już zlutowanych modułów. [youtube=https://www.youtube.com/watch?v=0cX44jr7Dms]

Ze względu na to, że poprawki były robione do ostatniej chwili przed pakowaniem szaf do transportu nie zdążyłem wykonać dodatkowych filmików i zdjęć szaf już skończonych, ale myślę, że lordjahu, który ma już szafy u siebie na miejscu w Trzebnicy coś dla was przygotuje jako wpis podsumowujący. Ja jeszcze zamieszczam poniżej zdjęcie gotowej szafy i filmik z testów działania.

[1/2]
[2/2]

Projekt zajął mi sporo czasu bo aż 6 miesięcy (z zakładanych na początku 2 miesięcy), ale udało się. Teraz zapewne wiele rzeczy wykonał bym trochę inaczej i na pewno lepiej ale tak to bywa gdy projekt jest rozwojowy i tak naprawdę jest dość zaawansowanym prototypem zawsze można było zrobić coś lepiej.

Szafy posiadają dwa oddzielne programy. Panel do zarządzania przyciskami napisany jest w PHP z wykorzystaniem Symfony, pozwala na wgrywanie plików i przypisywanie ich pod dany przycisk. Pozwala również generować gotowe karteczki z tytułami i numerami piosenek. Użyta została baza danych sqlite3.

Drugim programem jest aplikacja napisana w C++, która ma za zadanie wyłapywać naciśnięcia przycisków i za pomocą serwera mpd i klienta mpc odtwarzać muzykę przypisana pod danym przyciskiem. Dodatkowo aplikacja kontaktuje się z dwoma Arduino (jedno odpowiedzialne za przesyłanie ilości wrzuconych monet, drugie do sterowania diodami RGB) poprzez porty szeregowe. Myślę, że więcej o aplikacji po stronie Banana Pro mógł by napisać mikolaj_s, który pomagał mi i napisał aplikację. Ja zająłem się głowie programowaniem samych Arduino. Liczę na to, że lordjahu przygotuje dla was podsumowanie i jakiś ciekawy filmik z użytkowania szaf.

Jak zawsze na koniec wielkie podziękowanie dla Jarka za wycinkę CNC, Arturowi za obklejanie szyb, Piotrowi za pomoc z lutowaniem diod oraz innymi pracami, Mikołajowi za kawał dobrego oprogramowania do obsługi przycisków i obsługi mpc na Bananie i wszystkim tym, którzy mnie wspierali i pomagali przez te pół roku pracy nad szafami.
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.