Programowanie Sterownika Finder OPTA dzięki Chat GPT

controlbyte.pl 3 miesięcy temu

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

  1. Pobieranie: Najnowszą wersję Arduino IDE można pobrać ze strony oficjalnej Arduino.
  2. Instalacja: Po pobraniu, należy zainstalować Arduino IDE, postępując zgodnie z instrukcjami instalatora. Program jest dostępny dla Windows, macOS oraz Linux.
Oficjalna strona Arduino IDE

Projekt: Sterowanie LED dzięki 2 przycisków

Finder OPTA, Zasilacz Finder 24V, Przycisk Stop NC, Przycisk Start NO, Dioda LED

Przygotowanie środowiska Arduino IDE

  1. Uruchamiamy środowisko programistyczne Arduino IDE. Szablon programu został automatycznie wygenerowany.
  2. 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:

Napisz mi kod programu w języku Sketch dla urządzenia Finder OPTA. W naszym programie obsługujemy jeden LED podłączony do 1 wyjścia przekaźnikowego, 1 przycisk Start NO podłączony do 1 wejścia i 1 przycisk Stop NC podłączony do 2 wejścia. Napisz program, który będzie realizował taką zasadę działania: Gdy wcisnę przycisk start to zapali się lampka. Gdy wcisnę przycisk stop to lampka zgaśnie.

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:

// Definiowanie pinów dla przycisków i LED const int buttonStartPin = 1; // Przycisk Start podłączony do pinu 1 const int buttonStopPin = 2; // Przycisk Stop podłączony do pinu 2 const int ledPin = 3; // LED podłączony do pinu 3 (wyjście przekaźnikowe) void setup() { // Konfiguracja pinów pinMode(buttonStartPin, INPUT_PULLUP); // Ustawienie pinu przycisku Start jako wejście z wewnętrznym podciąganiem do VCC pinMode(buttonStopPin, INPUT_PULLUP); // Ustawienie pinu przycisku Stop jako wejście z wewnętrznym podciąganiem do VCC pinMode(ledPin, OUTPUT); // Ustawienie pinu LED jako wyjście digitalWrite(ledPin, LOW); // Upewniamy się, iż LED jest wyłączony na starcie } void loop() { // Odczyt stanu przycisków int buttonStartState = digitalRead(buttonStartPin); int buttonStopState = digitalRead(buttonStopPin); // Logika sterowania LED if (buttonStartState == HIGH) { // jeżeli przycisk Start jest wciśnięty (NO - Normally Open) digitalWrite(ledPin, HIGH); // Zapal LED } else if (buttonStopState == LOW) { // jeżeli przycisk Stop jest wciśnięty (NC - Normally Closed) digitalWrite(ledPin, LOW); // Zgaś LED } // Opóźnienie, aby zapobiec drganiom styków delay(50); }

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

Kod napisy przez ChatGPT bez ingerencji człowieka

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.

Wyjście przekaźnikowe nr 1 możemy wykorzystać w programie jako „D1” lub „RELAY1”

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

Kod z uwzględniem dokumentacji Finder Opta

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.

Włączenie diody LED dzięki przycisku ze stykami NO

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

Wyłączenie diody LED dzięki przycisku ze stykami NC

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:

Idź do oryginalnego materiału