Matrix neopixel - ovladani

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od cz_marek » 03 lis 2021, 20:36

musim do toho jeste pridelat zprumerovani hodnost aby to neblikalo a pak to teda asi udelam pres ten If - udelam to na dve skupiny a ty pak budu muset poladit "na zivo"

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od gilhad » 04 lis 2021, 05:15

Jo a bacha, v Arduiňáckém provedení map má svá specifika (zlé jazyky je nazývají chybou a zlovolně používají vlastní implementaci, která přemapuje vstup na výstup rovnoměrně), která se nebudou opravovat, protože jsou blbě od začatku a lidi by mátlo, kdyby to fungovalo správně.

http://robodoupe.cz/2020/arduino-potouc ... unkce-map/

https://forum.arduino.cc/t/defect-in-lo ... g/46687/27

Stejně jako UNO bude mít navždy ty piny blbě posunuté o 1.27 mm, protože to zbodali, když na poslední chvíli vymýšleli název a do výroby poslali zmršeninu. Takže to už měnit prostě nebudou.

https://web.archive.org/web/20170710030 ... #msg171839


when I put some finishing touches I managed to get the spacing wrong...

We had 5 minutes before the deadline to go into production, the PCB guy was on the phone saying "send it now or it goes to next week" and we didn't have a name yet... they I said let's call it Arduino like a bar we used to go...there wasn't much time to think.

Then I'm fond of the mistake... it makes it not perfect therefore more human... Yes...it could have been all perfectly optimised... but if engineers ran the world it would be an unbearable place where to live :)

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od cz_marek » 04 lis 2021, 07:07

Tak to je drsné... jak ten map tak ten debilni skok o 1,27mm. Diky za zajimavou informaci :-)

Je to smutne ze 5 minut nebo posunutí termínu o tyden muze udelat problem hromade uživatelů na mnoho let dopredu. Bohužel to tak ale funguje všude - nestihnutý termín je videt hned, špatný design začne štvát až v budoucnu...

V tomot případe o nic nejde - stačí mi hrubé nastavení jasu aby LEDky potmě nejely na 100% a přes den byli videt. Je mi celkem fuk i to jestli bude mit nastaveni par sekund zpozdění - spiš mi to vyhovuje ze se tim překlenou svetelné špičky typu "v televizi se objeví bílá obrazovka a víc osvítí místnost". Jasne muze se stát ze se zrovna v tu dobu přečte hodnota osvetleni ale neni to nic kritickeho, priorita je aby se svetle nechvělo tim jak se upravuje hodnota jasu každy cyklus o jednotky procent.

Vim že lepší řešení je udelat plovoucí průmer ale nejak mi stací tohle - ten udelam třeba v další verzi jako vylepseni :-)

Vyřešil jsem to takhle:

Podprogram pro zjistění jasu provadi kontrolu každé 2s (čas jeste poladím až za provozu)
Načtu hodnotu osvetlení a zaokrouhlím na cele stovky (stačí mi hrubé rozlišení) - možná zbytečné...
Přes If mam nastavenu uroven do 500 a nad 500 (hodnoty taky budu muset odladit až za provozu - fotoodpor bude docela utopeny a zastineny)

Kód: Vybrat vše

void loop(){
     unsigned long currentJasMillis = millis();
  if(currentJasMillis - previousJasMillis > JasInterval)              
  {
    previousJasMillis = currentJasMillis; 
   Jas_LED();
   }
} 
//#########################################################################################
void Jas_LED() {

   osvetleni = analogRead(A0);
   osvetleni = (osvetleni + 50) / 100 * 100;

    if (osvetleni < 500) {       
     jas = map (osvetleni, 0,500,10,20);
 }
    if (osvetleni >= 500) {       
     jas = map (osvetleni, 500,1000,21,100);
 }
}

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od ondraN » 04 lis 2021, 09:52

Fotoodpor je sám o sobě dost pomalý, takže nějaká bliknutí ani nechytí. A můžeš ho ještě zpomalit tím, že k němu dáš paralelně větší elektrolytický kondenzátor, třeba 1000uF a pak máš u 1k fotoodporu filtr s časovou konstantou až 1s (záleží i na ostatních rezistorech). Akorát pozor na polaritu kondíku.

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od cz_marek » 04 lis 2021, 10:02

Jsem si taky myslel ze ten fotoodpor sam o sobe vyhladi blikani ale pokud jsem to nechal bežet bez te pauzy nebo s pauzou pod 1s pro odečet tak se ty LEDky "chvěly" vypadalo to dost blbě. Kondik neni špatny napad - to me teda ani nenapadlo. Diky za dobry tip do budoucna. Mam tam ale tragicky malo mista na elektroniku tak to radeji pořešim programem - bude se i jednodušeji ladit ten interval.

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od peterple » 04 lis 2021, 18:06

Zaujímalo by ma k čomu je dobré toto? Test optimalizácie kompilera?

Kód: Vybrat vše

.../ 100 * 100;
Ohľadom problémov s map. Bežne sa to robí tak, že človek sa na ZŠ naučil trojčlenku. A potom vie ako pracuje celočíslená a float aritmetika. Následne si vzorec na výpočet napíše sám podľa potreby a má pomerne presnú predstavu ako to tam funguje.

Samozrejme arduinisti sú mnohý zvláštna sorta ľudí správajúca sa ako typický manažér. A tak používajú inžinierske riešenia o ktorých netušia ako fungujú.
(Manažér je človek ktorý používa inžinierske riešenia bez toho aby mu rozumel)

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od gilhad » 05 lis 2021, 03:57

Kdyby aspoň ta řešení byla inženýrská a ne jenom "inžinýrská" - ono spousta i standardních knihoven, natož ostatních v Arduimu obsahuje "podivnosti" nejrůznějšího ražení a často nedokonale předstírají, že umí to, to slibují a a z principu umět nemůžou. (O menších zpraseninách uvnitř ani nemluvě ...)

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od cz_marek » 05 lis 2021, 11:14

@ peterple - to zaokrouhluje namerenou hodnotu na cele stovky

No a obecne ke knihovnam apod. - v dnešní dobe je v prumyslu hodně věci postaveno na šablonách / knihovnách kterým musí uživatelé věřit. Je to videt všude: automotive a jejih platformy pro auta, normalie ve strojařství ... Je to cesta k produktivitě a k udrzeni produktivity.
Neřekl bych ze je to inženýrský přístup, to je pro me právě ten opak.Pro me je inženýrský prístup pravý opak - přemýšlení nad tím co delám a proč to tak delám a výzkum jak to vylepšit.... Vzit použít a neresit nic kolem je pro me spíš smutná situace dnešní doby, která odraží situaci ve skolestvi a vsude jinde...
Tohle platí pro oblast ktere se človek věnuje profesionalně

Arduino je trochu jina oblast - je to cesta jak i neprofesionalni programator muze vytvořit neco co funguje (muj pripad - jsem povoláním strojař a hobby kutil). Komunita kolem arduina je tak jeho plusem (jako třeba toto forum kde mi vždy paradne poradite :-) ) tak i minusem protoze kde kdo ma pocit ze umi vytvořit knihovnu, která není odladěná na všechny realne stavy. No a lide jako ja na to pak muzou dojet... Na druhou stranu kdyby nebyli knihovny tak bych nikdy neozivil hromadu modulu protoze na to proste nemam (schopnosti a ani cas se to učit do hloubky - neživi me to) .

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od gilhad » 05 lis 2021, 20:46

Tak Arduino je v první řadě zaměřeno na "kreativce", kteří neví nic a jen si chtějí udělat něco blikacího, točícího, nebo jinak nespecifikovaně "cool", ale technice nerozumí a bojí se jí. Takže ačkoli základem je kvalitní mikroprocesor a řada "čtyřdírkových modulů" je postavena okolo rozumně kvalitních aprověřených součástek (na takové LED se toho zase až tak moc zkazit nedá, pokud má vůbec nějaak fungovat :lol: ), tak je to celé zapouzdřené tak, aby to pro ty technikou nepolíbené "kreativce" vypadalo přístupně a neutekli s panickým vřískotem když to spatří, nebo o tom uslyší :lol:

(A díky tomu se to mezi nima ujalo a rozjelo ve velkém a tak jsou teď díky masové výrobě a prodeji a módě různá mrňaduina a moduly k nim dostuné za lidové ceny, čehož často využíjí i ti, kteří ví, co dělají)

Důsledkem je samozřejmě to že bylo před předpokládaným publikem nutno utajit, že jde o C++, takže "IDE" tam samo dopisuje nějaké hlavičky a v dokumentaci se mluví o "Wiring", což je knihovna, okolo které je to postavené (a o jejímž použití a nedodržování podmínek bylo dost nehezkých věcí mezi Arduino teamem a jejím skutečným autorem, ale to je zase jiná pohádka, nakonec se snad nějak dohodli, nebo aspoň právnické bitvy už nejsou ventilovány) a arduino team se vší silou snaží spojitost s C++ nezmiňovat a pokud možno u co nejvíc před uživateli utajit, že vlastně tak nějak jakože (fuj fuj) "programují", takže se oficiálně raději používá výraz "sketch" čili "náčrtek". Což docela sedí.

Ono když ti na umělecké kreaci občas blbě bliknou diody, nebo se to náhodně restartuje, tak se to dá prezentovat buď jako "umělecký záměr" nebo, jak výše zmíněno "not perfect therefore more human" a vlastně to nevadí ...

... teda dokud se v tom nezačne šťourat někdo, kdo má trochu vyšší ambice (jako aby mu to otvíralo kurník, vářilo všely v úlu, měřilo čas na autodráze, blikalo více diodama nebo cokoli jiného, kde jsou spíš kriteria typu funguje dobře/špatně/vůbec než líbí se hodně/nerozumíte umění).

Ono do jisté míry jde jít tím prvním směrem, kdy se tak nějak podle citu metodou pokus - omyl sestaví něco, co něco nějak dělá a většinou to i přibližně funguje, ale čím dál jdete, tím víc narážíte na kindergarden ohrádku která vás má uchránit před krutou realitou (jakože piny mají nějakou proudovou zatížitelnost, LED mají nějaký odběr a nelineární charakteristiky, diody (a nejen Zenerovy) vedou i v zavřeném směru a zvláště na vyšších frekvencích, cívky mají i kapacitu a kondenzátory indukčnost, motory dobře ruší v širokém spektru a 5V/20mA jim často nestačí, výrazy "objekty" a "seznamy" se nepoužívají jen na výstavách a "ukazatele" jen v ekonomice a tak podobně ...)

No a když na tuto ohrádku začnete narážet častěji a tvrdě, tak si holt musíte připustit, že asi bude lepší ji občas prostě přelézt ačkoli to bude znamenat se učit spustu věcí znova a jinak ... čímž neříkám, že se do ní už nesmíte nikdy vrátit a používat tamní hračky na to, na co stačí. Ale je dobré si uvědomit, že ta ohrádka tu je a uvnitř je všechno nalakováno na růžovo tlustou vrstvou potravinářského laku. I scarabeus tam je prezentován s kuličkama čokolády a veselým žlutým motýlkem na krku.

Naštěstí datasheety jsou dostupné a ta ohrádka je z venku celkem snadno rozpoznatelná, takže jde i dlouhou dobu lavírovat s jednou nohou uvnitř a druhou venku. Například mám projekt, kde arduino interpretuje jednoduchý jazyk, anologové piny jsou používány v digitálním módu, u INPUT_PULLAP znám hodnoty těch interních odporů a podle toho mám dopočítané externí odpory, aby mohl bezpečně "jít do zkratu" se 74xx řadou integráčů a poznal tak vstup od výstupu a pomocí testování zlistil, který z té řady to je, kde má jaké vývody a zda uvnitř funguje správně, i když má popisek opískovaný do nečitelna, nebo pochází z číny kde mnohdy není jasné, zda je uvnitř to, co je deklarováno na obálce.

Najděte rozdíl :
Obrázek

Takže až vám Arduino ekosystém přestane vyhovovat, tak nezoufejte, spousta toho hardware a čast software se dá použít i dost jiným způsobem a přechod může být i pozvolný

http://robodoupe.cz/2018/drobnicky-006-klikimouse-aneb-volim-si-tebe-klikacu/
http://micro-corner.gilhad.cz/blog/Arduino/progs/KlikiMouse2/2019-04-06-Arduino-progs-Klikimouse2.html
(současný klikimouse už je v.4+ a místo drátků vzduchem má úhledné spojky, ale HW je jinak ten samý, jen je tam na ta 3 tlačítka zapojeno asi 18 různě kompexních funkcí, které řeší i pohyby myši a jsou dělány přez potomky generické třídy pro stavový automat - těch stavových automatů tam naráz běží víc, takže to může reagovat řádově rychleji, než je nastavený debouncing )
http://micro-corner.gilhad.cz/blog/Arduino/Arduino-ArduinoJakoKlavesnice-1.html

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Matrix neopixel - ovladani

Příspěvek od cz_marek » 12 lis 2021, 19:11

Rad bych všem podekoval za pomoc - část projektu "řízení LEDek" je hotovy a hodiny jsou na stene a funguji. Zbyva dodelat jeste par veci ale to už je jen tuning a vylepseni...
Bez pomoci bych to mozna nedal nebo bych se s tim trapil mnohem vic - takze diky...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: kiRRow, luger a 9 hostů