PICAXE 20M2 + servo+7 segment

Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od Pepa z depa »

Ani "pinsC = %11111111" nefunguje :(

Neboj ještě není konec, ještě mi zbylo spousta nožiček i paměti ... :mrgreen:
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od AlesH »

Teď jsem si to v manuálu přečetl kompletně a je tam uvedeno, že aby fungoval příkaz "pinsC", tak předtím musí být ty piny jasně definovány jako výstupní. To lze provést pomocí HIGH/LOW na příslušných pinech (proto to fungüje ve Tvém případě), nebo se musí někam na začátek programu napsat "dirsC = %11111111" (lze to napsat takto, i když na C.6 to nezabere, protože tento pin může být u PICAXE-20M2 jen vstupní).
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od Pepa z depa »

Tak už všechno funguje jak má, akorát jsem ještě poladil polohy serva a trochu časy.
Ještě by se mi líbilo, kdyby servo, ať se vydá do kterékoliv polohy, tak aby tam jelo pomalu. Koukal jsem do seriálu v RCrevue (servosekvencer), tam je servo ovládáno příkazem pulsin/pulsout, ale nepřišel jsem na způsob, jak to zapojit do programu. Jde nějak zpomalit servo, při použití příkazu servo ...? Možná nějak krokovat, ale nevim jak :oops:
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od AlesH »

Podle mne jde běžné servo "zpomalit" jedině krokováním, tedy postupným nastavováním poloh serva od poslední známé polohy k cílové poloze po krocích s časovými odstupy.

Protože v té poslední verzi programu je použit "polling", tak tohle "krokování" lze přidat do hlavní programové smyčky.

Musíme ale rozlišovat cílovou polohu serva a aktuálně nastavenou polohu serva (kvůli nové proměnné "cil" jsem posunul registr pro "pom"):

Kód: Vybrat vše

symbol poloha = b3             ; aktualni nastavena poloha serva
symbol cil    = b4             ; cilova poloha serva
symbol pom    = w3             ; pomocna promenna
Počáteční polohu serva doporučuju dát "středovou" tedy např. 128.

Kód: Vybrat vše

...
poloha = 128                   ; středová poloha serva pro první rozjezd

cykl:
...
V programu navrhuju zavést podprogram "krokuj" a použít ho v hlavní smyčce. Je ale pak taky třeba upravit začátek podprogramu pro nastavení serva.

Kód: Vybrat vše

...
  if stav=1 and pom>50 then    ; priznak tlacitek uvolnit i po timeoutu (repeat)
    stav=0                     ; nastavit priznak uvolnenych tlacitek
    pom = 0                    ; vynulovat pocitadlo cyklu
  endif
  gosub krokuj
goto cykl

krokuj:
  if poloha>cil then           ; pokud servo neni v cilove poloze
    dec poloha                 ; uprav polohu bliz k cili (krokovaniú
    servopos B.1,poloha        ; nastav servo do nove polohy
    pom = 200                  ; nastavit pocitadlo cyklu tesne pred vypnuti serva
  endif
  if poloha<cil then           ; pokud servo neni v cilove poloze
    inc poloha                 ; uprav polohu bliz k cili (krokovaniú
    servopos B.1,poloha        ; nastav servo do nove polohy
    pom = 200                  ; nastavit pocitadlo cyklu tesne pred vypnuti serva
  endif
  if pom>200 then              ; je uz mozno vypnout servo?
    ;servo B.1,off
    high B.1
  endif
return

nastav:                        ; podprogram pro nastaveni serva (a displeje)
  readtable cislo,cil          ; nacist cilovou polohu serva podle aktualniho cisla
  servo B.1,poloha             ; nastavit servo do pozadovane polohy
...  
Pokud má servo krokovat i po stisku nulovacího tlačítka "swnula", tak je třeba podprogram "krokovani" volat i ve zpomalene smyčce čekání na konec stisku "swnula".

Kód: Vybrat vše

...
    do while swnula=0          ; cekani na konec stisku swnula
      gosub krokuj
      pause 12
    loop
...
Výše uvedené úpravy programu v mém testovacím zapojení fungovaly solidně.
Naposledy upravil(a) AlesH dne 10 úno 2014, 21:11, celkem upraveno 1 x.
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od Pepa z depa »

Aleši díky moc !!!
Teďka to bohužel nevyzkouším, páč jsem musel vrátit kabel. Byl od asixu tenhle http://www.asix.cz/usb_ucab232.htm
Vyzkoušel jsem asi tři jiný a ani jeden nefunguje :cry: . Nechce se mi dávat sedmikilo za asixe, ani litr (nebo kolik) za origoš. Nevíte někdo nějakou funkční alternativu?
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od AlesH »

Osobně už několik let s úspěchem používám převodník USBCOM3. Mám to ale vyzkoušeno jen na Windows XP.
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od jrt »

USBCOM3 funguje bez problémů i ve W7. Ve W8 je to složitější, ale jde to.
jrt
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od Pepa z depa »

OK USBCOM3 už je objednanej. Díky za info.
Pepa z depa
Příspěvky: 85
Registrován: 02 úno 2014, 02:12

Re: PICAXE 20M2 + servo+7 segment

Příspěvek od Pepa z depa »

Tak jsem se konečně dostal k tomu to naimplementovat do brouka a po nepatrném dotunění to funguje za 1*.
Tímto děkuji všem zúčastněným, především Alešovi.
Odpovědět