Save/load dat z krokoveho motorceka

Save/load dat z krokoveho motorceka
« kdy: 14. 07. 2021, 16:05:29 »
Ahojte,

chcel by som vas poprosit o radu. Mam nejaku skusenost s raspberry pi a podobnymi PC, ale aj to skor SW ako HW. Jeden znamy sa ma pytal, ci mu neviem poradit, ako by zberal data z krokoveho motorceka (z troch motorcekov), ulozil ich a nasledne podla nich nechal zopakovat krokovy motorcek (motorceky) tuto postupnost.
Snazil som sa nieco pogooglit, nasiel som klucove slova ako arduino, nucleo64, esp32 ...
Nasiel som aj PiStep2, ku ktoremu je aj python example (to sa mi celkom pozdava), ale neviem, ci vie aj citat data zo vstupu alebo len pisat.
Chcel by som Vas poprosit o nejaku radu, akou cestou sa uberat, ked mate konkretnu skusenost.

Dakujem

m


alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:Save/load dat z krokoveho motorceka
« Odpověď #1 kdy: 14. 07. 2021, 16:24:13 »
jsou dve moznosti. bud si ukladas povely co posilas do vsech motorku a pak ty prikazy zrekonstruujes.
druha moznost je sledovani otoceni primo na ose motorku, treba tam muzes mit pridelane kolecko s kulisou a optickou branou sledovat impulzy jak se osa motorku otaci.

Re:Save/load dat z krokoveho motorceka
« Odpověď #2 kdy: 14. 07. 2021, 16:26:02 »
Pokud hodlá nahrávat krokové motory a má přístup k jejich řízení, tak je nejjednodušší napíchnout jejich drivery a zaznamenávat si STEP a DIR signál do tabulky "čas -> DIR" (co řádek, to krok v daný čas). Tu pak je triviální přehrát: stačí jít po řádcích a v uvedené časy nastavit DIR a udělat pulz STEPem.

Pokud k nim přístup nemá, tak musí nasadit na hřídele encodery (nebo resolvery), zaznamenávat polohy v čase, a ty (se znalostí převodu) potom přepočítat zase na výše uvedenou tabulku.

Re:Save/load dat z krokoveho motorceka
« Odpověď #3 kdy: 14. 07. 2021, 17:08:50 »
Pokud hodlá nahrávat krokové motory a má přístup k jejich řízení, tak je nejjednodušší napíchnout jejich drivery a zaznamenávat si STEP a DIR signál do tabulky "čas -> DIR" (co řádek, to krok v daný čas). Tu pak je triviální přehrát: stačí jít po řádcích a v uvedené časy nastavit DIR a udělat pulz STEPem.

Pokud k nim přístup nemá, tak musí nasadit na hřídele encodery (nebo resolvery), zaznamenávat polohy v čase, a ty (se znalostí převodu) potom přepočítat zase na výše uvedenou tabulku.

napichnut drivery cim? aka platforma? predstava je nahrat si tu postupnost a potom hocikedy ju pustit. To pustenie si viem predstavit cez PiStep2, ale ako to nahrat?
zaujima ma technicka realizacia, aky HW k tomu treba a potom si napisat kod v C alebo ako? tento detail mi v tej "skladacke" chyba

Dakujem

m

Re:Save/load dat z krokoveho motorceka
« Odpověď #4 kdy: 14. 07. 2021, 17:40:54 »
Do driveru nejspíš vede z nadřazené logiky dvojice signálů STEP, DIR. Signál DIR udává směr pohybu, a pulzem (hranou) na drátě STEP se driveru řekne, aby motor otočil o jeden krok (nebo mikrokrok, podle nastavení driveru).

Vezmete nějaký počítač s GPIO (třeba Raspberry, když chcete ten PiStep), STEP a DIR připojíte na dva GPIO piny. Dáte samozřejmě pozor na limity napětí, případně zařadíte do obvodu převodník napětí (STEP/DIR vídám obvykle 5V nebo 12V, raspi má limit tuším 3.3 V).

Potom si v dokumentaci vyhledáte čísla těch dvou zapojených pinů, a v Linuxu si je přes /sys/class/gpio soubory přečtete. Doporučuji na to použít nějakou existující knihovnu na raspi GPIO, třeba v Pythonu. Tam si pak jen nastavíte přerušení na hranu STEPu, a pak už jen v callbacku stačí přidávat do tabulky (CSV třeba) čas v aspoň mikrosekundách a k tomu hodnotu na DIR pinu.

Playback pak buď pomocí té knihovny (neznám), a nebo zase přes GPIO, akorát tam už možná nebude Python stačit rychlostí (a hlavně jitterem) a bude potřeba to napsat v něčem rychlejším, případně i požádat jádro o realtime scheduling. Z praxe vím, že Python na Cortex A53 čtyřjádru (Allwinner A64, podobné tomu co je v RPi3) zvládá použitelně krokovat do 1-2 kHz (5 otáček za sekundu s krokáčem 400 imp./ot.).


Re:Save/load dat z krokoveho motorceka
« Odpověď #5 kdy: 14. 07. 2021, 21:59:22 »
Do driveru nejspíš vede z nadřazené logiky dvojice signálů STEP, DIR. Signál DIR udává směr pohybu, a pulzem (hranou) na drátě STEP se driveru řekne, aby motor otočil o jeden krok (nebo mikrokrok, podle nastavení driveru).

Vezmete nějaký počítač s GPIO (třeba Raspberry, když chcete ten PiStep), STEP a DIR připojíte na dva GPIO piny. Dáte samozřejmě pozor na limity napětí, případně zařadíte do obvodu převodník napětí (STEP/DIR vídám obvykle 5V nebo 12V, raspi má limit tuším 3.3 V).

Potom si v dokumentaci vyhledáte čísla těch dvou zapojených pinů, a v Linuxu si je přes /sys/class/gpio soubory přečtete. Doporučuji na to použít nějakou existující knihovnu na raspi GPIO, třeba v Pythonu. Tam si pak jen nastavíte přerušení na hranu STEPu, a pak už jen v callbacku stačí přidávat do tabulky (CSV třeba) čas v aspoň mikrosekundách a k tomu hodnotu na DIR pinu.

Playback pak buď pomocí té knihovny (neznám), a nebo zase přes GPIO, akorát tam už možná nebude Python stačit rychlostí (a hlavně jitterem) a bude potřeba to napsat v něčem rychlejším, případně i požádat jádro o realtime scheduling. Z praxe vím, že Python na Cortex A53 čtyřjádru (Allwinner A64, podobné tomu co je v RPi3) zvládá použitelně krokovat do 1-2 kHz (5 otáček za sekundu s krokáčem 400 imp./ot.).

velka vdaka za rady ... najma upozornenia na specifika, posuniem takto dalej

m

Re:Save/load dat z krokoveho motorceka
« Odpověď #6 kdy: 14. 07. 2021, 22:37:48 »
Škoda, že podrobněji nepíšete víc o účelu.
Pokud potřebujete okopírovat řízení motoru jiným zařízením, pak je opravdu nejlepši sledovat signály DIr a STEP v čase.
Druhá možnost je, že operátor třeba vezme rameno robota do ruky, udělá s ním nějaký pohyb a vy ho pak chcete opakovat. Pak jsou potřeba nějaké enkodéry, jak psali ostatní výše, nebo můžete jako enkodér využít samotné krokové motory

https://bastlirna.hwkitchen.cz/krokovy-motor-pouzity-jako-enkoder/

Ale v obou případech budete muset vyřešit nějakou detekci referenční polohy.

Re:Save/load dat z krokoveho motorceka
« Odpověď #7 kdy: 14. 07. 2021, 22:56:26 »
Škoda, že podrobněji nepíšete víc o účelu.
Pokud potřebujete okopírovat řízení motoru jiným zařízením, pak je opravdu nejlepši sledovat signály DIr a STEP v čase.
Druhá možnost je, že operátor třeba vezme rameno robota do ruky, udělá s ním nějaký pohyb a vy ho pak chcete opakovat. Pak jsou potřeba nějaké enkodéry, jak psali ostatní výše, nebo můžete jako enkodér využít samotné krokové motory

https://bastlirna.hwkitchen.cz/krokovy-motor-pouzity-jako-enkoder/

Ale v obou případech budete muset vyřešit nějakou detekci referenční polohy.

som vdacny za kazdu radu, kedze ozaj som bol osloveny a s krokovymi motorcekmi nemam ziadnu skusenost (ani zberom dat z takych zariadeni)

ciel je kopirka
jedna trojica krokovych motorov kopiruje drevenny objekt (napr. ram obrazu), vystup ma byt archivovany, aby ho bolo mozne kedykolvek v buducnosti zopakovat
druha trojica krokovych motorov frezuje do dreva postupnost krokov tj. skopirovany drevenny objekt

pravda je, ze netusim, ako je riadena ta trojica krokovych motorov na vstupe, ako sa vykonava "prechadzanie" objektu, co je isto nevyhnutnou sucastou riesenia ... mozem sa na to skusit este spytat

dakujem

m

Zepo

Re:Save/load dat z krokoveho motorceka
« Odpověď #8 kdy: 15. 07. 2021, 07:12:25 »
Přes ty krokače to nebude jednoduché sice naprázdno generují el napětí to by šlo zachytit ale je to kladne i zaporne napětí.
Ruzne intenzity pohne se pomalu nebo rychle.

Asi ten snímač polohy. Stačí asi jen jeden v nahoru dolu, osa x by jela stále stejně rychle a pak by se to posunulo ose y


3D scan
Použít na CNC dotykovou sondu.

Zepo

Re:Save/load dat z krokoveho motorceka
« Odpověď #9 kdy: 15. 07. 2021, 07:15:14 »
A nebo bez elektroniky čistě kopirovací fréza hrot co zároveň zvedá vřeteno ovladaný rukou =)

Re:Save/load dat z krokoveho motorceka
« Odpověď #10 kdy: 15. 07. 2021, 08:13:18 »
Aby vylezl přesný lineární pohyb s jemným krokem, bude krokáč silně zpřevodovaný. Nedovedu si představit, že s  lineárním aktuátorem půjde volně hýbat a krokáč se bude zpětně točit. To by v opačném směru neudržel přesnou pozici nástroje.

Přijde mi to celé poněkud divné.

Re:Save/load dat z krokoveho motorceka
« Odpověď #11 kdy: 15. 07. 2021, 11:47:20 »
Aby vylezl přesný lineární pohyb s jemným krokem, bude krokáč silně zpřevodovaný. Nedovedu si představit, že s  lineárním aktuátorem půjde volně hýbat a krokáč se bude zpětně točit. To by v opačném směru neudržel přesnou pozici nástroje.

Přijde mi to celé poněkud divné.

aj toto je nazor, za ktory som vdacny ... preto som sa rozhodol skusit nejake diskusne forum, aby som zhromazdil, co najviac podkladov od ludi s praktickymi skusenostami, pri dalsom rozhodovani ako dalej ...

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Save/load dat z krokoveho motorceka
« Odpověď #12 kdy: 15. 07. 2021, 11:49:32 »
To skenovaci zarizeni nemusi byt vubec ve stejne technologii - takze zapomente na snimani krokovych motorceku.

Mate v podstate 2 moznosti:
 - snimat povrch jako hloubkovou mapu, tj. X/Y vstup -> Z vystup. Vice stejne bezne 3-ose CNC nezreplikuje.
 - snimat povrch ve vice stupnich volnosti (idealne 5: XYZ vychozi poloha nastroje, U/V naklon nastroje, sesta W rotace nastroje je irelevantni pokud se jedna o frezu)

Snimaci sonda by mela mit hlavicku velikou jako (nejmensi) replikacni nastroj / freza.

Pokud to chcete skenovat rucne, tak v podstate budete muse vytvorit sadu spojenych ramen kde jsou klouby a v nich inkrementalni sensory (quadrature encoder), tj to, co pouzivali stare kulickove mysi (ale dnes uz se to resi jinak a o par radu presneji). A idealne behem snimani renderovat vysledny objekt jako WYSIWYG.

Alternativou jsou 3D skenery nebo fotogrametrie, zalozene na bezdotykovem snimani.