Scrolling Clock

Awatar użytkownika
Sariel
Posty: 917
Rejestracja: 01 paź 2013 10:46
Rok urodzenia: 1982
Lokalizacja: Warszawa
Kontakt:

Scrolling Clock

Post autor: Sariel »

Obrazek

Dane techniczne:
Wymiary: dł. 53s / szer. 47s / wys. 21s
Waga: 4.19 kg
Silniki: 5 x Spike Prime M, 1 x Spike Prime L

MOC odpowiadający na żywotne potrzeby społeczeństwa, bo któż by nie chciał zegara wielkości komody ważącego 4 kilo z hakiem ;) A tak serio jest to szybki projekcik który powstał jako wypadkowa zachwytu mechanizmem przewijania z zestawu LEGO NES oraz zachwytu pozycjonowaniem absolutnym silników w Mindstormsie. Przy okazji starałem się poprawić braki jakie miał mój poprzedni zegar, a więc starałem się o lepszy wygląd i dokładność oraz czytelność i brak nalepek.

Całość jest prosta jak konstrukcja cepa: mamy tu 6 niezależnych odcinków gąsienic z cyframi na nich, napędzanych sześcioma niezależnymi silnikami kontrolowanymi przez kostkę Mindstorms ostatniej generacji. Mechanicznej synchronizacji nie ma wcale, pięć silników to Spike Prime M (bo kształ pozwalał je ładnie wtulić w konstrukcję) i jeden L który zatrudniłem do gąsienicy z sekundami, a więc tej najciężej pracującej, a przy okazji napędza on dwa mimośrody które poruszają znakami : między cyframi. Cała synchronizacja leży po stronie kodu w Scratchu, który wygląda tak: https://bricksafe.com/files/sariel/scro ... k/code.png

Działanie polega na pętli w której aktualna godzina liczona jest jako suma sekund i sprawdzane jest modulo czyli reszta z dzielenia. Jeśli np. reszta z dzielenia przez 60 wynosi zero, to wiemy że mamy okrągłą minutę i przesuwamy minuty o jeden. Wszystko to jest bardzo proste a pętla potwarzana jest raz na sekundę, z wyjątkiem przypadku kiedy wybija północ i trzeba z 23:59:59 przejść na sześć zer. Tu odkryłem że nie da się ani w Scratchu ani w Pythonie jednocześnie kręcić kilkoma silnikami o różne wartości stopni, więc zegar resetuje sobie cyfry grupami a potem przewija sekundy o 8 żeby nadrobić czas który to zajęło. Prościzna.

Konstrukcyjnie mimo całej tej prostoty natrafiłem na zaskakująco sporą liczbę haczyków:
- napięcie gąsienic okazało się krytyczne, tzn. musiały one wisieć dosyć luźno bo przy mocniejszym napięciu się zrywały. Myślę że ma tu znaczenie spora masa elementów na nich wiszących (taka gąsienica na 10 cyfr waży 300 gramów) i gwałtowne ruchy start/stop. W dodatku napięcie każdej gąsienicy musi być nieco inne, bo jak wiecie mamy dwa bardzo podobne typu gąsienic 5L o minimalnie różnej szerokości które mam wymieszane i nie chciało mi się ich rozdzielać, zamiast tego każdą gąsienicę testowałem i regulowałem osobno.
- ponieważ cyfry zajmują po 6 ogniw gąsienicy, chciałem do napędu użyć najmniejszych sprocketów które mają właśnie 6 zębów, co dawałoby prosty układ gdzie 1 obrót = 1 cyfra. Okazało się jednak że o ile te sprockety sprawdzają się jako idlery to już do napędu się nie nadają bo mają tendencję do zacinania się o gąsienicę. Problem rozwiązało dopiero zastosowanie większego sprocketa z 10 zębami, ale oznaczało to też obracanie o 6/10 obrotu a więc 216 stopni na cyfrę.
- lokalizacja sprocketa z napędem. Testowałem kilka rozwiązań pod kątem niezawodności, okazało się generalnie że naj;epiej jest tego sprocketa dać z tyłu, bo z przodu po pierwsze ciężko zmieścić go razem z silnikiem tak żeby kolejne cyfry były blisko siebie (z tyłu problem odpada bo sąsiadujące gąsienice zawsze są różnej długości, a więc tył mają w różnych miejscach), a po drugie ten widoczny odcinek gąsienicy często się "fałduje" jeśli jest nad lub pod sprocketem napędowym.

W ramach testu niezawodności sprawdzałem jak długo zegar może chodzić bez przerwy. Tu kilkakrotnie najlepszy wynik wypadał w okolicach półtorej godziny, po którym to czasie zacinała się gąsienica od sekund. Na filmie widać kilka takich prób które w końcu zakończyło się rozładowanie kostki Mindstorms, bo okazało się że napędzanie tylu silników, w tym jednego prawie ciągle, zjada baterię szybciej niż ładowarka ją ładuje i po nieco ponad 5 godzinach prób kostka powiedziała dobranoc. Nie udało mi się dojść z czego wynikają zacięcia, poza tym że "goły" zegar bez obudowy był w stanie pracować 2 godziny ciurkiem, więc na pewno znaczenie ma waga obudowy i naprężenia w wewnętrznej strukturze jakie ona generuje (zegar jest zbudowany na wewnętrznym szkielecie i tylko obudowany brickami). Dodatkowo zegar mimo użycia Mindstormsa okazał się spóźniać o ok. 3 sekundy na godzinę. Nie wiem z czego to wynika, widać muszą się zdarzać sytuacje kiedy teoretycznie 1-sekundowa pętla trwa faktycznie nieco dłużej i to się sumuje.

Wygląd zegara jest prosty, bo taki miał być. Liczyłem że gładka obudowa bez detali pozwoli trochę ukryć jakie to jest wielkie. Marzyła mi się obudowa w ciemnoczerwonym, ale budżet by nie udźwignął kosztu klocków.

Galeria: https://bricksafe.com/pages/sariel/scrolling-clock

Kilka fotek:
Obrazek Obrazek Obrazek Obrazek

I film:
Awatar użytkownika
Jaskier
Zarząd Stowarzyszenia
Posty: 7074
Rejestracja: 31 lip 2013 13:18
Rok urodzenia: 1995
Kontakt:

Re: Scrolling Clock

Post autor: Jaskier »

To są czary.
pogodny
Posty: 1
Rejestracja: 14 lut 2023 15:56
Rok urodzenia: 1990

Re: Scrolling Clock

Post autor: pogodny »

Petarda, uwielbiam takie konstrukcje nawiązujące do rzeczy codziennego użytku. Winszuję.
ODPOWIEDZ