
Úvod
Pamatuješ si ještě káču? Asi jsi měl dřevěnou nebo plastovou, ale vsadíme se, že nebyla chytrá. Teď si ji konečně vyrobíš – zaznamená tvou odstředivou sílu. Poměř pak s kámoši, kdo z vás je odstředivě nejsilnější! 💪
V tomhle projektu se naučíš vytvořit změřit rychlé točení krabičky. 👈
Budeš potřebovat jen krabičku s tlačítkem a USB dongle. Proto si vystačíš se základní HARDWARIO sadou – Starter Kitem.
Stáhni si nový firmware
- Pokud to ještě nemáš, Starter Kit sestav.
- Na Core Module nahraj nový firmware, a to bcf radio spinning game (najdeš ho mezi ostatním firmwarem v Playgroundu). Díky tomuhle firmwaru bude krabička citlivě vnímat rotace. 👌
Náš tip: Nevíš, jak si firmware stáhnout nebo co to je? Zjistíš to tady.
- Core Module spáruj s USB Donglem. Hned po spárování uvidíš, že tvůj Core Module změnil Alias na rotation-g-meter.

Stavěj v Node-RED
- V Playgroundu klikni na záložku Functions, kde je programovací plocha Node-RED. 🤖
- Začni jako vždycky: na plochu nejdřív umísti MQTT node ze sekce Input.
Dvakrát na něj klikni a do řádku zkopíruj Topic, se kterým krabička změří odstředivou sílu:
node/rotation-g-meter:0/rotation-g

Potvrď tlačítkem Done.
- Překvápko. 😲 Pod první MQTT nod umísti ještě druhý MQTT node ze sekce Input. Tentokrát do jeho nastavení ulož jiný Topic, se kterým krabička změří čas rotace:
node/rotation-g-meter:0/rotation-time

- K oběma nodům umísti po jednom nodu pro javascript. Najdeš je v sekci Function pod jménem Function (originální 🤡).

- Na horní node Function dvakrát klikni a do velkého políčka vlož tenhle kód, který bude zapisovat rekordní odstředivou sílu. 💪
var record = flow.get("record") || flow.set("record", 0.0);
var lastSpin = parseFloat(msg.payload);
if(lastSpin > flow.get("record"))
{
flow.set("record", lastSpin);
return msg;
}
V řádku Name nod pojmenuj jako Uložení rekordu.

Potvrď tlačítkem Done.
- Do spodního nodu Function vlož kód, který bude zapisovat rekordní čas točení. ⏰
var record = flow.get("timeRecord") || flow.set("timeRecord", 0.0);
var lastSpinTime = parseFloat(msg.payload);
if(lastSpinTime > flow.get("timeRecord"))
{
flow.set("timeRecord", lastSpinTime);
return msg;
}
V řádku Name nod pojmenuj jako Uložení rekordu.

Potvrď tlačítkem Done.
- Pod horní Function nod vlož textový node ze sekce Dashboard. Můžeš ho vložit i jinam, ale pro přehlednost bude lepší, když budou pod sebou.

V nastavení ho pojmenuj jako Poslední točení. Takhle se ti bude zobrazovat hodnota, kterou krabička právě naměřila.

- Pod tenhle nod polož ještě jeden, díky kterému se budou hodnoty zapisovat do grafu. 📈 Najdeš ho jako node Chart v sekci Dashboard.

Pojmenuj ho v řádku Label jako Historie. Do řádku X-asis Label nastav automatic, to znamená, že se jednotka přidá automaticky.

- Pod druhý javascript vlož textový node Text ze sekce Dashboard.

V něm pojmenuješ, jak se bude zobrazovat délka nejnovější rotace: Doba posledního točení.

- Za obě úrovně umísti po jednom textovém nodu Text ze sekce Dashboard. Ty ovlivní, jak v grafu uvidíš zapsaný rekordní čas. Nastav v nich proto postupně Label Rekord a Rekordní čas.

- A pak to všechno propoj podle obrázku. Na ploše ti tak vyjdou dvě samostatné flow. Nezapomeň nakonec zmáčknout tlačítko Deploy, kterým to celé zprovozníš. 🚨

Roztoč to!
- Sezvi všechny kámoše a pořádně je vyhecuj. Dejte si třeba kolu. 😄
- Změřte svou odstředivou sílu! Jeden po druhém točte. Náš tip: Nejlíp se ti bude točit, když krabičku postavíš na tlačítko.
- Výsledky sleduj na záložce Dashboard. Tak hodně štěstí a… Roztoč to jak roztoč!
