Serwisy partnerskie:
Close icon
Serwisy partnerskie

Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (12)

Article Image
Jeśli mam jedną wadę (i do niczego się nie przyznaję, rozumiecie), to jest nią to, że łatwo się rozpraszam. W rezultacie wiele moich projektów hobbystycznych zajmuje lata, zanim dojdą do skutku, ponieważ na scenie pojawia się coś innego, co przyciąga moją uwagę. Na przykład, w przypadku mojego Pedagogiczno-Fantasmagorycznego Silnika Prognostycznego Inamorata, w chwili pisania tego tekstu zajmowałem się nim prawdopodobnie przez blisko 15 lat.

Zwlekanie z prognozowaniem

Niektórzy z moich przyjaciół są skłonni do czynienia niemiłych uwag, posuwając się nawet do rzucania oskarżeń i mówienia mi, że nie powinienem rozpoczynać żadnych nowych projektów, dopóki nie skończę niektórych spośród zaczętych. Czasami mój brak postępów sprawia, że czuję się smutny, ale – z powodów, które wkrótce wyjaśnię – teraz nie czuję się tak źle.

Podczas podróży do Anglii, aby odwiedzić moją matkę w 2018 roku, poszedłem zobaczyć wystawę prac Leonarda da Vinci, która była prezentowana w centrum Sheffield. Mogę tylko powiedzieć, że ten człowiek był geniuszem. Obecnie czytam jego biografię autorstwa Waltera Isaacsona, który – jak zawsze – wykonuje świetną robotę. Wcześniej czytałem biografie Waltera o Stevie Jobsie i Einsteinie. Jeśli chodzi o tego pierwszego, myślę, że był genialnym facetem, którego nie polubiłbym zbytnio. Jeśli chodzi o tego drugiego, to chociaż nie zagłębialiśmy się w matematykę, dopiero po przeczytaniu tej książki w pełni zrozumiałem, jak imponującym osiągnięciem była (i nadal jest) ogólna teoria względności Einsteina.

Chodzi o to, że czytając wspomnianą biografię Leonarda, odkryłem, że mamy ze sobą wiele wspólnego. To oczywiste (choć i tak to powiem), że obaj jesteśmy znani z ciętego dowcipu, eleganckiego ubioru i sportowego wyczucia stylu. Co więcej, dowiedziałem się, że Leonardo zostawił o wiele więcej niedokończonych rzeczy, niż faktycznie ukończył. Ciągle robił szkice z zamiarem przekształcenia ich w obrazy i nieustannie robił notatki w celu napisania traktatów, ale zanim zdążył coś zrobić, znów był zajęty czymś innym.

Z pewnością nie porównuję się z Leonardem da Vinci (takie porównania z przyjemnością zostawię mojej kochanej mamie, która bez wątpienia stwierdziłaby, że Leonardo jest na dalekim drugim miejscu), ale – mimo wszystko – miło jest wiedzieć, że nie jestem jedyną osobą, która łatwo się rozprasza.

Końcowe odliczanie

Słowa i melodia The Final Countdown kołatają mi się obecnie po głowie. Piosenka ta, wydana przez szwedzki zespół rockowy Europe w 1986 roku, osiągnęła pierwsze miejsce na listach przebojów w 25 krajach. Nie mogłem się powstrzymać i zrobiłem sobie przerwę, by posłuchać jej na YouTube.

Ta podróż w głąb pamięci została wywołana przez myśli o scenie pod koniec amerykańskiego filmu akcji science fiction Predator z 1987 roku, w którym wystąpił Arnold Schwarzenegger. Myślę o fragmencie, w którym Dutch (Arnold) wyłącza urządzenie maskujące obcego, a następnie miażdży krótkowzrocznego stwora pod przeciwwagą pułapki, czyniąc go tym samym bardzo nieszczęśliwym kosmitą. W odpowiedzi, śmiejąc się maniakalnie, bestia aktywuje urządzenie autodestrukcyjne, którego sekwencja odliczania jest przedstawiona jako seria obracających się symboli na wyświetlaczu zamontowanym na ramieniu kosmity.

Pomyślałem, że moglibyśmy zaimplementować coś podobnego na pierścieniach NeoPixel, którymi obwieszony jest mój Silnik Prognostyczny, jak omówiono w poprzednim odcinku tego cyklu. Ponieważ silnik ma duży czerwony przycisk („Nie naciskać!”), nasza sekwencja odliczania mogłaby być powiązana z aktywacją tego przycisku.

Oczywiście w naszym prototypie mamy tylko jeden pierścień do zabawy, ale będzie to punkt wyjścia. Myślę o zaimplementowaniu czegoś, co nazywam „pikselem powolnym” i „pikselem wyścigowym”. Pamiętaj, że pokazane tutaj numery pikseli są sposobem, w jaki zdecydowaliśmy, że chcemy nimi manipulować, z pikselem 0 w pozycji „południowo-zachodniej” i numerami pikseli rosnącymi w kierunku zgodnym z ruchem wskazówek zegara. Rzeczywiste numery pikseli na fizycznym pierścieniu są zupełnie inne, więc stosujemy prostą operację konwersji przy użyciu tablicy liczb całkowitych o nazwie RingXref[], aby przetłumaczyć sposób ustawienia pikseli z naszego idealnego sposobu widzenia świata na świat rzeczywisty (więcej szczegółów można znaleźć w artykule i kodzie z zeszłego miesiąca).

Pomysł polega na tym, że piksel wyścigowy porusza się w kierunku zgodnym z ruchem wskazówek zegara, aż dotrze do piksela powolnego, w którym to momencie „przeskakuje” piksel powolny do następnego miejsca zgodnego z ruchem wskazówek zegara. Następnie zatrzymujemy się na krótki czas, zanim piksel wyścigowy wyruszy ponownie.

Wcześniej (EdW, maj 2024) zauważyliśmy, że dobrym pomysłem jest uczynienie naszego kodu i funkcji tak prostymi i uniwersalnymi, jak to tylko możliwe. W związku z tym sposób, w jaki napisałem szkic (program) dla tego konkretnego efektu, polega na tym, że definiujemy cztery kolory – jeden dla pikseli tła (np. biały), jeden dla pikseli wyścigowych (np. żółty), jeden dla pikseli galopujących (np. czerwony) i jeden, którego używamy, gdy piksel wyścigowy wpada na piksel galopujący (np. pomarańczowy). Taki sposób działania pozwala nam szybko i łatwo eksperymentować z różnymi scenariuszami, co ilustruje nagrany właśnie film (https://bit.ly/3gXpueJ).

Jeśli chodzi o sam kod, tym razem zrobiliśmy to nieco inaczej (pełny szkic znajduje się w pliku CB-Feb21-01.txt – który jest dostępny na stronie https://elportal.pl/do-pobrania).

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
Tematyka materiału: RingXref[], GetGammaCorrectedColor(), COLOR_BUMP_PIXEL, ModifyBrightness(), BRIGHTNESS, PtrPloddingPixel, PtrRacingPixel, typedef, enum, struct, NextLastPair, PixelPtrs, NUM_NEOS, last, setup(), next, loop()
AUTOR
Źródło
Elektronika dla Wszystkich wrzesień 2024
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Czujniki temperatury
1/10 Temperatura to
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"