Spisu treści:

Przenośny stół warsztatowy Arduino, część 3: 11 kroków
Przenośny stół warsztatowy Arduino, część 3: 11 kroków

Wideo: Przenośny stół warsztatowy Arduino, część 3: 11 kroków

Wideo: Przenośny stół warsztatowy Arduino, część 3: 11 kroków
Wideo: Ups. 2024, Listopad
Anonim
Przenośny stół warsztatowy Arduino, część 3
Przenośny stół warsztatowy Arduino, część 3
Przenośny stół warsztatowy Arduino, część 3
Przenośny stół warsztatowy Arduino, część 3

Jeśli oglądałeś części 1, 2 i 2B, to do tej pory w tym projekcie nie było zbyt wiele Arduino, ale tylko kilka przewodów płytek itp. Nie o to chodzi, a część infrastruktury musi zostać zbudowana przed reszta działa.

To jest kod elektroniki i Arduino. Poprzednia instrukcja 2B zawiera szczegóły dotyczące zasilania.

W tej sekcji przedstawiono przenośny stół warsztatowy z następującymi funkcjami

Ekran dotykowy TFT z wyświetlaczem, napędzany przez Arduino Mega, zapewniający następujące funkcje

  1. 8 cyfrowych wyświetlaczy, wyłączony/włączony/oscylujący
  2. 4 wyświetlacze napięcia
  3. 3 wyświetlacze prądu/napięcia
  4. Miernik rezystancji E24 (ponieważ nie mogę już odczytać kolorowych pasków)

Dodam jeszcze inne rzeczy, ale to był mój początkowy cel. Kod Arduino zawiera również szeregowy wyświetlacz, wyświetlacz I2C, miernik pojemności, przełączniki cyfrowe i oscyloskop, które dodam z biegiem czasu. Również nie do końca zdecydowałem, czy warto dodać zasilacz 3V3, zasilacz o zmiennej mocy, czy też monitorowanie napięcia/prądu zasilacza. Do tej pory zostało to zbudowane przy użyciu Mega, ale zamierzam również przenieść niektóre funkcje do oddzielnych obwodów z dostępem I2C, albo dedykowanych chipów, albo zaprogramowanych Atmel 328, które łatwiej pomieszczą inny kontroler.

Kieszonkowe dzieci

5 x 16-stykowe gniazda nagłówkowe

5 x 8-stykowe gniazda dupontowe, w rzeczywistości wykonane z długich 40-stykowych pojedynczych gniazd liniowych przyciętych do wymaganej długości

1x3,5 ekran dotykowy TFT ILI9486

1 x Arduino Mega 2650

Poszczególne komponenty

Zgodnie z tekstem, wartości niektórych z nich nie są całkowicie stałe i jeśli przegapisz jakąś funkcję, nie będzie ona w ogóle potrzebna:)

Wejście cyfrowe

Rezystory 16x10K

Wejście analogowe

1 x TL074 quad jfet opamp, to jest to, co miałem jako zapas, cokolwiek podobnego zrobi:)

Rezystory 4 x 68K i 4 x 430k stosowane jako dzielniki napięcia.

4 x 1N4001 lub podobne

Miernik rezystancji

1 x TL072 podwójny opamp jfet, to jest to, co miałem jako zapas, cokolwiek podobnego zrobi:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (W przypadku zmiany tych wartości należy zaktualizować kod Arduino)

Krok 1: Przegląd elektroniki

Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki
Przegląd elektroniki

Szara konsola została wykonana przeze mnie 30 lat temu i nadal jest w regularnym użytkowaniu, ale czasy się zmieniły. Zapewnia dwa zasilacze po lewej stronie, centralny wzmacniacz audio pośrodku, z wewnętrznym głośnikiem i oscylator po lewej stronie. W dzisiejszych czasach większość moich obwodów potrzebuje tylko zasilania, a z tego tylko szyny dodatniej. Potrzebne było coś innego, jak również etykietowanie, bez którego żyłam, no cóż, udało mi się.

Głównymi wymaganiami dla elektroniki projektowej było zasilanie nowszych obwodów za pomocą Arduino lub Raspberry PI, więc 5 V było niezbędne, podobnie jak gniazda USB. Podświetlane przełączniki informują mnie, czy zasilanie jest włączone, czy nie, a podczas testów regularnie muszę budować małe obwody pomocnicze, aby tymczasowo wyświetlać stan. Mam pudło z nieporęcznymi miernikami, które zajmują dużo miejsca na ławce, a przede wszystkim potrzebuję wyświetlacza, który mogę łatwo odczytać, gdy mój wzrok się pogarsza, coś z dużymi, jasnymi literami. Potrzebuję więc wyświetlaczy cyfrowych, mierników napięcia, prądu, a w tym przypadku odrobiny luksusu w postaci miernika rezystancji do szybkiej identyfikacji rezystorów serii E24, wszystko w zasięgu 15cm od płytki stykowej projektu i w kompaktowej, przenośnej walizce.

Główny zasilacz, opisany w poprzednim artykule, dostarcza zasilanie do pokrywy za pomocą 40-żyłowego kabla taśmowego, umożliwiającego połączenie obu, gdy pokrywa jest zamknięta. Zapewnia to przełączane zasilanie 5 V i 12 V dla elektroniki panelu i zasilania płytki stykowej.

Wszystkie wejścia zasilania i sygnału są dostarczane przez 2x8-pinowe gniazda nagłówkowe PCB równolegle z 8-pinowym gniazdem dupont. To prawdopodobnie przesada, większość płyt stykowych ma szyny zasilające, ale było to łatwe do zrobienia.

Na gniazdach zasilających główna szyna 0V zasilacza jest wspólna dla wszystkich zasilaczy i jest udostępniona. Powyżej jest zasilacz 5V, włączony na jednostce bazowej, a powyżej dwa zasilacze +12V i -12V, które są obecnie naprawione, chociaż mam pomysł, aby zhakować zasilanie, aby było zmienne i zapewnić 3,3-20V zmienna podaż.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Zamieściłem zrzuty ekranu układu płytki prototypowej, jak wygląda układ po zbudowaniu na płytce matrycy, schemat jako PDF i oryginalne pliki Fritzing. Nie jest to szczególnie skomplikowana elektronika i służy do montażu rezystorów ograniczających, wzmacniaczy buforowych i połączeń rozgałęźnych dla płytki Arduino. Istnieje jednak kilka obrazów, które nieco wyraźniej pokazują wiele połączeń. Większość okablowania została wykonana ze standardowych odcinków wstępnie zaciśniętego kabla taśmowego dupont zmontowanego w obudowach wielodrożnych, aby ułatwić ich ponowne podłączenie i zwiększyć niezawodność.

Arduino Mega 2650 jest montowany w pokrywie z gniazdem USB dostępnym do programowania. Steruje ekranem dotykowym TFT używanym do wyświetlania wszystkich wyjść i wejść.

8 wejść cyfrowych jest udostępnianych przez 2 x 8-stykowe złącze PCB, a ich stan jest wyświetlany na ekranie, jeśli ta funkcja jest wybrana. Jest to prosty wyświetlacz włączania/wyłączania, czerwony wyłączony, zielony włączony. Mogę dodać oscylowanie jako przyszłą zmianę.

Dostępne są również 4 wejścia napięciowe poprzez nagłówek PCB oraz dzielnik napięcia, napięcie wyświetlane na ekranie. Każde napięcie wejściowe na panelu przednim, w odniesieniu do wspólnej masy, jest przekazywane do dzielenia przez 7 dzielnik napięcia, a następnie buforowane przez jeden z czterech wzmacniaczy operacyjnych w TL074 skonfigurowanym jako wzmacniacz prostowniczy, aby uniknąć wypadków z ujemnymi napięciami. Byłoby miło dodać wskazanie polaryzacji na pewnym etapie, ale nie tym razem. Wyjście z każdego wzmacniacza operacyjnego jest do jednego z wejść ADC Arduino.

Kolejny nagłówek PCB udostępnia zarówno połączenia szeregowe, jak i I2C. Zrobiono to, aby umożliwić wdrożenie konsoli wyświetlacza szeregowego i podstawowej funkcji identyfikacji I2C.

Wejścia napięciowe/cyfrowe mogą okazać się nie wszystkie potrzebne, więc można je przekonfigurować, aby zapewnić cyfrowe wyjścia przełączające.

Arduino zasila tablicę rezystancji na dzielniku napięcia, aby zapewnić funkcjonalność miernika rezystancji. Wyjście tego jest buforowane przez wzmacniacz operacyjny (pół TL072) przed odczytaniem przez Arduino i obliczeniem rezystancji. Celem tego nie jest dokładny pomiar rezystancji, ale szybka identyfikacja wartości serii E24, chociaż przy pewnej kalibracji może być używany jako podstawowy miernik. Jego działanie polega na wykrywaniu rezystancji mniejszej niż 9M9 na dwóch sprężynach zamontowanych na panelu przednim, a następnie selektywnym przełączaniu 5V na każdy rezystor w tablicy dzielników, aż zmierzona zostanie wartość najbliższa 2,5V lub ostatni wybrany rezystor. Następnie wykonuje się obliczenia i porównanie w celu określenia najbliższej wartości E24. Napięcie 5 V pochodzi z wyjść cyfrowych 3-10 na Arduino, które są rekonfigurowane jako wejścia o wysokiej impedancji między każdym pomiarem, aby zminimalizować błędy. Piny Arduino D3-10 zostały celowo użyte, ponieważ przyszłym dodatkiem może być miernik pojemności wykorzystujący zdolność PWM tych wyjść, co potencjalnie może być jedynie zmianą oprogramowania.

Zmodyfikowana płytka INA3221 zapewnia dodatkowe pomiary napięcia i prądu poprzez interfejs I2C z wejściami z panelu przedniego. Wszystko jest okablowane za pomocą kabli połączeniowych, dzięki czemu zmiana funkcji w przyszłości będzie łatwa.

Krok 3: INA3221 Wejście napięciowe/prądowe

INA3221 Wejście napięciowe/prądowe
INA3221 Wejście napięciowe/prądowe

Miało to być szybkim rozwiązaniem, aby zapewnić pomiary napięcia/prądu w pudełku, ale okazało się, że zaimplementowany na kupionej przeze mnie płycie służy do monitorowania ładowania akumulatora, więc musiał zostać zmodyfikowany, aby zapewnić trzy niezależne pomiary. Jeśli podczas budowania tego projektu możesz pozyskać płytę INA3221, która implementuje ten układ zgodnie z arkuszem danych, nie jest to konieczne.

Patrząc na zdjęcie, w ścieżkach PCB należy wykonać trzy nacięcia, aby oddzielić rezystory pomiarowe. Pady dla tych trzech rezystorów również muszą zostać przycięte, aby oddzielić je od reszty PCB. Rezystory są następnie łączone z padami poprzez lutowanie dodatkowych przewodów jako mostków. Dokumentuję to, ponieważ jest to powszechna tablica i może być jedyną dostępną.

Połączenia z płytką z panelu przedniego są następnie wykonywane przez zworki przez rezystory pomiarowe.

Zasilanie płytki jest pobierane z pinów Arduino 5V, podobnie jak uziemienie, a połączenia I2C trafiają do płytki elektroniki.

Krok 4: Ekran wyświetlacza

Ekran wyświetlacza
Ekran wyświetlacza

To był zakup w serwisie eBay i dostępny z wielu źródeł. Jest to wyświetlacz zasilany przez ILI9486. Odkryłem, że działa najlepiej z bibliotekami MCUFRIEND Davida Prentice, ale musi zostać skalibrowany przed użyciem, co wymagało tylko uruchomienia jednego z przykładów bibliotek dostarczonych przez Davida z podłączonym ekranem, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie i zapisz wyświetlane parametry, wstawiając je do pliku kodu Arduino_Workstation_v01, jeśli jest inny.

W przypadku tego projektu niezbędny jest ekran dotykowy, który obraca się bez dedykowanych przełączników i łatwości dodawania menu i funkcji w przyszłości bez konieczności wielokrotnego okablowania.

Krok 5: Łączenie ze sobą

Łącząc to razem
Łącząc to razem
Łącząc to razem
Łącząc to razem
Łącząc to razem
Łącząc to razem

Arduino Mega znajduje się po lewej stronie pokrywy, a porty USB i zasilania są dostępne z zewnątrz obudowy. Na RHS obok Arduino znajduje się elektronika zamontowana na płytce matrycy, a nad nią zamontowana jest płytka INA3221 z tyłu pokrywy.

Również z tyłu pokrywy w LHS nad Arduino znajduje się wspólna płytka uziemiająca, do której podłączone są wszystkie masy.

Jak najwięcej odprowadzeń zostało połączonych razem w złącza wielodrożne. To sprawia, że łączenie obwodów jest znacznie łatwiejsze i niezawodne, a wzajemne wsparcie złączy w obudowie wielodrożnej zapewnia lepszą odporność na poluzowanie. Poniżej znajduje się lista tych konsolidacji.

Wszystkie złącza zostały dodane w logiczny sposób dając największy dostęp do nawiązywania połączeń moimi niezgrabnymi palcami, pozostawiając połączenia panelu przedniego do końca, z końcowymi połączeniami wyświetlacza przepuszczanymi przez otwór montażowy do dokończenia na końcu. Ekran został unieruchomiony ramką wydrukowaną w 3D.

Krok 6: Skonsolidowane leady

Skonsolidowane leady
Skonsolidowane leady
  1. Wejścia napięciowe i rezystancyjne do portów Arduino ADC, pięć wyprowadzeń 20 cm z indywidualnymi złączami męskimi na jednym końcu połączonych w sześciodrożną obudowę ze szczeliną, aby pomieścić szczelinę w złączach Arduino.
  2. 4-żyłowy kabel 10 cm z obudowy 4-drożnej do dwóch obudów 2-drożnych, aby podłączyć styki napięcia na panelu przednim do płytki drukowanej.
  3. 8-kierunkowy kabel 10 cm z męskiego złącza 2x4 do 8-stykowego złącza żeńskiego
  4. 4-stykowy kabel 10 cm z 4-stykowej obudowy żeńskiej do 4-stykowej obudowy żeńskiej do podłączenia portu szeregowego i I2C do panelu przedniego
  5. 4-żyłowy kabel 10 cm z 4-żyłowej obudowy do czterech pojedynczych złączy do podłączenia INA3221 do panelu przedniego
  6. 4-kierunkowy kabel 20 cm do podłączenia czterokierunkowej żeńskiej obudowy do czterokierunkowej męskiej obudowy w celu połączenia szeregowego i I2C z Arduino do wentylatora na płytce drukowanej.
  7. 8-żyłowy kabel 10cm z 8-stykowej obudowy żeńskiej do 8-stykowej obudowy żeńskiej do podłączenia wejść cyfrowych z panelu przedniego do płytki drukowanej.
  8. 8-stykowy kabel 10 cm do podłączenia 8-stykowej żeńskiej obudowy do jednej 3-stykowej męskiej obudowy i jednej 5-stykowej męskiej obudowy do podłączenia dzielnika rezystancyjnego do płytki drukowanej. Dwie obudowy służą do zmieszczenia niestandardowej szczeliny w nagłówkach na płytce Arduino.
  9. Dwukierunkowy kabel 20 cm do podłączenia 2-drożnej obudowy żeńskiej do dwóch pojedynczych złączy męskich dla zasilacza INA3221.
  10. Dwukierunkowy kabel 10 cm do podłączenia 2-drożnej obudowy żeńskiej do dwóch pojedynczych obudów żeńskich w celu podłączenia trzeciego złącza monitora INA3221 do panelu przedniego.
  11. 2-drożny kabel 10 cm do podłączenia 2-drożnej żeńskiej obudowy do 2-drożnej żeńskiej obudowy w celu podłączenia INA3221 do połączeń fanout I2C.

Krok 7: Kod Arduino

Kod Arduino
Kod Arduino
Kod Arduino
Kod Arduino

Ten projekt jest oparty na Arduino Mega 2650 z prostego powodu, dla którego chciałem mieć dużo portów I/O dedykowanych do zadań w prostym formacie. Biblioteki dla ekranu dotykowego TFT domyślnie obsługują Arduino Uno i muszą być edytowane, aby obsługiwały Mega. Edycja bibliotek jest wspierana przez autora oryginalnego kodu TFT, jest prosta i opisana w kolejnym kroku.

Korzystanie z ekranu dotykowego jest podstawą tej części projektu, ale ponieważ wyświetlacz, którego ktoś używa, może być inny niż ten, którego używałem, kod umieszcza tylko specyficzne funkcje sprzętowe w oddzielnych procedurach, dzięki czemu można zidentyfikować wszystkie niezbędne modyfikacje.

Działająca wersja kodu znajduje się tutaj i zostanie zaktualizowana, ale najnowsze aktualizacje będą dostępne na github.

Główna funkcja kodu kręci się wokół wyświetlacza, każdy element na wyświetlaczu ma wpis w pojedynczej tablicy, która przechowuje typ elementu, na którym wyświetla się na ekranie, kolor i dodatkowe parametry, takie jak źródło wejściowe. Zrzut ekranu tej tablicy z komentarzami znajduje się powyżej. Posiada również pole do kontrolowania, czy ma być wyświetlane na ekranie, czy nie. Edytując tę tablicę, można dodawać lub usuwać nowe funkcje. Procedura „pętli” kodu przebiega przez tę tablicę w sposób ciągły, przetwarzając każdy kwalifikujący się element sekwencyjnie, a następnie powtarzając. Obecnie istnieje 6 różnych elementów.

Elementy menu - nie wyświetlają informacji, ale po dotknięciu wykonują powiązany podprogram, określony w parametrach elementu

Elementy cyfrowe – wyświetlane jako pole na ekranie w kolorze czerwonym lub zielonym w zależności od stanu skojarzonego pinu wejścia cyfrowego. Przykładowa konsola jest okablowana dla 8 pinów cyfrowych, ale można ją zwiększyć lub zmniejszyć zgodnie z potrzebami.

Elementy analogowe - wyświetlają przybliżone napięcie mierzone na odpowiednim styku analogowym. Cztery są pierwotnie określone.

Elementy precyzyjne - wyświetlanie sygnału wejściowego z zewnętrznego modułu precyzyjnego woltomierza/prądomierza. Są tylko trzy z nich, ale można dodać drugi lub trzeci moduł.

Element rezystancyjny - jest to pojedynczy element wyświetlający wejście z miernika rezystancji.

Dotyk - jest to jedyna procedura, która jest zawsze wykonywana w celu wykrycia, czy ekran został dotknięty, a następnie podjęcia decyzji na podstawie tego, co zostało dotknięte. np. jeśli pozycja menu, co to oznacza, że jest wyświetlana jako następna.

Ekran posiada trzy tryby statusu, normalny, duży i pełny, a wszystkie elementy zmieniają swoje działanie w zależności od statusu. Trzy tryby można wybrać z menu, dotykając elementu i powiązanej opcji menu.

Tryb normalny - wyświetla 8 wejść cyfrowych, cztery analogowe wejścia napięciowe, trzy elementy precyzyjne, element rezystancyjny i cztery elementy menu. Wybranie z menu Normalny przełącza wyświetlacz w ten tryb.

Tryb Duży - wybiera się dotykając dowolnego elementu na ekranie, a następnie Duży. Po wybraniu ten typ elementu jest jedynym wybranym typem, a elementy tego typu są zmieniane tak, aby wypełniały cały ekran.

Tryb pełnoekranowy - wybiera się dotykając dowolnego elementu na ekranie, a następnie Pełny ekran. Po wybraniu ten element jest jedynym wyświetlanym elementem i jest zmieniany tak, aby wypełniał cały ekran, zapewniając maksymalną widoczność tego jednego elementu.

Aby dodać dodatkową funkcjonalność, należy dodać następujące procedury:

Procedura rysowania, która jest wywoływana, aby uzyskać informacje o tym elemencie, wywołać odpowiednią procedurę aktualizacji ekranu i zarejestrować zwrócone informacje dotykowe

Procedura „logiczna”, która przyjmuje informacje z procedury rysowania i wykorzystuje odpowiednie procedury sterownika ekranu do umieszczania informacji na ekranie i zwracania prawidłowych informacji dotykowych dla obszaru rysowanego ekranu

Procedura „konfiguracji”, która jest wywoływana jako część konfiguracji Arduino

Inne procedury mogą być włączone, ale nie powinno być żadnej współzależności między kodem elementu, jeśli element nie został włączony, jego kod nie powinien zostać wykonany, a prosta wielofunkcyjna struktura zachowuje jego integralność.

Krok 8: Edycja bibliotek Arduino

Edycja bibliotek Arduino
Edycja bibliotek Arduino
Edycja bibliotek Arduino
Edycja bibliotek Arduino

Użyty przeze mnie wyświetlacz działa bardzo dobrze z Arduino Uno i napisanymi dla niego bazowymi bibliotekami, ale działa wolno po bezpośrednim przeniesieniu do Arduino Mega. Aby prawidłowo sterować wyświetlaczem, należy użyć innego zestawu pinów danych i tę zmianę użycia należy ustawić w bibliotekach. Jest to prosta zmiana, zamierzona przez autora. Zdjęcia podkreślają wprowadzone zmiany.

Oba pliki są przechowywane w folderze MCUFRIEND_kbv\utility jako mcufriend_shield.h i mcufriend_special.h. Wymagane zmiany są najpierw w pliku nagłówkowym „shield”, aby zapewnić odczytanie pierwszej linii

#define USE_SPECIAL

aby upewnić się, że załadowany jest „specjalny” plik nagłówkowy.

Należy również zaktualizować „specjalny” plik nagłówkowy, aby zapewnić, że wiersz

#zdefiniuj USE_MEGA_8BIT_PROTOSHIELD

jest odkomentowany.

Te dwie zmiany oznaczają, że kod wyświetlacza dla tego wyświetlacza będzie działał przy użyciu pinów 20-29 w Arduino Mega zamiast domyślnych 3-10 w Uno.

Krok 9: Zrzuty ekranu

Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu

Umieściłem tutaj zrzuty ekranu, aby łatwo było zobaczyć, co konsola powinna robić. Następna sekcja dotyczy ładowania kodu do Arduino.

Pierwszy ekran pokazuje „normalny” ekran z menu u góry, pomiary napięcia na LHS, pomiary napięcia i prądu na RHS i status pinów cyfrowych na dole, czerwony dla „fałsz/niski”, zielony dla „prawda/wysoki” „. Wreszcie w centrum znajduje się pomiar rezystancji.

Drugi ekran pokazuje wejścia cyfrowe włączone w trybie Large, każde wejście jest wyraźnie widoczne.

Trzeci ekran pokazuje wejścia napięciowe w trybie Large.

Krok 10: Ładowanie kodu Arduino

Kod jest załączony, ale jak wspomniano wcześniej, w pewnym momencie zostanie umieszczony na githubie, a lokalizacja zostanie dodana tutaj. Główny plik kodu źródłowego to Arduino_Workbench_v01.ino, a inne procedury mają zapewnić różne funkcje.

Jeśli biblioteki zostały poprawnie zmodyfikowane, a Arduino Mega2650 został ustawiony jako platforma docelowa w Arduino IDE, kod powinien zostać skompilowany za pierwszym razem.

Biblioteki, które będą musiały zostać załadowane, to biblioteki Adafruit GFX i Touchscreen, które powinny być dostępne z menedżera bibliotek Arduino, kopia MCUFRIEND_kbv do pobrania z github, a dla INA3221 biblioteka SwitchDocLabs SDL_Arduino_INA3221 również do pobrania z github, obie pojawiają się szybko wyszukiwarka google.

Krok 11: Ostatnie poprawki

Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki

Pomysł polega na wykorzystaniu go do prac projektowych, dlatego wykonano zdejmowany panel składający się ze śrub mocujących do płytek Arduino i płytki stykowej, całość przymocowana do pokrywy za pomocą rzepu, aby można je było odłączyć i aby można było wykonać różne płytki do przechowywania projektów i że pudełko może być ponownie wykorzystywane do różnych projektów działających jednocześnie.

Spodziewam się, że będzie to źródło kilku pomysłów na zrobienie czegoś innego, lepszego lub obu. Będę dodawał dodatkowe funkcje, o których wspomniałem, i dodawał je, ale jeśli to pomoże, weź to, co chcesz i ciesz się. Jeśli wystąpią jakieś rażące problemy, daj mi znać.

W tej chwili zamierzam zacząć i korzystać z tego, mam kilka projektów do pracy!

Zalecana: