LittleFS into
Úvod do LittleFS
Táto stránka slúži pre šikovných účastníkov, ktorí sa chcú naučiť niečo viac. Sme naozaj radi ak si čo len prečítate tento výťažok. Ak chcete vedieť veci do podrobna, odporúčame oficiálnu dokumentáciu.
Čo je LittleFS?
LittleFS je súborový systém uložený priamo vo flash pamäti mikrokontroléra – podobne ako priečinky a súbory na počítači, len oveľa jednoduchší. Nevyžaduje žiadny externý hardvér (SD karta, EEPROM) – využíva pamäť ktorú už mikrokontrolér má.
Hodí sa keď chceme:
- Ukladať dáta počas behu programu (logy, merania)
- Čítať konfiguráciu pri štarte (nastavenia, kalibrácia)
- Zachovať dáta aj po vypnutí – na rozdiel od premenných ktoré sa pri reštarte vymažú
Základné operácie
#include <LittleFS.h>
void setup() {
Serial.begin(115200);
// Inicializácia – vždy ako prvé
if (!LittleFS.begin()) {
Serial.println("LittleFS zlyhalo!");
return;
}
// Zápis do súboru
File f = LittleFS.open("/data.csv", "w"); // "w" = write (prepíše existujúci)
if (f) {
f.println("cas_ms,hodnota");
f.println("1000,42");
f.close(); // vždy zatvoriť po zápise!
}
// Čítanie zo súboru
File r = LittleFS.open("/data.csv", "r"); // "r" = read
if (r) {
while (r.available()) {
Serial.println(r.readStringUntil('\n'));
}
r.close();
}
// Pridávanie na koniec súboru (append)
File a = LittleFS.open("/data.csv", "a"); // "a" = append
if (a) {
a.println("2000,99");
a.close();
}
// Vymazanie súboru
LittleFS.remove("/data.csv");
}
void loop() {}
| Mód | Písmeno | Správanie |
|---|---|---|
| Write | "w" |
Vytvorí nový súbor alebo prepíše existujúci |
| Read | "r" |
Číta existujúci súbor – ak neexistuje, vráti chybu |
| Append | "a" |
Pridáva na koniec existujúceho súboru |
Dôležité poznámky
- Cesty musia začínať lomítkom:
"/data.csv"✅ –"data.csv"❌ - Vždy zavolaj
f.close()po zápise – inak sa dáta nemusia uložiť - Ak chceš mať súbor otvorený dlhšie (napr. počas jazdy), volaj
f.flush()priebežne – zapíše dáta na flash bez zatvorenia súboru - Flash pamäť má obmedzený počet zápisov (~100 000) – pre časté logovanie to ale nie je problém
Stiahnutie súboru do počítača
Existujú dva spôsoby ako dostať súbor z mikrokontroléra do počítača:
Spôsob 1 – Výpis cez sériový monitor (jednoduchší)
Nahraj tento kód, otvor sériový monitor a skopíruj výstup do súboru .csv:
#include <LittleFS.h>
void setup() {
Serial.begin(115200);
delay(1000);
if (!LittleFS.begin()) {
Serial.println("LittleFS zlyhalo!");
return;
}
File r = LittleFS.open("/data.csv", "r");
if (!r) {
Serial.println("Súbor nenájdený!");
return;
}
while (r.available()) {
Serial.println(r.readStringUntil('\n'));
}
r.close();
}
void loop() {}
Spôsob 2 – USB disk (elegantnejší)
RP2350 vie emulovať USB flash disk – po pripojení k počítaču sa objaví ako jednotka a súbor si jednoducho skopíruješ myšou.
#include <LittleFS.h>
#include <SingleFileDrive.h>
void onPlug(uint32_t data) {
// PC pripojil disk – zastavíme logovanie ak beží
}
void onUnplug(uint32_t data) {
// PC odpojil disk – môžeme pokračovať
}
void setup() {
LittleFS.begin();
// Sprístupni súbor /data.csv ako USB disk
singleFileDrive.begin("data.csv", "/data.csv", onPlug, onUnplug);
}
void loop() {
// Tvoj bežný kód...
}
Po skopírovaní súboru ho otvor v Exceli alebo nahraj na Desmos pre vizualizáciu trasy.