-
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
-
Téves -
válasz
kzsolt00 #11298 üzenetére
Szia!
Ha már az arduino topikba írtál, elmondanám, hogy az egész feladat az erre a feladatra enyhe túlzás rpi helyett egy kb. 1000Ft-os esp8266 alapú nodemcu-val tökéletesen kivitelezhető lenne, touchscreen-t és weblapot is beleértve! Feltéve, ha vezetékes net kapcsolat helyett megfelel, ha "csak" wifire van kötve az egész téma. Máris spóroltam neked 18e Ft-ot.A riasztót nem értem, hogy milyen célt szolgálna, szeretnéd, ha a sz.rt is kiijesztené belőled az éjszaka közepén, vagy elég, ha csak akkor hallod, ha éppen mellette állsz? Utóbbi feladatra egy 50Ft-os piezo csipogó tökéletesen megfelel, amit közvetlenül ráköthetsz az esp/rpi egyik tűjére. Az említett pc hangszóróhoz mindenképp vmilyen végfok kell, ami lehet akár egy egyszerű tranzisztor-ellenállás-kondi kapcsolás.
A breadboard-ot pedig mindenképp felejtsd el, bármilyen megoldás is lesz a vége, hacsak nem próbanyákra gondoltál a kifejezés alatt.
Bónusz kérdés: nem lenne megnyugtatóbb megjavíttatni/cserélni azt a kazánt?
-
kzsolt00
tag
Sziasztok,
(ha nem jó helyre írok, kérlek irányítsatok el a megfelelő topicba)
szeretnék kiépíteni egy komplexebb rendszert magamnak a fűtési rendszeremhez. Egy hőmérséklet monitorizáló és riasztó rendszer lenne. Amiért írok, hogy kérlek javítsatok ki, hogy mely pontjaim hülyeségek, vagy miket felejtek el, mivel egészítenétek ki.Az "alaprajzom" az alábbi:
A szuterinba van a kazán, puffertartály, csövek, amelyeket mérni szeretnék, tehát a DS18B20 szenzorok ott lesznek elhelyezve. Mivel több helyen akarok mérni, ezért több lesz egyenesen a "bread board" ba kötve. Ez az egység pedig a raspberry Pi 3+ ba menne (habár ezek között egy emelet van, és a két egység között így vagy 3-4m távolság, kicsit több kábellel összekötve). A leolvasott hőfokokat real-time szeretném megjeleníteni a RB PI re kötött kijelzőre, de nem csak úgy, hogy egy appot írok, amely megjeleníti, hanem a RB egységet egyfajta webhostnak használnám, hogy legalább a belső hálózaton belül egy böngészőből egy alap kis UI on valós időben lássam, hogy éppen mi hány fokos. Tehát a RB hostolna egy kis webappot, és azt nyitnám meg böngészőben 0-24 ben magán a rasberryn a nappaliba a falba építve, viszont este, ha rámjön a szívbaj, akkor felemelem magam mellől a telefont, beütöm a böngészőbe a címet, és látom, hogy éppen fel akar e robbanni alattam a kazán, vagy nem. Később kimehet majd az internetre is, de első körben elég a belső háló.
Extra1: Riasztó - Egy pici szirénát szeretnék venni, ami az egyik beolvasott hőmérséklet függvényében riasztana csak. Ezt hogyan lehetne megvalósítani, milyen ötleteitek vannak? Milyen szirénát vegyek? Itt is számít igazából a kis méret, elég csak egy kicsi hangszóró is egy régi PC-s hangszórópárból kiszerelve? Ha igen, hogyan mehet az egy RB hez?1. Igaz, hogy ebből a szenzorból 1 buszra csak 8 at lehet kötni?
2. Olvastam, hogy mások cat5-6 (mindegy) ethernet kábellel hosszabbítottak ilyen szondát. Bárkinek ellenvetés? Valahova nem lesz elég az 1-2-3m.
3. A hely limitált, egyetlen behelyezett bergmann cső áll rendelkezésre ami a két szint között van, és már eleve van benne vezeték, nincs sok hely. Ezért a kérdésem, hogy a RB pi 3+ egységet, és ezt az elosztó "Bread boardot" milyen módon köthetem össze, hogy biztos tuti legyen. Valami ilyesmi háromeres kábel is megfelel, vagy van valami más kritérium amihez alkalmaszkodnia kell? [link] A hossza az 4-5 méter lenne, jelent ez bármiért is negatívumot?
4. Kaptam már olyan javaslatot, hogy a bread board az ne egy RB be legyen kötve, hanem előbb egy arduino egységbe, és arról olvasson az RB. Ennek van értelme?
5. Az egységeket a legolcsóbbnak az aliexpressen, és talán az ebayen láttam. Tudtok olcsóbb helyet ajánlani esetleg? -
zsolti_20
senior tag
Udv emberek! Szeretnek 3.7v-ot 5v-ra konvertalni. Ehhez talaltam valamit a fiokomban amirol meg regebben kaptam le az usb csatlakozot, ekkor veletlenul felszakadt a pozitiv lab es oda lett a forrasztasi pont a nyakrol.
Most lehet hasznat vennem ennek ha meg hasznalhato. A kerdesem az lenne hogy a C2 kondenzatorhoz mehet a pozitiv vagy sem? Kimertem multimeterrel a c2 kondinal es a gnd-nel stabil 5v-ot mertem de a felette levo tranzisztornal is. Vagy kukazzam es hasznaljak inkabb ujat?
kep -
-
PHM
addikt
válasz
Victoryus #11290 üzenetére
Jó, csak a rajzon véletlenül párhuzamosan kötötted a ledeket.
Sorbakötve rendben van a matek.
Viszont most nézem, hogy az ULN2003-nál zavar van az erőben.
Annak ugyanis open collector-os kimenete van, ami azt jelenti,
hogy a negatívot kapcsolja. Tehát a ledek a pozitív tápra fognak
kapcsolódni, s a másik végük a kimenetekre.
Figyelj majd a helyes polaritásra.
Ja, és az ULN 2003 COM pontját nem feltétlen muszáj a pozitív tápra kötni,
annak induktív terhelésnél van szerepe. -
-
válasz
Victoryus #11288 üzenetére
Azért kérdeztem, mert ha fordítva, a Vcc és a pin közé kötnéd a ledeket (alacsony jelszintre kapcsol), akkor úgy több áramot képes elviselni, asszem 26mA-ig rendben vagy. Mivel az esp8266 gpio-k hivatalosan 5V toleránsak, ha 5V-ra kötöd a ledeket, akár hármat is tudnál sorba kötve egy lábról üzemeltetni, külön driver nélkül (ellenállás persze ide is kell). De persze egy uln2003 lenne az igazán megnyugtató megoldás (arra is úgy kell kötni a ledeket, hogy a tápra megy a másik lábuk), ha tudsz neki helyet szorítani (külön tartót nyomtatni nemigen kell neki, hiszen egy chipről van szó, beforrasztod rá a ledeket stb aztán teszel rá egy zsugorcsövet és benyomod az egészet egy kevésbé látható résbe.
-
#aryes: köszönöm! Tényleg van amit kifelejtettem. A föld a másik lábuk.
Szintén köszönöm!
Mondjuk nem haladtam most előrébb, mert a nyomtatott servo tartó nem passzol a Legóhoz, de azért elment vele egy csomó idő, szóval most megyek majd és nyomtatok másik fajtát. Az aksi tartó sincs még kinyomtatva. De ha már úgy is nyomtatni kell, akkor az uln2003-nak is nyomtatok valami tartót. Remélem kapható Csabán és nem 100x áron, ahogy a ledek. Ezért jöttek Aliról... -
PHM
addikt
válasz
Victoryus #11285 üzenetére
4db NPN tranzisztor, + bázisellenállás, vagy egy ULN2003.
A kollektorokra/kimenetekre mehetnek a ledek, persze megfelelő
előtét ellenállással.
A tápfeszültség szabadon választott, célszerűen a fő táp, azaz a
két 18650 pozitívja.
Fehér/kék ledből kettőt, alacsonyabb nyitófeszültségűből akár hármat
is sorbaköthetsz. Soros kötésnél összeadódik a nyitófeszültség, de
azonos lesz a ledek árama, párhuzamos kötésnél az áram adódik össze,
de azonos (1 lednyi) lesz a nyitófeszültség.
Ha tranzisztorokat használsz, bázisellenállásnak elég 1-1 1,5-2,2 Kohmos. -
Egy pin akkor tuti nem bír 4 ledet... Egyik tutorialban írják, hogy arduinon egy pin maximum 40ma-t tud, de esp8266 csak 12ma-t. Az meg nagyon kevés. Ejj...
Akkor külön táp kéne a világításhoz is ezek szerint?
Mondjuk ha a motorvezérlőt csapolnám meg...? 3 dc motor hely úgyis üres még, és legalább programozható is. Ha jól gondolom akkor az 2db 18650-es cella esetén max ~8.4V. Most még 3db-ról megy, de a végleges kiépítésbe csak kettőt tervezek hely/súly miatt. -
-
válasz
Victoryus #11281 üzenetére
Az a led nyitófeszültségétől függ. Egy piros led esetén kb. 10mA áram fog folyni, ha két led lesz rá kötve párhuzamosan, az 5mA/led, így az már nem biztos, hogy elég fényt ad. Zöld/sárga led nyitófeszültsége picit magasabb, még kisebb lesz az áram. Inkább 60-80ohm körül tennék oda.
Vcc-re vagy GND-re van kötve a ledek másik lába? -
-
5mm-es, zöld/sárga/kék/fehér/piros... 100db volt 0,8$ Aliról, különösebben nem gond, ha pótolni kell őket. De eddig egész jól bírják a strapát. Az egyik kapott 5V-ot is, azt nem szerette.
-
válasz
Victoryus #11276 üzenetére
Milyen sebességgel flashelsz? Az egyik d1 minit nem bírtam 9xx kbit/s-al flashelni, miután a gpio-kra voltak kötve a cuccok, le kellett mennem 1xx van valahány kbit/s-ra, addig mindig hibás lett a feltöltött program. Talán nálad is hasonló a gond. Illetve a kábelt cseréld ki.
Nemrég én spammeltem teli a topikot az infravörös adatátvitelemmel, írd csak nyugodtan a fejleményeket.Ha elkészült, tegyél majd fel videót.
Nem írtad, milyen ledet használsz. -
válasz
Victoryus #11275 üzenetére
Összeraktam az egészet, most úgy tűnik működik is. Végül a sokadik flash után újra kiírta az adatokat serialra... nem tudom mi gondja volt, ahhoz a részhez nem is nyúltam.
Hát, nem szép a kód, majd megpróbálom szétszedni több függvényre, de eddig nem sikerült.
Elnézést, ha valaki már nagyon unja a projektet...
Wemos d1 r2 rc car -
válasz
vargalex #11273 üzenetére
Újraírtam csak az indexelést, így most tökéletesen megy: [link]
Leszámítva, hogy soros portra semmit nem ír ki.
Azt hiszem az volt a baja eddig, hogy amíg balra indexelek, addig a jobb oldalit le kell kapcsolni, plusz fordítva is. Nem volt lekezelve ez az ága a feltételnek. -
válasz
Victoryus #11272 üzenetére
A hibakódra a gugliban rákeresve én is azt találtam, hogy resetel a board, mégpedig áramellátási gond miatt. Úgy néz ki egyszerű rövidzárlatot csináltál a két leddel az áramkorlátozó ellenállás nélkül.
Gondolom párhuzamosan kötötted őket.
Az esp8266 gpio max 17mA árammal terhelhető, ha a ledet a gpio és a gnd közé kötötted. Ha a Vcc és a gpio közé van kötve (alacsony jelszintre kapcsol), akkor nagyobb áramot is képes elnyelni, de mindkét megoldással kockáztatod, hogy túlterheled az adott gpio-t és tönkremegy.
Milyen ledet használsz, színeset vagy fehéret? Ha színeset, akkor a két ledet sorba kellene kötni, nem párhuzamosan, és egy áramkorlátozó ellenállást számolni hozzá. A fehér ledeket a nyitófeszültségük miatt nem lehet párhuzamosan kötni, de ellenállás akkor is kelleni fog, vagy egy darlington tranzisztor. -
Igen, még mindig a Wemos D1. Ledeket mindig közvetlenül szoktam. Tudom kéne ellenállás is. Indexnél 2-2 led megy egy pinről, világításnál 4db.
A millis() led villogtató tesztprogram rendben megy, csak ha beleteszem a többihez akkor már nem megy. Tuti tele van programozási hibával is amit írtam, bár lefut. -
Van új probléma... próbálom belőni az indexelést, millis() segítségével. De valami gubanc van vele, mert serial-on hibát dob: ets Jan 8 2013, rst cause:2 vagy 4 boot mode
1,6)
A bal oldali indexek a gpio 1-en vannak, a jobb oldaliak a gpio3-on.
A jobb oldalira: ets Jan 8 2013, rst cause:2 vagy 4 boot mode1,7)
Erről nem nagyon találtam több infót... -
janitoth
csendes tag
Sziasztok!
Segítséget szeretnék kérni az alábbiakhoz: adott egy Nano v3, egy 7X3 db-os WS2812. A neopixel egy 3Dnyomtatott 7szegmenses kijelző keretbe van beépítve.Azt szeretném,ha a kijelző folyamatosan számolna 0-tól kilencig úgy hogy a 0 után szint vált.( piros 0-9 majd zöld 0-9 majd kék 0-9). Ezen program írásához kéne segítség, esetleg kész .ino, ha nem túl nagy kérés. Néztem a Yt-on de ott csak komplett órák vannak. Attól nem lettem okosabb. Köszi előre is. -
Janos250
őstag
válasz
Victoryus #11266 üzenetére
Csak egy tipp:
A tools/erase Flash alatt nem véletlenül az Only sketch-et állítottad be, az All Flash Contents helyett?Na, közben látom, ez megoldódott. Nekem szokott menni telefonról is. Ha a régit látja, felejtesd el a telefonon az állomást, újra megtalálja, és akkor már jó lesz.
-
-
Minden Wemos D1r2 ilyen gagyi wifivel rendelkezni, vagy én fogtam ki? Nagyon sok a csomagvesztés... Udp helyett mi más jöhetne szóba?
Azt továbbra se értem, miért nem lehet a wifi beállításait átállítani. Hiába írom át az ssid-t, jelszót, csatornát, portot, tojik rá. Felülírás védett lett valahogy? Nem találtam rá magyarázatot.
Ha tcp-s példát flashelek akkor is maradnak a wifi adatok a régiek.
Nem lehet totál resetelni, hogy alapra álljon? -
válasz
gazso75 #11264 üzenetére
Küldje el emailben a koordinátákat, vagy a rajta futó webszerverre wifin keresztül fellépve küldjön egy oldalt, amin a gmaps térképe van beágyazva. Pl így: https://www.google.com/maps/place/@51.5007292,-0.1246254,16z
A kukac után látható a gps koordináta. -
-
válasz
Breaker #11259 üzenetére
Köszi a biztatást, de ez nem fog bekövetkezni, ugyanis a lap már be van ragasztva, így hozzá sem tudok férni, ezen kívül rá van forrasztva a li akksi, így nem szívesen babrálok már vele, félek, hogy rövidzárat csinálok.
A másik meg az, hogy a töltési idő is hosszabb lenne emiatt... -
Breaker
tag
"2: R3 cseréje nagyobbra."
Ez működne, de nem szívesen babrálok SMD alkatrészekkel..."Ugyanmar… fel perc alatt megvan. abszolút kezdo vagyok forrasztásban de a vacak 15W Toolcraft pakammal is pik pakk kicserelnem. 5 percet gyakoroltam egy maradék próbanyákon utana az eleseken azonnal ment popecul. persze az ón nem ugy nez ki mintha beultetogep tette volna le de nem lenne gond. Próbáld meg.
-
Más téma!
Szeretnék egy hiperegyszerű töltöttségvisszajelző ledet gründolni a fent említett li-ion táplálású eszközbe.
A következőt találtam ki:
A li akksi egy ilyen boost konverteren keresztül táplálja a gépet. Azt szeretném, ha az akku 3V körüli szintjénél "kigyulladna" egy LED, ami arra figyelmeztet, hogy ideje töltőre dugni az eszközt. Az out+ és az in+ közé tennék egy ~1,7V nyitófeszültségű ledet egy diódával és egy áramkorlátozó ellenállással sorba kötve, ami elképzelésem szerint akkor fog kinyitni, ha a konverter kimenete és bemenete közti feszültségkülönbség eléri a 2,3V-ot. Mivel a konverter kimenetén 5,2V körüli feszültség van, ez az eset az akku 2,9V szint alá merülésekor fog bekövetkezni - elméletben.
Valahogy persze számításba kellene vennem az előtét ellenállást is, mert nyilván befolyásolja az egész cucc nyitófeszültségét, talán még diódát sem kellene sorba kötni.
A kérdésem, hogy ez működhet-e, aszerint, ahogy én azt elképzeltem, és van-e buktatója (leszámítva persze, hogy zárlatos lesz a LED és rövidzárlatot csinálok). -
"2: R3 cseréje nagyobbra."
Ez működne, de nem szívesen babrálok SMD alkatrészekkel...
"1: Soros, pl 2A-es shottky dióda, vagy 0,47 ohmos ellenállás az 5V-os ágba.
A TP4056 ugyanúgy tölt majd, csak kevésbé forrósodik."
Ez tetszene, de sajnos nem járható, mert usb csatlakozó van rajta, nem tudom megbontani.
Viszont jó ötletet adtál, fogok keresni olyan usb-s töltőt, aminek 5V alá esik a feszültsége terhelésre (tegnap 2A-es töltőt próbáltam, lehet ez volt a hiba), vagy keresek egy ócska usb kábelt, amin nagy a feszültségesés, asszem tudok is egyet, pont kapóra fog jönni. -
PHM
addikt
válasz
gyapo11 #11255 üzenetére
Nincs sok értelme, a műanyagnak elég nagy a hőellenállása.
Ezek a tokok főleg a lábaikon keresztül adják le a hőfelesleget,
illetve van olyan is, amelyiknek kis fémlapka van az alján.
Jelen esetben a nyák rézfóliája a hűtőborda. Ha megnézed, a nyák alja
majdnem teljesen egybefüggő. Úgy gondolom, ez van összekötve pár
thermal via segítségével az IC test lábára menő GND fóliával, valamint
a TP4056 alatt lévő széles fóliacsíkkal. (Történetesen ennek az IC-nek
az alján is van egy fémlapka, ott tudja viszonylag hatékonyan leadni a
hőfelesleget.) -
PHM
addikt
Igen, normális, csak nem túl egészséges.
Az IC egyszerűen elfűti az 5V és az akku kapocsfeszültsége
közti különbséget. Ez egy lemerült, kb 3V-os akkunál több, mint 2W.
Két mód van a méregfog kihúzására:
1: Soros, pl 2A-es shottky dióda, vagy 0,47 ohmos ellenállás az 5V-os ágba.
A TP4056 ugyanúgy tölt majd, csak kevésbé forrósodik.
2: R3 cseréje nagyobbra.
Kisebb lesz a töltőáram, de cserébe a disszipált teljesítmény is.
(Inkább kisebb kapacitású akkuknál érdemes alkalmazni.)[ Módosította: Intruder2k5 ]
-
-
Ezen a töltő modulon, amiről beszéltek, normális, hogy 70°C körül van a chip hőmérséklete? Egy db. cca 2000mAh kapacitású 18650 cellát töltök vele, 5V-ról. Az usb-s V/A mérő szerint 1,11A töltőáram megy a cellába, miközben 70°C körülre forrósodik fel (maga a cella nem melegszik). Mikor lecsökken a töltőáram, lemegy 50°C körülre, majd rendben leáll a töltés. A feszültség is rendben van, szóval látszólag jól működik, mégis aggaszt ez a magas működési hőmérséklet, a rögzítéséhez használt forróragasztó is megolvadt töltés közben.
-
Melorin
addikt
Sziasztok!
Nano-hoz szeretnék valami kisméretű kijelzőt amin főként csak hőmérséklet érték lesz kijelezve.
Melyik kijelzőtípust ajánlanátok erre, aminek a programját nagyon könnyű megírni? -
Breaker
tag
Sziasztok,
A véleményeteket szertném kérni.
Rendeltem ebayrol egy ilyen Li-Po elemet:
Szertnék hozzá töltőmodult , de konkrétan ehhez nem találtam. Szeirntetek ezzel lehet e tölteni:
Ez a "hengeres" 18650-eshez van ugyan, de a charging V megegyezik. Nem tudom mit kell még nézni hozzá, hogy biztonságos legyen a töltés.
Előre is köszi
Üdv
Brekaer -
Kész az alfa 0.5 verzió, működik is végre.
Valóban alacsony volt a feszültség, lemerültek a sok teszteléstől az AA aksik. Meg az a ~6V amúgy se volt sok. Átkötöttem a servo motort a motor shield servo csatlakozására, plusz adtam a shieldnek 3x18650 akkut. A koppcsincs Lego motor megy mint, az állat, pedig még nincs is maxon. Eddig azt hittem ez ilyen kis lassú.. hát nem csak éhes volt. A szervó is megy. Együtt is mennek végre.
Egy dolgot nem tudok még, hogy miért szakad meg gyakran a wifi, és miért nem változik meg sose az ssid/csatorna száma.
Plusz még le kell kezelni a kapcsolat megszakadását is, mert van amikor pont sebességadásnál kapcsol szét, és nem lesz szerencsés ha elszabadul a járgány. -
válasz
Janos250 #11239 üzenetére
Utánanézek a témakörnek. A servo motor sima Aliexpresses sg90.
Megy a servo a példaprogrammal, ahol csak fokokat adok meg, az a része ok.
Udp szerver + roboremoval is megy, kövei a telefon mozgását. De ha a dc motort is használnám, akkor van a gubanc.
Van a wemos r1d2, rajta a motor shield, rajta a sensor shield. -
Janos250
őstag
válasz
Victoryus #11238 üzenetére
programodból:
"myservo.attach(5,600,2300); //GPIO 5, meg min max, ezt nem értem, de ennyi volt a példában""Writes a value in microseconds (uS) to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft. On standard servos a parameter value of 1000 is fully counter-clockwise, 2000 is fully clockwise, and 1500 is in the middle.
Note that some manufactures do not follow this standard very closely so that servos often respond to values between 700 and 2300. "
https://www.arduino.cc/en/Reference/ServoWriteMicrosecondsEzért kellene tudni, milyen a servo. Mindenesetre én 1000 és 2000 közöttivel próbálnám, mert én még csak olyat láttam.
Már eléggé kavarodnak bennem az infók, de - úgy rémlik - Wemos D1-et használsz. Az viszont ESP8266, de:
libraries/Servo/src/Servo.h - ban ez van:
"This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."Lehet ez a gond? A servo.cpp interrupttal dolgozik, és az az ESP-nél más.
A servo ugyanis úgy működik, hogy folyamatosan adni kell neki az adott időszélességű impulzust, ami általában 1 és 2 millisec (1000, ill. 2000 microsec) között van. Ha az 1 msec-es inpulzusokat kapja folyamatosan, akkor az egyik végkitérésre áll, ha 2 msec-et, akkor a másikra, 1.5 msecnél meg középre. Olyan állapot undefinit, hogy adok neki egy impulzust, és nem ismételgetem.Más:
Az Arduino "nyelve" a C++, ami magában foglalja a C-t is. Ha tanultál PHP-t, az C++ némi extrákkal.
Tehát, ha a PHP-ból kihagyod a hálózatos dolgokat, akkor az C++, ami már megy az Arduino lapon is (illetve ez nem teljesen igaz, de majdnem). Tehát a C++ -al akarj ismerkedni. Ebben a PHP, Delphi jó alap, mert a filozófiájuk ugyanaz. A pascal is jó, bár abban még nincs objektum. -
Nagyjából összeállt a kód Erősen alfa verzió. Egyszer működött kb. Aztán ahogy gázt adtam a dc motornak, a szervo nem ment, a dc meg nem reagált. Van amikor a servo magától zúg, pedig nincs is hozzá csatlakoztatva még a wifihez a telefon se.
Ha bekapcsolom a dc motort, akkor úgy marad vagy el se indul, és nem reagál többet, pedig küldi a telefon az adatokat. A ledek működnek ekkor is. A servo hol megy, hol nem, leginkább nem. Ha megy akkor követi a telefon mozgását, kb 180 fokot fordul.
Külön-külön megy mindkettő a példa progikkal. Valamiért összeakadnak, vagy ilyesmi... Ha valakinek van ötlete, előre is köszönöm... -
A terv az, hogy csinálok hozzá saját androidos távirányítót is. Egyrészt, hogy fejlődjek kicsit, meg érdekel is. Ki kéne próbálni tcp-vel is... van még ebbe sok lehetőség. C-ét sose tanultam, anno még Pascal volt meg Delphi, utána php... meg egy kis JS. Kicsit nem árt beletanulni a C-be is. Átolvasom az udp, tcp, konvertálások referenciáit.
Ki akarom vinni szabadba is a járgányt, jó lenne 20-40m hatótáv.Van egy bluetoothos uno alapú 3 kerekű járművem is, de még nem próbáltam szabadban. Valamikor írtam arról is szerintem, meg kértem segítséget. Mindig szétesik bent is
Tudom, össze kéne forrasztani mindent, meg le kéne ragasztani, de akkor meg nem lehet szétszedni.
Ettől a Lego technic kamiontól is tartok, hogy nem lesz elég stabil. Jó kis összetett feladat... A servo motort még nem tudom hova tegyem... már így is totál át kellett építeni, a hátsó motorhoz is. Lehet jobban jártam volna ha eleve a motorokhoz építem a kasznit. DC motorral gondolom nem szoktak kormányt vezérelni. Problémás megoldani, hogy pont csak ~1,7 fordulatot menjen jobbra is meg balra is. -
válasz
vargalex #11232 üzenetére
Most látom, hogy írtál egy új megoldást. Köszönöm!
Annyiból összetett, hogy a csúszka, giroszkóp az elé teszi a csatorna nevét, stringet küld, a gombok meg nem, azok float/int adatot küldenek. De akkor azt lekezelem valahogy.
Egyébként nem nagyon értem a packetbuffert. Ha a buffer mérete 4 byte, akkor abba hány karakter fér? Nem 4 hanem 5? Miért 5, mert van 0. eleme is?
Konkrét példa: csatorna neve abc és utána a csúszka ad értéket 0-240 között. A változatlan kódom ekkor lecsapta az abc-t, és átjöttek a számok 0-99 között. De az már 5 karakter hossz.Még egy kérdésem van: a wifi ap nevét, jelszavát, csatorna számát miért nem módosítja, ha átírom a forrásban és újra feltöltöm? kb 20-ból 1x sikerült módosítani, akkor is a példatáras wifi ap programmal, nem ezzel amivel kísérletezek.
-
vargalex
félisten
válasz
Victoryus #11231 üzenetére
Ha jól értem, akkor lenne egy ilyen szöveg érkezne pl: abc123. Ebből ugye az abc a csatorna neve, az 123 pedig az érték. Ansi C-nél ez azért elég egyszerűen kezelhető (ha tudod a csatorna név hosszát). A korábbi példánál maradva, ha a packetBuffer-be érkezik, akkor ennyi:
int iValue = atoi(packetBuffer + 3);
És így máris int-ként ott van az érkezett érték az iValue-ban.
-
válasz
DigitXT #11230 üzenetére
Azért lett udp, mert gyorsabban reagál. Ha éppen reagál akkor tényleg... Fél méter sincs a telefon meg a Wemos között. Még esetleg másik wifi csatornával kipróbálom, hátha azért van ennyi csomagvesztés mert az alap 1-es telített. Bár csak 3 van rajta a 20 konkurens wifiből.
Egyébként nem jó az elgondolásom, mert a RoboRemo csúszkánál meg giroszkópnál se sima számokat küld, hanem el kell nevezni legalább egy betűvel az adott 'csatornát'. Szóval ha maradok az enyémnél akkor le kell vagdosni az első betűt, és utána számmá alakítani.
Ha Vargalex javaslatát követem, akkor meg nem tudom a sebességet átküldeni. Csak string-ként tudja fogadni a csomagokat, és utána abból kell kibányászni a számokat. -
-
-
válasz
vargalex #11226 üzenetére
Köszönöm!
Érdekes, hogy a LED_BUILTIN a flashelős ledet kapcsolgatja, a gpio14 meg az sck feliratost. Ez jó, mert egyszerre tudok akkor két gombot+adattovábbítást tesztelni. Este nem tűnt fel.
Még most jön a neheze, mert a motorokat is kéne távirányítani. Az biztos, hogy lesz egy dc motor, amivel előre-hátra fog menni a járgány, a kanyarodást még nem tudom. Van servo motorom is, meg van dc motorom is. A dc az pont beillik átépítés nélkül, a servo meg pontosabb ahogy nézem. Egyelőre folytatom a dc motor irányításával. Egy csúszkával akarom szabályozni a sebességét és az irányát. Min érték -255, max 255, 0-val pedig megáll.
Tehát az elképzelés: 3 byte-ot küldene a RoboRemo.
Értékek: -255 - 255 dc motor sebesség, 256 első+hátsó ledek, 257 és 258 index, és a telefon elfordításával kormányoznám, mondjuk 500-600 közötti értékekkel.
Az ingyenes Roboremo 5 funkciót enged, ennyi pont beleférne. -
Breaker
tag
sziasztok,
Arra van jó megoldás hogyha az udp tartalma bináris akkor a hexa vagy int értékét kapjam vissza a bytenak?
char packetbuffer[1048]
-ba olvasom be, es valahogy egyesevel probalom kiszedni de ha pl toInt-et hasznalok akkor mindig 0 a vegeredmeny.
Köszi
üdv
Breaker -
vargalex
félisten
válasz
Victoryus #11224 üzenetére
Most néztem meg igazán az eredeti kódodat. Nem használtam eddig a WiFiUdp könyvtárat, így most néztem utána, hogy a read függvény második paramétere a maximális buffer méretet adja vissza, amin a te kódod végig is ment, így nem egyezett a vizsgálatnál. Viszont a read függvény visszaadja a beolvasott karakterek számát.Valamint UDP-n egy újsor (\n) is érkezik, így ezért sem jó a vizsgálat. Erre módosítottam (a vizsgálatot is átírtam, mert teljesen felesleges egy String-be is bemásolni). Nálam a Wemos R2 mini-n HIGH állásban kapcsol le a beépített LED és LOW állásban világít, de egyébként helyes a LED_BUILTIN értéke.
-
vargalex
félisten
válasz
Victoryus #11224 üzenetére
Pontosan milyen boardra build.-eled? Mert ugye a Wemos D1 R2 / mini esetén 2 a LED_BUILTIN értéke.
0 szerintem nem érkezik, csak azért megy bele az if-be, mert üres String esetén a toInt 0-t ad vissza. Így én vizsgálnám a packetSize értékét is.
-
válasz
vargalex #11223 üzenetére
Köszönöm, igen, a stringgel volt baja. Ha átkonvertálom int-be akkor végre belemegy a feltételek vizsgálatába. Hát, nagyjából működik, most jönnek a 0-ák maguktól is, ezt még pontosítani kell
Bár most lehet azért jön 0, mert az Y tengelyt is küldi a roboremo, és azokat az értékeket veszi 0-nak. Meg végül is felesleges 8 byte, elég lesz 1-2 is.
Megadtam neki végül fixen a gpio 14-et is, mert a builtin nem megy valamiért.
forrás
Halad ez -
válasz
Janos250 #11221 üzenetére
A sima led villogtató programmal megy a builtin led, Gpio14 egyébként.
De bele se megy egyik if-be se, nem írja ki a 'megjegyzéseim se'.
Maga a myData az egy string nem? Különben hibát dobna az if-nél. Itt most nem tudom hogyan tovább. A soros monitoron kiírja a led_on/led_off szövegeket.Vagy bele kéne tenni minden myData elemet egy tömbbe, és utána tömbelemenként vizsgálni? Csak akkor meg egy idő után nem fog 'betelni'?
A roboremo-s példában valahogy úgy van, hogy mindig feltölt egy 100 elemű tömböt, de nem látom át mit miért csinál... Plusz ott vizsgálja a csomagok első két betűjét a srác. Meg az tcp nem udp. -
Beüzemeltem az udp szervert. Az a gondom, hogy vizsgálom a csomag tartalmát, de nem kapcsolja ki/be a ledet a Wemos. A RoboRemo app szépen küldi a jeleket, a soros monitoron látom.
Forrás
Nem egyezik a típusuk? A myData lenne a tömb eleme. 8 byte-os az elemek mérete, de próbáltam 7-tel is, hogy pont olyan hosszú legyen mint a "led_on", akkor se ment.
if (myData == "led_on")
{
digitalWrite(LED_BUILTIN, HIGH);
}
Egyfolytában világít, nem kapcsol ki. -
válasz
vargalex #11213 üzenetére
Ok, aztán már leesett...
Most kezdem akkor onnan, hogy legyen a Wemos az AP, és legyen rajta sima egyszerű web szerver. Ez most úgy fest működik is: pastebin link
Kiírja soros monitorra amit kell.
Ha pingelem a laptopról, akkor nagyon sok a csomagvesztése. Ez miért lehet? Ennyit bír a lap? A reakcióidők is nagy szórást mutatnak. -
Janos250
őstag
válasz
gazso75 #11215 üzenetére
A BN-250 egy jó modul, sokan dicsérik, és olcsó.
Nekem is van, de még nem próbáltam, mert kiderült, hogy amire nekem kell, arra csak nyögvenyelősen használható részlegesen.
A nano nem egy gyors, korszerű lap. Helyette jobb lenne valamelyik ESP, STM32.
Nem tudom, elég-e a 9600 baud ennyi adathoz. -
-
vargalex
félisten
válasz
Victoryus #11212 üzenetére
Nem jól értelmezed és ebből adódik a problémád is. A station mode az, amikor egy wifi Access pointhoz csatlakozik az ESP8266. Azaz a kód hibátlanul működik, csak nem tud csatlakozni a megadott SSID-vel rendelkező hálózathoz (mert ugye nincs is).
Az viszont továbbra is érvényes, hogy biztos, hogy nem csak pontokat ír a soros konzolra. Előtte ott kell lenni a Connecting szónak is. -
Feltettem az udp teszt kódját a pastebin-re.
Ugye jól értelmezem, és a Wemos lesz a wifi AP? A gond az, hogy nem jelenik meg egyik eszközömön se a wifije.
Soros porton szépen teszi a pontokat egymás után másodpercenként.Ami még érdekesség: tcp-s példát is néztem, csatlakoztam a wifijére laptopon, és pingeltem. Elég sok csomagvesztés van. Kb. 10-15 csomag ok, utána 1 ok 1 veszít párszor, majd egy idő után megint 10 jó és így tovább.
A wifi scan példa viszont úgy látom nagyon sokáig fut látszólag normálisan.
Ha csak sima ap-ként ment, akkor bizonyos idő után eltűnt a wifije. 1 perc-2 perc után. Lekapcsolja energiatakarékosságból?u.i.: sta- tehát station mode? Akkor viszont ez piszkosul nem azt csinálja amit én gondoltam. Nekem olyan kéne, hogy a Wemos a wifi AP, az androidos telefon a kliens, és az küldi udp protokollon keresztül a jelet, monjuk RoboRemo appal.
-
-
válasz
Janos250 #11207 üzenetére
Nem ír ki semmit soros porton. A saját példái között is van udp, de azzal se. Maximum pontokat ír sorosra. A wifi nevét mindig átírom a programban, hogy lássam a változást.
Ami jól működik a wifis példák közül, az ap, ott kiír mindent soros portra is, telefon csatlakozik.
Teszt közben nincs fenn a wemoson semmilyen shield. Első lépésként nekem most elég lenne a beépített ledet kapcsolgatni wifin.
Tcp-s példák mennek rajta, de.elég sok a reakcióideje. Az udp-vel van valami baja. Ha sérült lenne.vagy hiányozna az udp könyvtár, akkor hibát írna ellenőrzés közben nem? -
-
Próbálok beüzemelni udp szervert a Wemos d1r2-re, de piszkosul nem megy. A saját példája se megy vele, meg amiket találtam a neten, azok se. Még csak a wifi neve se az, hanem amit 3 példával ezelőtt írtam be neki, amikor ap-ként teszteltem. Mi a bánatért nem csinálja? Most például ezzel próbálkozok, de semmi. Ellenőrzés lefut, fel is tölti a lapra. A laptopom szerint meg a telefonom szerint se változik meg a wifi neve, a serial portra se ír semmit.
-
DigitXT
félisten
Én most egy NEO-M8N alapú cuccal szöttyögök. (M5Stack) Példaprogram fut:
beltérben picit nehezen talál jelet, de kellő türelemmel megvárható az is. (Csak
rohadt nagy szórással mér ilyenkor, szóval 1-3 km/h körül ülök egy helyben.)
Szerk: kint azért jóval pontosabb volt. Bár kevesebb hódot látott, mint a telefon.
-
Janos250
őstag
"Én nemrég átírtam az esp8266 softwareserial lib-et paritásbitesre"
Én meg a GPS-ekhez ESP32-n hardwareserialt használok, mert nekem nem csak az NMEA adatok kellenek, így rengeteg adatot kell kezelni."Egyébként az lesz a hiba, amit DigitXT kolléga írt"
Láttam én is, azért nem is foglalkoztam ezzel a részével, hanem pár általános gondolatomat írtam le. A distanceBetween nem azon segít, hanem könnyebben kezelhetővé teszi a távolságot, mert közvetlenül méterben adja meg.Viszont, ha jönnek hibás adatok is, akkor esetleg annak az okát (hardware ?) is meg lehetne keresni.
-
válasz
Janos250 #11201 üzenetére
Én nemrég átírtam az esp8266 softwareserial lib-et paritásbitesre.
Egyébként az lesz a hiba, amit DigitXT kolléga írt, hogy akkor is menti a hibás adatot az előző értéknek fenntartott változóba, amikor hibás, ezért ha két hibás adat jön egymás után, az egyik át tud csúszni az ellenőrzésen. Ezen a distanceBetween sem segít, mert ahhoz is el kell tárolni a korábbi értéket. -
Janos250
őstag
válasz
gazso75 #11198 üzenetére
Pár gondolat így elsőre. Lehet, ezek számodra nem aktuálisak, fogadd kellő kritikával őket.
1.) A TinyGPSPlusban van:
double TinyGPSPlus::distanceBetween(double lat1, double long1, double lat2, double long2)
Miért nem azt használod a
if(abs(prev_lat - gps.location.lat()) < 1 && abs(prev_lon - gps.location.lng()) < 1)
helyett?2.) Az osztály végez kontrollszumma ellenőrzést. Ezek szerint csak azokat a hibásakat veszi át, ami ezen átcsúszik, ezért viszonylag kevés a hibás adat, de a valóságban sokkal több, csak azt nem látjuk.
3.) Milyen kontrolleren (lapon) futtatod? Mert ha egy kicsit korszerűbbön, mint az UNO, akkor nem célszerű a SoftwareSerial, hanem helyette a hardware megoldás.
4.) Milyen GPS modult használsz? Nem tud paritásbittel küldeni? Bár - úgy tudom - a SoftwareSerial nem tud paritásbites olvasást :-(
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! ASROCK H310CM i3 9100F 8GB DDR4 240GB SSD GTX 1050Ti 4GB DeepCool Tesseract Chieftec500W
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- Samsung Flip 2.0 PRO 65" WM65R + Connectivity tray + Gurulós állvány
- Használt Intel procik - Core 2 - Dual Core
- Lenovo Legion Slim 5 82Y900BVHV Notebook
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest