MxChip zabawy diodą

Ostatnie warsztaty zebrały samych programistów. To fajnie :)
Jednak brakowało trochę przykładów palców na klawiaturze.
Moje warsztaty miały być bardziej Azurowe, ale jednak rozwinę je trochę w stronę samego Arduino jakim jest MxChip

Nowy projekt

powtarzamy historie z ostatniego posta MXChip fajne powitanie na warsztatach

Elektron

Ważna sprawa. Gdy tworzymy nowy projekt musimy zrestartować wszystkie instancje VS Code. Ponieważ inaczej VS Code nie łapie swoich nowych ustawień dla nowo stworzonego projektu.
Elektron. Nie narzekajmy.

Z poprzedniego doświadczenia wiemy, że plik ino musi się nazywać tak jak katalog, w którym się znajduje (lub odwrotnie jak kto woli :P)

Struktura programu Arduino

Nowo powstały program to tylko dwie funkcje
void setup()
w której możemy ustawić początkową konfigurację, setup uruchamia się raz na czas życia programu.
Druga funkcja, którą dostajemy to
void loop()
cały nasz program staje się firmwarem - wszystkim co jest na danym urządzeniu.
Nie mamy tutaj żadnego systemu operacyjnego. Nasz firmware jest systemem operacyjnym. Jedną z podstawowych rzeczy w takim 'systemie operacyjnym' jest główna pętla programu, czyli miejsce, które się uruchamia po to, aby coś wykonać. Dlatego tak? cóż takie są komputery w naszym świecie. Procesor ma taką pętle rozkazów (oczywiście w trochę innym języku) i programy działające powyżej warstwy sprzętowej mają odpowiednik takiej pętli.
Windows też ma taką pętlę pod spodem całych okienek i tysięcy innych funkcjonalności.
Tutaj mamy bardziej bezpośredni dostęp do tego co robi urządzenie. To my piszemy firmware - całą warstwę oprogramowania sprzętu. Oczywiście jesteśmy leniwi i nie piszemy sterowników, zaciągamy sobie do tego referencje napisane przez innych.

Jeśli uruchomimy sobie taki program na płytce

void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
}

to dostaniemy efekt - nic nie robienia.


Hello World - diodka

Uruchommy sobie więc diodę. Klasyczny Hello World tego typu sprzętu :)

Dodajemy sobie referencje do biblioteki obsługującej diodę i zmienną, przez którą będziemy się z diodą komunikować. Tutaj dokumentacja


#include "RGB_LED.h"
RGB_LED rgbLed;

Funkcja przyjmuje wartości z których tworzy się kolor.

Mamy jedną funkcję do ustawiania koloru i drugą do wyłączenia diody.
Możemy więc włączyć diodę z dowolnym kolorem (tutaj niebieski). Ponieważ ustawienie diody jest w setupie to program nadal robi nic a dioda świeci cały czas niezmiennie.

Ale możemy też wyłączyć diodę po jakimś czasie w pętli głównej. Oto cały projekt:

#include "RGB_LED.h"
RGB_LED rgbLed;
void setup() {
   rgbLed.setColor(0, 0, 255);  
}
void loop() {
  delay(1000);
  rgbLed.turnOff();
}


Level 2 - dioda zaawansowana

Możemy też cyklicznie zmieniać jej kolor.


Komentarze

Popularne posty