Podstawy robotyki: Pierwszy program | Lekcja 2

Spis treści

Poniższy artykuł to jedna z części tworzonego na bieżąco kursu, który pomoże Ci opanować podstawy robotyki z wykorzystaniem platformy Arduino. Chcesz przejść do pozostałych lekcji?

Blink

Pierwszym programem, który napiszemy, będzie sterowanie wbudowaną diodą na płytce Arduino. Jest to najprostsza rzecz, jaką można za pomocą płytki zrobić. Zaczynają od tego dosłownie wszyscy, więc zacznijmy i my.

Poniżej znajduje się 6 prostych kroków pokazujących, jak zapalić wbudowaną diodę LED w Arduino:

Podłącz Arduino

Podłącz Arduino do komputera za pomocą kabla USB.

Arduino Uno podłączone do komputera za pomocą przewodu USB typu A.
Arduino Uno podłączasz do komputera za pomocą przewodu USB typu A.

Otwórz program Arduino IDE

Otwórz program Arduino IDE na swoim komputerze.

Adruino IDE z pustym szkicem.
Adruino IDE domyślanie otwiera się z pustym szkicem.

Otwórz przykładowy kod

Wybierz przykładowy kod „Blink” z menu „Plik”->”Przykłady”->”01.Basics”->”Blink”.

Arduino IDE przykładowe programy.
Arduino IDE zawiera mnóstwo przykładowych programów.
Kod programu Blink.
Kod programu Blink.

Wybierz płytkę Arduino i port szeregowy

Wybierz odpowiednią płytę Arduino i port szeregowy w menu „Narzędzia„. Jeśli nie wiesz pod jakim portem działa Arduino to odepnij kabel USB od komputera, podłącz ponownie i zwróć uwagę, jaki nowy port COM pojawił się na liście. To będzie port Arduino.

Menu portów.
Ilość portów będzie dla każdego komputera inna.

Wgraj kod do Arduino

Wgraj kod do płytki Arduino za pomocą przycisku „Wgraj” na pasku narzędzi.

Wgranie oprogramowania do płytki.
Wgranie oprogramowania do płytki chwilę potrwa.

Obserwuj wbudowaną diodę LED

Teraz wbudowana na płytce dioda LED powinna migać co 1 sekundę. Jeśli chcesz zmienić częstotliwość migania diody, zmodyfikuj wartość zmiennej „delay” w kodzie.

Symulacja arduino.
Do symulacji Arduino użyto narzędzia: wokwi.com

Omówienie kodu

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Funkcja Setup

Funkcja setup() jest wywoływana podczas uruchamiania szkicu. Używana jej do inicjalizacji zmiennych, trybów pinów, rozpoczęcia korzystania z bibliotek, itp. Funkcja setup() będzie uruchamiana tylko raz, po każdym włączeniu zasilania lub zresetowaniu płytki Arduino.

W naszym przykładzie w funkcji setup deklarujemy, że port, do którego przypięta jest dioda LED ma być obsługiwany jako „wyjście”.

pinMode(pin, mode)

Gdzie:

  • PIN – numer pinu. 
    W przypadku wbudowanej diody jest to pin numer 13 lub zmienna globalna LED_BUILTIN
  • MODE – deklaracja działania portu 
  • INPUT – port obsługiwany jako wejście danych
  • OUTPUT – port obsługiwany jako wyjście danych
  • INPUT_PULLUP – odwrócenie logiki portu
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

W naszym przykładzie zadeklarowaliśmy, że pin (LED_BUILTIN) wbudowanej diody LED ma być obsługiwany jako wyjście (OUTPUT). To oznacza możemy wydawać polecenia przez ten pin. Niejako wysyłamy informacje przez ten port.

Jeśli ten PIN zadeklarowalibyśmy jako INPUT, to oznacza, że możemy odbierać dane na tym pinie.

Funkcja Loop

Po utworzeniu funkcji setup(), która inicjalizuje i ustawia wartości początkowe, funkcja loop() robi dokładnie to, co sugeruje jej nazwa, czyli zapętla kolejno, pozwalając Twojemu programowi zmieniać się i reagować. Użyj jej do aktywnego sterowania płytką Arduino.

Przykład użycia:

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Idąc kolejno:

  1. Ustawiamy stan wysoki na Pinie LED (włączamy diodę)
  2. Robimy przerwę 1000 milisekund
  3. Ustawiamy stan niski na pinie LED (wyłączamy diodę)
  4. Robimy przerwę 1000 milisekund

Całość powtarzamy w nieskończoność.

Korzystając z funkcji digitalWrite ustawiamy dla danego pinu stan wysoki lub niski. Czyli mówiąc potocznie włączamy lub wyłączamy prąd na tym pinie.

digitalWrite(pin, value)

Gdzie:

  • pin – numer pinu.
  • value – deklaracja stanu 
    HIGH lub LOW

Funkcja Delay

Wstrzymuje program na czas (w milisekundach) podany jako parametr. W jednej sekundzie jest 1000 milisekund.


Interesuje Cię praktyczne wykorzystanie robotyki w projektach komercyjnych?
Sprawdź nasze realizacje!

Marek Golan

CEO Dogtronic, Prezes ESTA Cluster, dumny opiekun Borysa. Ma prawie 20 lat doświadczenia w branży IT zarówno jako programista jak i właściciel firm technologicznych.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

3 × dwa =

Przekształć
swoje pomysły w rzeczywistość

Skontaktuj się z nami i pozwól nam sprawdzić jak możemy Ci pomóc.

Najciekawsze treści na Blogu