Wprowadzenie do Finder OPTA
Finder OPTA to wszechstronny Programowalny Przekaźnik Logiczny stworzony przy współpracy firm Arduino i Finder, dedykowany dla entuzjastów elektroniki, pozwalając im na tworzenie złożonych projektów z wykorzystaniem prostych komponentów i zagłębienie się w świat automatyki. Jego elastyczność i łatwość programowania w języku Sketch (opartym na C++/C) sprawiają, iż jest to doskonały wybór dla projektantów i hobbystów.

Co to jest Chat GPT i sztuczna inteligencja?
Chat GPT, będący zaawansowanym modelem języka opracowanym przez OpenAI, oferuje wsparcie w wielu dziedzinach, w tym w programowaniu. Dzięki swojej umiejętności rozumienia i generowania kodu źródłowego, Chat GPT może stać się cennym narzędziem dla osób programujących w środowisku Arduino.

Finder OPTA
Charakterystyka i zastosowania
Finder OPTA charakteryzuje się prostotą użycia oraz wszechstronnością, co czyni go idealnym rozwiązaniem dla wielu projektów DIY i profesjonalnych aplikacji. Możliwość łatwego połączenia z różnorodnymi czujnikami i akcesoriami rozszerzającymi jego funkcjonalność. OPTA, zależnie od wersji wyposażona jest w komunikację Modbus RTU/TCP-IP, Wifi, Bluetooth i Ethernet co tylko ułatwia jej komunikację z wieloma urządzeniami.
Kompatybilność z Chat GPT
Możliwość programowania sterownika Finder OPTA w języku wysokiego poziomu (Sketch) tylko ułatwia nam współpracę z Chat’em GPT i sztuczną inteligencją. Z racji tego, iż model językowy „Code interpreter” słabo, a raczej w ogóle nie radzi sobie z językami programowania PLC takimi jak LAD czy FBD – my do programowania wykorzystamy wcześniej wspomniany język Sketch.
Programowanie w języku Sketch
Podstawy języka
- Zmienne: W Sketch można deklarować zmienne różnych typów, takich jak int, bool oraz bardziej złożonych, np. tablice int[]
- Funkcje: Definiowanie funkcji jest podobne do innych języków programowania. Funkcje mogą przyjmować argumenty i zwracać wartości.
- Warunki: Sketch obsługuje standardowe instrukcje warunkowe, takie jak if, else
- Pętle: Możliwe jest używanie pętli, takich jak for, while
Środowisko programistyczne Arduino

Arduino IDE to zintegrowane środowisko programistyczne (Integrated Development Environment, IDE) stworzone specjalnie dla platformy Arduino, służące do łatwego i efektywnego tworzenia oraz wgrywania kodu na mikrokontrolery. Oto przewodnik po kluczowych funkcjach i możliwościach, jakie oferuje Arduino IDE, aby pomóc Ci rozpocząć przygodę z programowaniem mikrokontrolerów.
Instalacja Arduino IDE
- Pobieranie: Najnowszą wersję Arduino IDE można pobrać ze strony oficjalnej Arduino.
- Instalacja: Po pobraniu, należy zainstalować Arduino IDE, postępując zgodnie z instrukcjami instalatora. Program jest dostępny dla Windows, macOS oraz Linux.

Projekt: Sterowanie LED dzięki 2 przycisków

Przygotowanie środowiska Arduino IDE
- Uruchamiamy środowisko programistyczne Arduino IDE. Szablon programu został automatycznie wygenerowany.
- W zakładce Select Board wybieramy OPTA, czyli sterownik podłączony do naszego komputera.

Kod źródłowy
Generowanie kodu z Chat GPT
Aby wygenerować kod programu potrzebny do realizacji naszego projektu muszę podać szczegółowe instrukcje dla Chat GPT. Wybieram model GPT-4, ponieważ posiada on funkcję interpretera kodu. Wysyłam do Chat’a pierwsze polecenie:
Na podstawie tego polecenia, Chat wystosował nam już odpowiedź zgodnie z podanymi założeniami co do zasady działania naszego układu.

Pod spodem zamieszczam kod wygenerowany przez Chat GPT:
Chat ułatwia nam pracę, komentując linie kodu naszego programu. dla wszystkich początkującego programisty jest ogromnym ułatwieniem.
Gdy mamy już wygenerowany kod, możemy go wkleić do Arduino IDE.
Implementacja kodu

Chat jeszcze nie zna dokładnie urządzenia Finder OPTA, dlatego nie poprawnie zdefiniował zmienne odpowiedzialne za sygnały wejściowe i wyjściowe, musimy to poprawić zgodnie z Dokumentacją Finder OPTA.

Tak wygląda poprawiony kod, zgodny z dokumentacją.


Testowanie i optymalizacja
Testy programu
Wgrywamy program do OPTY klikając strzałkę przy wybranym urządzeniu.

I testujemy program, jak widać po przyciśnięciu przycisku Start podłączonego do pinu pierwszego, zapaliła się dioda LED.

Po przyciśnięciu przycisku Stop, dioda LED zgasła.

Dalsze możliwości rozwoju projektu
Jeśli chcemy dalej rozwijać nasz projekt, wystarczy w sesji z Chatem GPT poinformować go o błędach, które popełnił i przy każdym następnym poleceniu jego odpowiedzi będą coraz bardziej trafne i precyzyjne.

Podane przez nas informacje, Chat wziął sobie do serca i od dzisiaj każde polecenie w tej sesji będzie już wykonywał poprawnie.
Wnioski i przyszłość programowania z Chat GPT
- Uproszczenie procesu programowania: ChatGPT może pomóc w generowaniu kodu, oferując szybkie rozwiązania problemów programistycznych lub sugerując optymalne sposoby implementacji funkcji. Dzięki temu, choćby osoby z ograniczonym doświadczeniem w programowaniu Arduino mogą efektywnie realizować swoje projekty.
- Edukacja i nauka: Integracja ChatGPT z Arduino IDE i Sketch może stać się potężnym narzędziem edukacyjnym, ułatwiającym naukę programowania i elektroniki. Dostęp do natychmiastowej pomocy i wyjaśnień może przyspieszyć proces nauki.
- Optymalizacja i automatyzacja: ChatGPT, dzięki swoim możliwościom uczenia maszynowego, może pomóc w analizie i optymalizacji kodu, proponując ulepszenia czy identyfikując potencjalne błędy, co czyni proces tworzenia projektów bardziej efektywnym.
Więcej o programowaniu Finder OPTA z Chatem GPT znajdziesz w filmie poniżej: