3 osý manipulátor bez PC

Odpovědět
TeaPack
Příspěvky: 6
Registrován: 16. 10. 2014, 9:34

16. 10. 2014, 9:42

Ahoj, měl jsem podobný problém s jiným čipem, kde mi to po cca hodině běhu taky kikslo. U mě šlo o špatné alokování paměti, kde se mi v každém cyklu vytvářela "nová" proměnná a ve chvíli, kdy byla pamět plná, tak to čip pročistil, a vznikla u toho chyba v programu. Zkus hledat někde tímhle směrem, já se s pseudo-C, které používá arduino, moc nekamarádím, takže přímo v kódu ti nepomůžu.
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

17. 10. 2014, 6:57

TeaPack píše:Ahoj, měl jsem podobný problém s jiným čipem, kde mi to po cca hodině běhu taky kikslo. U mě šlo o špatné alokování paměti, kde se mi v každém cyklu vytvářela "nová" proměnná a ve chvíli, kdy byla pamět plná, tak to čip pročistil, a vznikla u toho chyba v programu. Zkus hledat někde tímhle směrem, já se s pseudo-C, které používá arduino, moc nekamarádím, takže přímo v kódu ti nepomůžu.

Ahoj, díky za tvou odpověď.
Napadlo mě, kdyby tam byl za každým vykonáním programu nastavený reset arduina, jestli se vymaže ta pamět a už to nebude dělat problémy ?
Nebo například za každým desátým vyvrtaným kusem.
Otázka je, jestli se arudino časem nepoškodí když se bude často používat reset.
TeaPack
Příspěvky: 6
Registrován: 16. 10. 2014, 9:34

17. 10. 2014, 2:36

Možná by stačilo čistit proměnné tím, že jim přiřadíš hodnotu NULL, nebo ekvivalent, popř. pokud nebudeš ve funkcích vytvářet nové proměnné, ale budeš je mít všechny definované předem při prvním spuštění programu.
Druhou možností je řízený restart arduina, které již nepoužívá pro ukládání softu EEPROM, ale flash paměť, která netrpí na přepisy. Restartovat se to dá i "softwarově", pokud propojíš nějaký pin DigitalOut a Reset, tak můžeš jednoduše při 100 cyklu dojet do určité polohy, arduino zrestartovat a rovnou načíst výchozí polohu.
jeykey
Příspěvky: 114
Registrován: 25. 8. 2014, 8:02

17. 10. 2014, 3:21

Ahoj, ještě ověř jestli se ti neaktivujou nějaký referenční tlačítka nebo koncáky, koncáky se hlídaj pořád, takže při nějakým zhoupnutí napětí by se to mohlo posunout,
jinak souhlasim s týpkem, takže zkus pro začátek na začátek programu dát tohle:
int Current = 0;
float Bx = 0;
float By = 0;
int Ot = 0;
int zrychleni = 0;
float maxDelay = 0;
float Ost = 0;
float posun = 0;
float rychlost = 0;
int dir = 0;
int stepsStart = 0;
int stepsMid = 0;
int stepsEnd = 0;
float oneStep = 0;
float usDelay = 0;
int steps = 0;
float speed = 0;
int stepsMod = 0;
int stepsDiv = 0;
int i = 0;

kdyžby se to nezlepšilo, tak vyhledej každou tu proměnnou a umaž jí ve funkcích datovej typ (float, int) kromě předávání dat mezi funkcema (první (definiční) řádek funkce)
pak by se vidělo dál

****
accelstepper kvůli tomu, že má vyřešený pohyb ve všech osách najednou atd, a za chvíli to budeš stejně chtít, protože to v součtu za den ušetří spoustu času.
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

28. 10. 2014, 7:13

Umel by mi nekdo poradit s timto aktualnim programem ktery tady byl vytvoren?
Po najeti referencnich bodu musit pouzit reset na arduinu. Jinak mi nejde pustit start cyklu. Cyklus jede pomalu.
Po priklad, drahu kterou to ujede normalne za 5 sekund to nasledne jede 5 minut kdyz se to arduino nezresetuje.
Dela mi to tak od zacatku. Diky
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

29. 10. 2014, 2:36

Foto skoro dokončeného stroje na vrtání
1.jpg
2.jpg
3.jpg
Upínací mechanismus dílu
4.jpg
Upínací mechanismus dílu
5.jpg
7.jpg
8.jpg
Video stroje
http://youtu.be/sjSCsCjaFsk
RaS
Příspěvky: 7876
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

29. 10. 2014, 5:39

dej sem celé video od nabrání po ustavení, vyvrtání a zahození..
věčný rýpal,který musí mít poslední slovo, odpůrce low-cost zařízení končících v naprosté většině případů v hromadě šrotu
uživatelé hýbátek, kteří mají z mých příspěvků celoživotní trauma nechť si mé příspěvky VYPNOU
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

29. 10. 2014, 5:44

RaS píše:dej sem celé video od nabrání po ustavení, vyvrtání a zahození..
To je zatim vkladano rucne. Manipulator jeste neni hotov. Nejdrive musim doresit tento stroj aby fungoval bez problemu.
jeykey
Příspěvky: 114
Registrován: 25. 8. 2014, 8:02

4. 11. 2014, 12:50

Ahoj, dej sem aktuální program a výpis ze serial monitoru, tam označ odkud to začíná blbnout
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

4. 11. 2014, 5:02

jeykey píše:Ahoj, dej sem aktuální program a výpis ze serial monitoru, tam označ odkud to začíná blbnout

Ahoj, tady je aktuální funkční program.
Výpis ze serial monitoru mi nešel, nejak mi to nefungovalo. Ja to stejne nepoužívám. Řidím se tím co to ujede.
Pokud to pomůže tak zde je video jak to najíždí referenční poloha.
http://youtu.be/IAgZeVd9aok
Po najetí to kousek odjede od snímače a při tom odjíždění to velmi spolamuje.
Můj názor je ten, že to má nějak zafixovanou tu pomalou konečnou rychlost a pak se celý program tak pomalu spustí a i celý jede, už to nezrychlí.
Když dám reset tak už program jede normálně, ale chtěl bych to právě odstranit at to nedělá.

Děkuji za pomoc.
manipulator.txt
(10 KiB) Staženo 211 x
jeykey
Příspěvky: 114
Registrován: 25. 8. 2014, 8:02

5. 11. 2014, 5:25

na posledním videu, když si najde 0 na Y, tak potom, dokud nestiskneš tl. start, tak se nic neděje a když stiskneš start tak to jede pomalu?
a když to zresetuješ a stiskneš start tak jede normálně?

- ty udaje ze serial monitoru sou pro diagnostiku, presne vidis v jaky casti programu dojde k jinymu chovani, nez potrebujes, proto to tam je, ne pro bezny pouziti, takze, kdybys napsal co arduino hlasi nez se zacne chovat neocekavane, tak to usetri dost casu
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

5. 11. 2014, 5:36

jeykey píše:na posledním videu, když si najde 0 na Y, tak potom, dokud nestiskneš tl. start, tak se nic neděje a když stiskneš start tak to jede pomalu?
a když to zresetuješ a stiskneš start tak jede normálně?

- ty udaje ze serial monitoru sou pro diagnostiku, presne vidis v jaky casti programu dojde k jinymu chovani, nez potrebujes, proto to tam je, ne pro bezny pouziti, takze, kdybys napsal co arduino hlasi nez se zacne chovat neocekavane, tak to usetri dost casu

1) ano, presne to dela vsechno co si napsal
2) vypisovalo mi to tam kde to jede ten serial monitor, ale radek po 0,01mm, tedy by jim tam bylo velmi mnoho.
A taky to jelo velmi pomalicku pri to monitoru, protoze to asi bralo vykon. Ale jestli to nutne potrebujes tak to vytahnu.
jeykey
Příspěvky: 114
Registrován: 25. 8. 2014, 8:02

5. 11. 2014, 7:35

pri aktivaci refer cidla Y se nekde spina detailni diagnostika, pokusim se najit kde, ta to zdrzuje
Naposledy upravil(a) jeykey dne 5. 11. 2014, 8:10, celkem upraveno 1 x.
tarvisio
Příspěvky: 247
Registrován: 25. 10. 2013, 3:11

5. 11. 2014, 7:39

Ok díky jeykey.

Hned ráno vyzkouším a dám zprávu.
jeykey
Příspěvky: 114
Registrován: 25. 8. 2014, 8:02

5. 11. 2014, 7:49

už sem to našel, ten přechozí krok nedělej
Odpovědět

Zpět na „roboti a manipulatory“