Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   704 / 839
(#) kissi válasza Josi777 hozzászólására (») Okt 5, 2021 /
 
Köszönöm mindenkinek a segítséget !

Idézet:
„a PORT regiszter törlődik, azaz a kimenetük alacsony szintre kerül RESET után”


Hol van ez dokumentálva ?!
(#) benjami válasza kissi hozzászólására (») Okt 5, 2021 / 1
 
A chip adatlapján.
(#) sargarigo válasza benjami hozzászólására (») Okt 5, 2021 /
 
A bootloader és a keretrendszer sem rontja el? Én sose mertem erre hagyatkozni
(#) kissi válasza benjami hozzászólására (») Okt 5, 2021 /
 
Köszi, ezt néztem, de nem látom benne...PIC-eket szoktam használni, ott "kapásból" látszik a RESET utáni állapot !
Segíts, légy szíves, hogy hol keressem benne !?
A hozzászólás módosítva: Okt 5, 2021
(#) benjami válasza kissi hozzászólására (») Okt 5, 2021 / 3
 
Az "Initial value" sorban az összes regiszter felsorolásánál ott van a kezdeti érték. A reset szekcióban pedig a következő: "During reset, all I/O registers are set to their initial values, and the program starts execution from the reset vector."
(#) benjami válasza sargarigo hozzászólására (») Okt 5, 2021 / 3
 
Atmega-hoz nem használom az arduino-t (néha esp-hez igen), így nem tudom mely regisztereket hogyan piszkálja. Viszont a bootloader és a keretrendszer által futtatott kód forrása is megtalálható az arduino mappájában, megtekinthető mihez nyúl hozzá (a bootloaderé nem biztos, de neten az is elérhető). Ha nincs kedved ehhez, akkor meg a setup-ban írasd ki soros portra az általad kívánt regiszterek tartalmát. A soros portot tartalmazó adatirány regiszteréhez biztosan hozzányúl, mert másképp nem tudna üzenetet sem küldeni. Az időméréssel kapcsolatos dolgok miatt (delay, millis, stb.) pedig hozzányúl az egyik timerhez is (talán a timer0-hoz).
(#) kissi válasza benjami hozzászólására (») Okt 5, 2021 /
 
Aha, így már megvan, köszi ! A PIC-es logikámmal a PORT-nál kerestem, de ez így is teljesen OK ... !
(#) Josi777 válasza kissi hozzászólására (») Okt 5, 2021 /
 
A PORT-nál is ott van. Ports as General Digital I/O 14.2-es fejezet. Az ábrán egyértelműen látszik, hogy a RESET a PORT Latch CLR vezetékére csatlakozik, tehát törli.
General Digital I/O
(#) kissi válasza Josi777 hozzászólására (») Okt 6, 2021 /
 
Igazad van, csak megszokásból (és kevés időben) szövegesen kerestem ! Köszi!
(#) Josi777 válasza kissi hozzászólására (») Okt 6, 2021 /
 
A PIC-es adatlapok után nekem is kevésbé tűnt informatikusnak az Atmel adatlapja.
(#) Pókapó hozzászólása Okt 10, 2021 /
 
Sziasztok! Mielőtt fel tenném a kérdésemet, annyit le írok, hogy én nem értek a programozáshoz, az arduinóhoz! Egy tortadíszítő forgatót építek léptető motorral, ami tud majd potméterrel szabályozva forgatni , plusz kapcsolókkal 1/4 , 1/8 , 1/16 , 1/32 részekre osztva megállni, és újra indulni, díszítés könnyítésére! Bele futottam egy kis problémába, mégpedig, hogy ha pl folyamatos forgatásnál (Krém simítás) meg állítom a motort, az ugye azonnal meg áll, és így a rajta levő súly tehetetlenség miatt kicsit tovább mozdul! Aki meg írná a programot, annak fel adja a leckét, hogy a léptető motort hogyan lehetne felfutással, lefutással vezérelni programban. Tudnátok ötletet adni, hogy miként lehetne fel és le futtatva indítani a motort (Name17)? Úgy gondolom, hogy egy fordulaton belül elég lenne a felfutás, lefutás. A tányér-motor áttétel, 1-19 ha jól emlékszem. Lényeg, hogy ne satufékkel álljon meg a tányér! Ha van valakinek ötlete, ajánlása, hogy miként lehetne meg oldani, meg köszönném, és továbbítanám az ismerősömnek!vezérlő 4A 42V TB67S109 Köszönettel Zsolt!
(#) Jonni válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
A léptetőmotor megfelelő mechanikával társítva nagyon precíz! Ha azt akarod ,hogy "ne satufékkel álljon meg a tányér" ahhoz szerintem inkább szervómotor kéne.
Szerk: Vagy megállásnál lehetne valami racsni mechanikát használni ami engedélyezi a továbbforgást.
A hozzászólás módosítva: Okt 10, 2021
(#) Bakman válasza Pókapó hozzászólására (») Okt 10, 2021 / 2
 
Felfutásnál két lépés között egyre kevesebb időt kell várakozni, amíg el nem éri a kívánt fordulatot a motor. Lassításnál fordítva kell eljárni.
(#) Pókapó válasza Jonni hozzászólására (») Okt 10, 2021 /
 
Sajna a mechanika már készen van, de ha nem lesz vezérlési megoldás, marad a motor csere!
(#) Pókapó válasza Bakman hozzászólására (») Okt 10, 2021 /
 
Köszönöm az ötletet, továbbítom az ismerősömnek!
(#) Josi777 válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
Léptető motort is lehet különböző karakterisztikák mentén vezérelni. Amire szükséged lehet, az a trapezoidal vezérlés. Egy lehetséges megoldás a Motion Generator. Ennek a velocity kimenetét kell applikálni a léptetőmotor vezérlőhöz szoftveréhez, amiről nem tudunk semmit, ezért megoldást sem tudok adni rá.
(#) GPeti1977 válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
Keresni kell egy olyan programot ami ezt meg tudja csinálni, legegyszerűbb arduini alapú 3d nyomtato szoftver, g kódokkal lehetne mozgatni a motort, prohramozható a fel és lefutása, de ugyanez a grbl lasergrbl is.
(#) Kovidivi válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
Ez a kérdés elég hiányos. Ha pl. a sebességet számmal állítod be (ami nagyon valószínű), akkor pl. 100-ról lelassítva nullára mindig csökkented a motor fordulatszámát és vársz kicsit. A másik, hogy ha ezt valaki le tudta programozni, akkor miért nem ő módosítja a programot? A mechanikát nehogy módosítsd! Ez szimpla programozással fél óra alatt megoldható (ha ott vagyok, ha előttem van a program és az egész mechanika, és ha már a géppel össze is van kötve az Arduino).
A hozzászólás módosítva: Okt 10, 2021
(#) Bakman válasza Kovidivi hozzászólására (») Okt 10, 2021 / 1
 
Idézet:
„szimpla programozással fél óra alatt megoldható”
Minden valszínűség szerint egy igen kezdő programozóról van szó, elég csak a nyitó kérdést elolvasni. "1/4 , 1/8 , 1/16 , 1/32" Gondolom ilyen opciók vannak a léptető meghajtón, különben a fordulatszám kis túlzással fokozatmentesen állítható lenne.
(#) Kovidivi válasza Bakman hozzászólására (») Okt 10, 2021 / 1
 
Nem ő programozta/programozza szerintem. A motor bizonyos osztásonként kell, hogy megálljon, tehát mondjuk 20 step után szünet, ha jól értettem. De csak a találgatás megy a részünkről, az meg időpazarló.
A hozzászólás módosítva: Okt 10, 2021
(#) kissi válasza Bakman hozzászólására (») Okt 10, 2021 / 1
 
Szia!Szerintem ezt nem a fordulatszámra kell érteni, hanem ő akarja ezekkel az osztásokkal, azaz pozíciókban, megállítani a díszítéshez ( az más kérdés, hogy egybecseng bizonyos lépési opciókkal ! )
(#) Bakman válasza Kovidivi hozzászólására (») Okt 10, 2021 / 1
 
Az biztos, hogy nem ő programozza. Újra elolvasva valóban a kör osztásáról lehet szó, kissi jól látja a tévedésem okát, első pillantásra a mikrolépések jutottak eszembe.
(#) Pókapó válasza Kovidivi hozzászólására (») Okt 10, 2021 /
 
Nem, a tányér sebességet potival szeretném állítani, plusz a program választó egy 6 állású kapcsoló lesz, és van egy indító és leállító gomb, plusz a tervek szerint van egy időzítő poti, ami a 1/4 vagy 1/8 stb léptetést fogja időzíteni, mennyi idő után lépjen a következő pontig. Ezeket a funkciókat fel tudja majd programozni egy arduinóra, csak ugye amire nem számítottam, hogy a hirtelen megállás indulás okozhat problémát! A program írás folyamatban, és a félreértések érdekében, nem én írom, én csak a mechanikai részét hoztam össze! én ebben a csoportban a felfutás lefutás problémára keresem a választ, és továbbítom neki az ötleteket! Köszönöm a türelmet mindenkinek, mivel én mint laikus, nem szakszerűen teszek fel kérdéseket a témában!
(#) Pókapó válasza Bakman hozzászólására (») Okt 10, 2021 /
 
'/4 ,1/8 . stb osztás az a torta tányér felosztását jelentette volna, ne kelljen kézzel tekergetni miközben a leendő tulaj díszít! Bocsánat ha félre érthető volt! Ha jól saccoltam, 2700 lépés lesz a motoron, mire a korong körbe ér egyszer, de ez nem biztos még csak sacc!
(#) Pókapó válasza Kovidivi hozzászólására (») Okt 10, 2021 /
 
Igen az a cél, hogy bizonyos osztásonként álljon meg a tányér (1/4 vagy 1/16)! A fő kérdés az lenne, hogy ha a program megálljt ad a motornak, bármilyen állásban is van a tányér osztás kapcsoló, a motor ne abban a pillanatban álljon meg, hanem lefutással, vagy indításnál felfutással, ez megoldható-e? Csak egy példa, indításnál pl 20 lépés legyen ami fokozatosan fel fut a potival beállított sebességre, vagy vissza, leállításnál!
(#) sargarigo válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
Az hogy milyen gyorsan forog a motor, egyszerűen attól függ, hogy milyen sűrűn adod neki a léptető impulzusokat. Ha a megállási helyet kezdi megközelíteni, akkor mondjuk 50 lépésnél legyen kétszer annyi idő két lépés között, majd 20 lépés mulva már csak háromszor annyi, stb. Így tetszőlegesen be lehet állítani a gyorsulást, lassulást. Nem kell túl bonyolítani. De amekkora áttétel van ott a képek tanúsága szerint, szerintem ez a hirtelen megállás lehet hogy nem is okozna gondot. Én azért ezt is kipróbálnám.
(#) asch válasza Pókapó hozzászólására (») Okt 10, 2021 / 1
 
A forgás fizikájából indulnék ki. Az volna ideális, ha a lassulás mértéke, azaz a szöggyorsulás állandó lenne. Másképpen a szögsebesség az idő függvényében az állandó sebességtől a 0-ig egy egyenes mentén csökkenne le.

Két megoldás lehetséges:

Olyan vezérlőd van, aminek szögsebességet adsz, és ő lépeget. Itt egyszerűen idő szerint egyenletesen egyre kisebb szögsebességeket kell adni neki. A probléma csak annyi lehet, hogy előre tudni kell, hogy hol fog megállni, vagy másképpen, hogy mikor kell elkezdeni a lassítást. Egyszerűen a szögsebesség-idő függvény alatti területet kell kiszámolni, ami egy háromszög, a megfelelő képletek szerint. (Pl: w0 kezdeti szögsebességről b szöggyorsulással t=w0/b idő alatt lassulunk 0-ra, és ezalatt az elfordulás w0*t/2 lesz.)

A kiinduló paramétereink tehát azok, hogy milyen szögsebességről indulunk (w0), mi a szög-lassulás (b), mennyi idő alatt lassulunk le (t), és mennyi szöget teszünk meg a lassulás alatt (alfa). Ezekből kettőt megválaszthatunk, a másik kettő ezekből kiszámolható.

Ha a saját programja adja a léptető jeleket, akkor valószínűbb, hogy a két lépés közötti időt kell megadni. Az egyenletesen lassuló forgásban a megtett szög számítása: szög=w0*t+b*t*t/2 (w0 a kezdeti szögsebesség, b a szöggyorsulás, ami nekünk negatív lesz). A leállás folyamata alatti egész lépéshez tartozó szögeket tudjuk (pl ha 7200 lépés egy kör, és 10 fok alatt akarunk megállni, akkor az 200 lépés, és 1/20-ad fokonként kell a képlet szerint kiszámolni, hogy az adott szöget melyik időpontban érjük el), és a szögekhez tartozó időpontokat kell kiszámolni.

Ha a megállás helyett az elindulást számoljuk, annak egyszerűbb a képlete: alfa=b*t*t/2 Időre rendezve: t=sqrt(alfa/b*2). Ebből kijönnek az időpontok, amikor meg kell történni a lépéseknek. Ezeknek a különbségeik pedig a lépések között szükséges idők. A leállásnál pedig ugyanezeket az időközöket kell fordítva lejátszani.

Meg lehet úgy is oldani, hogy paraméterek alapján a program számolja ki az időközöket, de úgy is, hogy előre kiszámoljuk, és az időkonstansokat írjuk már csak bele a kontrollerbe.
(#) Josi777 válasza Pókapó hozzászólására (») Okt 11, 2021 / 1
 
Látom nem nagyon érted a trapezoid mozgást, hogy mi is az tulajdonképpen. De úgy tűnik, nem is neked kéne értened, hanem aki írja a programot. Talán neki segítség lehet az az elv, ahogyan megvalósítottam egy 5 léptető motoros robotkar mozgatását. Abban mondjuk az a lényeg, hogy mind az 5 motor képes egyidejűleg más-más sebességgel mozogni, egymástól teljesen függetlenül. De a módszert át lehet venni 1 motoros hardverhez is, mivel a motorok mozgását létrehozó függvény bemenetei sebesség és lépésszám (igény esetén megosztom, ha tényleg tudsz vele valamit kezdeni).
Amúgy én eléggé meddő dolognak látom ezt a témát, mert közvetítő által eléggé nehézkes segíteni, főleg úgy, hogy szinte semmit sem értesz a mozgatás mikéntjéből (ezt abból gondolom, hogy már kaptál néhány használható tanácsot, de semmit sem tudtál vele kezdeni). Talán ha az írna ide, aki készítené a programot és elárulná, hogy hol akadt el, úgy talán közelebb lehetne jutni a problémához.
(#) Pókapó hozzászólása Okt 11, 2021 / 1
 
Köszönöm az építő jellegű hozzá szólásokat, ötleteket, és a türelmet! Át fogom adni a program írónak az információkat, és remélem megoldást találunk a kérdésre! Úgy gondolom, kaptunk kiinduló pontokat, és ebből lehet építkezni! Tudom, ez így kicsit zsák utcának tűnik, hogy én kérdeztem de mindenből lehet tanulni, és egy fórum erről is kell szóljon! Még egyszer köszönöm! Sikeres projekteket!
(#) kriszrap hozzászólása Okt 14, 2021 /
 
Sziasztok elkészítettem egy 8x8x8 led kockát vezérlővel.

Bővebben: Link

Sémát ez alapján.
Hogy érdemes a fényjátékokat leprogramozni hogy azért átlátható legyen.
Arra gondolok hogy milyen alprogramba lehetne írni amivel az majd nem összes animációt le lehetne programozni.

5x5x5 nél igy csináltam de szerintem 8x8x8 hosszú lenne a kód.

led(1led,2led,..........25 ig, SZINT(1...5))
led(1led,2led,..........25 ig, SZINT(1...5))
........
kirajzolas(ms) // a fenti kép ennyi ms ig mutatjuk

Ez az elképzelés igy 8x8x8 elég nehéz már átlátható kódot csinálni.
Ki hogy csinálná ?
Következő: »»   704 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem