Hirdetés
-
LOGOUT.hu
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 Gergosz2 #10649 üzenetére
Na szóval, az én interpretációm:
38 Khz-es négyszögjel esetén - vagy ami átjön a bandpass filteren - húzza GND-re. Ez most az aktuális verzió, mert kínjában már itt tart jelenleg.
Korábban ha jól értettem arról volt szó, hogy a freki eltolás mértékében adjon ki az áramkör analóg jelet - ahol mittomén 38 khz van a skála egyik végén, vagy a közepén, aztán ahogy modulál úgy tolódik a fesz.Az adó-vevő hókuszpókuszt meg meg sem próbáltam értelmezni, van elég megoldandó problémám így is.
[ Szerkesztve ]
-
-
nagyúr
válasz Teasüti #10651 üzenetére
Te tényleg értesz.
"Az adó-vevő hókuszpókusz"
Ez sajnos kudarcba fulladt, mert nem bírok belőle analóg jelet kifacsarni. De maga a soros kommunikáció már egészen jól működik. Viszont távolságtól függetlenül néha egészen közelről is hibák jelentkeznek, amit képtelen vagyok visszafejteni, ehhez már vagy egy oszcilloszkóp kéne, amit linkeltél, vagy egy digitális jelanalizátor, amit Janos250 kolléga ajanlott régebben, de egyik sincs itthon sajnos. Gyanítom már nem a kommunikációban van a hiba, inkább valami esp specifikus dolog lehet, ami néha megzavarja a pontosan időzített küldést."38 Khz-es négyszögjel esetén - vagy ami átjön a bandpass filteren - húzza GND-re."
Analóg jel esetén ez úgy működne, hogy a jel mindig valahol 3.3V és 0V közt lenne, az adó távolságától és az adás teljesítményétől függően. A kettő közt félúton van egy választóvonal, ami alatt 0-nak, fölötte pedig 1-nek veszi a feszültségszintet, tehát bizonyos távolságból az adás egyszerűen csak el fog tűnni. Persze tudom, hogy van egy sáv, ahol határozatlan lesz a, mondjuk 1.8-2.5V közt, itt valószínűleg véletlenszerű adatokat fogok kapni. -
tvamos
nagyúr
Ott van a rajzon, hogy "input", oda kotod az infra tranzisztort, az "output"-ra meg rakotod az arduinot.
De nagyon csodalkoznek, ha mukodne. Nagyon kicsi jel fog kijonni belole. Neked ezt a rajzot kene nezni: [link]Raadasul demodulalnod kene elotte a jelet. Hogy fogsz egy 38KHz-es jelet kiertekelni az Arduinoval? Tolsz ra egy FFT, es...
(#10655) Gergosz2 válasza aryes (#10654) üzenetére
Azt leirta, hogy nem jo, mert AGC van benne.[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
nagyúr
válasz tvamos #10657 üzenetére
"Raadasul demodulalnod kene elotte a jelet"
Azt hiszem most kezdem érteni, hogy miért kérdezed azt, hogy hogy akarom demodulálni. Ugyanis összekevertem a felül áteresztő szűrőt az alul áteresztővel.
Eddig azt gondoltam, hogy a high pass szűrő után kapok egy, a jel amplitúdójával arányos feszültségszintet, de valójában csak a négyszögjelet kapom vissza, amit eredetileg küldtem.
És ha ezt a négyszögjelet integrálom egy kondenzátor+diódával? -
nagyúr
válasz Gergosz2 #10655 üzenetére
A NEC protokollal két gond van. Az egyik, hogy l-a-s-s-ú. Kb. 50 baudos adatátviteli sebességet lehet vele elérni, az kb 6byte egy másodperc alatt, iszonyú kevés...
A másik, hogy a hozzá kapcsolódó library csak egy darab ir vevőt képes kezelni, míg a softwareserial lib többet is, egyidejűleg!Ellenben a softwareserial libet mostanra annyira átírtam, hogy 4000baudos sebességgel tudok küldeni vele adatot GCR kódolással és magas hibatűréssel.
-
nagyúr
Az a poén, hogy miközben próbáltam tervez(tet)ni egy workaround megoldást az ir receiver "hisztis" viselkedése miatt, sikerült olyan jól módosítani a softwareserial lib-et, hogy most már együtt tud működni a tsop vevővel és elkezdett úgy működni, ahogy eredetileg vártam.
Úgyhogy ezen a vonalon megyek tovább, és egyelőre ejtem a high pass filteres mókát. Köszönöm a türelmet és a segítséget mindenkinek! -
nagyúr
válasz Teasüti #10664 üzenetére
A GCR kódolás. Az volt a baj, hogy ha túl sok 0 vagy 1 jött egymás után a soros adatfolyamban, megzavarta a vevőt, elmászott a gain (begerjedt? ), az adatlapon lehet olvasni, hogy bizonyos jelhosszúság (0) után kötelező szünetet (1) beiktatni.
Először az 5 bites, Commodore-féle változatot próbáltam, de az csak az egymást követő 0 bitek számát maximálta 2-ben, az 1 biteket nem, így akár 8db 1-es bit is jöhetett egymás után, és nem akart úgy működni, ahogy vártam. Ezért kitaláltam egy 6 bites kódolást, ahol se kettőnél több 0, se kettőnél több 1 nem jöhet egymás után, és ezt már szereti a vevő. Plusz két ellenőrző bitet használok az átviteli hibák detektálásához. Így a normál soros kommunikáció 11 bitje (1 start + 8 adat + 1 paritás + 1 stop) helyett ugyan 16 bitet küldök (1 start + 2x6 adat + 2 ellenőrző + 1 stop) egy byte átviteléhez, de azt akár 4000baud sebességgel (~230byte/s), és majdnem minden átviteli hibát ki tudok szűrni. A hibás adatot felismeri a rendszer és eldobja.
Így most nem az történik, hogy bizonyos távolságból elkezd a hasznos adat közé mindenféle szemét keveredni, hanem van egy
határozott távolság, ahol egyszerűen megszűnik a kommunikáció. És ez volt a cél. -
Teasüti
nagyúr
Értem. Akkor már csak egy kérdésem van. Milyen adatot kell átküldeni az egyik drónról a másikra? Gondolom nem azt, hogy "lelőttelek köcsög", mert ahhoz igazából kommunikációra sincs szükség.
Aztán gondolom az új firmware-t sem csata közben akarod feltölteni.[ Szerkesztve ]
-
nagyúr
válasz Teasüti #10666 üzenetére
Pedig eddig azt hittem, figyeltél.
A beacon jelben benne kell lenni a tank azonosítójának, vagyis, hogy ki sugározza éppen a jelet. Ebből tudja a másik, hogy kit lát (terv szerint kettőnél több tank is részt vehetne egy harcban, bár elsőre örülök, ha kettőt meg tudok építeni... ), illetve, hogy nem a saját maga által küldött jelet látja mondjuk egy falról visszatükröződve.
A másik, hogy mivel analóg jelet nem tudok kivenni az ir vevőből, kell egy trükk, hogy távolságot tudjak mérni.
Több különböző "fényerővel" fogom kiküldeni a beacon jelet. Mondjuk 5mA lesz az 1-es fényerő, 10mA a 2-es, stb. A különböző fényerők más-más távolságról fognak látszódni. De honnan tudom, hogy ha látok egy beacon jelet, az egy közeli tank gyenge jele, vagy egy távoli tank erős jele? Hát onnan, hogy maga a jel tartalmazni fogja, hogy ki küldte és milyen erősséggel.
Tehát mondjuk így fog kinézni az 1-es tank 5-ös erősségű beacon jele: 0x15. A lövés meg legyen mondjuk 0x1F. Akár még azt is bele lehet írni, hogy a tank eleje vagy a hátsó része sugároz, így az egyik tank egy jelből meg tudná állapítani, hogy a másik tank menekül előle, vagy éppen célba vette. -
Teasüti
nagyúr
Én ezt megoldanám frekvencia modulációval. Ha relatíve nincs túl sok variáció, akkor dedikált frekvenciákra osztanám ki a lehetséges dolgokat. Mondjuk egy tanknak saját frekvenciája van, így tudod, hogy ő lőtt. A különböző jelerősségekhez is lehetne saját frekvenciát rendelni. Mondjuk az első tank 30-33 Khz között sugároz, a második 34-37 közt és így tovább. Vagy ennél bonyolultabb kommunikációt szeretnél?
-
nagyúr
válasz Teasüti #10668 üzenetére
"Én ezt megoldanám frekvencia modulációval"
Mit? Vagy 6 különböző funkciót írtam le az előbb csak 1 tankhoz. És még vannak ötleteim. Például a beacon jel jelenthetné, hogy sikeres volt a találat, vagy akár a tank egészségi állapotát. És valahogy össze is kell hangolni a kommunikációt, ha nem akarom, hogy az összes tank egyszerre beszéljen."különböző jelerősségekhez is lehetne saját frekvenciát rendelni. Mondjuk az első tank 30-33 Khz között sugároz, a második 34-37 közt "
És honnan vegyek ennyi különböző ir vevőt? Arról nem is beszélve, hogy a 38kHz-es tsop vevő 25 és 45kHz között simán vesz minden frekvencián. -
Janos250
őstag
Tudom, hogy nem ide vágó dolog, de hangsúlyozom mégegyszer, hogy ez igenis a run length limited, RLL, korlátozott futáshossz technika. A GCR az RLL-ek egyik fajtája, az RLL (0,2)
Ismét a link:
https://en.wikipedia.org/wiki/Run-length_limitedTe szerencsére már megoldottad a problémád, de másnak is javasolom, hogy ha hasonló jellegű gondja van, ne sajnálja az időt megismerkedni a pár évtizedes RLL technikával, aminek különböző fajtáit ma is előszeretettel használják több területen.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
válasz Teasüti #10672 üzenetére
Abszolút hatótávolságot.
Most annyit tudok mérni, hogy az adó 0-50cm-en belül van, 50-100cm közt, vagy 100cm-en túl. Én pont ennyit akartam eredetileg. És amiért ez szerintem érdekes, az az a tény, hogy az ir vevőn és két ir leden kívül csak egy előtét ellenállást használok, minden más szoftveresen van megoldva. -
Teasüti
nagyúr
És mi a koncepció lényege? Különböző intenzitással küldöd az adatot és amelyiket utolsónak értelmezni tudja, az lesz a hatótávolság? Mivel állítod be az intenzitást? Vagyis mivel állítod be az áramerősséget?
És miért off-ban beszélgetünk mikrokontrolleres IR robot építéséről egy Arduino topikban?
[ Szerkesztve ]
-
nagyúr
válasz Teasüti #10677 üzenetére
Azért off, mert már túl sok vagyok ebben a topikban, nem akarom ingerelni a többieket.
Hát a koncepció az, hogy egyforma teljesítménnyel adom le a jelet, de elhangolom a vivő frekvenciát 38kHz-ről, hogy a vevő nehezebben érzékelje. Azt hittem, hogy ez egyszerű dolog: addig növelem a frekvenciát, amíg már nem tudja fogni a vevő a jelet, de tévedtem: gyakorlatilag minden frekvencián képes fogni a jelet, 2kHz-től 100kHz-ig. Viszont vannak frekvenciák, amikre kevésbé érzékeny, ezeket vagyok kénytelen használni.(#10678) tvamos: nem igaz, hogy nem számít, biztosan jobb lenne az egész, ha cm pontossággal tudnék mérni, de egyrészt nem akartam lehetetlen célt kitűzni, másrészt pedig az említett Lego robot is így lett kitalálva, és így is jól használható. Már akkor boldog lennék, ha azt a pontosságot sikerülne elérnem.
[ Szerkesztve ]
-
Volkov
senior tag
Sziasztok!
Kis segítség kellene.
Lementettem a flash tartalmát egy 1284p-nek avrdude-dal, és ott böktem el, hogy sikerült ":i" helyett ":h"-t használni.
A létrehozott fájl így vesszővel elválasztott valami lett intel hex helyett.Természetesen akkor jöttem rá, mikor az így létrehozott cucc sehogy sem akart visszamenni az avr-re.
Van erre valami megoldás vagy konverter?
Köszönöm!
:)
-
ESP32-őn Arduino IDE alatt próbált valaki posix thread mutexeket használni? Folyton lefagy az egész, pedig linuxon működik a kód.
I did nothing, the pavement was his enemy!
-
Atamano
csendes tag
Ha egy Arduino USB-B portját egy számítógéphez csatlakoztatjuk és ezzel párhuzamosan a DC bemenetet is egy tápra csatlakoztatjuk,akkor semmilyen probléma nem léphet fel?
-
balintarduin
újonc
Sziasztok! Tapasztalt programozót keresek, menü készítési feladat miatt, én nem tudom megcsinálni, de sürgős lenne! Annyira, hogy kifizetem, ha megírja azt a programot amit szeretnék, az alapokat biztosítani tudom!
-
Gergosz2
veterán
NEO-7M vagy NEO-6M GS modult használ/használt itt valaki?
u-center nevű progival próbáltam átállítani a baud rate-et de egyszerűen nem akarja megcsinálni. Nem tudom mit ronthatok el, de most elismerem, hogy lövésem sincs miért nem megy.
Gyorsítani szeretnék egy kicsit rajta, mert 9600 bps annyira nem tetszik.
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
ecaddsell
aktív tag
válasz Gergosz2 #10686 üzenetére
Mit jelent az, hogy nem akarja megcsinálni? Ha nem tartja meg a beállítást akkor az normális, mert nincs benne flash. Többek közt ezért érdemesebb Neo-7N-t venni, még ha egy kicsit drágább is.
(Nekem 7N van, de nem tudom a kínai panelon miért van gombelem ha van rajta flash .) -
-
zsolti_20
senior tag
Sziasztok! Szeretnék összehozni egy arduino + 2004A LCD kombót, de nem sikerül egyszerűen működésre bírnom az LCD kijelzőt.
Csatlakoztattam a VCC-t, GND-t, A4-et A5-öt. Letöltöttem a LiquidCrystalt, wire tömörített mappát és kicsomagoltam a dokumentumok arduino mappába a librarykhoz. Felprogramoztam ezzel a forráskóddal, de az LCD nem mutat semmit sem sajnos. Csak világít kéken. Valaki tud valamit erről?
-
ecaddsell
aktív tag
válasz zsolti_20 #10691 üzenetére
https://randomnerdtutorials.com/esp32-esp8266-i2c-lcd-arduino-ide/
A kontrasztot tekerd el..
-
zsolti_20
senior tag
-
Új hozzászólás Aktív témák
Hirdetés
- Cisco SG200-50 smart switch - 48+2 portos Gigabites
- minigép/ G4400T 35W/ 8GB DDR4/ 128GB SSD/ Lenovo M700 Tiny/ garancia/ ingyen foxpost
- XFX RX6700XT Qick319/ garancia/ ingyen foxpost
- ASUS ROG G15 - Ryzen 7 6800H - 16GB DDR5 - RTX 3060 (140W) - 15,6" 300Hz - Csere PS 5 PRO -ra
- Apple Magic Trackpad Érintőpad Fekete (MMMP3Z/A), Újszerű, Garancia: 2025.06
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest