Arduino nebo STM, jak naprogramovat STEP/DIR řízení

arduino, teensy, atmega, pic a jine (software, hardware)
miv
Příspěvky: 777
Registrován: 17. 9. 2019, 11:55

5. 4. 2023, 8:54

Selic píše: 5. 4. 2023, 8:29 Myslím, že jsem to pochopil. Na stránce s popisem knihovny AccelStepper je odkaz na http://web.archive.org/web/201407051439 ... rofile.pdf
Na poslední stránce je schéma jak to generovat pomocí hw prostředků CPU. Ve výpočtech stačí jen nahradit úhel za dráhu a je to :)
Skvěle. Nevím, jak máš konstruován zbytek programu, ale tu funci run je nejlepší volat periodicky s nějakou rozumnou periodou pořád - bez ohledu na to, co vrací. Ona je to totiž v podstatě zpětnovazební smyčka, která zajišťuje sesouhlasení skutečné a požadované polohy. Tu požadovanou nastavuješ těmi knihovními funkcemi move. Pak se již o nic nemusíš starat. Pokud používáš nějakou realtimovou multitaskovou knihovnu, pak jen pro tu run fci uděláš task, kde v nekonečné smyčce
voláš run té knihovny a sleep multitaskového jádra. Pokud realtime knihovnu nepoužíváš je na to nejlepší přerušovací rutina od časovače.
Jediný případ, kdy je vhodné volání run fce zastavit, může být nějaký "total stop" případ, kdy chceš zablokovat pohyby osy.
Uživatelský avatar
Radhard
Příspěvky: 288
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

5. 4. 2023, 11:28

Jen velmi telegraficky. Aby ten program měl nějaké solidní odezvy, tak potřebuješ RTOS, neslučitelné algoritmy rozhodíš do jednotlivých vláken, stepgen pojede nad tím vším v přerušení.
STM32F s tímhle přístupem zvládá celkem v pohodě 4 osy (rampy jaký chceš, i zcela obecný), při rychlosti 25000 step/s
miv
Příspěvky: 777
Registrován: 17. 9. 2019, 11:55

6. 4. 2023, 12:25

Radhard píše: 5. 4. 2023, 11:28 Jen velmi telegraficky. Aby ten program měl nějaké solidní odezvy, tak potřebuješ RTOS, neslučitelné algoritmy rozhodíš do jednotlivých vláken, stepgen pojede nad tím vším v přerušení.
STM32F s tímhle přístupem zvládá celkem v pohodě 4 osy (rampy jaký chceš, i zcela obecný), při rychlosti 25000 step/s
RTOS určitě potřeba není. Naopak, dobře napsaný jednovláknový systém založený na stavových strojích bude rychlejší, protože nebude spotřebována režie na provoz RTOS. Pro takto jednoduchou aplikaci není RTOS potřeba. Já osobně provozuji poměrně komplikovanou řídící jednotku bez RTOS a šlape to jako víno. Pochopitelně, co možná nejvíce věcí provozovat v přerušení je správně. Ovšem IRQ rutiny musí být velmi rychlé a musí spolupracovat s výpočty na pozadí. Je ovšem pravda, že RTOS věci zjednoduší - nemusí se programovat stavové stroje.
Uživatelský avatar
Radhard
Příspěvky: 288
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

6. 4. 2023, 9:07

Jestli RTOS nebo stavovej automat, záleží na konkrétní aplikaci. To si musí řešitel problému rozhodnout sám. A co je složité a co není, je hodně subjektivní záležitost ;-)
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

6. 4. 2023, 9:25

Staci prerusenie pee riadenienkrokaca, displej hodit na i2c, tym padom to funguje samostatne a netreba obsluhovat bit po bite.

Alebo prejst na STM. Navyse CUBe je pekne prostredie Hal kniznice vyzeraju ako fujtajbl arduinove, tak ze aby si arduinisti lahko zvykli. Stm je rychle, prostredie zdrama, konfigurator pinou a hodin ako pre opice. HaL kniznice celkom schopné, pokial netreba speciality. Frekvencia 48Mhz a viac
miv
Příspěvky: 777
Registrován: 17. 9. 2019, 11:55

6. 4. 2023, 11:25

atlan píše: 6. 4. 2023, 9:25 Staci prerusenie pee riadenienkrokaca, displej hodit na i2c, tym padom to funguje samostatne a netreba obsluhovat bit po bite.

Alebo prejst na STM. Navyse CUBe je pekne prostredie Hal kniznice vyzeraju ako fujtajbl arduinove, tak ze aby si arduinisti lahko zvykli. Stm je rychle, prostredie zdrama, konfigurator pinou a hodin ako pre opice. HaL kniznice celkom schopné, pokial netreba speciality. Frekvencia 48Mhz a viac
Není v tom arduinu také nějaké STM32? Já žil v domnění, že ano. Ten konfigurátor v CUBE IDE je boží. Já jsem dlouhá léta dělal s MSP430 a později MSP432 od Texasů, kde mají také něco podobného, ale STMicro je předčí. Za mne mohu říci - jsem šťastná opice. S arduinem jsem nedělal, ale ten hardware je tak laciný, že bych nějakou desku koupil - co jsem se zběžně díval, je tam debug JTAG, takže předpokládám, že to jde normálně programovat v CUBE IDE. Bastlit vlastní hardware asi nemá cenu - stačí nějaká sendvičová deska s IO periferiemi.
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

6. 4. 2023, 1:04

Tak teoreticky staci na pokusi kupit dosku arduino s stm32103 a stlinkv2 cinsky
€ 1,33 19%OFF | ST-LINK V2 Simulator Download Programmer STM32F103C8T6 ARM STM32 Minimum System Development Board STM32F401 STM32F411
https://a.aliexpress.com/_mKMmvpw

Je, problem je ten ze arduimo robi este kopec inych veci o ktore nestojis.
Selic
Příspěvky: 651
Registrován: 17. 2. 2010, 1:58
Bydliště: Novopacko

11. 4. 2023, 9:42

Tak po menším výzkumu jsem zjistil, že stačí použít řízení z GRBL, kde je to hotové: https://github.com/grbl/grbl/blob/master/grbl/stepper.c
V komentářích je krásně okomentováno, jak se rampy počítají.
LCD ještě ze sportu překlopím na ten I2C řadič.
Elektrikář, mechaniku dělám jen z donucení a jako hobby.
Odpovědět

Zpět na „MCU“