Přeskočit na hlavní obsah

Nejvyšší odstředivá síla

Úvod​

Pamatujete si ještě na káču? Možná jste měli dřevěnou nebo plastovou, ale vsadíme se, že chytrá nebyla. Teď si konečně vyrobíte takovou, která zaznamená vaši odstředivou sílu. Pak se změřte s kamarády a zjistěte, kdo z vás je odstředivě nejsilnější! 💪

V tomto projektu se naučíte měřit rychlé otáčení krabičky. 👈

Budete potřebovat jen krabičku s tlačítkem a USB dongle. Vystačíte si tedy se základní Sadou Start od HARDWARIO.

Stáhněte si nový firmware​

  1. Pokud jste to ještě neudělali, sestavte Sadu Start.

  2. Do modulu Core Module nahrajte nový firmware bcf radio spinning game (najdete ho v Playgroundu mezi ostatními firmwary). Díky němu bude krabička reagovat na otáčení. 👌

  3. Modul Core Module spárujte s USB donglem. Hned po spárování uvidíte, že se jeho Alias změnil na rotation-g-meter.

Záložka Devices v Playgroundu: řádek spárovaného zařízení se zvýrazněným aliasem rotation-g-meter:0

Postavte to v Node-RED​

  1. V Playgroundu klikněte na záložku Functions, kde je programovací plocha Node-RED. 🤖
  2. Začněte jako vždycky: na plochu nejdřív umístěte uzel mqtt in ze sekce network.

Dvakrát na něj klikněte a do pole Topic zkopírujte tento řádek, díky kterému krabička změří odstředivou sílu:

node/rotation-g-meter:0/rotation-g
Dialog Edit mqtt in node s tématem rotation-g ve zvýrazněném poli Topic

Potvrďte tlačítkem Done.

  1. Překvapení! 😲 Pod první uzel MQTT umístěte druhý uzel mqtt in ze sekce network. Tentokrát do jeho nastavení zadejte jiný Topic, díky kterému krabička změří dobu otáčení:
node/rotation-g-meter:0/rotation-time
Druhý uzel MQTT: dialog úprav s tématem rotation-time ve zvýrazněném poli Topic
  1. Ke každému z nich přidejte jeden uzel pro JavaScript. Najdete ho v sekci function pod názvem function (originální, že? 🤡).
Plocha Node-RED se zvýrazněným uzlem Function vedle každého ze dvou uzlů MQTT
  1. Dvakrát klikněte na horní uzel function a do velkého pole na záložce On Message vložte tento kód. Bude zaznamenávat 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 uzel pojmenujte Uložení rekordu.

Dialog Edit function node s kódem pro uložení rekordu a zvýrazněným polem Name

Potvrďte tlačítkem Done.

  1. Do spodního uzlu function (opět na záložku On Message) vložte kód, který bude zaznamenávat rekordní dobu otáč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 uzel pojmenujte Uložení rekordu.

Dialog Edit function node spodního uzlu s kódem rekordního času a zvýrazněným polem Name

Potvrďte tlačítkem Done.

  1. Pod horní uzel function vložte uzel text ze sekce dashboard. Můžete ho umístit i jinam, ale pro přehlednost bude lepší, když budou uzly pod sebou.
Plocha Node-RED se zvýrazněným uzlem Text ze sekce Dashboard pod horním uzlem Function

V nastavení ho pojmenujte Poslední točení. Bude ukazovat hodnotu, kterou krabička právě naměřila.

Dialog Edit text node se zvýrazněným polem Label pro hodnotu posledního točení
  1. Pod tento uzel umístěte ještě jeden, díky kterému se hodnoty budou zapisovat do grafu. 📈 Najdete ho jako uzel chart v sekci dashboard. V řádku Label ho pojmenujte Historie. V řádku X-axis Label nastavte automatic, takže se jednotka doplní automaticky.
Dialog Edit chart node se zvýrazněným polem Label a automatickým popiskem osy X
  1. Pod druhý uzel s JavaScriptem vložte uzel text ze sekce dashboard. Nastavte v něm popisek pro dobu posledního otáčení: Doba posledního točení.
Dialog Edit text node se zvýrazněným polem Label pro dobu posledního točení
  1. Za obě větve umístěte po jednom uzlu text ze sekce dashboard. Určují, jak uvidíte zaznamenané rekordy. Nastavte v nich postupně Label Rekord a Rekordní čas.
Plocha Node-RED se zvýrazněnými uzly Text pro rekord a rekordní čas vedle obou větví
  1. A pak všechno propojte podle obrázku. Na ploše tak vzniknou dva samostatné flow. Nakonec nezapomeňte stisknout tlačítko Deploy, kterým celé zapojení spustíte. 🚨
Dva hotové propojené flow v Node-RED se zvýrazněným tlačítkem Deploy

Roztočte to!​

  1. Pozvěte všechny kamarády a pořádně je vyhecujte. Dejte si třeba kolu. 😄
  2. Změřte svou odstředivou sílu! Točte jeden po druhém. Náš tip: Nejlépe se krabička točí, když ji postavíte na tlačítko.
  3. Výsledky sledujte na záložce Dashboard. Hodně štěstí a… roztočte to, co to dá!
Dashboard s hodnotou posledního točení, grafem Historie, dobou točení, rekordem a rekordním časem