Jak se dotázat na aktuální pozici (souřadnice)?

Toto fórum je věnováno sekci 3D Tisk na webu Sakul World.
  • Advertisement

Jak se dotázat na aktuální pozici (souřadnice)?

Příspěvekod tulenimama » stř 14. zář 2022 11:53:04

Ahoj všem,

můj dotaz bude možná trochu off-topic, ale sám už si nevím rady, věřím, že to padne na úrodnou půdu, ale nebudu se zlobit, když to smažete (jestli uznáte, že je to úplná blbost :). V práci jsme dostali sestavený stroj se dvěma krokovými motory, které jezdí po osách X a Y a máme za úkol napsat k němu v Pythonu program. Potřeboval bych nějakým způsobem zjistit, jestli existuje nějaký příkaz/dotaz takový, aby mi stroj vrátil zpět svoji aktuální pozici (souřadnice, kde se aktuálně fyzicky nachází). Protože když mu pošlu G kód se souřadnicemi, tak mi obratem vrátí toto: b'ok\r\n' - chápu to jako potvrzení, že ten kód zpracoval, ale neznamená to, že dokončil pohyb, který po něm chci. A my potřebujeme vědět, že skutečně dojel na souřadnice tak, abychom pak mohli volat další funkce (u nás konkrétně pořízení snímku). Motory ovládá deska, na které bohužel není žádné označení - je to tato věc: https://www.amazon.com/Engraving-Machin ... B07B3RFNJ7 a celé to je připojené přes USB a má to v sobě GRBL 1.1h (v tom nejsem úplně kovaný, je to asi všechno info, co takhle umím poskytnout). Předpokládám ale, že bude existovat 'něco', co když tam přes USB pošlu, tak si deska řekne 'aha, jasně, teď jsem na souřadnicích X = 10 Y = 10 - asi v mnohem méně srozumitelné podobě, ale s tím už si poradíme :)

Obecně kódy (stringy), které tam posíláme, vypadají nějak takhle: 'G01X150Y50F500\r\n' (to asi není nic převratného)

Předem děkuji za jakékoliv rady nebo jenom postrčení správným směrem
Jakub
Uživatelský avatar
tulenimama
Chcíplotina
Chcíplotina
 
Příspěvky: 2
Registrován: stř 14. zář 2022 11:17:05

Re: Jak se dotázat na aktuální pozici (souřadnice)?

Příspěvekod Sakul » stř 14. zář 2022 12:51:11

Ahoj. Takze v tom bezi firmware grbl. Ten se pouziva pro jednoduche rizeni pomoci g-code. Ale bohuzelje tento firmware primarne navrzen pro 8bit mcu atmega328. Ten ma znacne omezenou pamet a proto tento firmware umi zpracovat jen velmi omezene mnozstvi G a M kodu. Doporucuji na githubu tohoto projektu si vyhledat jake podporuje kody. Nicmene tento firmware jde nakonfigurovat tak, ze ciklicky vraci aktualni pozici. A dokonce by mel potvrzovat dokonceni daneho prikazu. Vse je velmi dobre popsano v dokumentaci.
INFO:
Sakul WORLD: www.sakul.cz/
Sakul YouTube: www.youtube.com/user/sakulraider

Možnost příspěvku (Donate):
Patreon: https://www.patreon.com/sakul
PayPal: SakulRaider@seznam.cz
BU: 670100-2208863541/6210
Uživatelský avatar
Sakul
Administrátor
Administrátor
 
Příspěvky: 1745
Věk: 43
Registrován: úte 30. bře 2010 18:13:08

Re: Jak se dotázat na aktuální pozici (souřadnice)?

Příspěvekod tulenimama » pát 16. zář 2022 9:52:06

Rád bych poděkoval. Skutečně to v dokumentaci je a ačkoliv jsem jí pročítal, tak tohle jsem přehlédl, nakonec to bylo v sekci 'real time commands' a po odeslání '$?' vrátí zpět status a souřadnice.

Pokud by to čirou náhodou někdo někdy potřeboval, tak kód, který mi funguje (hlídá kdy stroj nemá co dělat), vypadá takto:

while True:
command(ser, '$?\r\n')
test = ser.readline()
print(test)
test_str = str(test)
if 'Idle' in test_str:
print('yeah!')
break

Díky a hezký den.
Uživatelský avatar
tulenimama
Chcíplotina
Chcíplotina
 
Příspěvky: 2
Registrován: stř 14. zář 2022 11:17:05


Zpět na 3D Tisk


  • Advertisement
SvetHostingu.cz - ideální webhosting

Kdo je online

Uživatelé procházející toto fórum: Bing [Bot] a 15 návštevníků