Hirdetés
- Már jövőre befuthat a Stellar Blade PC-s kiadása
- Star Wars: The Old Republic - MMORPG
- PlayStation 5 Pro teszt
- Megjelent a Silent Hill 2 Remake
- Assetto Corsa Competizione
- PlayStation 5
- Xbox Series X|S
- Call of Duty: Black Ops 6
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- WoW avagy World of Warcraft -=MMORPG=-
-
GAMEPOD.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
-
Sanki
addikt
Igen, köszi, nagyjából értem. --> "de ha lib-eken keresztül" - ez gondolom az a rész, amikor a kód elején hivatkozik egy másik kódsorra, pl.
#include <Adafruit_NeoPixel.h>
?
Akkor próbaképp lehet rendelek egyet, ahogy nézem ezek is ilyen 3-4 dollár körül mozognak.Jelenleg ezt a projektet csinálgatom, a parancsok egy részét már értem mi mit csinál (ezen a kódon belül), még azt szeretném majd beleszerkeszteni, hogy egy gomb segítségével a
"PANIC_DISTANCE"
és/vagy a"PARKED_DISTANCE"
változtatható - tanítható legyen. -
nagyúr
Ehhez viszont nemigen kell wifi, egy attiny85 is el tudja végezni a feladatot.
Arra számíts, hogy az ultrahang szenzorra hiába írja, hogy 5m a hatótávja (wtf?!), max másfél méter távolságra fogod tudni használni, azt is csak úgy, ha az autó valamely függőleges felületére lövöd be.
Hogy lesz megtáplálva? Mit fog csinálni a jelzőfény, amíg benn áll a kocsi a hatósugárban (parkol)? -
Sanki
addikt
Ja ez nem is lesz wifin meg semmi, az teljesen más.
1 méterre állítottam be jelenleg, illetve majd magasságba a rendszámtáblára fogom irányítani.
Tápot meg 1 régi telefon töltőről kapja majd, ha leparkoltam akkor 20 sec után lekapcsol a ledszalag, illetve egy kapcsolós hosszabbítóra lesz kötve, hogy felesleges ne kapjon áramot. -
nagyúr
Jól hangzik. Ha én csinálnám, én megpróbálnám elemes/akkus táplálásra tervezni, pl egy attiny85-tel (mostanában ez a kedvencem, pedig rém elavult már ) feszültség konverter és egyéb árampazarló perifériák nélkül. Kérdés, hogy a ledszalagnak mekkora az a minimum tápfeszültség, aminél még működőképes.
-
Janos250
őstag
"Ha valamelyik esp lenne, akkor a kódok is máshogy néznek ki vagy ugyanaz használható, mint a két fenti vezérlőn?"
Is-is. Azok a könyvtárak, amik a a szokásos digitalRead(), digitalWrite(), pinMode() függvényeket használják, azok simán mennek átírás nélkül.
A WS2812 RGB led meghajtás egy más téma, az már nagyon erősen ki van centizve a szükséges sebesség miatt az adott típusú lapokra.
Mint korábban írtam, elég nagy a káosz a könyvtárak terén, de vannak jól bevált példányok. Én évekkel ezelőtt egyszer a DHT11-et akartam használni, de a különböző könyvtárak között mindig kavarodás volt, ezért inkább írtam egy sajátot, ami a triviális GPIO kezeléssel és időzítéssel olvassa az adatokat, így erről pontosan tudtam, hogyan működik, mit csinál. Persze, az még odébb van, hogy te is saját könyvtárakat csinálj.
Hasonlóan voltam a Adafruit_NeoPixel.h-val is. Inkább csináltam ESP32-re egy sajátot, ami ugyan csak az ESP32-n működik, de annak a lehetőségeit kihasználja, és pontosan tudom, hogy mit csinál, így elég hosszú led szalagot elég gyorsan tudok kezelni.
Az Adafruit_NeoPixel.h - bár rég néztem, de úgy emlékszem - tud többféle processzort kezelni.Aryes:
Régebben, hogy ennyien használjátok, megnéztem ezt az attiny85-t. Tetszik, hogy pici, egyszer még lehet, hogy én is kipróbálom :-)
Bár az okos konnektorokban, miegymásban használt ESP is igen pici, de azt meg nemigen lehet kapni.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Sanki
addikt
Az nagyjából hogy nézne ki külső akksival?
Erre gondoltam én is, csak sajnos nincs itthon semmi akkumulátor (max 1 régebbi autós akksi, amit még nem adtam le a telepen vagy pedig 1 powerbank lenne). Főleg ebbe a home office-os munkarendbe nem is sokat megy az autó.
Jelenlegi beállításban ~250 mA-t eszik a ledszalag, de az erősséget lentebb lehet venni. Működési idő is az a fél perc lenne max, ameddig beállok a garázsba. -
Sanki
addikt
-
nagyúr
Itt azt írják, hogy elmegy 3db ceruzaelemről is egy ilyen led stripe, akár 3 voltról is.
Parkolás után kézi kikapcsolás helyett lehetne mélyalvásba vinni (akkus táplálás esetén), mondjuk percenként egyszer felébreszteni, hogy ott áll-e még az autó, úgysem életszerű 1 percen belül kiállni a kocsival meg vissza. -
nagyúr
Egy 12V-os autós akksiról tovább üzemelne, mint amennyi idő alatt az akksi az önkisüléstől magától lemerülne. Csak ahhoz kellene egy 5V voltage regulator, vagy egy stepdown converter, ami rontja a hatásfokot.
Én 1db Li-ion cellára gondoltam, ami 4.2V-3.0V-ig szolgáltat tápot (3V alá nem szabad meríteni), vagy 3db ceruza elemre, ami kb 4.8V-tól ameddig működnek a rá kötött dolgok, vagy 3db ceruza akkumulátor, 4.5-4.2V és lemerülés közt. Utóbbi megoldásokban az a jó, hogy nem kell hozzájuk regulátor, mert az AVR-ek 5.5V-2.5V közt bármiről elmennek, utóbbihoz alacsonyabb órajel szükséges.Janos250: ez utóbbi tulajdonsága miatt szeretem, akkumulátoros dolgokat lehet vele tervezni baromi egyszerűen, ha 1MHz-es órajelre állítom, kis túlzással két lemerült ceruzaelemről is elmegy, vagy egy 3V-os gombelemről, vagyis nemcsak önmagában pici, de semmi nem kell mellé, se kristály, se regulátor, csak direkbe kötöm rá az elemeket és kész. Ráadásul lehet vele usb eszközöket emulálni (most éppen egy midi billentyűzetet építek a fiamnak itthoni gyakorlás céljára digispark-ból).
Ráadásul miután kaptam helyette egy maréknyi attiny12-t, amit megtanultam assembly-ban programozni, már egészen értem a 8bites AVR-ek lelki világát is, egyszerűen imádni való az egyszerűségük.[ Szerkesztve ]
-
Sanki
addikt
Valami ilyesmi kellene regulátornak? [link] --> LM7805 5V?
Az a baj, hogy régi az akksi, tavaly vettem ki a kocsiból, mert a nagy fagyban nem indult és már 6-7 éves (nem tudom pontosan, papír nincs meg). Mondjuk azóta van akksitöltő, lehet érdemes akkor rátenni.
Li-ion celláim meg nincsenek (és emiatt ősztinén szólva nem is akarok venni, mert akkor ahhoz még töltő is kell). -
_q
addikt
Sima elem 1.2 V ha AA-t használsz. Arra figyelj, hogy itt sorba kell kötni majd 3 db-ot legalább.
Képek alapján nem látok rajta USB-soros átalakítót, ezért kelleni fog egy FTDI vagy CP210x. Amúgy vehetsz ilyet is: [link] Igaz nagyobb mint a mini, de cserébe egy újabb processzor van rajta, esp8266 helyett esp32, van rajta a soros-usb konverter és még 18650-es cellának és ott a helye, csak használni kell (miután programoztad).
[ Szerkesztve ]
-
Janos250
őstag
válasz ecaddsell #12618 üzenetére
Ha a hely fontos, van ez is:
https://www.banggood.com/LILYGO-TTGO-MINI-32-V2_0-ESP32-WiFi-bluetooth-Module-Development-Board-p-1286046.html?rmmds=search&cur_warehouse=CNAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
A wemos d1 mini tartalmaz CH340G-t, ezért is javasoltam.
Igaz, hogy az esp32 újabb, több kimenete van, és okosabb, de azért nem mindenben jobb, mint az esp8266: utóbbinak 5V toleránsak a kimenetei, és sokkal több/kiforrottabb library, oktatási anyag, közösségi támogatás van hozzá, mint az esp32-höz. Például a SPIFFS támogatás erősen béta állapotú volt az esp32-höz, mikor legutóbb néztem. -
Janos250
őstag
Hú, a francba, tényleg.
Bármit nézek, amik a kosaramban vannak, és mikor beraktam még ingyen volt a szállítás, most már mind + 1200 Ft a szállítás, csak priority tracked van Magyarországra, más , ingyenes nincs. Úgy látszik, ők is besokalltak, hogy a track nélküli szállításra honfitársaink sorra azt jelzik vissza, hogy nem érkezett meg, és visszakérik az árát.
Nekem eddig nem tűnt fel, mert amiket mostanában rendeltem (pl. mask) azoknál inkább szándékosan kifizettem a gyors szállítás felárát, csak gyorsabban megjöjjön.
PL ez csak UK-ból ingyenes a szállítás, viszont ott az árban már eleve benne van a szállítás
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Sanki
addikt
A
Serial.print
befolyásolhat bármit is az arduino/kód futásnának a sebességében?Elkezdtem a korábban ide linkelt 2 garázs parkoló kódját összerakni (egyik volt az alap, másikból pedig hoztam a nyomógombos feltanításos részt).
Az eredeti kód szerint nagyon folyamatos a ledek felvillanása a távolság változásával, viszont ahogy beépítettem a nyomógombos részt belassult az egész, lomha lett a ledek reagálása.
Kis hibakeresés után (letiltottam az újonnan jött funkciókat egyesével), az alábbi rész miatt lassul be, ha ezt letiltom hasonlóan folyamatos lesz a villogás.
Videókkal szemléltetve (Google Drive link - nagy méretűek):
- Eredeti kód, amit másoltam és kicsit módosítottam.
- Eredeti kód + nyomógomb, ami lassú (tartalmazza a lenti updateDistance részt)
- Eredeti kód + nyomógomb, ami hasonló sebességű, mint az eredeti első (nem tartalmazza a lenti updateDistance részt)//----------------------------------------------------------------
// LOOP - updateDistance
//----------------------------------------------------------------
// Pings the sonar, figures out what color zone the program should be in
void updateDistance()
{
// unsigned long now = millis();
// unsigned int fullDist = (sonar.ping_median() / US_ROUNDTRIP_CM);
Serial.print("Actual Distance: ");
Serial.print(fullDist);
Serial.print(" Panic distance: ");
Serial.print(Panic_Distance);
if(fullDist <= MAX_DISTANCE && fullDist > MIN_DISTANCE)
{
Serial.println(" --> Distance OK ");
}
else if (fullDist <= Panic_Distance && fullDist > 0)
{
Serial.println(" --> Distance not OK = within Panic zone ");
}
}
-
-
Janos250
őstag
válasz Gergosz2 #12626 üzenetére
Például ilyen esetekben (is) előnyös az ESP32. Külön folyamatként lehet elindítani az egyes programrészeket, amik párhuzamosan futnak, és ha delay van az egyikben, akkor nem tényleges delay, hanem átadódik a vezérlés a másik tasknak. Persze, ha külön fizikai magra tesszük az egymással konkurálókat, az még jobb. Tudom, ez most rajtad nem segít, mert nincs ESP32-d, de be akartam mutatni, hogy pl. mi (is) előnye.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Sanki
addikt
Mindenhol kerestem a hibát (delay, debounce, stb..), de erre nem gondoltam volna, aztán elkezdtem kikapcsolgatni és meglett a hiba. Most jónak tűnik.
(#12626) Gergosz2: Igazából a kiiratás később nem szükséges, nem fogom látni, most csak PC-n monitorozásnál néztem az adatokat.
Amúgy ezt is a delay() funkcióval kellene csinálni?(#12627) Janos250: Egy wemos d1 mini már úton van. Mondjuk az nem esp32 ahogy nézem.
-
-
Sanki
addikt
Úgy tűnik, amit terveztem sikerült megcsinálni.
Link
Amire még nem tudtam rájönni:
1. void setup részbe beraktam egy rainbow effectet, hogy bekapcsolás után 1x fusson végig. --> Ennek a sebességét hogyan lehetne lassítani? Nagyon gyorsan végigfut.
2. A távolságot jól méri és jól írja ki a portra, viszont a kiírt távolsághoz képest +2 cm-t valamiért hozzátesz, tehát, ha feltanulja a távolságot 18 cm-re (innen kellene pirosan villognia), akkor már 20 cm-től pirosan villog (több méretnél próbáltam, mindig jelen van a 2 cm difi). Ezért beraktam egy korreckiót a képletbe (jelenleg -2). --> Ezt hogyan lehetne javítani?Amit még kipróbáltam, hogy az eredetileg neten talált kódot felraktam, abba is ott van a 2 cm difi, viszont teljesen másik kódot is letöltöttem, abban nincs 2 cm, az pontos, szóval gondolom az alap kódolás hibás valahol.
-
-
Djstefan1848
újonc
Üdv mindenkinek !
Egy ideje keresek megoldást a problémámra de nem találok vagy nem tudom hogyan keressem .
Hogyan lehet arduinot programozni úgy hogy 2-vagy több párhuzamos loop folyamatot futtasson egymástól függetlenül ?
PL.: van 3 servo motor és mind a 3 más sebességgel rotáljon oda vissza egymástól függetlenül .
Amatőr vagyok a témában ilyen alap programokat tudok rá írni csak azt nem tudom hogy ezt meg lehet-e oldani . Sajna nem találtam ezzel kapcsolatos témát vagy rosszul kerestem rá .
Válaszokat előre is köszönöm ! -
nagyúr
válasz Djstefan1848 #12634 üzenetére
Több loop-ot futtatni nincs lehetőséged, viszont a problémát egyszerű megoldani. A servo motornál ugye sebességet nem tudsz megadni, csak fordulási szöget, a sebességet pedig az adja, hogy adott idő alatt mekkora szöget fordul. Mind 3 szervónál kiszámolod, hogy pl 10ms alatt hány fokot kell neki fordulni, és minden ciklusban annyit adsz hozzá/vonsz le a korábbi értékből. Legyen pl a leglassabb motor 1, akkor a másik kettő 1,5 és 2, akkor az első 1,8mp alatt ér egyik végállásból a másikba, a másik 1,35 és 0,9mp alatt.
-
nagyúr
Később megnézem gépről a két kódot, most telefonról vagyok. A newping lib-en belül lesz vmi konfigurációs eltérés.
distance = sonar.ping_cm();
vs.fullDist = (sonar.ping_median() / US_ROUNDTRIP_CM);
Nézd meg a ping_cm függvényt, biztos van benne kompenzáció. A második a nyers adatból számol.[ Szerkesztve ]
-
nagyúr
válasz Djstefan1848 #12639 üzenetére
Miért várnák be? Max érték elérésekor előjelet váltasz és azonnal indulhatsz az ellenkező irányba.
-
Djstefan1848
újonc
-
Djstefan1848
újonc
most leteszteltem és vagy bevárják egymást vagy a magassabb delay számot használja mind 2 nél és egyszerre mennek.
#include <Servo.h>
Servo ser1;
Servo ser2;
int pos = 60;
void setup() {
ser1.attach(1);
ser2.attach(3);
}
void loop() {
for (pos = 60; pos <= 90; pos += 1) {
ser1.write(pos);
delay(30);
ser2.write(pos);
delay(90);
}
for (pos = 90; pos >= 60; pos -= 1){
ser1.write(pos);
delay(30);
ser2.write(pos);
delay(50);
}
} -
nagyúr
válasz Djstefan1848 #12644 üzenetére
Mert egyáltalán nem azt csináltad, amit írtam.
int servo1pos=0;
int servo2pos=0;
ínt irany1=1;
int irany2=1;
int step1=1;
int step2=2;
void loop (){
servo1pos+=step1*irany1;
if(servo1pos>179)irany1=-1;
if(servo1pos<1)irany1=1;
servo1.write(servo1pos);
servo2pos+=step2*irany2;
if(servo2pos>179)irany2=-1;
if(servo2pos<1)irany2=1;
servo2.write(servo2pos);
delay(10);
}Javítottam.
[ Szerkesztve ]
-
nagyúr
válasz Djstefan1848 #12647 üzenetére
Szerintem jól látszik az ismétlődés a kódban:
servo1pos+=step1*irany1;
if(servo1pos>179)irany1=-1;
if(servo1pos<1)irany1=1;
servo1.write(servo1pos);
Ebből annyit teszel be, amennyit nem szégyellsz.
És persze a kód elején ne felejtsd el definiálni a hozzájuk tartozó változókat (servo3pos, step3 stb).
Nem tudom honnan táplálod a szervókat egyébként, de egy UNO usb-ről és Vin-ről sem bír el kettőnél több szervót (Vin-ről inkább csak egyet). Ha külső tápra kötöd a szervókat, a vezérlő jel mellett a GND-t is össze kell kötni a lappal.A delay-t és az egyes szervókhoz tartozó értékeket úgy számold ki, hogy mindenhol egész számok jöjjenek ki, különben kínos meglepetések érhetnek. Ha ez nem lehetséges,
int
helyettfloat
változókat használj mindenhol.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Már jövőre befuthat a Stellar Blade PC-s kiadása
- BestBuy topik
- Honor Magic6 Pro - kör közepén számok
- Pendrive irás-olvasás sebesség
- Csernobilba kalauzol az új GeForce driver
- AMD FX
- alza vélemények - tapasztalatok
- Pécs és környéke adok-veszek-beszélgetek
- Dolce Gusto
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest