Python 3 úprava skriptu

Re:Python 3 úprava skriptu
« Odpověď #15 kdy: 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.


Re:Python 3 úprava skriptu
« Odpověď #16 kdy: 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.

Re:Python 3 úprava skriptu
« Odpověď #17 kdy: 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.

Re:Python 3 úprava skriptu
« Odpověď #18 kdy: 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.

Re:Python 3 úprava skriptu
« Odpověď #19 kdy: 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.


Re:Python 3 úprava skriptu
« Odpověď #20 kdy: 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.


Re:Python 3 úprava skriptu
« Odpověď #21 kdy: 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.

Re:Python 3 úprava skriptu
« Odpověď #22 kdy: 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 ;)
kde sou 👮 卍 👮 卍  hele ✊ co jim strčit hele ✊ jak snima jako mluvit hele

Re:Python 3 úprava skriptu
« Odpověď #23 kdy: 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 :-\ :-\
kde sou 👮 卍 👮 卍  hele ✊ co jim strčit hele ✊ jak snima jako mluvit hele

Re:Python 3 úprava skriptu
« Odpověď #24 kdy: 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ť.

Re:Python 3 úprava skriptu
« Odpověď #25 kdy: 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 :) ;)
kde sou 👮 卍 👮 卍  hele ✊ co jim strčit hele ✊ jak snima jako mluvit hele

Re:Python 3 úprava skriptu
« Odpověď #26 kdy: 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ť.

Re:Python 3 úprava skriptu
« Odpověď #27 kdy: 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

BoneFlute

  • *****
  • 1 600
    • Zobrazit profil
Re:Python 3 úprava skriptu
« Odpověď #28 kdy: 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.

Re:Python 3 úprava skriptu
« Odpověď #29 kdy: 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
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.
« Poslední změna: 15. 03. 2021, 22:03:43 od PetrSwetr »