-
PROHARDVER!
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
-
-
Postas99
őstag
Nem én csak lefotóztam őket, de sok jó dolgot láttam, amúgy is imádom a cosplay-eseket. Szimpla látogatóként mentem a kiállításra. Akik jöttek fotózkodni hozzám a bámészkodáskor és a legtöbb kipakolós helyen (mindenhol) ahol beszédbe elegyedtem legtöbben azt hitték, hogy valahonnan vettem a babát és ilyenkor jött, hogy ez saját cucc mindent is magam csináltam alkatrészekből és még délelőtt 10 órakor nem volt még összeszerelve a koponyája, ugye az összes cuccot oda zsúfoltam be. A testére meg tape-el rá volt rögzítve az akku pakk mint egy terroristának a mellény. Ezeket a kulissza dolgokat nem mondtam el, hanem csak a szemekről magyaráztam, hogy milyen nehéz ezeket mozgatni, meg a sokadik megrendelésnél kaptam olyan szemeket amik átengedik a fényt...
Aztán valamikor beszéltem a szervezővel is, csinált a babáról videoanyagot is, ő is azt hitte, hogy valami bolti cucc.. neki is egy hosszú mesét adtam elő.. mutogattam régi munkákat is, hogy miket csináltam. A lényeg, hogy a következő évi horrorconra ki kell vinnem az összes cuccomat mert biztosítanak helyet is számomra, mondta hogy itthon én vagyok az első akivel találkozott aki ilyeneket készít.Néhány kép itt
-
Janos250
őstag
Tudtommal nem.
Kipróbálni most sem tudom, de holnap, vagy azután, írok egy kis tutorialt UART, és SD kártya használati módjairól, ami eszembe jut hirtelenjében.
Egyre inkább azt látom, hogy az Espressiv is elmegy abba az irányba, hogy egy csomó-féle lap, SOIC, és egymással nem mindig kompatibilisek.
Ezért én mostanság azt az elvet követem, hogy a lehető leggyorsabban a speciális ESP Arduino helyett a szabványos C, C++ -ban írom a dolgokat.
Pont ilyen pl. az SD kártya is. A montulás az spéci Espressiv ( .begin) , de utána már, ha fel van mountolva, akkor már a GCC fordító minden szabványos C, C++ utasítást jól fordít, mert a mountolás során minden szükséges infó megadatik. Pl. hogyan kell végrehajtani a read, a write utasításokat az adott eszközre. -
Postas99
őstag
Valószínűleg az is megoldás lehet, hogy a hajtókart pontosan milyen állásban teszem fel és a széket mennyire döntöm meg a hajtókarhoz.
A motor le van rögzítve egy falapra a szék hátuljára fel van téve egy műanyag 11-es cső és csak tőlem függ, hogy mennyire döntöm meg a széket amikor összekötöm a "rudazattal" a motor hajtókarjához, és a hajtókart is milyen pozicióban rögzítem.
-
jippa
aktív tag
Az oled idc16 j1 pin2re kötöttem a 12v-ot (VCC_in), nem az uno 5v pinjére. A többi pinre az UNOR4-ből jött a jel az oled-be, amit USB-ről etettem. Hogy egészen pontos legyek, az oled-en füstölt el a Q1-el jelölt kis alkatrész, az UNO R4-en pedig a bootloader sérült meg, mert egyébként a serial monitoron kapok post-ot az utolsó sketchről, "csak" most új sketchet nem tudok rá feltölteni. SWD programmer kellene hozzá, hogy rendbe rakjam.
-
Postas99
őstag
A nyákon ott van 4 db (nagyobb méretű luk) a tippem az, hogy ezt egy másik nyákhoz lehetne hozzáfogatni egy ámenő fém lemez mindkét oldalán való rözgítéssel fizikailag elforgatni majd forrasztani.. Nagyon macerás, kicsit olyan mint amikor az SD kártya fogadó fém házát rogzíted a nyákhoz.
-
jippa
aktív tag
Sem 3.3v dc-vel, sem 5vdc-vel nem tudom elérni hogy az oled szépen kiírja, amit szeretnék. Sakktáblaszerű, összevissza képernyő a max, ameddig eljutok. A chatgpt szerint ezt a pint 12v-tal kell megküldeni, mert ebben a panelben nincs internal charge pump, ami elég magas feszültséget (7-12v) csinálna ahhoz, hogy a pixelek stabilan dolgozzanak. Ezért mondja, hogy kössek rá 12v-ot a vcc-re, a többi pint pedig etessem az arduinoról logic level feszültségen. Some OLED modules include a built-in charge pump, while others require external boost converters. Bizonytalan vagyok, vagy nem tudom.
-
-
Postas99
őstag
Most, hogy így kiderült mennyit bénáztam. További segítség kellene.
2 db SG90s szervo
1db esp32
1 db QIACHIP RX480E 4 ch rádiós vevő
1 db DFPlayer Pro - eredeti DFRobot cucc
1 db 4 Ohm-os hangszóró lesz az összes fogyasztó.
Van még egy DC-DC konverterem Fix 5V a kimenete 5A-t tud.
Milyen occó akkut tegyek mellé amivel legalább 3-4 órán keresztül működőképes lesz?Elvileg nem gondolkodom automata működésben ezért lesz a rádiós vevő benne. Ha mozgatni akarom a szemeket akkor vagy kacsintok valamelyik szemmel vagy lecsukom valamelyik szemet vagy mindkettőt lecsukom vagy pislantok. A 4 csatornás vevőre ki lesz osztva, a bal szem - inp1 jobb szem - inp2 , mindkét szem- inp3, kacsintás vagy pislantás-inp4 (Toggle mod csak inp 4 esetén) . A hang vagy pislantás előtt vagy utána fog megszólalni. Nem randomozok a hangoknál mert sok lehet az ismétlés ugyanabból a hangmintából kb 10 hangmintám lesz. A nagy fogyasztó a hangszóró és azért a szervók is. De mivel 1mp alatt bőven elvégzik a feladatot reményeim szerint nem ez lesz a legnagyobb fogyasztó.
-
Postas99
őstag
1, Tegnap kib@sztam a hóra az eddigi szervó motorokat majd tettem bele máshonnan számazó 180 fokos Mg90s típusokat.
2, Minden szervo libet töröltem a fenébe. Frissítettem a legújabbra az ESP32Servo-t,
3, Megtápláltam Fix 5V-al a szervokat.
4, Beízzitottam egy másik kódot, és láss csodát nem driftel. Minden tökéletesen megy...Köszönöm a SEGÍTSÉGET!!
Ez azért mégis könnyebbség.
-
Postas99
őstag
A mikrokontrollerről volt táplálva. A házban nem látok potit, lehet nekem van csak silány minőségű cuccom.
Az elején csak simán írtam egy egyszerű kódot ami elforgatta 8 fokkal a szervót,.majd visszatért 0 helyzetbe. Ez egy huzamosabb használat esetén már 30 mp alatt tovább ment mint 8 fok és nem nullába tért vissza. A kód már timer időzítést tartalmaz. Ezért ilyen bonyi. Lehet én vagyok a béna. De ugye ha megnézzük a vezérlést ott mindjárt két különböző szélességű impulzus amivel vezérled, ezen felül a szervók ellentétesen kell hogy dolgozzanak. Mert az egyik balra fordul.a másik jobbra mert így vannak behelyezve. -
Postas99
őstag
A legtöbb szervo 360-as amin van a maradék 180-as. Itt a kód:
#include <Arduino.h>
#include "driver/gpio.h"
#include "esp_timer.h"
// ---- SZERVÓ
static const int SERVO_L_PIN = 18; // bal
static const int SERVO_R_PIN = 19; // jobb
// ---- TRIGGER
static const int TRIG_L = 32; // 1x bal: előre->stop->vissza->stop
static const int TRIG_R = 33; // 1x jobb: hátra->stop->előre->stop
static const int TRIG_BOTH = 25; // 1x mindkettő (bal előre, jobb hátra) - belső PULLUP!
static const uint32_t FRAME_US = 20000; // 20 ms, 50 Hz
// ---- BAL/JOBB PULSE (µs) + állapot ----
volatile uint32_t pulse_us_L = 1500; // 1000..2000
volatile uint32_t pulse_us_R = 1500;
volatile bool highPhase_L = false;
volatile bool highPhase_R = false;
portMUX_TYPE muxServo = portMUX_INITIALIZER_UNLOCKED;
// ---- TIMER HANDLE-K ----
esp_timer_handle_t tmrL;
esp_timer_handle_t tmrR;
inline void setLeftPulseUs(uint32_t us) {
if (us < 1000) us = 1000; if (us > 2000) us = 2000;
portENTER_CRITICAL(&muxServo); pulse_us_L = us; portEXIT_CRITICAL(&muxServo);
}
inline void setRightPulseUs(uint32_t us) {
if (us < 1000) us = 1000; if (us > 2000) us = 2000;
portENTER_CRITICAL(&muxServo); pulse_us_R = us; portEXIT_CRITICAL(&muxServo);
}
// ---- PWM
void IRAM_ATTR cbLeft(void*) {
uint32_t p; portENTER_CRITICAL_ISR(&muxServo); p = pulse_us_L; portEXIT_CRITICAL_ISR(&muxServo);
if (!highPhase_L) { gpio_set_level((gpio_num_t)SERVO_L_PIN, 1); highPhase_L = true; esp_timer_start_once(tmrL, p); }
else { gpio_set_level((gpio_num_t)SERVO_L_PIN, 0); highPhase_L = false; esp_timer_start_once(tmrL, (p<FRAME_US)?(FRAME_US-p):1000); }
}
void IRAM_ATTR cbRight(void*) {
uint32_t p; portENTER_CRITICAL_ISR(&muxServo); p = pulse_us_R; portEXIT_CRITICAL_ISR(&muxServo);
if (!highPhase_R) { gpio_set_level((gpio_num_t)SERVO_R_PIN, 1); highPhase_R = true; esp_timer_start_once(tmrR, p); }
else { gpio_set_level((gpio_num_t)SERVO_R_PIN, 0); highPhase_R = false; esp_timer_start_once(tmrR, (p<FRAME_US)?(FRAME_US-p):1000); }
}
// ---------- MOZGÁS
const int NEUTRAL_L = 1500, NEUTRAL_R = 1500;
const int L_FWD_US = 1600, L_BACK_US = 1400;
const int R_FWD_US = 1600, R_BACK_US = 1400;
const unsigned long L_FWD_MS = 190;
const unsigned long L_BACK_MS = 186;
const unsigned long R_FWD_MS = 205;
const unsigned long R_BACK_MS = 181;
const unsigned long STOP1_MS = 1000;
const unsigned long STOP2_MS = 1000;
enum SPhase { S_IDLE, S_FWD, S_STOP1, S_BACK, S_STOP2 };
SPhase L_phase = S_IDLE, R_phase = S_IDLE;
unsigned long L_nextUs = 0, R_nextUs = 0;
// Indítások (csak ha IDLE)
void startLeftCycle() {
if (L_phase != S_IDLE) return;
setLeftPulseUs(L_FWD_US);
L_phase = S_FWD;
L_nextUs = micros() + L_FWD_MS * 1000UL;
}
void startRightCycle_BackThenFwd() {
if (R_phase != S_IDLE) return;
setRightPulseUs(R_BACK_US);
R_phase = S_BACK;
R_nextUs = micros() + R_BACK_MS * 1000UL;
}
void startBothCycleMirrored() {
if (L_phase != S_IDLE || R_phase != S_IDLE) return; // egyszerre csak ha mindkettő szabad
unsigned long now = micros();
setLeftPulseUs(L_FWD_US); L_phase = S_FWD; L_nextUs = now + L_FWD_MS * 1000UL;
setRightPulseUs(R_BACK_US); R_phase = S_BACK; R_nextUs = now + R_BACK_MS * 1000UL;
}
inline void serviceLeft() {
if (L_phase == S_IDLE) return;
unsigned long now = micros();
if ((long)(now - L_nextUs) < 0) return;
switch (L_phase) {
case S_FWD: setLeftPulseUs(NEUTRAL_L); L_phase = S_STOP1; L_nextUs = now + STOP1_MS * 1000UL; break;
case S_STOP1: setLeftPulseUs(L_BACK_US); L_phase = S_BACK; L_nextUs = now + L_BACK_MS * 1000UL; break;
case S_BACK: setLeftPulseUs(NEUTRAL_L); L_phase = S_STOP2; L_nextUs = now + STOP2_MS * 1000UL; break;
case S_STOP2: setLeftPulseUs(NEUTRAL_L); L_phase = S_IDLE; break;
default: break;
}
}
inline void serviceRight() {
if (R_phase == S_IDLE) return;
unsigned long now = micros();
if ((long)(now - R_nextUs) < 0) return;
switch (R_phase) {
case S_BACK: setRightPulseUs(NEUTRAL_R); R_phase = S_STOP1; R_nextUs = now + STOP1_MS * 1000UL; break;
case S_STOP1: setRightPulseUs(R_FWD_US); R_phase = S_FWD; R_nextUs = now + R_FWD_MS * 1000UL; break;
case S_FWD: setRightPulseUs(NEUTRAL_R); R_phase = S_STOP2; R_nextUs = now + STOP2_MS * 1000UL; break;
case S_STOP2: setRightPulseUs(NEUTRAL_R); R_phase = S_IDLE; break;
default: break;
}
}
// ---- GOMBOLVASÁS
const unsigned long DEBOUNCE_MS = 30;
int prevL = HIGH, prevR = HIGH, prevB = HIGH;
unsigned long lastEdgeL = 0, lastEdgeR = 0, lastEdgeB = 0;
void setup() {
// Szervó kimenetek
gpio_set_direction((gpio_num_t)SERVO_L_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction((gpio_num_t)SERVO_R_PIN, GPIO_MODE_OUTPUT);
gpio_set_level((gpio_num_t)SERVO_L_PIN, 0);
gpio_set_level((gpio_num_t)SERVO_R_PIN, 0);
// Két független esp_timer
esp_timer_create_args_t aL = {}; aL.callback = &cbLeft; aL.name = "servoL";
esp_timer_create_args_t aR = {}; aR.callback = &cbRight; aR.name = "servoR";
ESP_ERROR_CHECK(esp_timer_create(&aL, &tmrL));
ESP_ERROR_CHECK(esp_timer_create(&aR, &tmrR));
ESP_ERROR_CHECK(esp_timer_start_once(tmrL, 100));
ESP_ERROR_CHECK(esp_timer_start_once(tmrR, 100));
// Kezdő állás (IDLE, tartó jel 1500 µs)
setLeftPulseUs(NEUTRAL_L);
setRightPulseUs(NEUTRAL_R);
pinMode(TRIG_L, INPUT_PULLUP);
pinMode(TRIG_R, INPUT_PULLUP);
pinMode(TRIG_BOTH, INPUT_PULLUP); // 25-ön VAN belső PULLUP
prevL = digitalRead(TRIG_L);
prevR = digitalRead(TRIG_R);
prevB = digitalRead(TRIG_BOTH);
}
void loop() {
unsigned long nowMs = millis();
// 32: bal
int rl = digitalRead(TRIG_L);
if (rl != prevL) { prevL = rl; lastEdgeL = nowMs; }
if (rl == LOW && (nowMs - lastEdgeL) > DEBOUNCE_MS) {
startLeftCycle();
lastEdgeL = nowMs + 300; // primitív ismétlésgátló
}
// 33: jobb
int rr = digitalRead(TRIG_R);
if (rr != prevR) { prevR = rr; lastEdgeR = nowMs; }
if (rr == LOW && (nowMs - lastEdgeR) > DEBOUNCE_MS) {
startRightCycle_BackThenFwd();
lastEdgeR = nowMs + 300;
}
// 25: egyszerre mindkettő
int rb = digitalRead(TRIG_BOTH);
if (rb != prevB) { prevB = rb; lastEdgeB = nowMs; }
if (rb == LOW && (nowMs - lastEdgeB) > DEBOUNCE_MS) {
startBothCycleMirrored();
lastEdgeB = nowMs + 300;
}
serviceLeft();
serviceRight();
delay(1); // kis yield
}[/M][/M] -
Postas99
őstag
Ez jó megoldás, bár én elgondolkodnék akkor egy egyszerű forrasztó állomáson, ha már csak egy pillanatpákád van.
Semmit nem akarok rád tukmálni, de max 20e HUF környékéig vannak már jó cuccok ALi,Banggood,Geekbuying oldalakról
Amit inkább ne: Yihua bármi ami ilyen nevű..Amit igen occóért : KSGER -korrekt(banggood), ha valami USB-s csodát szeretnél akkor Fnirsi HS-01(banggood) ezekhez 17e huf árban egy halom hegyet is kapsz, beleértve a mikro hegyet is.
Itthon amit találsz max 25e HUF árban Extol, FAHRENHEIT 28011
persze a határ a csillagos ég.
Ezekről a pákákról és forrasztóállomásokról van egy halom teszt, yt, irásos anyagok stb.Bár elismerem, hogy az 700-1200FT-os csípőfogónál olcsóbb jelenleg nincs az ilyen elemek eltávolításához.
-
Undoroid
őstag
Nekem anno amikor találkoztam vele, szénlemezes biztosítékok egyik anyaga volt ez! A csillámlemezzel elválasztott (csak távtartónak volt használva) két szénlemezben volt egy-egy wood-fém pogácsa, amit ha nagyobb feszültséglökés ért, akkor ív keletkezett és ennek a hőhatása megolvasztotta a fémet, ami rövidre zárta a két pólust és így védte meg a további túlfeszültségtől.
Ennek volt egy másik változata is: ott a biztosítékot megfeszítve tartotta egy erős rugó és a biztosítékon túl nagy áram folyása közben hő alakult ki, ami megolvasztotta a reteszként szolgáló fémet és a rugó összenyomta a biztosítékot (mechanikusan lerövidült) és így működésbe tudott lépni a riasztásra szolgáló áramkör és egyben le is kapcsolta a betápot! Egyik megoldás sem volt autómatikusan visszaálló! Ott bizony kézzel ki kellett keresni a meghibásodott biztosítékokat!" Érdekes lehet akkor ezzel összeforrasztani valami vezetéket mondjuk egy autó motorterében " A videót nem láttam, amit említettél!
Magát ezt a Wood-fémes keveréket / ötvözetet vegyileg lehet szennyezni, amivel eltolódik az olvadási hő (is)! Nem kell feltétlenül használni a legalacsonyabb olvadási pontot! ...már megint hosszan offolok, de már vége is!
Viszont egy kérdésem is lenne a többiekhez, ha már itt vagyok: ESP01
Megoldható ennek használatával a tápfeszültség mérése is a szokásos ellenállásos - feszültségosztó használatával és a kód megfelelő módosításával kiíratni a többi adat alá? Elvileg erre a célra analóg bemenetre van szükség (ennél nem látok olyat), de hátha van valami más, egyszerű megoldás is másik alkatrész beépítése nélkül!
(Szerk.)
-
Janos250
őstag
-
ViZion
félisten
jah...
de nem baj sztem, erről is tudnunk kell.
Itt egy magyar cikk, BT backdoor, szal. annyira nem vészes, ha tényleg csak bt-ről elérhető. De utána már akár a fentebb is tárgyalt adatgyűjtő-elküldő kód is feltölthető, írja a flasht és a ramot is...Az továbbra is kérdés bennem, h pl. egy Tasmota-val átflashelt cuccban is aktívak-e, vagy törlődnek? Ha már HW szinten ott van, akkor lehet-e erre patchelni? Megakadályozni a futását?
-
Janos250
őstag
"ami kínai fejlesztés, ott simán előfordulhat olyan kormányzati igény, hogy mindenhez legyen pótkulcs."
Ahogy a windowsban is, amikor a rosszfiúk megtalálnak egy belépést, akkor gyorsan jön a javítás, és pár hét, hónap múlva kiderül, hogy a javítással került be olyan backdoor, ami a javítás előtt nem volt. -
ViZion
félisten
Nem szarkazmus volt, gondolom, h nem hagynak ki ilyen backdoor lehetőségeket (ahogy a többi kormány sem). De az ESP erre nem megfelelő szerintem, akkor sem, ha hozzáférhető. Ezért lennének érdekesek a részletek, de a cikkben is -amennyire átfutottam- kb. a szokásos: majd felébredtek, de már késő lesz szöveg van csak.
-
ViZion
félisten
előfordulhat olyan kormányzati igény, hogy mindenhez legyen pótkulcs
Igen, biztosan. A routereknél érthető is, androidos TV okosítóknál szintén, de ezeknél?
Továbbra sem értem, ha ez a támadó, akkor hol fér el benne a kód, ha ez csak az ajtó, akkor pl. feltörik a wifit hozzá... és akkor ESP-t fogja keresni a hacker, nem a PC-t, ahol bankolnak a népek?Ha esetleg Bt backdoor, akkor meg a lakásba is be kell engednem a hackert, h törni tudja. Szal. nem áll össze, de látványos a cím, kattintható a cikk...
-
szoke12
őstag
Igen, ezen is gondolkodtam, meg a zsinórós encoder is felötlött bennem, de sajnos a lábakat jobban nem tudom megbontani, csak a hajtáshoz férek hozzá.
Ha csak lehet, a lábakra kívülről nem szerelnék semmit.Sőt, arra gondoltam, hogy még programozok bele olyan opciót, hogy ha valamelyik gombot hosszan nyomom, akkor frissíti a beállított magasság-értéket.
-
Ferrit-gyűrű semmit se ért, távolabb tevés se, de féllábas a dolog még, a relé-modul kapott hosszú vezetéket de a kijelzőét nem cseréltem még rovidre. Ma az fog következni.
#23409bagarol ez IC-vel megy és te gyártottál hozzá mindent is vagy van vmi panel, ami készen kapható és "csak" vezetékezni kell (kb itt áll meg a tudásom jelenleg, ViZion spi over lvds javaslatát is azért nem próbáltam ki, mert nincs panel csak IC, amihez nekem kéne gyártani nyákot...)?
-
utp árnyékolt amúgy, nem erenként, de az. Kipróbálom a ferritet (hova tegyem? kijelzőhöz közel vagy ilnkább a boardhoz vagy hótmind1?), ha az nem segít, akkor átvariálom az egészet: relé + multiplexer marad ott ahol van és a kijelző + board + rtc megy közel egymáshol, max 20cm-s kábelen. -
Adatlap nincs a forgalmazónál... [link] így néz ki lefényképezve, én nem látok lehetőséget máshol földelni, mint a bal oldali csatlakozó:
190cm magasan van minden és a kijelzőt tűnt egyszerűbbnek 1 utp kábelen előre hozni. 2x5 kábel jön fel a reléhez+multiplexethez, egy dobozba gondoltam mindent betenni: relé, multiplexer, rtc, board.
Meg tudom oldani, ha nagyon nincs más megoldás, csak be van már minden kötve (asztalon tesztelve tökéletesen ment, csak ott nem volt 240V a relén.). -
Nincsenek most ellenállások, ha nem működött egy ötlet akkor eldobtam.
#23373Janos250:
- mi az, hogy hardveres spi?ChatGPT szerint hardveres (#include "SPI.h, #include "Adafruit_GFX.h, #include "Adafruit_ILI9341.h")
- nem, fogtam a két eret és összekötöttem (hardver az nem az én világom, nagyon tanulom még ezt...)
- mi az a nem túl nagy ellenállás?
- ha nincs relé akkor nincs hiba, akkor fehéredik el a kijelző, amikor egyszerre több relé kapcsol, függetlenül attól, hogy közös tápról megy vagy sem (kapott a relé egy 3A saját tápot, csak gnd volt közösítve, akkor is fehéredett)
- volt próba 25cm utp, 25cm utp+táp 0,75-ös, 50cm utp, 1m utp. Relé nélkül mind megy, relével egyik se. Most 50cm utp van, simán (1ér 1csatlakozó, 100 delay és nincs hiba) -
Postas99
őstag
Úgy gondolom, hogy lehet ilyet csinálni, de túrni kell a kódot.
A GitHub
linken van egy python féle mintakód, ez akár transcribe-ot is tud beszédből. Úgy, hogy itt a minta alapján a bemenet egy wav vagy mp3 fájlból csinál leírást. A visszajövő szöveget kellene a vezérléshez használni. Ugye ez majdnem fix kód tehát előre le kellene definiálni a szöveget és hozzátenni, hogy mit csináljon adott szövegek esetén. Szerintem ez babra meló. Viszont TUD magyarul.Vagy van az egyszerűbb, de picit drágább megoldás
És itt a másik szintén jó működő megoldás. Sajnos az utolsó kettő nem fog tudni csak angolul értelmezni utasításokat.
-
Postas99
őstag
Ohh... most látom hogy nem kerültél közelebb a megoldáshoz, mert nesze semmi fogd meg jól módon válaszoltam.
[ESP32-audioI2S]
Github-on ott a library az arduniohoz.
Ezt a library-t kell használni hozzá. -
Postas99
őstag
Fogyasztói társadalom van, jobban megéri nem visszaváltani hanem újat értékesíteni a gyártó részéről. Az, hogy mi lesz a termék sorsa a kiürülés után azt leszarja a gyártó.
Az itthoni szabályozás, az hogy minden ilyen is TILTVA van. Tehát emiatt nincs LEADÓ pont sem. Szóval minden ilyen is kuka. Miközben a benne lévő akksi és töltő elektronika még bőven újrahasznosítható lenne.
A tiltás oka: A termék nem ismert egészségkárosító hatása és a legfőbb indok, hogy nikotin van ezekben ezért ez jövedéki terméknek minősül. Szóval üldözés van minden téren. Ezek profibb cuccok mint a régi **fbarok mivel tölthetőek (csak az akksi)
A szánalom az, hogy belülről úgy van felépítve, hogy a műanyag szivacsos anyag van átitava valami folyadékkal, ennek a közepén van egy fém henger benne egy izzító szál.
Teház azt nem tudni, hogy amikor izzítasz (tehát szívod, és pára keletkezik), hogy milyen egyéb anyagok kerülnek párásított állapotba, szóval bármit is beszívhat a használója ezáltal. Azt meg főleg nem tudni, hogy a folyadék valójában mit is tartalmaz még az ízen kívül.Engem csak a töltő és az akksi érdekel. Begyűjtöm ha van, ESP cucchoz elegendő lesz.
Na, azért nem csinálok akksi temetőt az otthonomból nekem elegendő 4-5 darab. De megérné ezeket újrahasznosítani otthoni vagy egyéb diy projektekben. Szétszedni pedig gyerekjáték, mert ezeket az újakat szét lehet húzni vagy a tetejénél fogva vagy alulról. -
gordonfreemN
addikt
Köszönöm
Tulajdonképp arrol van szó, hogy a vezérlö egy kimenetéről hajtom meg egyszerre a low és high side-ot azaz az alsó és felsö tranzisztort oldalanként és így elöfordulhat-e valami gond.
De amúgy este kirpóbáltam tesztpanelon, összevissza nyomkodtam az irányváltást és nem volt gond, tehát félig már tudom jó. A másik fele ami speckó esetben fordulhat elö esetleg,olvastam FET felrobbanásokról ha lassan vannak kinyitva stb. -
-
-
Postas99
őstag
Valahogy úgy, ugye ez egy "mindenre is jó" távirányító amivel kisautót, repülőt mijaf@szt és akár hajót is tudsz távirányítani. De gondolom, hogy ezek nem egyszerre hanem firmware csere után tudják a saját cuccukat.
A leírás megértése után (leteszi a hajót a vízre -- majd elindítja balra és jobbra - tehát pozicionál ezt a koordináta pontot megjegyezteti mint kiindulási pont) úgy gondoltam, hogy ehhez a fenti video adja az alap igazságot. Mondjuk a video URL-jében levő WEB oldalon azt nem találtam meg, hogy a firmware-t hogy cseréled, és honnan töltöd le. De támpont volt, hogy megértettem a vezérlő kvázi programozását az RC távirányítós kishajó koordinátáihoz. A video bemutatja ugyanazt a folyamatot amit Gerliger is megpróbált leírni.De a legnagyobb baj, hogy hiányzik a legfontosabb, hogy a másik horgászt megkérdezze, hogy az övé hogy néz ki, fotók a hajóról a távirányítóról, főleg a kijelzőről bekapcsoláskor és utána, verziószám a távirányító vezérlő programról satöbbi, hol vette, vagy ki rakta össze... valami amiből tényleg megvan a háttér infó. A kishajó hogy néz ki, mert a videó alapján amit linektem ott van egy kinyitható alja a hajónak, tehát ha neki nem ilyen van hanem más hajója aminek ki sem nyitható az alja, akkor azzal nem is biztos hogy értemes szórakozni. Szóval addig ez a dolog felejtős ha nincs meg hozzá több infó. Az sem tudjuk, hogy az ő távirányítója ugyanazt a képet adja-e mint a másik horgászé. Tehát már ez is egy buktató.
-
-
Postas99
őstag
És még valami, a füstgép kimenetére rá van téve egy porszívó gége cső, teljesen körbe veszi a kimenetet. A gégecső vége pedig a láda tetejére van belülről felfogatva, hogy amikor kinyilik a láda a füst direktben ki is menjen a ládából. Mivel az arduino úgy vezérli a cuccot, hogy mikor a láda lecsukódik még nyomjon ki egy kis füstöt így még lecsukás után is füstölög a láda, ettől még hatásosabb az egész.
Ha kéritek megmutatom a belsejét, nem szép mert barkácsolás. Igazán a végeredmény a lényeg. -
Postas99
őstag
Idén túlvállaltam magam. Így csak 2(3) cucc lett kész. Nem vagyok túl büszke rá, de a többieknek tetszett.
[A szörny láda][Buckató szörnye] Ez össze vissza kering az üvegben és néha mérges hangon röhög.
[Vendégváró Halloween tök] A kisebbik faragta.
Feteszek egy video-t is úgy talán élvezetesebb.
Kimaradt egy másfél méteres plüss mackó, ez mozgott volna, és beszélt volna micimackó hangján. A baba ami a szemét mozgatja és énekel. Idő hiány miatt mindkettő.
-
.-..-.
tag
Aryes, Tankblock: Koszonom a tippeket.
Jelenleg 2db NRF24L01 van antennaval devkitc-re kotve, az onboard 3v3 szabalyozot hasznalva, viszont veletlenul vettem eszre, hogy valami tuzforro az esp32 pcb-n.
Nagyon meg nem volt idom vele foglalkozni, de elso tapintasra nem is a vregulator, hanem mintha valami masik smd alkatresz lenne.Ket ilyet konfigot kotogettem ossze probapadon, mukodik is, de mindegyik melegszik.
Ezert jott az otlet, hogy valami kulso 3v3 megoldast hasznalnek.De meg valamikor pontositom a problemat es szerintem elso nekifutasra lehet azzal kellene kezdeni valamit.
Ha nem sikerul sajat kutfobol, akkor visszaternek es a segitsegeteket kernem, ha nem banjatok. -
ekkold
Topikgazda
Változó, hogy mikor melyik a jobb (#define vagy pl. const int).
Van amikor csak az egyik jó, pl. vannak olyan függvények amelyeknek csak változó lehet a paramétere, simán egy beírt szám nem. Ilyenkor a #define-al megadott érték nem lesz jó paraméterként használva.
Aztán itt van pl. ez:
#define ERR_MSG1 "Megszakadt a kapcsolat!";
const char* err_msg1 "Megszakadt a kapcsolat!";Ha a programban több helyen írjuk ki ezt az üzenetet, akkor az első esetben (#def..), a program több különböző helyén is fog tárolódni a szöveg, annyi példányban ahányszor kiírjuk. A második esetben viszont csak a stringre mutató pointer lesz többször felhasználva, a szöveg csak egyszer tárolódik el.
Az fordító optimalizálójára szerintem nem illik túlságosan támaszkodni, mert nem biztos, hogy mindig ugyanúgy fog viselkedni, és a működése attól is függ, hogy mi az optimalizálás célja (mert az is állítható: kódméret, sebesség, memóriahasználat, stb...), valamint sok esetben az is állítható, hogy mennyire legyen "agresszív" az optimalizálás. Utóbbi esetben sokkal hatékonyabb lehet, de előfordulhat, hogy olyasmit is kiszed amit nem kellene, és összeomlik a program... Tudom sokan már nem így programoznak, de én még azt tanultam, hogy igyekezzünk eleve hatékony kódot összehozni...
-
JulianSinulf
őstag
Bocs, valahol elnézhettem a LED-es részt.
Igaz, nem
cont
. Kevertem. Int. Vagy épp uint8_t. Megspékelve egy const-tal a sor elején.A TMC2209 példaprogramja const uint8_t-vel határozza meg a lábat, ami kimenetként fog szolgálni.
De ugyanezt használja időmeghatározásra is és más érték meghatározásához, mint a motoráram.
Nekem így fura.
Érdemes lenne a TMC2209 által használt lábakat is #define-re átírnom?
Az biztos, hogy átláthatóbb lenne.Kellett a programba egy tároló, az int lett. De mintha azt olvastam volna, hogy az uint8_t kevesebb memóriát igényel. Úgyis vagy 1 vagy 0 az értéke.
Vagy ilyennel ne foglalkozzak, a Mega 2560 elbírja? -
JulianSinulf
őstag
Amit linkeltél nekem a #22922 hozzászólásban, abban benne van, hogy egyszerűbb a földhibák megtalálása, ha a magas oldal van kapcsolva.
LED-eknél miért jó a GND kapcsolása?
A pozitív ágon ugyanúgy ott vannak az ellenállások minden egyes LED-nél.
Ez is amiatt, mint a gomboknál a különböző áramkörök és azok feszültségszintje miatt?Mi a különbség, hogy #define vagy cont módon határozok meg egy lábat?
Próbáltam utánaolvasni, de nem volt egyértelmű. A LED-es példaprogramban a cont van használva, a chatgpt a #define-vel adta meg.
Más is kérdezte már külföldi fórumokon, de a válasz nem igazán volt világos azon kívül, hogy elvileg mindegy.
Én most a bemeneteket és a kimeneteket is #define-vel adtam meg. -
ekkold
Topikgazda
1, Több nyomógomb kezelése esetén is probléma mentes a GND -re húzás. Viszont az egyes áramkörök VDD feszültsége (logkai H szintje) lehet különböző (1,8V - 3,3V - 5V - 12V), ami hibás csatlakoztatás, ill. a gombok elcserélése esetén komoly problémát okozhat, ha a gombok H szintre kapcsolnának. Viszont a GND az mindig 0V...
2, A mikrokontrollerek bemenetén többnyire van szoftveresen bekapcsolható felhúzó ellenállás, így esetleg megspórolható egy külső alkatrész. Lehúzó ellenállás viszont nem minden mikrovezérlőben van, így ha a gombok H szintre kapcsolnak, ahhoz a legtöbb esetben kell külső ellenállás is. (de pl. STM procikban van választható felhúzó vagy lehúzó ellenállás is)
-
JulianSinulf
őstag
Engem is érdekelne.
Nameg úgy eleve a kapcsolgatás.
LED-ek pozitív oldala a megfelelő tápon és a "földet" kapcsolják rá. Vagy IC-vel, ha több LED is van, vagy épp egy tranzisztor nyit a föld felé.
De ott van a sütőelektronika, ahol a reléket ugyanígy kapcsolják. A 9V vagy épp 24 V a relé egyik lábán, majd egy illesztő IC segítségével a uC kapcsolja a földet a másikra.
A triac ugyanez, csak ott tranzisztor van, nem IC. -
Postas99
őstag
Ugye ha nem kell ennyi LED meg elég amit írtam, akkor a [HLK-5M05] 5V 5W elegendő lenne, és méretben sem nagy:
-
.-..-.
tag
Windows-on nem tudom ellenőrizni, de Linux-on nem jelez semilyen eszközt, ismeretlent sem.
Az USB-UART adapterem PL2303 (067b:2303), ez látszik is rendben.
Akadt a kezembe még egy ESPDUINO-32, ezen FT232 (0403:6001) jelenik meg.
De az ESP32-WROOM semmit nem mutat.Amúgy csak egy kérdés ... a download-módba rakásnak feltétele egy aktív usb kapcsolat is?
Eleve tápot adva neki a megszokott boot+rst megoldás nem elég hozzá?
Mert eleve nem érdekli boot-le, rst-le, rst-fel, boot-fel kombináció.
Folyamatosan a rajta lévő program indul el, de resetre láthatóan újraindul.
A nyomógombok jók.
De maga a download-mód nem elérhető rajta. -
cog777
őstag
Esetleg "Reset bootloader Mode" szeruseg ami Arduino-n van? En ezzel kinlodtam hogy feltoltsem a bootloadert, lehet hogy annak az ESP32-nek is van hasonlo modja amivel fel lehet eleszteni.
Meg B1-et GND-re kellett rakni es ugy megnyomni a reset gombot. -
.-..-.
tag
"Nincs külső usb-uart eszközöd, amivel meg lehetne kerülni a board-ra integrált uart chipet?"
De, van valami (már nem emlékszem milyen chip) usb-uart adapterem, amivel anno STM32 BluePill esetében néztem a serial kimenetet.
"A géped nem változott az utolsó feltöltés óta? Biztos, hogy telepítve van a szükséges driver (pl. ch340)? Egyáltalán milyen uart chip van rajta?"A fene se tudja változott-e, de nem is számít. Egyrészt linux-ot használok, ott nem kell semmi külső driver. De nem is ez a gond. A probléma, hogy meg sem jelenik usb eszközként.
Linux esetében a dolog úgy működik (működne), hogy az lsusb kilistázza az usb eszközöket és az eszközök ID-ját. Az ID tartalmazza a vendorID és productID kódokat.
Ehhez csinál az ember fia/lánya egy udev szabályt, hogy milyen jogosultsággal/módon engedi elérni az adott usb hardvert és mehet is a móka.
Viszont egyáltalán nincs az usb listában az esp32.
De nem is csoda, mivel nem tudom átrakni flash/download módba.
Valami WifiAP cucc indul el rajta folyton, bármit csinálok.
Emlékszem, hogy anno valami wifi-hack dologhoz használtam, de a részletek már nincsenek meg.
"Nincs semmi se kötve-forrasztva a lapra? Ha a pineket ráforrasztottad, nem folyt meg az ón valahol és csinált rövidzárlatot?"Dev-board lévén csak foglalatban használtam. Minden forrszem tökéletesen tiszta. Nem ilyen jellegű lesz a gond. Illetve amikor rátoltam a jelenleg rajta lévő fw-t akkor jó volt és azóta nem változott semmi rajta hardveresen. Külsőleg is sértetlennek tűnik és láthatóan fut is rajta a fw.
Az STM32F4 sorozatnál bele-bele lehet futni olyan hibába, hogy megadja magát a DFU mód és usb-n keresztül nem lehet többé flash-elni. (bár 1-1 kivétel van speciális esetben)
Ilyenkor marad az uart vagy ami jobb, az stlink megoldás.
Viszont esp32 esetében ez a jelenlegi helyzet nekem teljesen új. Ezzel még sohasem volt ilyen gondom.Nem értem miért van ez és nem találom a megoldást, hogy download módba tehessem.
Használok majd másikat természetesen, de nem hagy nyugodni a dolog, hogy mi lehet ennek a baja. Ha nem tudom az okot vagy a megoldást, ez újra megtörténhet. -
.-..-.
tag
-
cog777
őstag
Hianyoltam az egyszeru kommunikaciot a szalak kozott, regebben Qt-t es Boost signal-t hasznaltam. Aztan kiderult hogy tok egyszeru a promise-al kuldeni adatot a belole kinyert future-be.
Itt van egy masik pelda adatcserere, a producer megvarja amig a consumer elindult, majd kuldi az adatot. Az egyik direkt async-et hasznal, a masik thread-et. FreeRTOS alatt a Thread ugyanugy FreeRTOS utasitasokat hasznal csak el van rejtve a stack meg egy csomo minden. De a Promise-future paros tenyleg nagyon jo. Ha megvan irva a move constructor es assignment operatora a struct-nak, akkor nincs nagy adatmozgas ha promise-t hasznalsz.
Gyakorlatilag: konstruktor hivas, majd move konstruktor.#include <iostream>
#include <future>
#include <thread>
#include <chrono>
/*
Ez tortenik a struct keszitesekor:
ctor2
move ctor
move ctor
Received signal: 42
*/
struct data_s
{
data_s() { std::cout << "ctor1" << std::endl; }
data_s(int v) : data(v) { std::cout << "ctor2" << std::endl; }
data_s(data_s &&rhs) : data(std::move(rhs.data)) { std::cout << "move ctor" << std::endl; }
data_s &operator=(const data_s &rhs)
{
std::cout << "copy operator" << std::endl;
if (this == &rhs)
return *this;
data = rhs.data;
return *this;
}
data_s &operator=(data_s &&rhs)
{
std::cout << "move operator" << std::endl;
data = std::move(rhs.data);
return *this;
}
int data{0};
};
void task_consumer_fnc(std::future<data_s> &&f, std::promise<void> &&ready_signal)
{
ready_signal.set_value();
while (true)
{
if (f.wait_for(std::chrono::milliseconds(100)) == std::future_status::ready)
{
auto d = f.get();
std::cout << "Received signal: " << d.data << std::endl;
break;
}
}
}
void task_producer_fnc(std::promise<data_s> &&signal, std::shared_future<void> &&ready_slot)
{
ready_slot.get();
// std::this_thread::sleep_for(std::chrono::milliseconds(1000));
signal.set_value({42});
}
int main()
{
std::promise<data_s> signal;
auto slot = signal.get_future();
std::promise<void> ready_signal;
std::shared_future<void> ready_slot(ready_signal.get_future());
std::packaged_task<void(std::promise<data_s> &&, std::shared_future<void> &&)> task_producer(task_producer_fnc);
auto future_producer = std::async(std::launch::async, std::move(task_producer), std::move(signal), std::move(ready_slot));
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
std::packaged_task<void(std::future<data_s> &&, std::promise<void> &&)> task_consumer(task_consumer_fnc);
std::thread thread(std::move(task_consumer), std::move(slot), std::move(ready_signal));
thread.join();
return 0;
} -
allein
addikt
Tudsz linkelni légy szíves egy ilyen Y kábelt?
Ez is járható: esp-t a tv usb csatijára kötöm, elég lenne az esp-nek? Ha az esp-t lanon a switchre csatlakoztatom, létrejön a hálózati kapcsolat, ugyanakkor lanon az esp tápot is tud kapni?
Milyen tápegység ajánlott erre a projektre?
van amúgy kettő esp32 s2 minim, de azt olvastam a wled nem telepíthető ezekre. Amúgy van egy másik LG-m, csak ezt még nem lehet rootolni, szóval a projektet két tv-re szeretném 🤓
Új hozzászólás Aktív témák
- Corsair SF850L Gold 850W SFX Moduláris Tápegység
- Corsair RM1000X Gold 1000W Moduláris Tápegység PCIE 5 ATX 3 12VHPWR
- Lenovo ThinkPad P15 Tervező Vágó Laptop -50% 15,6" i7-10750H 16/512 QUADRO T1000 4GB
- MAKULÁTLAN! Dell Precision 7760 Tervező Vágó Laptop -70% 17,3" i7-11850H 32/1TB NVIDIA A3000 6GB FHD
- Kiwiears Astral
- Bomba ár! Lenovo ThinkPad T495 - AMD Ryzen 5 PRO I 8GB I 256GB SSD I 14" FHD I Cam I W11 I Gari!
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Xbox Game Pass Ultimate előfizetések kedvező áron
- CORSAIR K100 AIR
- BESZÁMÍTÁS! ASUS H510M i9 10900KF 32GB DDR4 512GB SSD RTX 3080 10GB RAMPAGE Shiva A-Data 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest