Skip to main content

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ą, że 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 zdolności do 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, że 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 za pomocą 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ę, że 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śli przycisk Start jest wciśnięty (NO - Normally Open)
    digitalWrite(ledPin, HIGH);       // Zapal LED
  } else if (buttonStopState == LOW) { // Jeśli 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 każdego 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 za pomocą przycisku ze stykami NO

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

Wyłączenie diody LED za pomocą 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 teraz 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, nawet 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 usprawnienia 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:

Komentarz

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

<iframe src=”https://player.vimeo.com/video/757198505?h=0e10f23dac” width=”640″ height=”564″ frameborder=”0″ allow=”autoplay; fullscreen” allowfullscreen></iframe>

Mailing kursu programowania

Inteligentny DOM

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=62 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania MINIKURS

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=56 ]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

MINI KURS MAILOWY

PROGRAMOWANIA

CODESYS w języku ST

 

Zapisując się na mini kurs mailowy otrzymasz:
-codziennie jedną wiadomość e-mail przez okres tygodnia
-materiały dzięki którym rozpoczniesz programować
w Codesys i języku ST

 

[activecampaign form=22]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing dla programistów

ControlByte

Zapisując się na listę mailową otrzymasz:
– merytoryczne materiały z naszych kursów
– informacje o otwarciu zapisów na szkolenia programowania
– informacje o naszych webinarch na żywo [activecampaign form=3]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Codesys w języku ST

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=20]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD + HMI

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=14 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens S7-1200, S7-1500

w języku SCL

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=18 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.