Autor: admin

Arduino základy programování

Převzato z článku:

https://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/

Wiring

Programovací jazyk, v němž můžete pro Arduino psát, se jmenuje Wiring (lépe řečeno „vychází z jazyka Wiring“, ale rozdíly jsou minimální). Podle autorů jde o „jazyk podobný C++“ – ve skutečnosti je to jakýsi metajazyk či „vylepšená sada maker“ nad C++. Wiring původně vznikl pro vývojový kit podobný Arduinu a vychází z dalšího open source projektu, který se jmenuje Processing (můžete si všimnout určité podobnosti v logu Arduina a Processingu).

Návrh sledoval maximální jednoduchost a srozumitelnost pro programátora, co s jednočipy začíná: Syntakticky lze použít všechny návyky, co máme z C-like jazyků. Všechny ty složené závorky, středníky, definice funkcí a proměnných, poznámky, bloky i řídicí konstrukce budou povědomé každému, kdo kdy prošel kolem C (viz základy jazyka Wiring). Přitom není potřeba zabývat se vší tou objektovou veteší – z objektové syntaxe zůstává v podstatě jediný operátor „.“ (tečka).

Pokud budeme pro Arduino vytvářet knihovny (a to budeme v některém z dalších dílů), sestoupíme i o úroveň níž, k C++, ale zatím si vystačíme s Wiring.

Předpokládám, že čtenáři seriálu znají C, a že tedy není potřeba popisovat základy jazyka. Ostatně to hlavní uvidíme např. při pohledu do cheat sheetu (uložte si, bude se hodit) a odlišnosti si vysvětlíme, když na ně narazíme. prozatím nám stačí vědět, že můžeme psát „céčkové programy“.

Hello World!

Každý správný programátorský manuál začíná příkladem „Hello World“, tedy něčím, co ukáže, že to všechno funguje. Přidržíme se tohoto modelu a napíšeme si jednoduchý program, na kterém si ověříme, že vše funguje tak jak má. Ekvivalentem „Hello World“ v elektronice je blikání LEDkou, budeme tedy blikat i my. Ale nejdřív ještě krátký pohled na hardware, abychom věděli, s čím máme vlastně blikat.

 

Blikáme!

Program v C má vždy hlavní funkci, nazvanou main(), která je volána při spuštění programu. U Arduina máme takové funkce dvě a nazývají se setup() a loop()  – toto rozvržení vychází z nejčastější kostry programů pro jednočipy, kde po RESETu proběhne nějaká inicializace a pak se dokola provádí v nekonečné smyčce nějaká akce, až do vypnutí napájení. Zkušení návrháři používají postupy, kdy se ona „nekonečná smyčka“ nahrazuje kombinací obslužných rutin, vyvolaných na základě nějaké akce (přerušení) a uspávání jednočipu do stavu s nízkým odběrem. U Arduina, které slouží především pro experimenty a seznámení s elektronikou, je vše zjednodušeno do výše zmíněné podoby. Lze si to představit zhruba takto:

1
2
3
4
5
6
7
8
void main()
{
   setup();
   while (1)
   {
      loop();
   }
}

Ve funki setup si tedy nastavíme digitální port 13 jako výstupní, a ve smyčce (loop) uděláme to nejjednodušší, co udělat můžeme: Rozsvítíme LED (=pošleme na výstup logickou 1), počkáme, zhasneme LED a zase počkáme. A protože je loop() voláno stále dokola, bude i Arduino stále blikat.

Program („skeč“) může vypadat třeba takto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define LED 13  // číslo pinu, kde je připojena LED
void setup()   {               
  // nastavíme pin jako výstupní
  pinMode(LED, OUTPUT);    
}
void loop()                    
{
  digitalWrite(LED, HIGH);     // rozsvítíme LED
  delay(1000);                 // počkáme
  digitalWrite(LED, LOW);      // zhasneme LED
  delay(300);                  // ... a zase počkáme
}

Kód je velmi jednoduchý – definujeme si číslo pinu s LED. Ve funkci setup() zavoláme funkci pinMode, která nastaví pin jako výstupní. A konečně ve funkci loop() děláme to, co jsme si popsali výše – nastavíme pin na log. 1 nebo log. 0 (HIGH / LOW) pomocí systémové funkce digitalWrite a čekáme (delay).

Zkusíme si kód přeložit a ověřit, že jsme se neupsali – klikneme proto na Verify:

Arduino IDE

IDE bude chtít skeč uložit – uložte ho třeba pod názvem Blink. Pokud jsme vše napsali dobře, vypíše se ve spodním okně něco jako Binary sketch size: 934 bytes (of a 30720 byte maximum). Tedy že skeč přeložený do binární podoby zabírá 934 bajtů.

Pokud máme přeloženo, připojené Arduino, nastavený správný model a port v IDE, tak můžeme se zatajeným dechem kliknout na Upload:

Arduino IDE

IDE přeloží skeč, nahraje ho do Arduina, počká pár sekund a pošle signál RESET. A nám to…

Semafor

Schéma:

https://www.tinkercad.com/things/04Uym0KC5Nq-mcs-semafor

Kód:

int PinCervena = 2;
int PinOranzova = 3;
int PinZelena = 4;
int PinTlacitko = 5;

void setup() {
  pinMode(PinCervena, OUTPUT);
  pinMode(PinOranzova, OUTPUT);
  pinMode(PinZelena, OUTPUT);
  pinMode(PinTlacitko, INPUT);
}

void loop() {
  digitalWrite(PinCervena, HIGH);

  bool stav = digitalRead(PinTlacitko);
  if(stav == true){
    delay(1000);
    digitalWrite(PinOranzova, HIGH);
    delay(1000);
    digitalWrite(PinCervena, LOW);
    digitalWrite(PinOranzova, LOW);
    digitalWrite(PinZelena, HIGH);
    delay(5000);
    digitalWrite(PinZelena, LOW);
    digitalWrite(PinOranzova, HIGH);
    delay(1000);
    digitalWrite(PinOranzova, LOW);
  }
}

Pilotní testování workshopů 3D tisku a virtuální reality

V průběhu července proběhlo v našem digitálním centru v Městské knihovně Most pilotní testování workshopů zabývajících se 3D tiskem, 3D modelováním a virtuální realitou. Přivítali jsme celkem 150 žáků z 8 různých tříd. Konkrétně studenty ZUŠ F. L. Gassmanna, ZUŠ Moskevská, Podkrušnohorské gymnázium Most a Střední odborné školy InterDACT, s.r.o. Díky nim jsme měli možnost doladit detaily workshopů, které na ostro spustíme v září 2022.

Představení projektu Most creative space zaměstnancům a vedení Městské knihovny v Mostě

Po měsících stěhování a příprav nového prostoru jsme se oficiálně představili zaměstnancům Městské knihovny Most v jejichž prostorách jsme se zabydleli. Představili jsme naše rozpracované projekty a také plány do budoucna. Seznámili s procesem naší tvorby, virtuální realitou, 3D tiskem a zodpověděli spoustu zvídavých otázek. Tímto všem děkujeme za trpělivost a velkorysost s jakou nás mezi sebe přivítali 🙂

PS: Velký úspěch slavily také klíčenky a pohybliví slimáci vytištění na 3D tiskárně.

Martin Špoula

 

Reportáž České televize o Moderních technologiích ve výuce ZUŠ F. L. Gassmanna v Mostě

V našem nově vznikajícím centru most creative space a na ZUŠ F. L. Gassmanna proběhlo 14. 2. 2022 natáčení reportáže České televize pro události v kultuře o zavádění moderních technologií do výuky. V reportáži hovořil ředitel ZUŠ David Homola a vedoucí digitálního centra a lektor Martin Špoula.

Odkaz na reportáž (od 6:00 minuty)

 

Fotogalerie

Podpis memoranda o vytvoření digitálního centra v městské knihovně

Podepsáno. Rada města Mostu souhlasí se vznikem a provozováním digitálního centra v Městské knihovně Most. Schváleno bylo memorandum o spolupráci města Mostu, Městské knihovny Most a Základní umělecké školy F. L. Gassmanna při vzniku a provozování digitálního centra. Digicentrum nabídne kurzy a výuku 3D tisku, digitální fotografie i virtuální reality. Novinka bude určená jak pro žáky základních a středních škol, tak pro kluby seniorů i běžné čtenáře. Veřejnosti bude přístupné během otevírací doby městské knihovny, vždy po předchozí domluvě a objednání u kontaktní osoby digitálního centra.