Regimanto Sensoriai

Elektronika, mikrovaldikliai, automatikos projektai ir programavimas – viskas, kas įkvepia kurti ir tobulėti.

Atviras Kodas

2025-08-24 16:34

Atviras Kodas 🔓

ChaCha32 GO

ChaCha32 GO – Go kalbos įgyvendinimas ChaCha32 srautinio šifravimo. Suderinamas su C ir Arduino versijomis – sukurtas saugiam ryšiui tarp mikrovaldiklių ir Go backend’ų.

📦 Installacija

go get github.com/regimantas/chacha32go/chacha32

Nuoroda į GitHub 🔗

ChaCha32 GO

ChaCha32 C

ChaCha32 C įgyvendinimas – 32–rundų srautinio šifravimo, suderinamas su Arduino ir Go versijomis.

Kaip kompiliuoti

Norėdami sukurti pavyzdinę programą, terminale įvykdykite šią komandą:

gcc test.c chacha32.c -o test.exe

Nuoroda į GitHub 🔗

ChaCha32 C

ChaCha32 Arduino

2025-08-27 22:51

ChaCha32 Arduino biblioteka 🧭

ChaCha32 – lengvas, Arduino suderinamas ChaCha srautinio šifravimo algoritmo įgyvendinimas, papildytas iki 32 raundų (vietoje įprastų 20), siekiant didesnio kriptografinio saugumo.

Ši biblioteka yra optimizuota įterptiesiems įrenginiams ir teikia pagrindinį šifravimą bei dešifravimą naudojant 32 baitų (256 bitų) raktą ir 12 baitų (96 bitų) nonce.

  • 32 raundų ChaCha šifra (palyginti su įprastais 20 raundų)
  • C++ įgyvendinimas, suderinamas su Arduino
  • Paprasta API: chacha32_encrypt ir chacha32_decrypt
  • API elgsys vienodas visose platformose (Arduino, C, Go, Nim)
  • Maža talpa, tinkama mikrovaldikliams su ribotu Flash atmintimi ir RAM

Nuoroda į GitHub 🔗

ChaCha32 Arduino

Taip pat ją galima rasti Arduino bibliotekų tvarkyklėje.

EasyInterval Arduino Biblioteka

2025-08-27 22:47

🧰 EasyInterval

Pilnai suderinta su Metro: Arduino biblioteka skirta neblokuojamam laikui – su papildomomis funkcijomis!

🟢 Tiesioginis pakeitimas Metro bibliotekai
🟢 Papildyta palaikant delta laiko matavimus, dviejų fazių intervalus ir dinaminį valdymą


✅ Kodėl naudoti EasyInterval?

  • Pilnai suderinama su Metro: check(), expired(), reset(), interval(), checkCatchUp(), running()
  • Pridedama get() funkcija laikui matuoti nuo paskutinio iškvietimo
  • Pridedama setPhases(onTime, offTime) funkcija keičianti įtraukimo/atsijungimo laikotarpius
  • Pridedamos .enable(), .disable() ir .isEnabled() dinamiškai valdyti laikmačius
  • Saugu millis() persipildymui (~49,7 dienos)
  • Supaprastina neblokavimo kodo kūrimą: mirksinantys LED'ai, mygtukų debouncinimas, periodinės operacijos

🔄 Metro vs EasyInterval

Savybė Metro EasyInterval
check()
expired()
interval(ms)
reset()
checkCatchUp()
running()
get()
setPhases()
phase()
enable()
disable()
isEnabled()

🚀 Greitas pradžios pavyzdys: Mirksinti LED kas 1 sekundę

#include <EasyInterval.h>

const int ledPin = 13;
EasyInterval blink(1000); // 1 sekundė
// Metro blink(1000); // <- tik pakeiskite šią eilutę, jei naudojate Metro

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (blink.check()) {
    digitalWrite(ledPin, !digitalRead(ledPin));
  }
}

🔹 Pavyzdys: Dviejų fazių LED mirksėjimas (1s ON, 3s OFF)

#include <EasyInterval.h>

const int ledPin = 13;
EasyInterval timer;

void setup() {
  pinMode(ledPin, OUTPUT);
  timer.setPhases(1000, 3000); // ĮJUNGTA 1s, IŠJUNGTA 3s
}

void loop() {
  if (timer.check()) {
    digitalWrite(ledPin, timer.phase() == 0 ? HIGH : LOW);
  }
}

Galima rasti Arduino bibliotekų tvarkyklėje ir Github EasyInterval

Lankytojai: 0