Regimanto Sensoriai

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

Naujienos

Naujas Arduino PY32 MCU Branduolys

2026-01-13 21:13

🧰 Naujas Arduino PY32 Core (PY32Duino)

Pristatau PY32Duino – mano palaikomą ir vystomą Arduino Core, skirtą Puya Semiconductor PY32 (ARM Cortex-M0+) mikrokontroleriams.

Core leidžia programuoti PY32 mikrokontrolerius tiesiogiai per Arduino IDE, naudojant įprastą Arduino aplinką, bibliotekas ir darbo eigą.


🧭 ĮDIEGIMAS (Arduino IDE):

  1. File → Preferences
  2. Į lauką "Additional Boards Manager URLs" įklijuokite šį adresą:
    https://regsens.com/package_py32_index.json
  3. Tools → Board → Boards Manager
  4. Paieškoje įveskite "Arduino PY32" ir įdiekite PY32Duino core

🧭 Palaikomi mikrokontroleriai (aktyviai vystomi):

  • PY32F002A
  • PY32F003
  • PY32F030

Programavimo / Įkėlimo įrankiai

Šis branduolys gali būti naudojamas su įvairiais programavimo / derinimo adapteriais ir įrankiais (priklausomai nuo jūsų tikslinės plokštės ir kaip ji pateikia SWD/UART kontaktus), pavyzdžiui:

  • ST-Link V2 (SWD)
  • WCH-Link ("WCH-Link Download Debugger", SWD)
  • Ir kiti įrankiai

⚠️ Svarbi funkcija: RESET (PF2) kaip GPIO

Kai kuriuose PY32 mikrokontroleriuose PF2 kontaktas yra bendras su RESET (NRST). PY32Duino core leidžia šį kontaktą naudoti kaip įprastą GPIO, naudojant pinMode().

Pavyzdys:

pinMode(PF2, OUTPUT);
digitalWrite(PF2, HIGH);

Core automatiškai perjungia NRST į GPIO režimą per Option Bytes. Šio veiksmo nerekomenduojama kartoti cikluose.

⚠️ DĖMESIO:
Jei PF2/RESET perjungiamas į GPIO ir tuo pačiu metu išjungiamas SWD, mikrokontroleris gali tapti nebeprogramuojamas įprastais įrankiais.

💡 REKOMENDACIJA:
Eksperimentuojant visada palikite SWD aktyvų ir turėkite galimybę programiškai atstatyti RESET režimą.


🧭 Atstatymas PF2 į RESET (NRST)

Norint atstatyti PF2 kontaktą į RESET režimą, naudokite:

pinMode(PF2, NRST);

Po atstatymo PF2 vėl veikia kaip aparatinis RESET kontaktas.


📦 GitHub repozitorija:

https://github.com/regimantas/Arduino-PY32

Naujas Arduino PY32 MCU Branduolys

2026-01-13 18:10

🧰 Naujas Arduino PY32 Core (PY32Duino)

Pristatau PY32Duino – mano palaikomą ir vystomą Arduino Core, skirtą Puya Semiconductor PY32 (ARM Cortex-M0+) mikrokontroleriams.

Core leidžia programuoti PY32 mikrokontrolerius tiesiogiai per Arduino IDE, naudojant įprastą Arduino aplinką, bibliotekas ir darbo eigą.


🧭 ĮDIEGIMAS (Arduino IDE):

  1. File → Preferences
  2. Į lauką "Additional Boards Manager URLs" įklijuokite šį adresą:
    https://regsens.com/package_py32_index.json
  3. Tools → Board → Boards Manager
  4. Paieškoje įveskite "Arduino PY32" ir įdiekite PY32Duino core

🧭 Palaikomi mikrokontroleriai (aktyviai vystomi):

  • PY32F002A
  • PY32F003
  • PY32F030

Programming / Upload Tools

This core can be used with a variety of programming/debug adapters and tools (depending on your target board and how it exposes SWD/UART pins), for example:

  • ST-Link V2 (SWD)
  • WCH-Link ("WCH-Link Download Debugger", SWD)
  • Ir kiti įrankiai

⚠️ Svarbi funkcija: RESET (PF2) kaip GPIO

Kai kuriuose PY32 mikrokontroleriuose PF2 kontaktas yra bendras su RESET (NRST). PY32Duino core leidžia šį kontaktą naudoti kaip įprastą GPIO, naudojant pinMode().

Pavyzdys:

pinMode(PF2, OUTPUT);
digitalWrite(PF2, HIGH);

Core automatiškai perjungia NRST į GPIO režimą per Option Bytes. Šio veiksmo nerekomenduojama kartoti cikluose.

⚠️ DĖMESIO:
Jei PF2/RESET perjungiamas į GPIO ir tuo pačiu metu išjungiamas SWD, mikrokontroleris gali tapti nebeprogramuojamas įprastais įrankiais.

💡 REKOMENDACIJA:
Eksperimentuojant visada palikite SWD aktyvų ir turėkite galimybę programiškai atstatyti RESET režimą.


🧭 Atstatymas PF2 į RESET (NRST)

Norint atstatyti PF2 kontaktą į RESET režimą, naudokite:

pinMode(PF2, NRST);

Po atstatymo PF2 vėl veikia kaip aparatinis RESET kontaktas.


📦 GitHub repozitorija:

https://github.com/regimantas/Arduino-PY32

EasyInterval

2025-08-26 20:44

„EasyInterval“ – paprastas laiko valdymas Arduino projektuose

Kuriant Arduino projektus dažnai reikia tiksliai atlikti veiksmus kas tam tikrą laiko tarpą – mirksėti LED, siųsti duomenis, atnaujinti ekraną ar matuoti sensoriaus reikšmes. Tam dažnai naudojama funkcija millis(), tačiau jos logika reikalauja daug papildomo kodo ir lengva pasiklysti.

Kad šį procesą supaprastintų, buvo sukurtas EasyInterval – itin lengva biblioteka, leidžianti kurti intervalus ir laikmačius vos keliomis kodo eilutėmis.

Kodėl EasyInterval?

  • 🟢 Supaprastina millis() naudojimą – nebereikia rankiniu būdu kurti sudėtingos logikos.
  • 🟢 Lengvas API – intervalai sukuriami vienu sakiniu.
  • 🟢 Našumas – jokio papildomo „overhead“, tinka net labai mažiems MCU.
  • 🟢 Universalumas – gali būti naudojama LED mirksėjimui, sensoriniams matavimams, ryšio paketų siuntimui ir kitiems uždaviniams.

Pavyzdys

#include <EasyInterval.h>

EasyInterval ledBlink(500); // kas 500 ms

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

void loop() {
  if (ledBlink) {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  }
}

ChaCha32

2025-08-26 20:18

Naujas saugumo algoritmas „ChaCha32“ mažiems mikrovaldikliams

Saugumo ir duomenų šifravimo klausimai tampa vis aktualesni net ir mažų resursų sistemose – tokiuose mikrovaldikliuose kaip Arduino, STM32, ESP32 ar PUYA PY32. Tradiciniai šifravimo algoritmai, tokie kaip AES, neretai reikalauja daugiau atminties ir skaičiavimo galios, nei gali pasiūlyti itin mažos sistemos.

Todėl buvo sukurtas ChaCha32 – modifikuota ChaCha šifro versija, skirta ypač mažiems resursams. Skirtingai nei įprasta ChaCha20, ši versija naudoja 32 raundus, užtikrindama dar didesnį atsparumą atakoms ir tam tikrą papildomą atsparumą net prieš ateities kvantinius skaičiavimus.

Kodėl ChaCha32?

  • 🟢 Lengvas įgyvendinimas – algoritmui reikia tik paprastų aritmetinių ir bitinių operacijų (XOR, rotacijų, sudėties).
  • 🟢 Efektyvumas MCU aplinkoje – puikiai veikia net su mikrovaldikliais, turinčiais vos kelis kilobaitus RAM ar Flash.
  • 🟢 32 raundų saugumas – padidina atsparumą kriptografinei analizei, palyginti su ChaCha20.
  • 🟢 Platformų suderinamumas – algoritmas veikia C, Go, Arduino, Nim ir kitose kalbose, todėl galima užtikrinti duomenų suderinamumą tarp įvairių sistemų.

Pritaikymo sritys

ChaCha32 yra tinkamas:

  • 🔐 Sensorių tinklams (IoT), kur svarbus mažas energijos suvartojimas ir saugus duomenų perdavimas.
  • 🔐 Belaidėms komunikacijoms – BLE, LoRa, Wi-Fi moduliams.
  • 🔐 Įtaisytoms sistemoms – nuo baterijomis maitinamų įrenginių iki saugiklių ar apsaugos valdiklių.

ChaCha32 algoritmą sukūrė ir pritaikė mažiems resursams skirtuose įrenginiuose Regimantas Baublys, siekdamas, kad saugus šifravimas būtų prieinamas net labai ribotų galimybių mikrovaldikliams.

📌 ChaCha32 yra atviro kodo projektas, prieinamas kiekvienam kūrėjui, norinčiam užtikrinti modernų, greitą ir saugų šifravimą savo įrenginiuose.

ProxiNet

2025-08-26 18:54

🧰 ProxiNet

ProxiNet yra modernus, dinamiškas ir lengvas atvirkštinis proxy serveris HTTP ir HTTPS. Jis palaiko automatinį sertifikatų valdymą, realaus laiko konfigūracijos perkrovimą, apkrovos balansavimą su svoriais, WebSocket proxyavimą, daugiakalbį žurnalavimą ir gali būti lengvai paleidžiamas kaip Linux systemd paslauga.


🧰 Funkcijos

  • 💡 Dinaminė konfigūracija:
    Dinaminiai redirects.json ir conf.json failai atnaujinami jų veikimo metu automatiškai, be proxy perkrovimo.

  • 🌐 HTTP ir HTTPS palaikymas:
    Palaiko HTTP ir HTTPS protokolus, automatiškai peradresuoja HTTP↔HTTPS pagal konfigūraciją.

  • 🔒 Automatiniai TLS sertifikatai:
    Naudoja Let's Encrypt (autocert) TLS sertifikatus domenams, kuriuose useHTTPS: true, kai nenaudojami rankiniai sertifikatai.

  • 🗝️ Rankiniai sertifikatai:
    Naudokite savo sertifikatus nurodydami certFile ir keyFile.

  • ⚖️ Apkrovos balansavimas:
    Palaiko kelis backend tikslus per maršrutą su svorių balansavimu (weighted round-robin).

  • 🧭 WebSocket proxy'avimas:
    Pilnai palaiko WebSocket ryšius.

  • 🗺️ Upstream bazinis kelias (neprivalomas):
    Įkelkite programas, veikiančias po potikeliu backend’e (pavyzdžiui CouchDB /_utils) jūsų domeno šaknies lygiu, nekeitdami kliento URL. Nustatykite upstreamBasePath, ir užklausos kaip https://example.com/ bus proxijuojamos į http://backend/_utils/.

  • 📝 Daugiakalbis žurnalavimas:
    Žurnalai ir klaidos verčiami į skirtingas kalbas (anglų, lietuvių, lenkų, ispanų, vokiečių) ir kalba gali būti keičiama vykdymo metu.

  • 🧰 Systemd integracija:
    Gali automatiškai sugeneruoti ir įgalinti Linux systemd paslaugą.

  • 🪟 Windows servisų integracija:
    Veikia Windows operacinėje sistemoje kaip servisas.

  • 🔄 Karšto perkrovimo veikimas:
    Pridėti, pašalinti arba keisti domenus, tikslus ar sertifikatus redirects.json, o pakeitimai įsigalioja per keletą sekundžių.

PUYA PY32

2025-08-24 12:01

Pavadinimas: PUYA PY32

Pridėtas PUYA PY32 programuotojas ✨

PY32Flasher

PUYA PY32 mikrokontroleriams skirtas lengvas ir patogus įrankis jų programavimui naudojant STM32 Link V2 programatorių. Šis įrankis siūlo intuityvią sąsają, kuri leidžia įkelti .hex arba .bin failus tiesiai į mikrovaldiklius, naudojant SWD protokolą, siekiant efektyvaus ir patikimo programavimo.

Ekrano Nuotrauka 📷

PY32 Flasher Screenshot

Lankytojai: 0