Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: original-bubo 06. 03. 2021, 10:14:49

Název: Python 3 úprava skriptu
Přispěvatel: original-bubo 06. 03. 2021, 10:14:49
Zdravím,

našiel by sa niekto, kto ovláda programovanie v pythone 3 a bol by ochotný poradiť?

Tu: https://diyprojects.io/motorized-microscope-hq-camera-raspberry-pi-python-html-interface/
je pekný návod na stavbu mikroskopu s RPi a krokovým motorom.
Všetko funguje super, ale ja mám 7" dotykovú obrazovku a tlačítka na ovládanie sú
príliš malé a priveľmi natlačené na okraj.

Potreboval by som poradiť, čo mám zmeniť - kde sa poloha a veľkosť kóduje, tak aby som mal rozloženie,
ktoré mi bude vyhovovať.
Prikladám skript o ktorý ide a obrázok ako to je a ako by som to chcel.
Prípadne ešte ako mám pridať koncové spínače - pri dosiahnutí krajnej polohy
by kamera mala zastaviť a možný by bol len pohyb opačným smerom. Najme v polohe hore sa
stáva, že dôjde k mechanickému "nárazu" - nevydáva to pekný zvuk.

Ďakuje vopred za všetky užitočné rady
Název: Re:Python 3 úprava skriptu
Přispěvatel: IDontCare 06. 03. 2021, 12:26:51
Nejde ani o upravu Python kodu jako o upravu HTML/CSS, ktere slouzi pro vykreslovani. Pouziva se https://getbootstrap.com/docs/3.4/css/ (https://getbootstrap.com/docs/3.4/css/) takze bych se dal timto smerem..
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 06. 03. 2021, 15:30:46
Nejde ani o upravu Python kodu jako o upravu HTML/CSS, ktere slouzi pro vykreslovani. Pouziva se https://getbootstrap.com/docs/3.4/css/ (https://getbootstrap.com/docs/3.4/css/) takze bych se dal timto smerem..

Vďaka za odpoveď, ale tú stránku som videl, a nevidím rozdiel medzi čínskymi znakmi a tým čo je na tej stránke napísané.
Možno som úplne naivný, ale hľadal som tlačítko -> pozícia -> rozmef x*y -> farba ->  popis, alebo tak nejako...
Či tak sa programovalo pred >40 rokmi? Na výške som celkom zvládal Algol :-)
Název: Re:Python 3 úprava skriptu
Přispěvatel: pangolin 06. 03. 2021, 16:08:06
V proměnné PAGE bych odkomentoval sekci
Kód: [Vybrat]
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=yes"> a pohrál si případně s initial-scale.
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 06. 03. 2021, 17:54:08
V proměnné PAGE bych odkomentoval sekci
Kód: [Vybrat]
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=yes"> a pohrál si případně s initial-scale.

Vďaka, skúsil som 200%, zaujímavá zmena - tlačítka sa dostali do okna videa a to má minimálne rozmery 2560x2048. Na 4k monitor sa vojde všetko... a aj tlačítka sú o trošku väčsie :) Len ja mám stále len ten touch screen 1024x600...
Obrázok prikladám...
Název: Re:Python 3 úprava skriptu
Přispěvatel: _Jenda 06. 03. 2021, 18:36:32
https://www.jakpsatweb.cz/css/css-pozicovani.html
https://www.jakpsatweb.cz/okraje.html
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 06. 03. 2021, 19:25:34
https://www.jakpsatweb.cz/css/css-pozicovani.html
https://www.jakpsatweb.cz/okraje.html

Ok ďakujem, ešte prosím uviesť na akej univerzzite sa mám na aký odbor prihlásiť a najlepšie v akom semestri je táto téma aktuálna, nech tam nesedím celých 5 rokov. O dva roky idem do penzie, času bude dosť. Odadujem do 3-4 rokov mám problém vyriešný.
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wangarad 06. 03. 2021, 19:39:15
original-bubo : najprv som chcel poslat hotove riesenie ako si chcela ale ked som teraz badal tvoj pristup arogantneho debilka tak mam pre teba dobru radu : pomoz si sam :)
Dostal si 4 tipy co spravit samo o sebe je to banalitka na 10 minut ale ked mas k tomu pristup ako mas vela stastia  :-*
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 06. 03. 2021, 20:04:32
original-bubo : najprv som chcel poslat hotove riesenie ako si chcela ale ked som teraz badal tvoj pristup arogantneho debilka tak mam pre teba dobru radu : pomoz si sam :)
Dostal si 4 tipy co spravit samo o sebe je to banalitka na 10 minut ale ked mas k tomu pristup ako mas vela stastia  :-*

Nuž, arogancia je predpokladať, že všetci ľudia sú buď povinní študovať programovanie, alebo držať hubu. Arogancia je tykať a nadávať človeku, ltorý je odhadujem 2 x tak starý ako vy.
Predpokladám, že ste nemali pripravené žiadne hotové riešenie, len ste využili situáciu aby ste honili svoje ego a ukázali aký superman ste.
A určite ste si nevšimli, že som slušne požiadal o zmysloplné príspevky a nie na odkazy na štúdium programovania a už vobec nie o vaše exkrementy. 
Asi je optimistické predpokladať, že nebudú nasledovať podobné príspevky. Žiaľ nevychovanosť a agresivita je na nete veľmi častá.
Ja sľubujem, že na tieto indivíduá už nebudem reagovať.
Název: Re:Python 3 úprava skriptu
Přispěvatel: k3dAR 07. 03. 2021, 03:33:08
Nuž, arogancia je predpokladať, že všetci ľudia sú buď povinní študovať programovanie, alebo držať hubu. Arogancia je tykať a nadávať človeku, ltorý je odhadujem 2 x tak starý ako vy. [...]
to je uhel pohledu, protoze zaroven: Arogance je na dobre minenou radu reagovat "ešte prosím uviesť na akej univerzzite sa mám na aký odbor prihlásiť", nearogantni by bylo "ja to z toho opravdu nepochopim"...

arogantrni je treba vyzadovat at ti to nekdo vyresi kompletne sam, samozrejme pozadat o to muzes, ale nemel bys ohrnovat nos kdyz ti nekdo posle "jen" link kde mas dost mozna informace k vyreseni...

jinak tykani je na internetu normalni od jeho pocatku, pokud mas ~60let tak bys to mohl vedet ;-) urcite ti neni 2x tak co me a ja nemam problem kdyz me tyka nekdo kdo je 3x tak mladsi nez ja ;-)
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wangarad 07. 03. 2021, 08:45:42
original-bubo: mal som pretoze som si riesil presne tu istu vec cca pol roka dozdau  :-*

Ja osobne sem postujem relativne vela otazok a castokrat takych ze sa potom az hambzm ked si to necham rozlozit v hlave ale pochybudem ze by mi niekto pomohol keby mam pristup ako ty ale ok. Inak s Vasim pristupom sa Vam da odpovedat aj upkne inak. Naco sa ser*ete do veci ktorym nerozumiete a nemate sa ochotu ucit? Mas 63+ tak sa pripravuj na dochodok a neotravuj. Je to lepsie?

K3daR: tesat do kamena. Skoda ze sa neda dat nieco ako karma +
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 07. 03. 2021, 08:50:26
Nuž, arogancia je predpokladať, že všetci ľudia sú buď povinní študovať programovanie, alebo držať hubu. Arogancia je tykať a nadávať človeku, ltorý je odhadujem 2 x tak starý ako vy. [...]
to je uhel pohledu, protoze zaroven: Arogance je na dobre minenou radu reagovat "ešte prosím uviesť na akej univerzzite sa mám na aký odbor prihlásiť", nearogantni by bylo "ja to z toho opravdu nepochopim"...

arogantrni je treba vyzadovat at ti to nekdo vyresi kompletne sam, samozrejme pozadat o to muzes, ale nemel bys ohrnovat nos kdyz ti nekdo posle "jen" link kde mas dost mozna informace k vyreseni...

jinak tykani je na internetu normalni od jeho pocatku, pokud mas ~60let tak bys to mohl vedet ;-) urcite ti neni 2x tak co me a ja nemam problem kdyz me tyka nekdo kdo je 3x tak mladsi nez ja ;-)

Tak bol som určite jeden z mála čo sa hneď na začiatku 90-tych najprv k BBS a potomk internetu cez univerzitnú sieť pripojoval. A nepamätám si, žeby bolo tykanie normálne.
A k tomu úhlu pohľadu, nezdalo by sa vám arogantné, keby ste napríklad - lebo neviem v akom odbore ste špecialista, v akom nie - keby vám teda napríklad automechanik na prosbu o radu strčiil do ruky 200 stranovú knihu?
Chcel som vec odľahčiť, obrátil som to na vtip, aby bolo jasné, že s programovaním nemám nijaké skúsenosti.
Obhajovať sopliaka, ktorý okamžite začne urážať, hoci to naozaj nebol on kto prispel hocijakou radou a ani to určite nemal v úmysle, nepokladám za šťastné.
Konečne nikde som nenapísal, že chcem hotové riešenie.  To je možno Vaša arogancia toto z mojích príspevkov dedukovať. Jednoducho som naozaj nečakal, že to nie je tak ako som písal
"hľadal som tlačítko -> pozícia -> rozmef x*y -> farba ->  popis,"
Nedá mi pritom neuviesť to čo napísalo to arogantné indivíduum: "je to banalitka na 10 minut"
Takže ako, čo človek môže chcieť podľa Vás na tomto fóre, tak aby nebol označený za arogantného a zároveň nedostal odkaz na celý manuál k software?
Název: Re:Python 3 úprava skriptu
Přispěvatel: k3dAR 07. 03. 2021, 11:05:43
ja si tikani pamatuju, take sem se pripojoval nejdriv k BBS, pak k internetu pres Eunet/Cesnet pres 1200bps modem ;-)
samozrejme ze pokud sis po internetu psal s nadrizenym, ucitelem apod, tak jste si Vykali, ja ale pisu o obecnem chatu mezi lidma co se neznali/ji ;-)

priklad s automechanikem co da 200 strankovou knihu je sorry, ale mimo, ty nechces radu "neco mi klepe v motoru", ale radu "jak pridat 100koni pres chiptunning"...

neptas se na SW, ptas se na dost specifickou vec ohledne programovani (at uz ten Python, nebo CSS), a HLAVNE ja nepsal ze ses arogatni protoze si dotazal konkretni reseni(nebo abys nemyslel ze neco dedukuju spatne, na presne na kterem miste mas co zmenit ;-), ALE proto ze ohrnujes nos nad odkazem na stylovani CSS,
nejde tedy ani navic o cely manual k CSS, ale odkaz na CSS pozicovani a okraje (od Jendy)

takze at uz s timto nebo jinym dotazem, KLIDNE se ptej na konkretni postup, casto se najde nekdo (u spravy OS, ci reseni problemu se systemem, diskem apod sem to casto i ja) kdo doda vicemene presnej postup, ale NEOHRNUJ nos nad
tim kdyz ti nekdo "jenom" da odkaz, kde si informace muzes najit, neni arogantni napsat ze tomu nerozumis, pak se najde nekdo kdo te treba vice popostrci, JEN proste chapej to ze rady tu mas zadarmo, a "darovene rade na kone nehled" ;-) nejedna se o placenej support ;-)

jinak k dotazu, Python neumim ale vim ze sem pred lety resil posun o X stupnu s krokovym motorkem a nakonec tuhle cast na "projektu" resil nekdo jinej pres Python ale i tam sem se pak v tom kodu neorientoval(ale jiste se najde/nasel nekdo kdo ano :), v CSS se sice dokazu zorientovat, ale musel bych to videt pred sebou, opet se jiste najde nekdo kdo poradi z fleku, takze bud trpelivej a uvidis ;-)
Název: Re:Python 3 úprava skriptu
Přispěvatel: ByCzech 07. 03. 2021, 11:10:20
original-bubo : najprv som chcel poslat hotove riesenie ako si chcela ale ked som teraz badal tvoj pristup arogantneho debilka tak mam pre teba dobru radu : pomoz si sam :)
Dostal si 4 tipy co spravit samo o sebe je to banalitka na 10 minut ale ked mas k tomu pristup ako mas vela stastia  :-*

Nuž, arogancia je predpokladať, že všetci ľudia sú buď povinní študovať programovanie, alebo držať hubu. Arogancia je tykať a nadávať človeku, ltorý je odhadujem 2 x tak starý ako vy.
Predpokladám, že ste nemali pripravené žiadne hotové riešenie, len ste využili situáciu aby ste honili svoje ego a ukázali aký superman ste.
A určite ste si nevšimli, že som slušne požiadal o zmysloplné príspevky a nie na odkazy na štúdium programovania a už vobec nie o vaše exkrementy. 
Asi je optimistické predpokladať, že nebudú nasledovať podobné príspevky. Žiaľ nevychovanosť a agresivita je na nete veľmi častá.
Ja sľubujem, že na tieto indivíduá už nebudem reagovať.

Arogance je v první řadě pouštět se do něčeho na co nemám nebo nemám ochotu se to naučit a chci, aby mi to vyřešil někdo, kdo to umí aniž by pro to sám něco udělal.

Očekávej rady jak se to naučit a ukaž snahu ne hotové řešení zdarma. Pokud to umět nechceš, zaplať si odborníka, který to oddře za tebe. C'est la vie.
Název: Re:Python 3 úprava skriptu
Přispěvatel: k3dAR 07. 03. 2021, 11:14:45
ohledne dorazu, jen tip, zkusil bych se podivat na hodnoty:
Kód: [Vybrat]
step_per_mm = 72            # Step by millimeter | stepper per millimeter
distance = 72               # By default move 1mm => 72 steps per mm
stepper = "1mm"
a pripadne zmenit "debug    = False" na True, nevim zda/co to za debug info zobrazi...

Název: Re:Python 3 úprava skriptu
Přispěvatel: soyo 07. 03. 2021, 11:42:34
Zdravim,
tykanie asi pochadza z anglictiny.

V skripte je pre html pouzity framework bootstrap v.4 (podla linku v hlavicke). Mam s nim mimalne skusenosti, tak som si na 10 minutiek zablbol (1h) a vysledok sa zacina priblizovat ocakavanemu (v prilohe).
Tento framework sa tu vyuziva na "grid"-rozlozenie elementov na stranke. Tu konrektne su vesane do niecoho ako flexibilna tabulka. Google ma urcite vela rad pod heslom "bootstap 4 tutorial".

Ohladom dorazu - motor sam o sebe "vidi" nekonecnu zavitovu tyc. Podla zdrojakov python kniznice https://github.com/gavinlyonsrepo/RpiMotorLib/blob/master/RpiMotorLib/RpiMotorLib.py tam ziadna navratova hodnota nie je. Ale nie som elektrikar, aby som to z datasheetu motora vedel posudit. Ak by motor zliezol uplne dole a nasledne bola resetovana poloha, potom by to slo programovo obmedzit.

Sem tam sem pridu detvaky, ci by im niekto nenapisal domacu ulohu. Mozno preto tie prudke reakcie.

Kazdopadne zaujimave pouzitie - uz dlho sa chystam na nieco fascinujuce na baze SOC.

Drzim palce.
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wangarad 07. 03. 2021, 13:08:20
soyo ja som to riesil na strane HW. Proste som pridal mikro spinac a ked to prislo na hornu/dolnu polohu tak sa to rozoplo a bolo to v pohode.
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 07. 03. 2021, 13:40:54
ohledne dorazu, jen tip, zkusil bych se podivat na hodnoty:
Kód: [Vybrat]
step_per_mm = 72            # Step by millimeter | stepper per millimeter
distance = 72               # By default move 1mm => 72 steps per mm
stepper = "1mm"
a pripadne zmenit "debug    = False" na True, nevim zda/co to za debug info zobrazi...
Ďakujem, ale toto asi rieši počet pulzov potrebných na dráhu 1 mm pri danom stúpaní závitu. Napr. motor má potrbuje 200 pulzov na otáčku a stúpanie závitu sú 4 mm. potom na 1 mm treba 50 pulzov.
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 07. 03. 2021, 13:44:40
soyo ja som to riesil na strane HW. Proste som pridal mikro spinac a ked to prislo na hornu/dolnu polohu tak sa to rozoplo a bolo to v pohode.

Presne tak to mám i ja, ale pre krokový motor asi nestačí len spínač. Je, podľa mňa potrebné aby sa prestali posielať pulzy a nejako vyriešilo aby dokedy je spínač zopnutý, bolo možné použiť tlačítko pohybu len pre opačný smer.
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 07. 03. 2021, 13:49:33
Zdravim,
tykanie asi pochadza z anglictiny.

V skripte je pre html pouzity framework bootstrap v.4 (podla linku v hlavicke). Mam s nim mimalne skusenosti, tak som si na 10 minutiek zablbol (1h) a vysledok sa zacina priblizovat ocakavanemu (v prilohe).
Tento framework sa tu vyuziva na "grid"-rozlozenie elementov na stranke. Tu konrektne su vesane do niecoho ako flexibilna tabulka. Google ma urcite vela rad pod heslom "bootstap 4 tutorial".

Ohladom dorazu - motor sam o sebe "vidi" nekonecnu zavitovu tyc. Podla zdrojakov python kniznice https://github.com/gavinlyonsrepo/RpiMotorLib/blob/master/RpiMotorLib/RpiMotorLib.py tam ziadna navratova hodnota nie je. Ale nie som elektrikar, aby som to z datasheetu motora vedel posudit. Ak by motor zliezol uplne dole a nasledne bola resetovana poloha, potom by to slo programovo obmedzit.

Sem tam sem pridu detvaky, ci by im niekto nenapisal domacu ulohu. Mozno preto tie prudke reakcie.

Kazdopadne zaujimave pouzitie - uz dlho sa chystam na nieco fascinujuce na baze SOC.

Drzim palce.

Ďakujem. teší ma že sa tu nájde niekto ako Vy. S tým krokovým motorom, asi by bolo aj to riešenie, obmedziť pohyb na celkový možný počet pulzov - dĺžku závitovej tyče. Ale aj to by vyžadovalo referenčný spínač - systém po zapnutí nevie v akej polohe sa posúvač nachádza, systém je inkrementálny.
Myslím, že to je dosť zložitejšie ako s dvoma koncovými spínačmi.
Název: Re:Python 3 úprava skriptu
Přispěvatel: soyo 07. 03. 2021, 14:15:02
Myslím, že to je dosť zložitejšie ako s dvoma koncovými spínačmi.

Urcite existuje kopec rieseni, kde analogovy spinac zopne 2 piny a raspberry na to zareaguje.
https://www.instructables.com/Creating-Switch-Circuits-With-Your-Raspberry-Pis-G/
https://raspberrypihq.com/use-a-push-button-with-raspberry-pi-gpio/

Pripadne by slo pouzit senzor na meranie vzdialenosti.

V kazdom pripade malina bude nezavisle od requestov z ui dostavat informaciu o dosiahnuti hranicnej polohy a pri najblizsom requeste moze zablokovat patricne tlacidlo. Bude to sice o krok neskor, ale to by sa mohlo vychytat tym, ze spinac bude umiestneny v predstihu.

Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 08. 03. 2021, 08:51:30
Myslím, že to je dosť zložitejšie ako s dvoma koncovými spínačmi.

Urcite existuje kopec rieseni, kde analogovy spinac zopne 2 piny a raspberry na to zareaguje.
https://www.instructables.com/Creating-Switch-Circuits-With-Your-Raspberry-Pis-G/
https://raspberrypihq.com/use-a-push-button-with-raspberry-pi-gpio/

Pripadne by slo pouzit senzor na meranie vzdialenosti.

V kazdom pripade malina bude nezavisle od requestov z ui dostavat informaciu o dosiahnuti hranicnej polohy a pri najblizsom requeste moze zablokovat patricne tlacidlo. Bude to sice o krok neskor, ale to by sa mohlo vychytat tym, ze spinac bude umiestneny v predstihu.

Odpovedal som, ale nejako sa to stratilo.
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat  tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.

Inak skúsil som tú Vašu úpravu a vyhovuje. Super, ďakujem sám by som to v nijakom prípade nezvládol ani po stonásobnom prečítaní tých návodov, na ktoré som tu dostal odkazy.
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wrána diskuze 08. 03. 2021, 11:18:17
...............
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat  tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.
............
budeš muset asi jakoby couvnout trošičku dál vod tlačítka/microspínače když ho sepneš protože eletrickej čudlik muže dělat divný věci + když ho začneš mačkat protože seš blízko ale nesepneš tak namáháš/poškozuješ mechanickej senzor vlastně a pak se třeba nesepne až jako bude potřeba :o :o
btw koukni na homing 3d tiskáren tam seto řeší  :o ;)
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wrána diskuze 08. 03. 2021, 11:23:04
original-bubo : najprv som chcel poslat hotove riesenie ako si chcela ale ked som teraz badal tvoj pristup arogantneho debilka tak mam pre teba dobru radu : pomoz si sam :)
Dostal si 4 tipy co spravit samo o sebe je to banalitka na 10 minut ale ked mas k tomu pristup ako mas vela stastia  :-*
tvl všichni ti tady jako pomáhaj jak jako mužou a teďko když ty mužeš pomoct někomu jinýmu tak takle vyvádíš........................... :o :o :-\ :-\
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 08. 03. 2021, 14:15:47
...............
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat  tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.
............
budeš muset asi jakoby couvnout trošičku dál vod tlačítka/microspínače když ho sepneš protože eletrickej čudlik muže dělat divný věci + když ho začneš mačkat protože seš blízko ale nesepneš tak namáháš/poškozuješ mechanickej senzor vlastně a pak se třeba nesepne až jako bude potřeba :o :o
btw koukni na homing 3d tiskáren tam seto řeší  :o ;)

No to teraz asi nie je hlavný problém. Keď k tomu dôjde, tak sa to snáď dá riešiť hardwérovo - ošetriť zákmity. Problém je ako do toho python scriptu tie koncové spínače čo najjednuchejšie pridať.
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wrána diskuze 08. 03. 2021, 19:06:39
...............
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat  tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.
............
budeš muset asi jakoby couvnout trošičku dál vod tlačítka/microspínače když ho sepneš protože eletrickej čudlik muže dělat divný věci + když ho začneš mačkat protože seš blízko ale nesepneš tak namáháš/poškozuješ mechanickej senzor vlastně a pak se třeba nesepne až jako bude potřeba :o :o
btw koukni na homing 3d tiskáren tam seto řeší  :o ;)

No to teraz asi nie je hlavný problém. Keď k tomu dôjde, tak sa to snáď dá riešiť hardwérovo - ošetriť zákmity. Problém je ako do toho python scriptu tie koncové spínače čo najjednuchejšie pridať.
sou dvě jednoduchý možnosti  :o :o

pokuď ti jakoby stačí tamten 1mm krok nato abys neurval čudlik tak normálně někam nazačátku definuj nožičku na kterou bude přidělanej čudlik
Kód: [Vybrat]
LIMIT_SWITCH_PIN = 23 # čudlik třeba na gpio 23 ( vobrázek s nožičkama tady třeba hele https://pinout.xyz/# )
dolu třeba dotoho bloku 'with picamera.PiCamera:' nazačátek strč
Kód: [Vybrat]
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LIMIT_SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
a do tý funkce 'do_POST' za to dělání 'motor_go' si jakoby přidej nějakej test jestli je čudlik máčkutej a podle toho něco dělej :o ;)
sem tam strčila jeden krok ve vopačným směru :o :o
Kód: [Vybrat]
    def do_POST(self):
        global distance, ring_status, color, stepper, ring_status_label, step_per_mm, distance
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)
        if self.path == '/up':
            print("Go Up to ", distance)
            mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
            if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
                print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
                mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
               
            self.send_response(301)
            self.send_header('Location', '/index.html')
            self.end_headers()
        elif self.path == '/down':
            print("Go Down to ", distance)
            mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
            if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
                print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
                mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
               
            self.send_response(301)
...........
........
........


druhá víc lepšejší možnost je podědit ztý motorový knihovničky třídu A4988Nema a todleto tam jakoby všecko připsat a hlídat to tam :o :o :) ;)
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 09. 03. 2021, 12:08:39
...............
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat  tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.
............
budeš muset asi jakoby couvnout trošičku dál vod tlačítka/microspínače když ho sepneš protože eletrickej čudlik muže dělat divný věci + když ho začneš mačkat protože seš blízko ale nesepneš tak namáháš/poškozuješ mechanickej senzor vlastně a pak se třeba nesepne až jako bude potřeba :o :o
btw koukni na homing 3d tiskáren tam seto řeší  :o ;)

No to teraz asi nie je hlavný problém. Keď k tomu dôjde, tak sa to snáď dá riešiť hardwérovo - ošetriť zákmity. Problém je ako do toho python scriptu tie koncové spínače čo najjednuchejšie pridať.
sou dvě jednoduchý možnosti  :o :o

pokuď ti jakoby stačí tamten 1mm krok nato abys neurval čudlik tak normálně někam nazačátku definuj nožičku na kterou bude přidělanej čudlik
Kód: [Vybrat]
LIMIT_SWITCH_PIN = 23 # čudlik třeba na gpio 23 ( vobrázek s nožičkama tady třeba hele https://pinout.xyz/# )
dolu třeba dotoho bloku 'with picamera.PiCamera:' nazačátek strč
Kód: [Vybrat]
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LIMIT_SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
a do tý funkce 'do_POST' za to dělání 'motor_go' si jakoby přidej nějakej test jestli je čudlik máčkutej a podle toho něco dělej :o ;)
sem tam strčila jeden krok ve vopačným směru :o :o
Kód: [Vybrat]
    def do_POST(self):
        global distance, ring_status, color, stepper, ring_status_label, step_per_mm, distance
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)
        if self.path == '/up':
            print("Go Up to ", distance)
            mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
            if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
                print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
                mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
               
            self.send_response(301)
            self.send_header('Location', '/index.html')
            self.end_headers()
        elif self.path == '/down':
            print("Go Down to ", distance)
            mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
            if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
                print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
                mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
               
            self.send_response(301)
...........
........
........


druhá víc lepšejší možnost je podědit ztý motorový knihovničky třídu A4988Nema a todleto tam jakoby všecko připsat a hlídat to tam :o :o :) ;)

Vďaka, skúsim to nejako napasovať.
Název: Re:Python 3 úprava skriptu
Přispěvatel: original-bubo 15. 03. 2021, 12:46:58
Zdravím,
myslím, že som našiel oveľa lepšie riešenie pre mikroskop s RPi a HQ camera.

Stojan s krokovým motorom je riešený s arduino - návod tu:
https://www.norwegiancreations.com/2019/08/arduino-as-a-stepper-motor-controller-jogging-with-acceleration/
Funguje bez problémov, ako stepper driver som použil TMC2208.
MS1 - high
MS2 - low -cez prepinač na high, spomalenie 8x
Koncový spínač na enable. Treba mu potom pomôcť rukou, ale nedôjde ku mechanickej kolízii.

Pre LED osvetlovací krúžok toto:
https://create.arduino.cc/projecthub/Arduino_Scuola/color-mixing-addressable-leds-0ca993

Ešte nemám dokončené. Pridané ďalšie arduino.

A na raspberry 4B+ s 7" touch screen beží toto:

https://elinux.org/RPi-Cam-Web-Interface
Název: Re:Python 3 úprava skriptu
Přispěvatel: BoneFlute 15. 03. 2021, 18:03:00
Ad arogancia.

Řekl bych, že nemá smysl řešit co je a co není, kdo je a kdo není. Ono se to pozná jednoduše: když se někdo nechová adekvátně, nikdo se nebude obtěžovat mu pomoct.
Název: Re:Python 3 úprava skriptu
Přispěvatel: PetrSwetr 15. 03. 2021, 21:57:08
A tohle tomu zastavení vadit nebude?
https://diyprojects.io/drive-nema-17-stepper-motor-rpimotorlib-python-library-a4988/#.YE_HNP4o93M (https://diyprojects.io/drive-nema-17-stepper-motor-rpimotorlib-python-library-a4988/#.YE_HNP4o93M)
Note on stopping stepper motor movements

The RpiMotorLib library does not offer any method to stop the movement in progress for stepper motors.

In an emergency or manually, the movements managed by the BYJMotor, A4988 and DRV8825 microcontrollers cannot be stopped.

Plus mi nepřijde moc šikovné, ovládat to z dotykového displeje. Dal bych si tam mechanická tlačítka. GPIO pinů na to má Raspberry dost.
Je škoda zabírat na malém displeji místo ovládacími prvky.
Název: Re:Python 3 úprava skriptu
Přispěvatel: Wrána diskuze 18. 03. 2021, 13:03:56
A tohle tomu zastavení vadit nebude?
https://diyprojects.io/drive-nema-17-stepper-motor-rpimotorlib-python-library-a4988/#.YE_HNP4o93M (https://diyprojects.io/drive-nema-17-stepper-motor-rpimotorlib-python-library-a4988/#.YE_HNP4o93M)
Note on stopping stepper motor movements

The RpiMotorLib library does not offer any method to stop the movement in progress for stepper motors.

In an emergency or manually, the movements managed by the BYJMotor, A4988 and DRV8825 microcontrolle
...........
...........
plha!!!!!!!!!!!!!! vo tom tady jako už nejmíň dobrou čtvrhodinku hovoříme :o :o ;D ;D ;D ;D ;) ;)

btw ta knihovnička je uplně jednoduchoučká prostě si to pustí for loop ve stejným vlákně ze kterýho to bylo zavolaný a pouští si to eletriku do těch svejch pinů/nožiček  :o :D neni problem to podědění overriding metody s loopem + přidání limit switch pinu  :) ;)

Kód: [Vybrat]
..........
..............

class A4988Nema(object):
    """ Class to control a Nema bi-polar stepper motor with a A4988 also tested with DRV8825"""
    def __init__(self, direction_pin, step_pin, mode_pins, motor_type="A4988"):
        """ class init method 3 inputs
        (1) direction type=int , help=GPIO pin connected to DIR pin of IC
        (2) step_pin type=int , help=GPIO pin connected to STEP of IC
        (3) mode_pins type=tuple of 3 ints, help=GPIO pins connected to
        Microstep Resolution pins MS1-MS3 of IC
        (4) motor_type type=string, help=TYpe of motor two options: A4988 or DRV8825
        """
        self.motor_type = motor_type
        self.direction_pin = direction_pin
        self.step_pin = step_pin
        self.mode_pins = mode_pins
        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)

    def resolution_set(self, steptype):
        """ method to calculate step resolution
        based on motor type and steptype"""
        if self.motor_type == "A4988":
            resolution = {'Full': (0, 0, 0),
                          'Half': (1, 0, 0),
                          '1/4': (0, 1, 0),
                          '1/8': (1, 1, 0),
                          '1/16': (1, 1, 1)}
        elif self.motor_type == "DRV8825":
            resolution = {'Full': (0, 0, 0),
                          'Half': (1, 0, 0),
                          '1/4': (0, 1, 0),
                          '1/8': (1, 1, 0),
                          '1/16': (0, 0, 1),
                          '1/32': (1, 0, 1)}
        else:
            print("Error invalid motor_type: {}".format(self.motor_type))
            quit()
       
        # error check stepmode
        if steptype in resolution:
            pass
        else:
            print("Error invalid steptype: {}".format(steptype))
            quit()

        GPIO.output(self.mode_pins, resolution[steptype])

    def motor_go(self, clockwise=False, steptype="Full",
                 steps=200, stepdelay=.005, verbose=False, initdelay=.05):
        """ motor_go,  moves stepper motor based on 6 inputs
         (1) clockwise, type=bool default=False
         help="Turn stepper counterclockwise"
         (2) steptype, type=string , default=Full help= type of drive to
         step motor 5 options
            (Full, Half, 1/4, 1/8, 1/16)
         (3) steps, type=int, default=200, help=Number of steps sequence's
         to execute. Default is one revolution , 200 in Full mode.
         (4) stepdelay, type=float, default=0.05, help=Time to wait
         (in seconds) between steps.
         (5) verbose, type=bool  type=bool default=False
         help="Write pin actions",
         (6) initdelay, type=float, default=1mS, help= Intial delay after
         GPIO pins initialized but before motor is moved.
        """
        # setup GPIO
        GPIO.setup(self.direction_pin, GPIO.OUT)
        GPIO.setup(self.step_pin, GPIO.OUT)
        GPIO.output(self.direction_pin, clockwise)
        GPIO.setup(self.mode_pins, GPIO.OUT)
        try:
            # dict resolution
            self.resolution_set(steptype)

            time.sleep(initdelay)

            for i in range(steps):
                GPIO.output(self.step_pin, True)
                time.sleep(stepdelay)
                GPIO.output(self.step_pin, False)
                time.sleep(stepdelay)
                if verbose:
                    print("Steps count {}".format(i))

        except KeyboardInterrupt:
            print("User Keyboard Interrupt : RpiMotorLib:")
        except Exception as motor_error:
            print(sys.exc_info()[0])
            print(motor_error)
            print("RpiMotorLib  : Unexpected error:")
        else:
            # print report status
            if verbose:
                print("\nRpiMotorLib, Motor Run finished, Details:.\n")
                print("Motor type = {}".format(self.motor_type))
                print("Clockwise = {}".format(clockwise))
                print("Step Type = {}".format(steptype))
                print("Number of steps = {}".format(steps))
                print("Step Delay = {}".format(stepdelay))
                print("Intial delay = {}".format(initdelay))
                print("Size of turn in degrees = {}"
                      .format(degree_calc(steps, steptype)))
        finally:
            # cleanup
            GPIO.output(self.step_pin, False)
            GPIO.output(self.direction_pin, False)
            for pin in self.mode_pins:
                GPIO.output(pin, False)
.................
.....................