- Garmin topik
- Külföldi SIM-ek itthon
- Azonnali mobilos kérdések órája
- One mobilszolgáltatások
- CMF Phone 2 Pro - a százezer forintos kérdés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Netfone
- Mobil flották
- Xiaomi 15 - kicsi telefon nagy energiával
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Teasüti
nagyúr
válasz
balintarduin #10303 üzenetére
Állapotgépnek nézz utána! Azzal lehet követni az eseményeket.
Mindig kell egy változó, amiben követed melyik képernyőn vagy.
Én úgy csináltam menüt, hogy volt egy változóm a főmenünek, képernyőnként sorjában és ahogy léptettem a változót, úgy lépkedett a menü is. Aztán ugyanez a rendszer minden egyes almenüben is.Én mondjuk anno egyetlen uint8_t változót figyeltem csak és határértékek szerint ugráltam benne.
Mondjuk 1-10 között volt a főmenü, 20-30 között az 1. almenü, 40-50 között a 2. almenü, stb.
És int++ és int-- szerint lépegettem az adott tartományban, amíg át nem lépett vmelyik határon. Ekkor előre meghatározott helyre ugrottam a sorban, attól függően mi következett. Pl. vissza a végére, ha végtelenítve volt a menü. Vagy a következő almenüre, stb. -
Teasüti
nagyúr
válasz
Teasüti #10301 üzenetére
Na de mi a helyzet azokkal a változókkal, amiket nem adat közvetítésre használok, hanem konfigurációra?
Adatnál ugye mindig lesz egy input és egy output amik mozgásban tartják a FIFO-t. Viszont konfigurációs változóknál nincs mozgás, ott vmi beállítja a változót és a többi folyamat meg csak referenciaként használja.
Erre nem alkalmas se az xQueue, se az xSemaphore. -
Teasüti
nagyúr
válasz
Tankblock #10299 üzenetére
Értem.
Lényegében a felesleges polling-ot célszerű elkerülni xQueue-val és xSemaphore-ral.
Van még egy mutex nevű akármi is, de addig a fejezetig még nem jutottam el.Elöljáróban nincs arra vmi tipped, hogy létezik-e vmi jobb megoldás RTOS-ban az idő elteltét figyelni multitasknál, mint a "hagyományos"
if (millis() > timer) {}
feltételt pörgetni? -
Teasüti
nagyúr
Épp az XQueue-val és az xSemaphore-ral ismerkedek.
Szeretnék kipróbálni egy bináris szemafort, amit egy megszakításból szeretnék "adni".
Kérdésem, hogy hogy lehet megcímezni Arduino-ban az UART RX portjára érkező adathoz kapcsolódó megszakítás vektort?Jelenleg a Serial.available() függvénnyel végzek polling-ot, viszont biztos meg lehet valahogy oldani ezt megszakítással is.
-
Teasüti
nagyúr
válasz
tvamos #10292 üzenetére
Ezt a pvParameters-t nem tudom elképzelni hogy tudnám használni a task folytonos meghívása nélkül.
Nálam egyszer setup()-ban el van indítva a végtelen ciklus és ennyi. Indításkor tudnék átadni egy paramétert, de ez haszontalan futás közben.
Vagy arra célzol, hogy ez a koncepció eleve hibás? Lehet nem különálló és független ciklusokat kellene indítani, hanem minden egyes alkalommal meghívni mindent egyesével, majd ha lefutott törölni a példányt?
Ezzel viszont az a gondom, hogy így lényegében lineáris programfuttatás lenne belőle, ha nekem kell sorban elindítgatni a szálakat. -
Teasüti
nagyúr
válasz
Tankblock #10291 üzenetére
Jó észrevétel, ezt a bugot ki se szúrtam volna talán, csak telepítés után!
Amúgy nem hiszem, hogy ez volt a gondja. Azért nem, mert most nem tudom reprodukálni a hibát.
Letöltöttem újra azt, amit megmutattam kódot és most az sem hibázik bootoláskor.
Azóta annyi változás történt, hogy frissítettem az Arduino Core-t 1.0.1-re.
(Egyébként az új verzióban már rendesen működik a BT Serial, akit érdekel. Az 1.0.0 eldobálta a küldött adatot.) -
Teasüti
nagyúr
válasz
Tankblock #10289 üzenetére
Két PCNT csatorna van használatban, semmi más nem hívja meg a saját taskján kívül.
Szándékosan nem szeretnék megszakítást használni és elvenni a cpu időt mástól, ha hardverből is mehet.Megpróbálom a volatile változókat és a setup() végére rakom a task indítást. Meg utána nézek a szálkezelésnek, xQueue-nek.
(#10288) Janos250
Még nem olvastam el a linket, de "thread"? Ha ez nem ugyanaz mint a task, akkor most hallok erről először.
Ezt intelligensebben kezeli az RTOS?szerk: na ilyet most látok először! És jóval egyszerűbbnek tűnik, mint az RTOS féle xTask.
Viszont gondolom ez nem ugyanazon az absztrakciós rétegen fut, ugye? -
Teasüti
nagyúr
válasz
Tankblock #10282 üzenetére
Köszönöm a figyelmet!
Most nincs előttem a kód, de az utolsó három tasknál jött elő a jelenség. Nem használnak sok változót, a két PCNT-t használó csak beállít egyet-egyet, a harmadik meg kiküldi PWM-re a beállított változót. (Tudom ez mehetne egy taskba is, de a multitask lényege nem pont az, hogy kismillió folyamatot indíthatok?) Mindegy melyiket veszem ki, külön-külön mindegyiktől pánikol az 1. mag. És a 0. magon futnak.
Úgy tűnik magától a taskok számától jön be a jelenség. -
Teasüti
nagyúr
válasz
Tankblock #10280 üzenetére
Multi tab program, azért .ino az összes. HondaCBR az első a sorban.
Tehát már meghíváskor futnak a taskok mielőtt a végére érne a setup()-nak. Ez új.
Akkor csak átrendezem a setup()-ot.Vannak globális változók, mert végső soron sokminden interaktív lesz. Ha olyan könnyű lenne könyvtárba rendezni mindent, már rég portoltam volna.
A komponenseket természetesen egyesével tesztelem ki, azt is tudom hol jött be a cpu pánik.
Az utolsó három tasknál. Önmagában minden jól fut. Csak együtt nem annyira.Az xQueue és xEvent még új, majd utána nézek. Köszi!
-
Teasüti
nagyúr
válasz
Janos250 #10276 üzenetére
Hogy kell privát repohoz linket gyártani? Csak olvasóként ismerem az oldalt.
Hagyjuk, így egyszerűbb!
Prioritások:
Vhol azt olvastam, hogy 18 fölött vannak az RTOS taskok. Bár nem vagyok meggyőződve róla.
Amúgy kell némi mozgástér. 6-7 task még csak egy kis része a to-do listámnak. -
Teasüti
nagyúr
válasz
Tankblock #10272 üzenetére
Nem találok megosztás gombot Github-on, így remélem a repo oldalának címe elég lesz.
Mondjuk lefuttatni nem fogod tudni szerintem a függőségei nélkül.
De ha belekukkantasz és látsz vmi gyanúsat, azt megköszönöm! -
Teasüti
nagyúr
válasz
Janos250 #10253 üzenetére
Valamint tőled kérdezném még, mint ESP32 gurutól, hogy találkoztál-e már olyan hibával, hogy pánikol a CPU 1 a sok task miatt, viszont olyan 5-6 reset után végül csak képes elindulni a oprendszer?
Jelenleg 6-7 taskom van, amit szétszórtam a két mag közt (0. magon a gyors függvények, 1. magon a hosszabb programok), prioritásnak alacsony 10 alattiakat adtam meg és mindegyik task-nak eltérőt.
Ha csökkentem a taskok számát, akkor nem pánikol a proci. Van erre vmi ötleted mi lehet?
Minden task-ot szabályosan írtam meg: végtelen ciklusban futnak valamennyi delay()-jel a végükön. -
Teasüti
nagyúr
Kérdeznék viszont könyvtár írással kapcsolatban, akinek ez ujjgyakorlat!
Osztályt próbálok írni, aminek rá kéne kapcsolódnia a Serial Stream-re, viszont sehogy se jövök rá hogy kell átadni a könyvtárnak a Stream-et. Kérhetnék ebben némi segítséget?Jelenleg itt tartok és nagyon nem jövök rá hogyan kellene működnie:
[kép]
[kép]Köszönöm!
-
Teasüti
nagyúr
válasz
Janos250 #10253 üzenetére
Mi a f...
Hát ez elég komplikált.
PWM-mel ez ennyi:#define PWM_CHANNEL_1 1
#define PWM_TIMER_12_BIT 12
uint_16t speed_freq = 100;
void setup() {
ledcSetup(PWM_CHANNEL_1, speed_freq, PWM_TIMER_12_BIT);
ledcAttachPin(PinNumber, PWM_CHANNEL_1);
}
void loop() {
ledcWriteTone(PWM_CHANNEL_1, speed_freq); //Min 5Hz 12 biten. Ledc driverben a Tone függvény alapból 10 biten dolgozik.
delay(100);
} -
Teasüti
nagyúr
válasz
ecaddsell #10236 üzenetére
ESP32 floating-point performance
És a hozzá kapcsolódó Espressif fórum téma.Lényegében csúnyán kikap az ARM procitól.
-
Teasüti
nagyúr
válasz
ecaddsell #10226 üzenetére
ESP32 kimenetein egyébként ha jól tudom több fokozatú meghajtás van. Vannak kisebb és gyorsabb FET-ek, és vannak erősebbek, de lassúbbak. ESD kár tipikus példája amikor a kicsi FET-ek elszállnak, de a nagyok még működnek. Az egészből annyit veszel csak észre, hogy nem hozza a specifikációkat a port nagyobb sebességen.
Épp mostanában olvastam erről, már nem tudom minek a kapcsán.
-
Teasüti
nagyúr
válasz
Amarton #10214 üzenetére
Értem. Én viszont nem vagyok az, így volna egy kérdésem:
Hogy lehet áramot és feszültséget mérni egyszerre VAGY hogy lehet feszültséget mérni soros kapcsolással ("Természetesen sorba volt kötve a LED-el a LED 5V-os ágában. Tehát az 5V-ot is mérnie kellett volna nem csak az áramot.")? Ilyet nekem nem tanítottak az iskolában. -
Teasüti
nagyúr
válasz
Janos250 #10200 üzenetére
Olyan túl sok mondanivalóm nincs a PCNT-vel kapcsolatban. Működik a példa alapján.
Inkább matematikai fejtörést okoz a frekvencia mérése. Ugye másodperc az alapegysége, viszont nekem ennél gyakoribb frissítés kellene. Mondjuk olyan 200 ms-os frissítés már elfogadható. Ez viszont azt jelenti, hogy fel kell szoroznom a mért értéket ha SI mértékegységet szeretnék látni. Ez meg precizitás csökkenéssel jár, így már csak a(z 5-ös) szorzó többszörösét kaphatom eredményül. Ráadásul így az 5 Hz a legkisebb mérhető egység, ez alatt inkonzisztens eredményt ad nulla és öt között váltakozva. Ezt így egyelőre csak szűréssel tudom áthidalni.
Nincs vmi jobb matematikai módszer a gyakoribb frissítésre? Kíváncsi lennék vajon egy hall szenzoros jeladóból hogy számol pontos értékeket gyors frissítéssel egy km óra?Hogyne használtad volna a PWM-et, vagy sose írtál még be egyetlen ledcWrite() parancsot se?
RMT-t meg én nem használtam még direktben sose, csak könyvtárból. RMT-vel hogy csinálnál mondjuk 100 Hz 50% PWM jelet?
RMT bemenetként is érdekelne, állítólag azzal periódusidőt is lehet mérni vhogy. Na ha vmi, akkor az precíz és gyors lenne!Meg most láttam a Technical Reference doksiban, hogy vannak natív Motor Control funkciók is a PWM perifériában ESP32-ben.
Na erről nem is tudtam. Van benne egy Capture Unit is, ami meg beérkező PWM jelet tud mérni, vagy mi a szösz. Ezt megtartom harmadik lehetőségnek, ha a PCNT és az RMT nem válna be. -
Teasüti
nagyúr
Nem. R100 az 100 Ohm. 0R1 lenne a 0,1 Ohm.
Várjunk csak... Jogos, ezt benéztem.
100 Ohm-nál nem lenne R betű.
Részlet kérdés, a tényen nem változtat. -
Teasüti
nagyúr
válasz
Amarton #10201 üzenetére
Mit akarsz mérni amúgy? Mert eredetileg ezt írtad: Egy LED áramot próbáltam mérni.
Utána meg feszültségmérésről írtál.
Azt ugye tudod, hogy áramot mérni soros kapcsolásban lehet? Általános iskola 8. osztályában tanítják a soros és párhuzamos kapcsolást.
Így neked ezt a modult az áramforrás és a fogyasztó közé kell kötni, hogy jó legyen. Vin+ a forrás felé, Vin- a fogyasztó felé.A linkelt képen meg gyönyörű nagy méretben látható az R100. Ez 100 Ohm, nem 0,1.
Rövidzárhoz ez még kicsit erős. -
Teasüti
nagyúr
válasz
Janos250 #10198 üzenetére
Igen.
Hardveres számlálás és szoftveres kiolvasás. Nekem ennyi bőven elég.
Közben átnyálaztam a PCNT driver-t is, hogy milyen függvényeket használ.
A rotary encoderes példa csont nélkül betalált (bár a srác eredeti szándéka szerint nem tudom a rotary encodernél mi az elképzelés a control pin használatára). Összeraktam a saját példámat ez alapján (copy & paste) és kipróbáltam egy PWM csatornára kötve. Szuperül működik.
Azt még nem tudom, a PCNT és az RMT az ugyanaz a hardver vajon, vagy csak a véletlen műve, hogy mindkettőben 8 csatorna van? Azért, mert legalább 6 csatornát használni kívánok az RMT-ből, de lehet mind a nyolcat idővel.Ha már szóba hoztad az RMT-t, akkor kérdeznék:
Szerinted azzal célszerűbb volna frekvencia modulált jelet létrehozni, mint a PWM vezérlővel?
Jelenleg a ledcpwm-et használom erre 50% kitöltéssel és a frekvenciát váltogatom (illetve szeretném váltogatni, de még nem jutottam el a próbáig). Viszont az előzetes tesztjeim szerint a ledcpwm nem igazán működik 0 Hz közelében. Úgy kb 10 Hz volt a minimum, ami jól működött. Nekem meg 0-2000 Hz között kellene PFM jelet csiholnom.szerk: olvastam az a technical reference manual-t. (Ez régen is megvolt már? Asszem most láttam először ezt a doksit.) De nem látom a kapcsolatot a driver-ben használt függvények és a regiszter nevek közt. Mondjuk a pcnt.h fájlnál nem mentem lejjebb, vmelyik include biztos hardver közelibb kódot rejt.
(#10187) ecaddsell
Amúgy köszi a biztatást! Végül csak IDF függvényekkel lett megoldva! -
Teasüti
nagyúr
válasz
ecaddsell #10196 üzenetére
Most néztem át ezt, de ebben nincs megszakítás kezelés.
Itt csak kiolvassa a függvény a számlálót a loop()-ban.
Természetesen már szoftveresen számolom ki a frekvenciát, vagy ezt hogy érted? Ha jól értem ezt a programot a számlálás maga nem szoftveres. Nem változóban számolja a megszakításokat, hanem regiszterben. És függetlenül attól mit csinál a cpu, legalábbis remélem. Ennyiből áll a pulse counting, nem? Vagy van rá hardveres gyorsítás, ahol a pulzusok számából frekvenciát köp ki eredményül? Meglepne...Nem akarom túlbonyolítani a dolgot. Nekem elég annyi, hogy a program blokkolása nélkül tudjon számolni és igény szerint kiolvasni ezt az értéket.
Ezt hogy kell elképzelni? Vmi olyasmi, mint ESP32-nél a tetszőlegesen beállítható GPIO mátrix?
-
Teasüti
nagyúr
válasz
ecaddsell #10187 üzenetére
Na jó, de azért mentségemre szolgáljon, hogy ez amit most találtam kb 30 sor az egész.
Amit te linkeltél, ott az egyikről elképzelésem sincs mit csinál, a másik pedig... Ágyúval verébre.Először hallok erről a VHDL-ről.
Én naiv azt hittem vmi CAD félében terveznek processzorokat...
Soha nem hallottam még ilyen "program" nyelvről.
Akkor te saját microchip-eket tervezel? -
Teasüti
nagyúr
Átírtam neked a programod.
Lefuttatni nem nyilván nem tudom, de ránézésre kb jónak tűnik.
Elvileg bekapcsolásra oda-vissza jár a léptetőmotor (feltéve ha ez a része jól működött az eredeti programnak) és felvillantja a led-et a mozgás végén. Majd két másodperc múlva újra.
Hosszú gombnyomásra megáll és két másodperces villogtatásba kezd, majd 1 perc elteltével újraindul a motor.Amúgy a Stepper.h könyvtár blokkolja a program futtatást, amíg mozgásban van a motor. Vagyis addig nem ugrik a következő sorra, amíg be nem fejezi a mozgást. Ez problémás lehet. Pl. nem tudom ez a könyvtár milyen hardvert használ (Timer, Int, stb.). Ha kikapcsolja a megszakításokat, akkor a millis() nem fog számlálni a motor léptetése közben.
-
Teasüti
nagyúr
Ez így jelenleg halva született. Ennyi delay() mellett nem lehet időt számolni. Ezzel így max billenőkapcsolót tudnál használni, azt nem kell időzíteni. Ha gombnyomást akarsz mérni, ahhoz másodpercenként többször ellenőrizni kell a gombot, vagyis gyorsnak kell lennie a programnak. Ennyi delay()-el 4-5 másodperc legalább, mire egyszer lefut a loop(). A lineáris gondolkodás még hiányzik, de majd kialakul ha megérted, hogy nem muszáj minden egyes ciklusban végigmenni az összes parancson.
Ezért használunk feltételeket, hogy szabadon ki-be ugrálhassunk az elágazásokba. Így lehet, hogy egy If parancs csak minden századik ciklusban fut le. Vagy ezredik. Vagy százezredik... Ha millis()-el időzítesz, akkor eltelt időt számolsz milliszekundumokban. Ezt feltételben vizsgálod, hogy igaz-e a reláció:if (millis() > temp + 1000) { }
. Ideális esetben nincs megakasztva a program ennyi delay-el és mire teljesül pl. az 1000 ms várakozási idő, addigra akár sokezerszer ismétlődhet a loop(). Futhat akár üresen, ha egyik elágazásba (feltételbe) se ugrik bele, vagy csinálhat addig akármi mást is. -
Teasüti
nagyúr
válasz
Teasüti #10184 üzenetére
Viszont ezt kipróbálom. Holnap. Mert a mai estém teljes egészében sz.pással és kutatással telt...
-
Teasüti
nagyúr
válasz
ecaddsell #10183 üzenetére
Hát mondjuk megszakítást használni és programból számolni. Az szoftveres és sokat elvesz a cpu időből, ha nagy a frekvencia.
Értékelem a segítséget, de sajnos nem tűnik számomra használhatónak egyik sem.
Az első az ESP-IDF-hez íródott, miközben én Arduino IDE-ben vagyok.
A második meg egyáltalán micsoda? Nem fogom tudni visszafejteni azt a kódot, ahhoz túl nagy és bonyolult.
Főleg, hogy egy rakás hardver közeli függvényt hív be, amikről fingom sincsen.Vmi Instructables.com színvonalú példa nincs véletlen? Én nem találtam...
-
Teasüti
nagyúr
válasz
vargalex #10179 üzenetére
Vagy ha úgy érted, hogy a Motionapps20 header fájlból van-e több példány is, akkor igen. Van egy módosítatlan a könyvtárban és a módosított meg a program mellett. De nem gondolom, hogy ez probléma lenne. Ha nem a program mellettit töltené be, akkor nem az osztályra dobna hibát, hanem sok másra.
Meg a példában simán lefordul így. -
Teasüti
nagyúr
válasz
vargalex #10179 üzenetére
Azt a header fájlt egy az egyben másoltam át a példából. Az alap könyvtár meg nincs módosítva.
-
Teasüti
nagyúr
Nyomógomb épp most volt terítéken nálam, itt egy konkrét példa.
Az utolsó oldalon láthatod a teljes kódot, amiben benne hagytam egy már nem használatos részletet is, ami a nyomvatartást kezeli.
Ha további magyarázatra lesz szükséged, írj bátran!(#10176) Imy
Itt némi zavart érzek az erőben. Miért szeretnéd leállítani a loop()-ot? Ha azt megállítod, akkor csak reset után fog újraindulni a program. Amúgy ki tudsz lépni belőle egy simareturn;
paranccsal, de innentől megáll működni a processzor. Ha egy feltételes várakozás kell (feltételes program stop, ha ez ismerős), akkor azt csinálhatod egy while ciklussal, ami végtelenül fut amíg nem teljesül a feltétele. De ezekre igazán semmi szükség, hisz maga a loop() is végtelenül ismétlődik, viszont ha a gombnyomásodtól függően indítasz el feltételeket, akkor megcsinálhatod úgy, hogy egész egyszerűen átugorja a parancsokat az if-ben egészen addig, amíg nem teljesül vmeyiknek a belépési feltétele. Ilyen formában nem áll meg a program működése, mégis kvázi üresen fut a loop().(#10170) ecaddsell
Pulse counter kellene frekvencia méréshez. Hardveres lehetőleg. És Arduino IDE-ben.(#10171) vargalex
Igen, természetesen. A működő példaprogramból emeltem át a szükséges sorokat egy az egyben, természetesen a helyüknek megfelelő sorrendben elhelyezve.
A második fülön lévő header fájl hívja meg az MPU6050.h könyvtárat, amiben meg definiálva van az MPU6050 osztály. Ez így ebben a formában simán lefordul a párhuzamosan megnyitott példaprogramban. Ötletem sincs itt miért nem. -
Teasüti
nagyúr
Kérhetnék egy kis segítséget a PCNT-vel ESP32-n? Nem találok egyetlen egy példát sem.
-
Teasüti
nagyúr
Ahogy nézem a gomb kezelésed még nagyon-nagyon primitív. Volna egy erős gyanúm, hogy ez kb az első programod lehet és nem foglalkoztál még túl sokat a témával.
Jelenleg csak annyit csinálsz, hogy lefut az első feltétel ha nyomod a gombot és a második, ha nem.
Ez sajnos még elég messze van a kitűzött céltól, de ajánlanék egy tutorialt, ha megy az angol. Ez egész jó bevezetőnek tűnik az időzítő használatába.
A goto-ra meg nem lesz szükség. Mivel a loop() végtelen ciklusban fut, ezért felesleges vissza-vissza ugrálni a kódban, mivel úgyis kezdi elölről. -
Teasüti
nagyúr
Szép estét!
Van itt aki több fülön ír programot? Előfordult már olyan, hogy nem találta a program a függőségeket és hiába rakom be akár a program mellé a referált könyvtárat, egyszerűen nem látja és hibát dobál a típus definiálásakor.
Próbáltam <> és "" jelekkel is behívni a könyvtárt, sikertelenül.
A program legelső fülén (a fő fájlban) konkrét példaként szerepel egyMPU6050 mpu;
sor. Ez az osztály az MPU6050.h fájlban van, amit betettem a program mellé. Meg is nyitja a többi füllel együtt, és rohadt idegesítő, hogy egy kattintásra van az osztály a definíciótól, mégis 'MPU6050' does not name a type hibát dob.Van vkinek bármi elképzelése miért?
-
Teasüti
nagyúr
válasz
llacee #10087 üzenetére
Van ilyen topikunk, ahol imádják a Sonoff hack-elős és msqtt/domoticz szerveres kérdéseket. Ott nem tudnak segíteni?
-
Teasüti
nagyúr
válasz
zsolti_20 #10079 üzenetére
A fénytanokhoz sajnos nem konyítok sokat, de az egyértelmű a doksiból, hogy igen is és nem is.
A három alapszín fényerejét méri és egy színszűrő nélküli csatornát referenciának. Így, h fekete szín, arra csak a fény hiányából lehet következtetni. Ha a szenzoron van világítás (általában ilyen szenzorokra szoktak rakni egy magas CRI mutatójú ledet) és van egy sztenderd megismételhető mérési módszered, amiben kiszűröd a külső zavaró tényezőket, akkor ki tudod kísérletezni a fekete színt mérésekből (ezeket az eszközöket kalibrálni szokás). A fehér szín talán egyszerűbb, az gondolom látszik a frekvenciából ha kb egyenlő mértékben szaturálnak a színek. Bár fingom sincs hogy kell értelmezni a jelet, amit ez a szenzor küld. -
Teasüti
nagyúr
Szintillesztésre én mosfet-eket használok egy marék felhúzóval. De a szintillesztett áramkör is open-drain módban működik. Ha találsz vmi kézzel beültethető olcsó IC-t aminek kisebb a footprint-je mint egy sot-23 fet és mellé két 0805-ös ellenállás, akkor írd meg kérlek!
-
Teasüti
nagyúr
A felhúzót olvastam én is. Akkor a gyári 5v és a 3.3 output közé teszek egy 10K-t és utána a kimenő jelem 5V? Így kell érteni?
Igen. De azért méretezd max pár mA-re, hisz 6 mA-t ír a portokra!
Meg a biztonság kedvéért én open-drain módban használnám a portot: INPUT (külső pullup) és OUTPUT LOW módban. Nem tudom mi történne, ha egy OUTPUT HIGH-ra kapna visszirányú áramot. -
Teasüti
nagyúr
Nekem tetszik, nem nagyon van ilyen éles használatra előkészített megoldás a piacon gyári burkolattal.
Viszont nem látom rajta az USB portot, ezért azért nagy kár.
Meg kíváncsi lennék hogyan oldották meg az EMI és ESD védelmet. Aligha beszélhetünk ipari megoldásról ezek hiányában.Ebben a cuccban egyedül az 5v io hiánya bosszant. Mostanában errefelé megy a mikrokontroller világ? Előbb utóbb 3.3 voltra vált az egész?
32 biten már nincsenek 5V-os processzorok. Viszont 5V toleráns és felhúzóval megoldható az 5V-os kimenet, ahogy azt írják is.(#10011) Amarton
Akril: jó időjárásállóság, bírja az UV-t, a magas hőmérsékletet és ellenáll a legtöbb vegyszernek. Mechanikailag nem kiemelkedő, az ütőmunkája kisebb, viszont jellemzően vastagabbra készítik, emiatt nehezen törik.PVC: szintén jó UV állóság, jó kémiai stabilitás, emiatt lassan öregszik. Szívós és erős anyag, mérsékelten tűzálló és jó elektromos szigetelő.
-
Teasüti
nagyúr
válasz
kbhuinfo #10006 üzenetére
Megpróbáltad leválasztani az összes egyéb eszközt - ha van - és csak az esp-t és a modult beüzemelni?
Az ESP 5V vagy 3V lábáról (LDO-nak bírnai kell) megtáplálni a modult. Így a feszültségek tuti jók, hisz ugyanarról megy a vezérlő is.
Amúgy úgy méred, hogy a vezérlővel össze van kötve, vagy méréshez leválasztottad az ESP-ről? Ha utóbbi, akkor a vezérlő húzza le GND-re. Akkor viszont még a szoftver is kérdőjeles.(#10007) Amarton
Az, h "jobb", az elég relatív. Milyen tulajdonságban jobb? -
Teasüti
nagyúr
válasz
kbhuinfo #9998 üzenetére
Ha csak ujjal hozzáérsz a modul lábaihoz, akkor történik vmi?
"Ha külső áramkör csatlakoztatásakor megfelelően működik" jelenségek általában vagy föld probléma, vagy interferencia. Mondjuk összeszed vmi zavart a vezetékeken, vagy gerjed, stb. Ha oszcilloszkóppal történne ez, akkor egyszerű lenne a megoldás: egy bypass kondi éppúgy, mint a szkóp szondáiban. De multiméternél én speciel nem tudom milyen bemeneti fokozat van és az milyen hatással van a mérendő áramkörre.Számít az is milyen hosszú és mekkora vezetékkel van összekötve az EPS-vel. Árnyékolt-e a vezeték. Mekkora áramfelvétele van: ha nem mA-es nagyságrendről van szó, akkor feszültségesésre kell méretezni a vezetékeket, mert nagyobb távolságnál kialakulhat eltérő potenciál a tápon (gnd-t is beleértve). GND mindenképpen legyen közösítve a vezérlő és a modul között (ha esetleg nem a vezérlő táplálná a modult), különben nem jó a jel feszültségszintje.
-
Teasüti
nagyúr
Üdv!
Ismertek olyan boltban kapható fényerő szenzort, rotary encodert és mozgásérzékelőt, amik burkolattal rendelkeznek - ergo alkalmazásra készek - és 5V-on működnek?
Köszi! -
Teasüti
nagyúr
válasz
Janos250 #9518 üzenetére
Az egyik eszköz órajele megy át zavarként a másik eszközre? Jól értem?
Igen, ez volna a lényeg. Én csak a ferrit gyűrűkről olvasgatva találtam megemlítve egy cikkben, de végülis logikus. A processzor tápigénye is ingadozik attól függően, ahogy kapcsolhatja mondjuk a perifériákat. Ez végső soron egy tápszaggatásban nyilvánulhat meg - még ha mV-os nagyságrendben is -, a processzor órajelével megegyező frekvencián. Ez zavarként jelentkezhet az áramkörben.
Aztán ha elképzelünk egy komplexebb alaplapot, akkor már érthető miért van szanaszét szűrve ezernyi kondival. -
-
Teasüti
nagyúr
válasz
Janos250 #9505 üzenetére
Ezt mire szeretnéd? A modulon a kupak alatt elvileg ott vannak a tápszűrő kondik, ha amiatt kérdezed.
Amúgy max feszültség szerint elvileg jó. Viszont ha a fesz. stab elszáll és megkapja a nagyobb feszültséget, akkor szikrafelhő lehet belőle.
Amúgy vajon mennyire fontos, hogy tantál legyen? Én pl kizárólag kerámia kondikkal szereltem az összes PCB-t. Tudom elvileg a tantál kicsit hatékonyabban szűr adott frekvenciákon, de a gyakorlatban ez vajon fontos különbség? -
Teasüti
nagyúr
válasz
szuszinho #9475 üzenetére
Első találat, részlet az SSR wikipedia cikkéből:
"Advantages over mechanical relaysMost of the relative advantages of solid state and electromechanical relays are common to all solid-state as against electromechanical devices.
-Inherently smaller and slimmer profile than mechanical relay of similar specification, allowing tighter packing. (If desired may have the same "casing" form factor for interchangeability.)
-Totally silent operation.
-SSRs switch faster than electromechanical relays; the switching time of a typical optically coupled SSR is dependent on the time needed to power the LED on and off - of the order of microseconds to milliseconds.
-Increased lifetime, even if it is activated many times, as there are no moving parts to wear and no contacts to pit or build up carbon.
-Output resistance remains constant regardless of amount of use.
-Clean, bounceless operation.
-No sparking, allows it to be used in explosive environments, where it is critical that no spark is generated during switching.
-Much less sensitive to storage and operating environment factors such as mechanical shock, vibration, humidity, and external magnetic fields.Disadvantages
-Voltage/current characteristic of semiconductor rather than mechanical contacts:
When closed, higher resistance (generating heat), and increased electrical noise
When open, lower resistance, and reverse leakage current (typically µA range)
-Voltage/current characteristic is not linear (not purely resistive), distorting switched waveforms to some extent. An electromechanical relay has the low ohmic (linear) resistance of the associated mechanical switch when activated, and the exceedingly high resistance of the air gap and insulating materials when open.
-Some types have polarity-sensitive output circuits. Electromechanical relays are not affected by polarity.
-Possibility of spurious switching due to voltage transients (due to much faster switching than mechanical relay)
-Isolated bias supply required for gate charge circuit
-Higher transient reverse recovery time (Trr) due to the presence of the body diode
-Tendency to fail "shorted" on their outputs, while electromechanical relay contacts tend to fail "open"." -
Teasüti
nagyúr
válasz
Janos250 #9468 üzenetére
Adatlap 1.4.3 bekezdésében szerepel, valamint az 1.6 bekezdésben lévő blokk diagramban. Viszont nem tárgyalja sehol az adatlapon.
Valamint van egy szép hosszú topik az Espressif oldalán róla.
Ezen kívül neten találni hozzá lib-et is és egy-két példát is. -
Teasüti
nagyúr
Elvileg CAN 2.0 vezérlő be van építve, a funkcionális blokk diagramjában is látható. Viszont nem foglalkozik vele a kézikönyv. Neten meg pár példán és lib-en kívül kb semmit nem találtam.
Espressif fórumán foglalkoznak vele, de ott még nem tartok, hogy átnyálazzak egy egész topikot. -
Teasüti
nagyúr
USB-t nem ismerem igazán, csak töltő erejéig foglalkoztam vele. Nem tudom milyen adatátviteli módjai vannak és azok milyen fizikai rétegben történnek. D+ és D- ágakról is csak azért tudok, mert tudnom kellett a feszültség szinteket a töltés vezérléshez.
Például fel lehet fűzni több eszközt egyetlen adatbuszra úgy mint I2C-nél és CAN-nél? Vagy az USB csak point-to-point működik? Nyilván nem fogok/akarok/tudok kihúzni egy-egy ágat minden eszközhöz.
Jah és nincs USB vezérlő a kontrolleren míg CAN vezérlő az elvileg van, ez mondjuk elég nyomós indok.
Meg CAN buszos mikrochip-eket szerintem könnyebb találni (pl. GPIO expander-t fél perc alatt találtam), mint natív USB-s mikrochip-eket. -
Teasüti
nagyúr
Jelenleg úgy néz ki a dolog, hogy I2C-re lesz felfűzve az ESP32, két-három Attiny85, I2C szenzorok és egy kijelző. A motoron nincs CAN busz gyárilag, így csak a saját rendszeremet szolgálná ki.
Azt még nem tudom az I2C eszközöket hogy lehetne megoldani, de ahogy nézem már az ESP32-n se olyan egyszerű az élet. Datasheet-ben pl egy árva szót sem szólnak róla. -
Teasüti
nagyúr
válasz
Tankblock #9448 üzenetére
Jól értem, hogy a CAN busz olyasmi, mint az USB? Egy csavart érpár, ellentétes fázisú jelátvitellel.
Így már értem miért alkalmazzák előszeretettel autós környezetben.
Én I2C köré terveztem a rendszert, de ha nem válik be akkor áttervezem CAN buszra.
ESP32-n ha minden igaz, akkor a CAN buszt rá tudom rakni az I2C által használt lábakra is szerintem, ez talán nem lenne gond. És akkor a motort be lehetne húzni sztenderd USB kábellel.Gyors keresés után látom vannak CAN buszos GPIO expander chip-ek is.
Viszont ismertek olyan Attiny85-höz hasonló olcsó kontrollert, ami CAN buszos (és Arduino IDE-ben programozható természetesen)?Picike méret és 4 GPIO. Mondjuk vmi SOP8-as tokozásban?
szerk: óóó ácsi-ácsi. I2C eszközöket viszont nem fogom tudni felfűzni CAN-re.
-
Teasüti
nagyúr
Ez a sztenderd bekötése a nyomógombnak. Azért nem lehet csak egyszerűen a nyitott/zárt áramköri kapcsoló példáját alkalmazni, mert nyitott állapotban a GPIO "lebeg" és bármilyen random értéket felvehet a zajtól függően. Ezért a GPIO lábakat fixen fel/le kell húzni Vcc-re/GND-re.
Ezért látsz egy felhúzó ellenállást 5V-ra, amit a nyomógomb lehúz GND-re. Rövidzártól nem kell tartani, egy 10k-s felhúzóval kb 0,5 mA áram lesz levezetve GND-re gombnyomás esetén. Ha meg nem nyomod a gombot, akkor meg még ennyi áram se lesz, mivel a GPIO bemenet úgy tudom MegaOhm nagyságrendű.Az meg hogy alapból fel vagy le van húzva, az szinte mindegy. Van aki inkább GND-re húzza a gombokat alapból, hogy ne legyen feszültség alatt az áramkör, csak a gombnyomás idejére. Na nem mintha 5V 0,5 mA olyan nagy kárt tudna tenni bármiben.
-
Teasüti
nagyúr
válasz
Janos250 #9445 üzenetére
Nyomtattam. Venni nem könnyű saját logóval a tetején.
De még elég kiforratlan a dolog, nem túl jó minőségű.
(#9444) xboy89
0805 méretben rendeltem mindent szinte.
De ahogy elnéztem a gyakorló nyákon, a 0603 sem akkora nagy kihívás. Alap páka heggyel is ment.
Viszont nem nyerek vele sok helyet a 0805-höz képest, ezért nem is erőltettem.
Ha reflow kemencés gépi beültetés lenne és SMD clearance távolságra lehetne elhelyezni őket (egymástól kb 8 mil) csökkentett footprint-en, akkor azt mondom oké, de hobbi szinten még a footprint-ben sincs nagy különbség. -
Teasüti
nagyúr
válasz
Tankblock #9442 üzenetére
A kimeneteken tranyók vagy mosfetek vannak. A bemeneteken mosfetek. Az analóg az egyetlen, amit egyszerű ellenállásosztóval készítettem. De arra nincs is jobb módszer tudtommal. Mit értesz az alatt, h tönkreteheti? Nem optimális működést vagy meghibásodást? A digitális jelszintek miatt nem aggódok. A bemenetek zener-rel védve vannak, ahol indokolt. A fet-es szintillesztéseknél meg a modul saját tápját kapcsolom. A táp meg mindenhol szűrve van.
A gyroszenzort szerintem be fogom forrasztani fixen. A female tüskesor tényleg elég laza. Illetve még azon filóztam, hogy a doboz tetejére csavarozom és a tetejével együtt kerül csatlakoztatásra.
-
Teasüti
nagyúr
Az egy 5V-os chip és a devkit nyákterve alapján csak 5V-ról kap áramot (usb vagy külső stabilizált táp). Ha áramtalanítani akarod, akkor 3V-ról kell betáplálni a modult.
Egyébként magát az IC-t lehetne altatni, de nem értem a nyákterven hova van kötve az a láb. Vmi "active" net label van rajta, de nem látom sehol máshol ezt a címkét. Lehet fixen fel/le van húzva.
-
Teasüti
nagyúr
Nem kell tranzisztor, ezért vettem programozót. Azon rajta van minden kiegészítő áramkör, ami egy devkit-en is rajta van. Viszont akkor kell rá tervezned legalább egy mikrokapcsolót az IO0-ra (de inkább még egyet az EN lábra a reset-hez, különben kapcsolgathatod a tápot), különben gyakorlatilag nem fogod tudni download módba tenni.
-
Teasüti
nagyúr
RX, TX, IO0, EN, Vcc, GND.
Már ha kell az auto download. Kézi reset esetén az EN és IO0-ra nyomógomb kerül ugye.Igen, nálam még van itt egy kis extra - bár nem hiszem, hogy látszik a képen. UART0-ra csatlakozik ugyanis a gps modul is majd normál üzemmódban. (Majd idővel ha eljutok odáig, akkor kikísérletezek egy bluetooth programfeltöltést a gps modulon keresztül. Az úgy sokkal kényelmesebb lesz, mint vezetékezni állandóan.)
-
Teasüti
nagyúr
válasz
Janos250 #9398 üzenetére
Komolyan? Pedig Arduino IDE-ben is ez az alapértelmezett. Nekem sose volt gondom vele még, pedig nem Juicebit kábellel programozom.
Amúgy tudtátok, hogy bekerült az alaplapkezelőbe az ESP32 Arduino core? Már nem kell kézzel telepíteni, elég csak hozzáadni a Github repo linkjét az IDE-hez.
-
Teasüti
nagyúr
válasz
ecaddsell #9392 üzenetére
Ezt egy kicsit túlgondoltad.
Arra, hogy a terepen gyorsan ránézz vmire, arra jó. Kiegészítve egy multimétert. Én a motorom tach, speed jelét vizsgáltam vele és teljesen jó. Meg a legtöbb Arduino projekthez is használható mikroszekundumos nagyságrendig.Nincs FFT, nincs dekódolás, meg semmi ilyen csili-vili dolog, de könyörgöm mit vársz egy pár dolláros kacattól??
200 kHz a mintavétel sebessége. Felfutó vagy lefutó élre trigger-el. És tud alap méréseket, mint max/min/avg, frekvencia, kitöltési tényező, stb. -
Teasüti
nagyúr
Nekem van egy ilyen 200 kHz-es amit linkeltél, és van egy Hantek 6022BE usb-s szkópom is ami 48 Mhz-es mintavételezést tud. A DIY szkóp tök jó mobil cucc, kicsi és viheted ahova akarod. Ha vmire gyorsan rá akarok nézni, multiméter mellé jó párosítás. De azért egy WS2812B jelet már alig-alig lehet értelmezni vele. Vagyis értelmezni lehet, de a jelalakot már nem nagyon látod, ahhoz kicsi a mintavételezése. Ha jól emlékszem, akkor 10 uS a legkisebb egység az idővonalon. A nanoszekundumos jelekhez már mindenképpen komolyabb eszköz kell. Ez az usb-s szkóp azért még mindig elérhető áron van a hobbistáknak is. Vmi 50 font körül fizettem érte anno, ami töredéke egy komoly asztali oszcilloszkópénak.
De persze nem is olyan kényelmes a használata, kell hozzá egy PC/Laptop és bugdácsolhatsz a kábelekben. -
Teasüti
nagyúr
Az alsó réteg egy komplett GND plane, a csatlakozó felöli végétől a modul hűtúfelületéig - az antennát viszont a lehető legnagyobb távolságban elkerüli mindenféle vezetősáv. Felül csak azért van behúzva, hogy azokat a lábakat is és a hozzájuk kapcsolódó alkatrészeket átvezessem alulra egy via-val.
(#9358) mArZsi
Paszta.Fura, mert angolul is keverik a flux-szal. Solder pasta név alatt fut a lágy ón és a folyasztószer is.
-
Teasüti
nagyúr
Köszi! Hát, 10 darabot rendeltem mindenből. Ha egyszer összeáll a projekt, akkor elgondolkodok majd rajta hátha másnak is volna igénye hasonlóra.
Jut eszembe: autószelepes keréknyomásmérőt nem ismer vki véletlen, amit lehet használni Arduino-val? TPMS szenzor a becses neve. Vmi gyári jeladó kéne, csak a jelvevő lenne Arduino.
-
Teasüti
nagyúr
válasz
Tankblock #9354 üzenetére
Ilyen úri huncutságok nekem nem voltak. Alap heggyel forrasztottam eddig gond nélkül, amit adnak a pákákhoz. Ónból se tudtam, h van több átmérő. Amilyet éppen sikerült venni, azzal dolgozok.
Levegős forrasztóból meg a Yihua cuccai jók. Nekem ezt ajánlották legalábbis ebben az árkategóriában a hobbi elektronika topikban. Én egy 853D-t vettem, nagyon patent, minőségi érzetet kelt.
Attól nem tartok, hogy kínai. Olyan súlya van a DC tápegység miatt, amit egy valamire való hifi erősítő is megirigyelne.
De ha tartasz tőle, akkor bele kell nézni minden jó-e, feszes-e! -
Teasüti
nagyúr
És a szörny életre kelt!
Igazából nem arra számítottam, hogy működni fog.
Megy a feltöltés, fut a program meg minden.
Ha megsérült a modul, az hogy derül ki?Amúgy sikerült beforrasztani az alját.
Lágy ónnal és levegővel alulról melegítve.
Eléggé felforrósodott szinte az egész lap, eltartott vagy jó 20 másodpercig, mire a "zsír" megolvadt.
Reméltem nem égettem el, de eddig minden jó.A forró levegős forrasztóállomást nagyon tudom ajánlani mindenki figyelmébe, aki IC-ket és SMD alkatrészeket ültet be! Isteni dolgozni vele, játszi könnyedséggel kerül minden a helyére. (Kivéve amikor nem: mikor a 0805-ös ellenállás dobott egy szaltót, ahogy a zsír vmiért csak az egyik végére húzodott, na ott azon meglepődtem. Jött ki a szemem, mint a csigának, hogy na most mi van.
Aztán rájöttem, hogy áthúztam a zsírt a két vége közt és ilyenkor hajlamos oda húzodni az anyag, amelyik vége elöbb megolvad. Érdekes jelenség.)
-
Teasüti
nagyúr
Gondolom a hardver specifikus lib-ek nem fognak futni hardver nélkül.
A legszembetűnőbb különbség talán universal serial interface használata.
Ezekhez kifejezetten erre a procira való könyvtárakat kell használni.Amúgy minden egyéb platform független kód ami az Arduino framework-ből származik, az nyilván lefordul.
-
Teasüti
nagyúr
válasz
Melorin #9331 üzenetére
Nézd meg a távirányító milyen kódot küld nyomva tartás esetén! (írasd ki Serial monitorra!) Nekem eddig egyszer volt dolgom infrával, ott a távirányító csak egyszer küldte ki az adott gombhoz tartozó kódot. Ha nyomva tartottam, akkor már nem ismételte tovább, e helyett magának az ismétlésnek volt egy külön kódja, ami egységes volt a teljes billentyűzeten. Ehhez nekem állapotgép kellett, ami eltárolta a gomb azonosítóját, majd ismételte a parancsot, amíg kapta az ismétlő jelet. Delay nem kell ide.
-
Teasüti
nagyúr
Használ itt vki PlatformIO-t? Érdemes váltani rá Arduino IDE-ről? Mit lehet nyerni vele? Vmi extra funkcionalitás?
Első ránézésre csak a komplikációkat látom a profi fejlesztőkörnyezetekben. -
Teasüti
nagyúr
Tényleg érdekes technológia lehet, ha nem kell hozzá semmi (nem lehet, hogy a 3D nyomtatáshoz hasonlóan nyomtatják?)
Biztos, hogy nem!Látszik a nyákon, hogy forgácsolással vágják és fúrják. Mondjuk kíváncsi lennék mennyi 0,2 mm-es (a legkisebb lyuk méret) fúrójuk törhet el ezekben a hangyapiszok méretű furatokban.
Inkább csak arról lehet szó, hogy iszonyú olcsó nekik vmiért az 1,6 mm-es zöld, két rétegű nyáklap. Lehet úgy lopják, passz.Viszont ha bármi nem sztenderd opciót kérsz, akkor azokat többszörös áron számolja fel.
-
Teasüti
nagyúr
válasz
gyapo11 #9307 üzenetére
És ami ennél is jobb, hogy az első 5-10 darabos tétel általában 2$, minden további tétel 5$ (max 10 darabig).
Van viszont méret korlát, az ilyen kis tenyérnyi lapok olcsók, viszont a nagyobbakat már normál áron kalkulátor számolja. Mondjuk az sem vészes, az 55x170-es féklámpám volt vmi 12$ körül, ha jól emlékszem. -
Teasüti
nagyúr
[JLCPCB dicséret]
14.-én adtam le egy rendelést és ma hozta a postás. Nagyon gyorsak, és precíz munkát végeznek és olcsók. Fél dollár ezeknek darabja.(10 db-os tételben.)
[/JLCPCB dicséret] -
Teasüti
nagyúr
válasz
zapikanka #9295 üzenetére
Passz, Tényleg ezer féle van.
Arduino starter kit a kulcsszó.
Én olyat vennék amiben adnak egy Arduino Uno-t vezérlőnek, hisz erre épül a tutorial-ok kb 95%-a. A körítés meg kb mindegy, amelyik szimpatikusabb. Ha tudod mivel szeretnél foglalkozni (lcd kijelző, érzékelők, motorok, toronyóra aranylánccal, stb.), akkor olyan készletet keress amiben ez benne van!Dupont jumper vezetékek is kelleni fognak (apa-apa, apa-anya), nem baj ha adnak hozzá. Jah meg alapvető elektronikai alkatrészek legyenek benne, mint ellenállások, diódák, gombok, kondenzátorok, stb.
-
Teasüti
nagyúr
válasz
zapikanka #9292 üzenetére
Az első az eredeti. A második nem tudom micsoda, ilyen összeállításban még nem láttam. Lehet kapott egy frissítést a csomag.
Akkor tudom ajánlani ezeket, ha semmit nem értesz az elektronikához. Ha tudod mi az az áramkör, soros/párhuzamos kapcsolás, tudod mi az az Ohm törvény és ismered Kirchhoff tételeit, akkor nem vennék eredeti kezdő csomagot. (Persze lehet támogatni az alapítványt.)
E helyett inkább Ebay-ről lőnék egy készletet töredék áron.
Neten meg van kismillió tutorial. -
Teasüti
nagyúr
Nem tartom valószínűnek, szerintem teljesen mindegy mikor olvasod ki azt a két bájtot - azok el vannak tárolva, amíg felül nem íródnak. Ha csak olvasási hiba lenne, esetleg menet közben kerül felülírásra, akkor ez egyszeri eset lenne és nem állna le az adatbusz sem.
A következő lépés szerintem mindenképp az anomália megmérése. -
Teasüti
nagyúr
válasz
Janos250 #9283 üzenetére
Pedig nekem Uno-n is volt gondom a Wire könyvtárral, gyakorlatilag ugyanazt produkálta, mint itt ebben az esetben: egy idő után egyszerűen leállt a busz működése. Csak a reset segített rajta.
3rd party I2C könyvtárral zökkenőmentesen működött ugyanaz a kód.
Ez úgy két éve volt, azóta úgy vettem észre javítottak a Wire-n.
Egy ESP implementációnál meg ki tudja mit rontottak el és hol.Ezért kéne ránézni a buszra, amikor ezt produkálja.
Ha csak a nagy csend van akkor tudjuk, hogy kód hiba. -
Teasüti
nagyúr
Nem tartom valószínűnek, h összeakadnak a folyamatszálak. Arduino-ból kiindulva esélyesebb, h az I2C könyvtár bénázik el vmit, egyáltalán nem lepne meg.
Meg kéne nézni a busz forgalmát, h tudjuk mi történik.Ha az általad javasolt szerint, mindent áttennék core 1-re, mivel ugye minden ciklikus, akkor a core 0á-n semmi se lenne
Tévedés. Azon fut a FreeRTOS, meg az összes periféria mint írtam volt. Miért érzed szükségét multitask programot írni? Ha le tudod programozni lineárisan (és Arduino főként erre épít), akkor miért akarod szívatni magad több szálas kóddal? Nem tűnik indokoltnak erre a feladatra.Vagy esetleg csináljam azt, hogy core 1-en futtassak egy task-ot, ami ütemezi a core 0-án a taskokat, amiket 1x meghívok, majd törlöm? Így is ciklikus lesz, de task szempontból 1x fut csak le.
Én így programozom. Nekem így tűnik logikusak. Mivel a nulladik magon nem szabad blokkolni, ezért célszerű minél rövidebb kódokat idehelyezni. Vagy ami ritkán fut le, pl megszakításra csak rendszertelen időközönként. Olyat ami mellett sok üresjárat van. Amit egy magos procinál megszakítással kezelnék, azt itt a nulladik magon párhuzamosítva.Ennél jobban nem igazán használom ki.
Meg én nem is akarok nagyon belemászni a párhuzamosításba. Én inkább csak két egymástól független kódot választanék külön, amik teljesen különböző erőforrásokhoz férnek hozzá. Pl amit én bütykölök: motorkerékpár perifériái egymástól függetlenül működ(het)nek, van úgy 5-6 jól elkülöníthető feladat, amik ugyan használhatják ugyanazokat a szenzoradatokat, de a logikájuk egymástól teljesen független és így adja magát a párhuzamosítás. Mondjuk történik egy megszakítás amikor rálépek a fékre és ez meghív egy függvényt, ami külön folyamatként fut le a nulladik magon, aztán törlődik.
De semmi köze ahhoz a folyamathoz, ami mondjuk a ledszalagokat kezeli. Ez meg egy viszonylag számításigényesebb feladat, egy primitív grafikus motor dupla pufferes futószalaggal és FPS-ben mérem a futási teljesítményét. Ez az első magon fut.
Ebből jól látható, hogy a nulladik magot én a gyors reakcióidejű rövid kódokra használom, az első magot meg a hosszabb, nem időkritikus műveletekre. -
Teasüti
nagyúr
Elolvastam ötször egymás után, de még mindig nem értem pontosan mire akarsz kilyukadni.
CPU0-n fut az oprendszer, ha úgy tetszik. CPU1 meg malmozik, ha nem írsz rá programot. Arduino alatt a loop() fut rajta végtelen ciklusban - akkor is, ha a loop() üres.
Ha szinkronizálni akarod a folyamatokat akár a két mag között, akkor azt így lehet megoldani.Amúgy én a nullás magra nem raknék ciklikusan futó kódot, csak olyat ami meghívásra egyszer fut le.
Minden ciklikus folyamat meg mehet az egyes magra, ott legfeljebb csak a watchdog hisztizik ha blokkol a kód.
Persze ha nincs szükség kifejezetten mindkét mag számítási kapacitására, de adatfeldolgozásra meg nem mikrovezérlőt használnék. -
Teasüti
nagyúr
válasz
ZTE_luky #9257 üzenetére
Nem úgy volt, hogy ez fali dísz lesz és a falra deríti a fényt?
Így ezzel a diffúzorral nekem annyira nem adja.
Ezt a dobozt ennél egyszerűbben is meg lehetett volna építeni ugyanehhez a hatáshoz. A diffúzor miatt lényegében közvetlen megvilágításban is működhetne, 2-3 sor szalaggal. A rácsot meg nyomtattam volna. -
Teasüti
nagyúr
válasz
JAGER 10 #9246 üzenetére
A 2A a névleges terhelhetősége a TMC2130-as vezérlőnek, de pl. ahogy a videóban is láthattad ezekkel a technológiákkal a terhelés függvényében változtatja az áramot, és 2,5A-ig túl is tudja vezérelni ha muszáj. Mondjuk itt már hűteni kell a vezérlőt, minimum egy hűtőbordával.
Új hozzászólás Aktív témák
Hirdetés
- Remek áron Lenovo Flex 5 14 laptop/2in1/Touch/Ryzen i5-1135G7/8GB/512 GB SSD/14"/Gari
- Exclusive ajánlat! Dobozos új LG GRAM /13. gen i7-1360P/32GB RAM/512GB SSD/14"COL/FHD+/IPS/Garancia/
- Pénztárcakímélő áron eladó HP Pavilion laptop/I5-1135G7 8GB 256SSD 13" FHD IPS Gari
- Samsung Galaxy Book 3 /i5-1335u/8GB/512SSD/FHD/Garancia/ 6 napot ment eddig összesen
- Xiaomi Redmi Note 14 Pro Plus 12/512GB Újszerű,Dobozos,Kétkártyás 1év Garanciával!
- Bomba ár! HP ZBook Studio G5 - i9-9980H I 32GB I 1TSSD I Nvidia I 15,6" FHD I Cam I W11 I Gar
- AKCIÓ! ASRock Z390 i7 8700K 32GB DDR4 500GB SSD RTX 3050 8GB Zalman i3 Edge Seasonic 650W
- Samsung Galaxy S25 Ultra 1TB, Kártyafüggetlen, 1 Év Garanciával
- 0% THM 3 havi részlet! Beszámítás, 27% áfa, Sapphire Nitro+ RX 9070XT 16GB készletről
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest