MEMS-owa poziomica z sensorem LIS35 na STM32
Dosyć skomplikowana wydawać się może poniższa funkcja, która ma za zadanie w miejsce wcześniej narysowanego bąbelka powietrza przerysować wycinek z tła poziomicy, aby wyczyścić ekran.
void TFTN_WriteBall(const unsigned short *buffer, const unsigned short *bufferball, int xPos, int yPos, int xSize, int ySize)
Można by przerysowywać całą bitmapę tła ale strasznie długo to trwa, dlatego odświeżana jest tylko używana część ekranu. Funkcja przyjmuje następujące parametry:
*buffer – wskaźnik do tablicy z tłem poziomicy
*bufferball – wskaźnik do tablicy z rysunkiem stalowej kulki
xPos oraz yPos – to pozycja wspomnianej kuleczki na tle
xSize oraz ySize – określa wymiar bitmapy kulki do wyświetlenia.
Sama funkcja wygląda następująco:
void TFTN_WriteBall(const unsigned short *buffer, const unsigned short *bufferball,
int xPos, int yPos, int xSize, int ySize)
{
//Draw bitmap
unsigned short Word0,Word1;
unsigned short x=0,y=0;
// Set column address range
TFTN_SendCmd(CASET);
TFTN_SendData(xPoss);
TFTN_SendData(xPoss+xSize-1);
// Set row address range
TFTN_SendCmd(PASET);
TFTN_SendData(yPoss);
TFTN_SendData(yPoss+ySize-1);
// Write memory
TFTN_SendCmd(RAMWR);
//Przerysowanie w miejscu starej kulki tla poziomicy
for(y=0;y> 4) & 0xFF);
//pixel 1 B, pixel 2 R
TFTN_SendData(((Word0 & 0x0F) << 4) | ((Word1 >> 8) & 0xF));
TFTN_SendData( Word1 & 0xFF);
}
}
TFTN_SendCmd(NOP);
// Set column address range
TFTN_SendCmd(CASET);
TFTN_SendData(xPos);
TFTN_SendData(xPos+xSize-1);
// Set row address range
TFTN_SendCmd(PASET);
TFTN_SendData(yPos);
TFTN_SendData(yPos+ySize-1);
// Write memory
TFTN_SendCmd(RAMWR);
//Rysowanie kulki
for(y=0;y> 4) & 0xFF);
//pixel 1 B, pixel 2 R
TFTN_SendData(((Word0 & 0x0F) << 4) | ((Word1 >> 8) & 0xF));
TFTN_SendData( Word1 & 0xFF);
}
}
//Zapamietaj stara pozycje kulki
xPoss=xPos;
yPoss=yPos;
TFTN_SendCmd(NOP);
}
W miejscu wyznaczonym przez akcelerometr rysowana zostaje bitmapa kulki z tym, że kolor czarny nie jest renderowany, a na jego miejsce jest przerysowywana piksel po pikselu bitmapa tła, aby kulka wyglądała profesjonalnie a nie jako kwadrat z rysunkiem kuli.
W momencie gdy uzyskamy poziom w osi x oraz y, kulka znajdzie się w środku najmniejszego okręgu narysowanego na tle, a buzzer wyda dźwięk informując nas dodatkowo o tym fakcie. Jako że bitmapa kulki jest na przemian usuwana oraz przerysowywana na nowo uzyskujemy efekt przeźroczystości, i zwykła bitmapa uzyskuje efekt bąbelka powietrza w wodzie.


Cztery dekady Vision Engineering Germany – precyzja, innowacje i ergonomiczna mikroskopia od 1986 roku
Taśma poliimidowa (Kapton®) w elektronice: zastosowania i właściwości
Nowe technologie akumulatorowe przyspieszą elektryfikację pojazdów terenowych 

![https://www.youtube.com/watch?v=gHcP8AajoN4 Szymon Robak oprowadza po katowickim Laboratorium Badań Kompatybilności Elektromagnetycznej w Sieć Badawcza Łukasiewicz - Instytucie Sztucznej Inteligencji i Cyberbezpieczeństwa. Zapraszamy na film! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/06/Szymon-Robak-tytulowe.png)
![https://www.youtube.com/watch?v=BgxJVTwYJ-s Zapraszamy do obejrzenia filmu i wysłuchania krótkich wypowiedzi prelegentów Hardware Forum 2026 i organizatorów majowej konferencji dla inżynierów z branży elektronicznej: Konrad Bruliński z Lemontech, prof. Krzysztof Kulpa z Politechniki Warszawskiej, Zbigniew Huber z FLC, Ewa Załupska z firmy KROK, Jerzy Kozieł z MPTECH, Grzegorz Potyralski z VIGO Photonics, dr Krzysztof Czuba z Politechniki Warszawskiej, Anna Beata Kalisz Hedegaard z Quantum Security Defence, Adrian Cichosz z Elhurt Dystrybucja Anna Kamińska z Creotech Quantum, oraz Łukasz Jaeszke i Adam Jaeszke z TEK.day [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/05/tytulowe-film-1.png)


