Świat wirtualny to odzwierciedlenie rzeczywistości w sposób binarny - czyli moje dotychczasowe projekty ;)
Na niniejszej stronie zamieściłem projekty nad którymi dotychczas miałem okazję pracować (nie ma ich zbyt wiele ale będę starał się stopniowo - na tyle ile czas mi na to pozwoli - dodawać kolejne w pełni skończone lub w "dostatecznym" stopniu ukończone nadające się już do publikacji).
Część z nich pochodzi z czasów jeszcze studenckich, a część powstała w wolnych chwilach po zakończeniu nauki na uczelni. Poziom ich zaawansowania może nie jest imponujący jednakże są one moje, i to dzięki nim miałem okazję poznać nowe aspekty danej technologii jak i środowiska w których je tworzyłem. Przecież każdy rozpoczynał kiedyś od tych najprotszych rzeczy... Co prawda daleko mi do kogoś kto mógłby powiedzieć że coś tam potrafi w danej technologii, ale nie jestem całkiem zielony w tym co robię ;)
Każdy poniższy wpis dotyczący konkretnego projektu będzie zawierał: poglądowe zdjęcie, technologię wykonania, środowisko wykonania oraz krótki opis projektu.
Animacja (symulacja) mechanizmu
Niniejszy projekt został wykonany w środowisku Microsoft Visual Studio 2008 w języku C++ z wykorzystaniem biblioteki WinAPI.
Program ten rysuje animację (symulację) mechanizmu o zadanym kształcie i właściwościach (parametrach) oraz po zakończonej animacji rysuje kolorem czerwonym kształt będący drogą jaką w trakcie animacji przebyła mała kulka znajdująca się w mechanizmie. Znając wymienione wcześniej dane przyjęto położenie początku układu współrzędnych w lewej podporze mechanizmu oraz położenie poszczególnych osi współrzędnych wcześniej wymienionego układu współrzędnych względem mechanizmu. Na podstawie tego wszystkiego wyznaczono równania kinematyczne ruchu poszczególnych punktów mechanizmu, oraz ustalono wielkość pola wizualizacji i parametry czasowe animacji.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2012.
Jaki to trójkąt?
Niniejszy projekt został wykonany w środowisku Borland C++ Builder 6 Personal w języku C++ z wykorzystaniem biblioteki VCL (Visual Component Library).
Program ten pyta użytkownika o długości boków trójkąta a następnie sprawdza czy z podanych wartości można zbudować trójkąt - jeśli można to jaki byłby to trójkąt.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2013.
Wykres funkcji sinus
Niniejszy projekt został wykonany w środowisku Borland C++ Builder 6 Personal w języku C++ z wykorzystaniem biblioteki VCL (Visual Component Library).
Program ten rysuję wykres funkcji sinus o zadanej amplitudzie oraz częstości. Możliwa jest także animacja zmian amplitudy i częstości oraz usunięcie narysowanego wykresu
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2013.
Figury Lissajous
Niniejszy projekt został wykonany w środowisku Borland C++ Builder 6 Personal w języku C++ z wykorzystaniem biblioteki VCL (Visual Component Library).
Program ten rysuję figury lissajous o zadanych parametrach. Możliwa jest także animacja zmian wyglądu figury względem zmieniającyh się w czasie różnic fazy. Oraz zmiana koloru rysowanej figury i obszaru na którym jet ona rysowana. Narysowaną figurę można także usunąć.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2013.
Note
Niniejszy projekt został wykonany w środowisku Borland C++ Builder 6 Personal w języku C++ z wykorzystaniem biblioteki VCL (Visual Component Library).
Program ten stanowi autorską wersję popularnego w wielu systenach operacyjnych darmowego dołaczanego prostego edytora tekstu (w systemie z rodziny MS Windows jest nim Notatnik). W przypadku mojego Note'a można wybrać z listy podczas zapisu nie tylko format domyślny format rozszerzenia ".txt" ale także kilka innych, m. in. .html, .css, .vbs itd.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2016.
Obliczanie właściwości figur 2D i 3D
Niniejszy projekt został wykonany w środowisku Code::Blocks 20.03 w języku C++. Jest to aplikacja konsolowa.
Program ten oblicza pole powierzchni i obwód wybranej figury 2D lub pole powierzchni i objętość wybranej figury 3D na podstawie otrzymanych od użytkownika danych.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2021.
Wskaźniki
Niniejszy projekt został wykonany w środowisku Code::Blocks 20.03 w języku C++. Jest to aplikacja konsolowa.
Program ten prosi użytkownika o podanie wartości całkowito-liczbowej i zapisuje ją w zmiennej, następnie wyswietla adres tej zmiennej poprzez operator adresu (&) i wskaźnik do tej zmiennej. Następnie wyświetla aktualną wartość tej zmiennej poprzez odwołanie się do niej bezpośrednio poprzez jej nazwę oraz wskaźnik do niej. Po tym wszystkim program prosi użytkownika ponownie o podanie nowej wartości do tej zmiennej - lecz zmiana wartości ulega poprzez wskaźnik do zmiennej. Na samym końcu program wyświetla nową wartość zmiennej poprzez odwołanie się do niej po jej nazwie.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2022.
Limity typów danych wbudowanych
Niniejszy projekt został wykonany w środowisku Microsoft Visual Studio Community 2019 w języku C++. Jest to aplikacja konsolowa.
Program ten pobiera wielkości zajmowanej pamięci komputera w bajtach (funkcja sizeof(typ_danych)) przez podstawowe typy danych wbudowanych (wraz z modyfikatorami tych typów) w język C++ oraz podaje zakres wartości jakie mogą one przyjmować (funkcja numeric_limits<typ_danych>. W przypadku typów char, unsigned char, int8_t oraz uint8_t wartości uzyskane za pomocą tej funkcji zostały poddane rzutowaniu na typ całkowitoliczbowy int za pomocą funkcji static_cast<int>(typ_danych)). Przy czym wartości zajmowanej pamięci oraz zakresy jakie mogą przyjmować te typy wbudowane zależą od posiadanej konfiguracji sprzętu, architektury procesora i systemu operacyjnego oraz samego kompilatora.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2022.
Sklep
Niniejszy projekt został wykonany w środowisku Microsoft Visual Studio Community 2019 w języku C++ z wykorzystaniem biblioteki MFC (Microsoft Foundation Class Library). Jest to aplikacja okienkowa łącząca się z bazą danych MySQL na zewnętrznym serwerze.
Program ten stanowi moją próbę stworzenia (wciąż nad nim jeszcze pracuję gdy tylko czas na to pozwala) apki do obsługi zamówień np. dla sklepu internetowego. Na chwilę obecną można dodawać, edytować, usuwać, wyświetlać (po ID) klientów, produkty oraz zamówienia.
Do działania programu niezbędne jest połączenie z siecią (Internetem) w celu połączenia się z zewnętrznym serwerem baz danych.
Zachęcam wszystkich do zabawy aplikacją i przesyłania opinii oraz sugestii dotyczących zarówno działania, wyglądu oraz nowych funkcjonalności.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2022. Prace nad projektem nadal trwają.
Generator haseł
Niniejszy projekt został wykonany w środowisku Code::Blocks 20.03 w języku C++. Jest to aplikacja konsolowa.
Program ten prosi użytkownika o podanie długości hasła które ma być wygenerowane w sposób losowy (pseudolosowy) spośród puli znaków zawierających małe i duże litery alfabetu łacińskiego, cyfry od 0 do 9 oraz znak wykrzyknika.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2023.
Fraktal Mandelbrota
Niniejszy projekt został wykonany w środowisku Borland C++ Builder 6 Personal w języku C++ z wykorzystaniem biblioteki VCL (Visual Component Library).
Program ten rysuje fraktal Mandelbrota. Z menu Parametry można wybrać do narysowania dwa przygotowane przeze mnie fragmenty (wycinki) fraktala Mandelbrota lub sam fraktal Mandelbrota. Program na narysowanie fraktalu lub jego fragmentu potrzebuje od kilku sekund do (prawdopodobnie) kilku minut w zależności od wydajności sprzętu użytkownika.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2023.
Sprawdzenie info o numerze telefonu
Niniejszy projekt został wykonany w środowisku Microsoft Visual Studio Code 1.81.1 w języku Python 3.7.8. Jest to aplikacja konsolowa.
Program ten prosi użytkownika o podanie nr telefonu wraz z nr kierunkowym, np. '+48' dla Polski. Program zwraca informację w jakiej sieci znajduję się telefon, z jakiego kraju pochodzi numer oraz z jakiego regionu i strefy czasowej.
Gotowy program, który można uruchomić na komputerze pod kontrolą systemu z rodziny MS Windows jest dostępny do pobrania tutaj. Wersja programu z roku 2023.
Weather Station (Stacja Pogodowa) na Raspberry Pi Pico WH
Niniejszy projekt powstał w oparciu o platformę mikrokontolerową Raspberry Pi Pico WH (na zdjęciu zielony element) i czujnika temperatury, wilgotności i ciśnienia BME280 (na zdjęciu fioletowy element). Cały układ zasilany jest z koszyczka baterii 3xAAA. Kod dla mikrokontrolera został napisany w języku MicroPython w środowisku Thonny 4.1.4. Skrypty PHP łączące program na mikrokontrolerze z bazą danych MySQL na zewnętrznym serwerze i dokonujące w niej wpisów dotyczących daty, godziny, temperatury, wilgotności oraz ciśnienia zmierzonych przy pomocy czujnika BME280 oraz generujące stronę WWW wyświetlającą dane z bazy danych na zewnętrznym serwerze zostały stworzone w środowisku Brackets 1.14.
Zadaniem układu jest dokonywanie pomiaru co 10 minut: temperatury, wilgotności oraz ciśnienia czujnikiem BME280. Następnie przesyłanie do bazy danych MySQL na zewnętrznym serwerze wyników pomiarów z wykorzystaniem protokołu HTTP i metody GET poprzez stworzone skrypty PHP znajdujące się na zewnętrznym serwerze, które łączą się z bazą danych MySQL i dokonują w niej wpisów. Całość sterowana jest za pomocą programu napisanego w MicroPythonie i wgranego na platformę Raspberry Pi Pico WH zasilanej bateryjnie. Połączenie z siecią Internet dokonywane jest za pomocą protokołu WiFi.
Kolejnym etapem było stworzenie skryptu PHP znajdującego się na zewnętrznym serwerze generującego stronę WWW która wyświetla wyniki pomiarów z bazy danych na zewnętrznym serwerze. Skrypt ten dzieli wszystkie dane z bazy danych na mniejsze porcję wykorzystując stronicowanie (paginację).
Wersja projektu z roku 2024. Strona z wynikami pomiarów dostępna jest pod adresem Weather Station. Prace nad projektem nadal trwają.