IR¤
IR komunikace umožňuje bezdrátově přenášet data pomocí infračerveného světla. Umožňuje například komunikaci mezi dvěma zařízeními na krátkou vzdálenost.
Vytvoření projektu¤
Stačí kliknout na odkaz, otevře se nám VSCode a nabídne se nám možnost vytvořit projekt z připraveného balíčku.
Tento příkaz stačí zadat do terminálu v adresáři, kde chceme mít projekt uložený. Změníme <PROJECT_NAME> na název projektu, který chceme vytvořit.
jac project-create --package https://2026.robotickytabor.cz/moduly/ir/ir-example.tar.gz <PROJECT_NAME>
Instalace knihoven¤
Do nového projektu nainstalujeme potřebné knihovny:
utils
Použití¤
IR komunikace používá na Saturnu seriový port. Odesílání je doplněno o PWM modulátor na frekvenci 37 kHz, který přepíná infračervenou diodu. Příjem je připojen přímo k seriovému portu.
import { Serial1 } from "serial";
import { PWM } from "pwm";
import { SaturnPins } from "saturn";
const freq = 37000; // freqvence kterou přijímač očekává (neměnit)
// Nastavíme seriový port
Serial1.setup({
tx: SaturnPins.Pmod1.Pin3,
rx: SaturnPins.Pmod1.Pin1,
baudRate: 1200, // rychlost jakou se data přenášejí (musí být stejná na obou komunikujících modulech)
});
// Zapneme generaci 37kHz signálu
let txModulator = new PWM({
pin: SaturnPins.Pmod1.Pin4,
frequency: freq,
duty: 512
});
// Každou sekundu pošleme naší zprávu
setInterval(async () => {
Serial1.write(utils.strToBytes("Ahoj z Saturnu"));
}, 1000);
// Čekáme až dostaneme data z modulu a vypíšeme
while (true) {
let data = await Serial1.read();
console.log("Přijato: " + utils.bytesToStr(data));
}