Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
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: