(http://www.linuxcnc.org/docs/devel/html/pyvcp_dial.png)
Miten tälle rakennetaan toimiva hal tiedosto? Olen tässä jonkin aikaa koettanut tutustua manuaaleihin ja nettiin mutta vielä ei ole auennut miten "net":taan oikeat palikat yhteen..
"widget" löytyy kun rullaa linkkia vähän alas pain.
http://www.linuxcnc.org/docs/devel/html/hal_pyvcp.html#r1_6_5
testailin äsken hieman tuollaista:
http://www.anderswallin.net/2010/08/axis-with-pyvcp-jogwheel/
voin kirjoittaa illemmällä askel-askeleelta ohjeita jos vielä tarvii...
joo minne prience4.comp laitetaan jotta emc :sen löytää. ? tai miten se kopiodaan tonne usr alle kun ei ole lupia...
Eli yksityiskohtaiset ohjeet ois tervetulleet.
comp tiedostio käännetään ja asennetaan komennolla
comp --install prienc4.comp
jos oikeudet eivät riitä niin
sudo comp --install prienc4.comp
(tässävaiheessa linux kysyy käyttäjän salasanaa)
noin muuten niin INI tiedostoon [DISPLAY] osioon lisätään:
PYVCP = jogwheel.xml
ja [HAL] osioon lisätään:
POSTGUI_HALFILE = pyvcp_jogwheel.hal
ja sitten pitäisi toimia !?
joo muuten tuon sainkin toimiin mutta
mauri@Jyrsija:~$ sudo comp --install prienc4.comp
sudo: comp: command not found
mauri@Jyrsija:~$
Näin sanoi pääte..
comp on ilmeisesti "kehitystyökalu", eikä tule vakio asennuksen kanssa.
koita näin:
sudo apt-get install emc2-dev
ja
sudo apt-get install build-essential
En saanut toimimaan näidenkään avulla. Sama vaiva vieläkin..
ovatko kaikki normaalit emc työkalut ajettavissa terminaalista? jos kirjoitat seuraavia niin pitäisi erilaisi ohjelmia aueta:
emc
halmeter
halscope
pyvcp
jos näitä ei löydy niin ei varmaan comp:kaan löydy.
terminaali/shelli:n oikean polun asettamiseen löytyy skripti, joka ajetaan näin:
. ./scripts/emc-environment
tämä pitäisi asettaa polun jne. oikein.
tuon rivin voi lisätä kotihakemistoon tiedostoon .profile
jolloin se tulee ajetuksi aina kun avaa uuden terminaalin
nopeampaa apua ja vinkkejä tällaisiin pieniin ongelmiin saa yleensä #emc IRC-kanavalla. suosittelen.
tämä skripti on varmaan se paras ja helpoin emc2:n asennustapa:
http://linuxcnc.org/hardy/emc2-install.sh
kysyin IRCssä ja emc2 paketin asennuksen jälkeen (tuo skripti) pitäisi halmeter, halscope, jne olla polulla ja toimia, sitten tuon emc2-dev paketin asennuksen jälkeen pitäisi myös comp löytyä.
eihän tuo toiminut kuin emc, johtusikohan siitä kun menin päivittämään tämän emc:n että nuo muut ei pelaile täysillä. Pitää varmaan päivittää taas vanhempaan versioon..
Asennsin uusiksi livecd:ltä ubuntu & emc ja sen jälkeen laitoin nuo "kehitys" työkalut. Niin johan rupes comp:aan.
Nyt voip hiiren rullalla "kätevästi" jogailla nollapisteet kohilleen.
Pitäähän se jossain vaiheessa joku "kauko ohjain" kapula värkkäillä mutta tällä pärjää nyt siihen asti. Kiitos aw!
Aika monimutkaine olikin tuo koodi, minkä laitot että ei olisi ihan noin vain minulta onnistunutkaan. Mitenhän tuo onnistuu tuohon dial:iin tehdä?
Lainaus käyttäjältä: Maukka - 28.08.10 - klo:20:48
Asennsin uusiksi livecd:ltä ubuntu & emc ja sen jälkeen laitoin nuo "kehitys" työkalut. Niin johan rupes comp:aan.
Nyt voip hiiren rullalla "kätevästi" jogailla nollapisteet kohilleen.
Pitäähän se jossain vaiheessa joku "kauko ohjain" kapula värkkäillä mutta tällä pärjää nyt siihen asti. Kiitos aw!
hyvä että lähti pelaamaan!
Lainaus käyttäjältä: Maukka - 28.08.10 - klo:20:48
Aika monimutkaine olikin tuo koodi, minkä laitot että ei olisi ihan noin vain minulta onnistunutkaan. Mitenhän tuo onnistuu tuohon dial:iin tehdä?
tuo itse nopeasti kyhätty comp:i tarvittiin sen OFF/0.1/0.01/0.001 radiobutton:in ulostulon muuttamiseksi sopivaan muotoon mux4-piirille joka asettaa jog-scale:n oikein. jos kirjoittaa taulukkona niin sisäänmenobitit vasemmalla ja ulostulo oikealla:
1000 00
0100 01
0010 10
0001 11
tuon voisi varmasti tehdä myös ihan vakio HAL-palikoilla mutta en nopeasti keksinyt miten. (and/or/not jne palikkaa vaan toisen perään...)
axis.N.jog-scale haluaa liukuluvun jolla asetetaan naksahduksen koko (siis 0.1 0.01 jne)
axis.N.jog-count haluaa kokonaisluvun jossa on jog-wheelin naksahduksia
axis.N.jog-enable haluaa bitin joka kertoo milloin kyseisen akselin joggaus on päällä
dial-widgetin ulostulo ei suoraan sovi tuohon, koska sieltä tulee vain yksi liukuluku ulos(muistaakseni). joggaus-käyttöön olisi parempi jos tulisi jotain jonka suoraan voisi johdottaa jog-scale:iin ja jog-count:iin.
Tämä arviolta noin 5-rivin python koodin muutos lib/python/pyvcp_widgets.py tiedostoon olisi OK parannus, voin koittaa tehdä jos ehdin/muistan (tai tee ite ja laita emc2 spostilistalle, näin ne open-source softat paranee/kehittyy!)
Miten pyvcp paneelissa ohjelmoidaan nappi toimimaan siten että esim.
Kun painetaan pause, paussi päälle ja toisen kerran painettaessa resume programn ?
Tässä suunnittelen vaan kapulaa mihin tulisi play pause stop napit..
Ja miten ohjelmoin play napin siten että sitä voi painaa vain kerran. Normaalistihan ohjelma pitää olla pysäytettynä ennen kuin play nappi reakoi uudestaan.
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Jogging_With_Buttons_On_A_Pendant (http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Jogging_With_Buttons_On_A_Pendant)
Eikä niin kuten linkin esimerkissä että kun painaa start nappia uudestaan lähtee myöskin ohjelma uudestaan alusta.
Mutta entäpä jos haluan ohjelmoida kapulaan touch off napin? Eli kun nollapiste haettuna tietty akseli vaittuna painetaan touch off ja saan nollapistesiirron muistiin kuten normaalisti.
vuodelta 2006 on tarinaa omasta pendant-rakentelusta tuolla:
http://www.anderswallin.net/2006/11/jogging-emc2/
yksi idea mikä toistuu usein EMC2:ssa/halui:ssa on "NIST-logiikka", eli ykeensä jokaiselle toiminnolle on olemassa kolme pinniä, esim flood:
flood.on - sisäänmeno, kääntää päälle
flood.off - sisäänmeno, kääntää pois päältä
flood.is-on - ulostulo, kertoo tilan
jos käytössä on momentary-on painonappi, niin väänsin kasaan "toggle2nist" HAL-comp:in jolla HAL-johdotus helpottuu: http://www.anderswallin.net/?s=toggle2nist (tämä saattaa olla EMC2 vakio asennuksessa mukana?)
jos kerrot tarkemmin, yksi nappi kerrallaan, mitä haluat niiden tekevän, niin joku jolla on aikaa+taitoa voi ehkä auttaa...
Niin pause nappi nyt alkuun :
Mom. nappi eka painallus halui.program.pause
toka painallus halui.program.resume
Ja minähän pääsin pyvcp:llä testailussa vasta siihen vaiheesen että pause meni päälle..
http://www.linuxcnc.org/docview/html//man/man9/toggle2nist.9.html
Tämäkin löytyi mutta opiskelu minulla niin alku vaiheessa että ilman käytännön esimerkkiä ei sano mitään.
Lainaus käyttäjältä: Maukka - 15.10.10 - klo:15:50
Niin pause nappi nyt alkuun :
Mom. nappi eka painallus halui.program.pause
toka painallus halui.program.resume
Ja minähän pääsin pyvcp:llä testailussa vasta siihen vaiheesen että pause meni päälle..
näinkö?
http://www.anderswallin.net/2010/10/axis-with-pyvcp-pauseresume-button/
(xml ja hal tiedoston lisäksi tarvitaan luonnollisesti INI tiedostoon [DISPLAY] osioon "PYVCP = button.xml" ja [HAL] osioon
"POSTGUI_HALFILE = pyvcp_pausebutton.hal" sekä jotta halui latautuisi niin "HALUI = halui", mutta tämähän opittiin jo ensimmäisellä oppitunnilla yllä...)
selitys:
pyvcp-button on vain hetkellisesti tilassa "on", aina muuten "off", joten ei sovellu sellaisenaan oikein tähän. Tarvitaan jotain joka muuttaa tilaansa niin että on kokonaan "on" tai kokonaan "off". Tämä saadaan johdottamalla button toggle-komponentin läpi.
Toggle:n ulostulo siis kertoo missä tilassa napin mielestä halui.program pitäisi olla (pause vaiko resume). Kuitenkin emc:ssä moni muukin asia voi saada aikaan pause tilan (G-koodi, joku toinen nappi, jne). Eli tarvitaan tuo minun 2008 kyhäämä toggle2nist.
toggle2nist ottaa sen toggle:n ulostulon ja tuottaa kaksi ulostuloa itse: on ja off. nämä johdotetaan halui.program.pause ja halui.program.resume lankoihin.
jotta toggle2nist ei menisi sekaisin siitä kun muualta ohjelmasta (muut napit jne) tulee pause tila, niin sille on vielä kerrottava halui.program.is-paused langalla missä tilassa ohjelma on.
oliko tarpeeksi sekava selitys ? :)
meniskö graafisesti:
pyvcp.button -> toggle -> toggle2nist -> (halui.program.pause ja halui.program.resume)
lisäksi
halui.program.is-paused -> toggle2nist.is-on
AW
Joo sehän toimi hyvin! Minkälainen ehto lauseke pitää olla tuolle play napille?
Eli mom. nappi halui.program.run
Ja niin kauan kuin halui.program.is-running
On voimassa play napista ei tapahdu mitään.
Lainaus käyttäjältä: Maukka - 17.10.10 - klo:09:09
Joo sehän toimi hyvin! Minkälainen ehto lauseke pitää olla tuolle play napille?
Eli mom. nappi halui.program.run
Ja niin kauan kuin halui.program.is-running
On voimassa play napista ei tapahdu mitään.
tee samanlainen ketju play-napille:
button -> toggle -> toggle2nist -> halui.program.run
ja niinkuin ehdotit:
halui-program.is-running -> toggle2nist.is-on
sitten jätät vain johdottamatta toggle2nist.off ulostulon jos haluat että sinun play napilla ei koskaan pysäytetä ohjelmaa, pelkästään käynnistetään. En kokeillut tätä mutta luulen että voisi toimia...
Ookoo pittääpä illalla kokeilla. Ajattelin vain että pitääkö tehdä jotenkin erinlailla kun tuo off ulostulo jää käyttämättä.
Toimi kun kokeilin jätti vain off ulostulon pois.
Mutta kahta toggle2nist:iä ei vissiin saa toimimaan samaan hal. tiedostoon?
Lainaus käyttäjältä: Maukka - 19.10.10 - klo:13:46
Toimi kun kokeilin jätti vain off ulostulon pois.
Mutta kahta toggle2nist:iä ei vissiin saa toimimaan samaan hal. tiedostoon?
loadrt toggle2nist count=2
addf toggle2nist.0 servo-thread
addf toggle2nist.1 servo-thread
net togglesig1 jotain1 toggle2nist.0.in
net togglesig2 jotain2 toggle2nist.1.in
jne
Kokeilin tuota mutta jostain syystä ei hyväksy tuota count=2. File exist. eror tulee vain.
Kah count toimii. Pieni ajatus virhe vain.. Nyt ensi testit tehty muhilla ja toimii.
Nyt on saatu toimimaan jopa ihan muhi:llä näitä nappeja. !
Mutta mites laitetaan touch off / hyväksyntä nappi. ? Sille en hal pin:iä löytännä..
Nämähän toimii näppikseltä end ja enter näppäimillä..