Serwisy partnerskie:
Close icon
Serwisy partnerskie

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

Article Image
Witaj! Jak miło znów Was widzieć. Prawdopodobnie nie będzie zaskoczeniem, jeśli usłyszycie, że sprawy w Maxfield Manor posuwają się naprzód w kontekście mojego zestawu piłeczek pingpongowych 12×12. Być może powinienem ostrzec, że w tej części cyklu będziemy przeskakiwać z tematu na temat ze zwinnością młodych kozic górskich, więc poświęć chwilę, aby upewnić się, że jesteś na to gotowy, zanim przejdziemy dalej.
1. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (1) 2. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (2) 3. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (3) 4. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (4) 5. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (5) 6. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (6) 7. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (7) 8. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (8) 9. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (9) 10. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (10) 11. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (11) 12. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (12) 13. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (13) 14. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (14) 15. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (15) 16. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (16) 17. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (17) 18. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (18) 19. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (19) 20. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (20)
Rozwiń cały spis treści Zwiń spis treści

Oślepiony przez światło

Zacznijmy od przypomnienia sobie, że każdy z naszych pikseli (piłeczek pingpongowych) zawiera trójkolorową diodę LED zwaną NeoPikselem. Co więcej, każdy NeoPiksel zawiera czerwone, zielone i niebieskie subpiksele, z których każdy może być sterowany 256 różnymi poziomami od 0 (0x00 w systemie szesnastkowym = 0% = całkowicie wyłączony) do 255 (0xFF w systemie szesnastkowym = 100% = całkowicie włączony).

Nie wiem jak wy, ale ja zawsze, gdy pracuję nad takim projektem, to w mojej głowie pojawiają się pytania i zdaję sobie sprawę, że jest wiele rzeczy, których nie wiem. Na przykład, załóżmy, że chcemy podświetlić jeden z naszych pikseli w 100% na czerwono. Załóżmy teraz, że sąsiedni piksel zostanie podświetlony na 100% zielono i 100% niebiesko, co da kolor cyjanowy. Czy oznacza to, że cyjanowy piksel jest dwa razy jaśniejszy od czerwonego? Czy to z kolei oznacza, że tak naprawdę powinniśmy podświetlić zielone i niebieskie subpiksele na 50% (128 w systemie dziesiętnym = 0x80 w systemie szesnastkowym), aby uzyskać taką samą jasność jak czerwony piksel?

Podobnie, jeśli weźmiemy inny piksel, który sąsiaduje z naszym oryginalnym czerwonym pikselem i zaświecimy wszystkie trzy subpiksele, aby wygenerować biel, czy oznacza to, że naprawdę powinniśmy ustawić czerwone, zielone i niebieskie subpiksele na 33% (85 w systemie dziesiętnym = 0x55 w systemie szesnastkowym), aby uzyskać taką samą jasność jak czerwony piksel?
Pomyślałem, że dobrym pomysłem będzie przetestowanie tego rozwiązania. Jak być może pamiętasz z poprzedniego odcinka, nasze NeoPiksele są połączone ze sobą jako pojedynczy ciąg o numerach od 1 do 144 (jest też „ofiarny” piksel 0, którego używamy jako konwertera poziomu napięcia, ale nie odgrywa on żadnej roli w widocznej części wyświetlacza).

Uważamy, że nasza tablica jest macierzą (X,Y) z pozycjami X (poziomymi) i Y (pionowymi) ponumerowanymi od 0 do 11 oraz z pikselem (0,0) w lewym dolnym rogu. Stworzyliśmy również prostą funkcję o nazwie GetNeoNum(), która przyjmuje wartości X i Y jako argumenty i określa numer odpowiedniego NeoPiksela w łańcuchu.

Jako pierwszy test dla wyjaśnienia zagadki jasności/kontrastu stworzyłem prosty szkic (program), który wypełnia zewnętrzne piksele 100% bielą, a wewnętrzny kwadrat 4×4 pikseli 100% czerwienią (rysunek 1a). Następnie zmniejszamy otaczającą biel do 33%. Następnie szkic wypełnia zewnętrzne piksele w 100% kolorem czerwonym, a wewnętrzny kwadrat w 100% kolorem białym (rysunek 1b). Ponownie zmniejszamy poziom bieli do 33%. Następnie wykonujemy całą sekwencję w kółko. Jeśli chcesz, możesz pobrać ten szkic i zapoznać się z nim w wolnym czasie (jest to plik CB-Aug20-01.txt – dostępny do pobrania, wraz z pozostałymi trzema plikami omówionymi w tej kolumnie, na stronie PE we wrześniu 2020 r.). Dla waszej przyjemności stworzyłem również krótki film pokazujący to wszystko w akcji (www.youtube.com).

Na marginesie, być może pamiętasz, że twórcy biblioteki NeoPixel firmy Adafruit udostępnili nam dwa sposoby określania koloru piksela. Załóżmy, że nasz ciąg nazywa się Neos i że chcemy ustawić kolor powiązany z pikselem 42, aby składowe koloru czerwonego, zielonego i niebieskiego wynosiły odpowiednio 128, 0 i 255 (byłyby to 0x80, 0x00 i 0xFF w systemie szesnastkowym). 

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
1. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (1) 2. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (2) 3. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (3) 4. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (4) 5. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (5) 6. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (6) 7. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (7) 8. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (8) 9. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (9) 10. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (10) 11. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (11) 12. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (12) 13. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (13) 14. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (14) 15. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (15) 16. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (16) 17. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (17) 18. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (18) 19. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (19) 20. Ekscytacje Maxa. Migające diody LED i śliniący się inżynierowie (20)
Rozwiń cały spis treści Zwiń spis treści
Firma:
Tematyka materiału: Krople Technicolor
AUTOR
Źródło
Elektronika dla Wszystkich kwiecień 2024
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Generatory wysokiego napięcia
1/10 Dlaczego nie powinno się pracować z generatorami wysokiego napięcia w pobliżu sprzętu pomiarowego?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"