Blíží se prázdniny a než se rozutečete k moři, je na čase se opět sejít na Virtuální Bastlírně - pravidelném setkání elektroniků, ajťáků, bastlířů a obecně nadšenců do techniky. Co si pro vás strahovští bastlíři připravili tentokrát? Určitě proberou blížící se Linux Days i další události. U softwaru se chvíli zdrží a poví si kupříkladu o tom, jak se zbavit Bambu Cloudu, ale nepřijít o možnost ovládat tiskárnu na dálku. Řeč dojde i na AI,
… více »Vývojáři postmarketOS vydali verzi 26.06 tohoto operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 2.55.0 distribuovaného systému správy verzí Git. Přispělo 100 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Craig Loewen na blogu Microsoftu oznámil veřejnou preview verzi WSL kontejnerů, tj. linuxových kontejnerů ve Windows Subsystem for Linux (WSL). Spouští se příkazem wslc.exe.
Byla vydána (𝕏, Bluesky) nová verze 2026.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 9 nových nástrojů v oficiálním oznámení na blogu.
Grafická aplikace Krokiet/Czkawka pro vyhledávání a odstraňovaní nepotřebných souborů (duplicitní soubory, prázdné složky, podobné obrázky, podobná videa, poškozené soubory a další) byla vydána ve verzi 12.0.0. Podrobný přehled novinek v příspěvku na Medium. Jedná se o poslední verzi frontendu Czkawka GTK nad Czkawka Core. Uživatelům se doporučuje migrovat na frontend Krokiet postavený nad frameworkem Slint. Představena byla aplikace Cedinia pro Android využívající Czkawka Core. Dostupná je jako APK pro ruční instalaci.
Po téměř třech letech od vydání verze 9 byla vydána nová verze 10 linuxové distribuce Mageia (Wikipedie). Přehled novinek v poznámkách k vydání.
Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.
Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.
Byla vydána nová verze 26.6.25 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
představte si čidlo(optickou závoru) přes čidlo profičí kyvadlo hodin cik cak (tam a zpět)
čidlo je umístěno libovolně (nepřesně) na spodu uprostřed dráhy kyvadla
kyvadlo má nestabilní výchylky přes střed (kde je čidlo)
(někdy se vyhoupne výše někdy níž)
přes čidlo jde vždy
chtěl bych udělat akci po průchodu čidla jen na
-->> jen sudý průchody kyvadla případně jen v jednom směru
ano přesně tak akce by byla spuštěna když je kyvadlo na nejvyšší pozici sudé průchody
jen sudý průchody kyvadla případně jen v jednom směruNo a kde je problém?
ano přesně tak akce by byla spuštěna když je kyvadlo na nejvyšší pozici sudé průchodyZměř si periodu té části průchodu, která tě zajímá. V půlce tohoto intervalu je kyvadlo na vrcholu.
čas od průchodu nemám čím měřit
to bude zřejmě ten kód
označit je jako sudé
po sudých udělat akci
psal jsem jestli pro začátečníka by nebyl kousek kódu
#define LAG 5 # jak dlouho trvá maximálně zakrytí senzoru kyvadlem při průchodu
char pass = 0;
loop() {
if(digitalRead(pin)) { # čidlo detekuje kyvadlo
pass++;
if(pass%2) { # sudý průchod
Serial.println("Even pass");
}
delayms(LAG);
}
}
Měření času jsem neimplementoval.
čas od průchodu nemám čím měřit
millis()
int ledPin = 13; // indikace
int CidloZavora =2; // cidlo zavora
int val = 0; // promena
int pocitadlo = 0;
int stavPinu = 0;
int PredchoziStavPinu = 0;
void setup() {
pinMode(ledPin, OUTPUT); // vystupni pin deklarace
pinMode(CidloZavora, INPUT); // vstupni pin
}
void loop(){
val = digitalRead(CidloZavora); // cti vstupni pin
if (val == HIGH) { //zjisti jestli ji HIGH
digitalWrite(ledPin, HIGH); // rozsvit LED
stavPinu = 1;
}
else {
digitalWrite(ledPin, LOW); //zhasni LED
stavPinu = 0;
}
if(stavPinu != PredchoziStavPinu){
if(stavPinu == 1){
pocitadlo = pocitadlo + 1;
if(pass%2) { # sudý průchod
a tady nejak rozlisit jsetli je to sudé
// tady prijde akce
}
}
PredchoziStavPinu = stavPinu;
delay(250);
}
a tady nejak rozlisit jsetli je to sudéTo přece rozlišuješ tím, že počet průchodů modulíš dvěma.
tak nejak by to šlo ??
int ledPin = 13; // indikace
int CidloZavora =2; // cidlo zavora
int val = 0; // promena
int pocitadlo = 0;
int stavPinu = 0;
int PredchoziStavPinu = 0;
int pass = 0;
void setup() {
pinMode(ledPin, OUTPUT); // vystupni pin deklarace
pinMode(CidloZavora, INPUT); // vstupni pin
}
void loop(){
val = digitalRead(CidloZavora); // cti vstupni pin
if (val == HIGH) { //zjisti jestli ji HIGH
digitalWrite(ledPin, HIGH); // rozsvit LED
stavPinu = 1;
}
else {
digitalWrite(ledPin, LOW); //zhasni LED
stavPinu = 0;
}
if(stavPinu != PredchoziStavPinu){
if(stavPinu == 1){
pocitadlo = pocitadlo + 1;
if(pocitadlo%2) { # sudý průchod
Serial.println("Even pass");
// tady prijde ta akce
}
}
}
PredchoziStavPinu = stavPinu;
delay(250);
}
nerozumím co je odsazeníŽe jednotlivé podvětve nebo smyčky předchází mezery nebo tabulátory (všimni si, jak vypadá můj kód). Mnohem líp se to čte.
tak nejak by to šlo ??No asi jo, já tady nemám Arduino s fotozávorou a kyvadlem. To si musíš vyzkoušet ty, jestli ti to jde…
Jendo dík moc
nevěděl jsem že sudé zjistím dělením if(pocitadlo%2)
no dneska už kývat nebudu ,jedině v posteli
Vyzkoušeno.
Pro moje potřeby to funguje.
Je znaménko pro liché cykly ?
if(!(pass%2))nebo
if(pass%2==0)Tedy až na to, že je (IMO) v celé této diskusi zaměněn význam slov lichá a sudá. Takže tomu raději nebudu říkat ani sudá, ani lichá, je to prostě ten opačný průchod...
Je znaménko pro liché cykly ?(počet+1)%2
Neexistuje ani pre parne a ani pre neparne, ty to totizto LOGICKY musis vyjadrit. Neviem, ako je zapis v tomto jazyku, ale jednoducho si pohladaj negovanie toho vyssieho vyrazu. Nieco ako
if!(pocitadlo%2)
alebo pridas vetvu k tomu, nieco na styl if - else , ale to si pozri v priprucke ako je zapis.
Syntax si pozri a aj kopec veci okolo toho tuna: http://wiring.org.co/reference/
Na papíru, v Karlu nebo javě?Arduino se defaultně programuje v C+.
Na papíru, v Karlu nebo javě?
Exaktní řešení Vašeho problému se jmenuje Kalmanův filter. Ale je to vyšší dívčí z teorie řízení.
Zjednodušeně řečeno: napíšete rovnici výchylky toho kyvadla ( α(t)=sin(ω t)+φ ), jejíž parametry/stavy ω a φ), které modifikujete podle toho co naměříte (= signál čidla). Změna těchto parametrů je úměrná tomu jak moc se Vaše aktuální měření se strefilo do okamžiku kdy jste očekával průchod čidlem podle této rovnice. K dispozici máte dva inženýské knoflíky (K,L)- váhy, kterými regulujete, jak moc má měření na dva stávající parametry vliv. Tyto váhy určují míru toho jak moc věříte měření versus jak moc je vaše rovnice spolehlivá sama o sobě jako samostatný prediktor (= bez aktualizace parametrů pomocí měření).
Výstupem rovnice je pak úhel alfa, který pro ± π/2 dává očekávaný vrchol (=nejvyšší pozice kyvadla). Musíte tedy napsat inverzní funkci f:α → t, ta vám pak pro α= +π/2 dá čas t ve kterém spustíte akci.
Algoritmus má tedy dva kroky
Samostatnou kapitolou je pak start celého algoritmu, kdy by se jen několik měření nedělala žádná akce ale jen se aktualizoval model, tak aby se dosáhlo počátečního nastavení parametrů.
Oprava: Odstavec "Výstupem rovnice je pak úhel alfa,který ...." prosím ignorujte. Žádnou inverzní funkci není potřeba vytvářet. Chyba vznikla už v definici rovnice kyvadla. Správně je totiž α(t) = sin(ω t + φ) a tedy pro okamžik akce stačí řešit vztah ω t + φ = π/2 pro neznámé t. Podobně lze napočíst i predikci času dalšího průchodu kyvadla čidlem. ω t + φ = φcidla.
Tiskni
Sdílej: