Zdravím všechny, po update na novou verzi jsme musel znovu nastavit řízení os ovladačem.
Upravil jsem vše dle návodu, ovladač funguje jen jsem měl obráceně osy Y a Z
Přidal jsem dle návodu toto:
setp input.1.abs-y-scale -127.5 (osa Y)
setp input.1.abs-ry-scale -127.5 (osa Z)
Bohužel s touto úpravou osa Y a Z jede stále na plnou rychlost.
Nefunguje žádné z tří tlačítek omezení rychlosti, osa X ale na tlačítka reaguje správně.
pokud tyto dva řádky zruším, omezení rychlosti funguje na všech osách.
Kde je chyba, poradí někdo..?
Soubory v příloze, jen jsem změnil koncovku z hal na txt
Předem moc děkuji
Nastaveni Gamepad po update linuxu na 2.9.3
- Přílohy
-
- joypad_jog_speed.txt
- (2.1 KiB) Staženo 74 x
-
- joypad_xyz.txt
- (1.84 KiB) Staženo 61 x
Len taka uvaha, pretoze mi uz vela krat pomohlo pri programovani v Pythone... Pouzivam k tomu Claude 3.5 Sonnet.
A poradil mi vyřešit to jiným způsobem. Místo použití záporného měřítka můžeš invertovat směr os pomocí samostatného invertoru. Uprav kód následovně:
```
# Přidejte tento řádek na začátek souboru (kde jsou loadrt příkazy)
loadrt invert names=invert_y,invert_z
# Přidejte tyto řádky do sekce kde jsou addf příkazy
addf invert_y servo-thread
addf invert_z servo-thread
# Nastavte kladné měřítko
setp input.1.abs-y-scale 127.5
setp input.1.abs-ry-scale 127.5
# A přidejte invertory do signálové cesty (přesné umístění závisí na zbytku vašeho HAL souboru)
net joy-y-pre <= input.1.abs-y
net joy-y-pre => invert_y.in
net joy-y <= invert_y.out => halui.axis.y.analog
# nebo halui.joint.1.analog podle vašeho nastavení
net joy-z-pre <= input.1.abs-ry
net joy-z-pre => invert_z.in
net joy-z <= invert_z.out => halui.axis.z.analog
# nebo halui.joint.2.analog podle vašeho nastavení
```
Toto řešení by mělo:
1. Zachovat správnou funkci omezení rychlosti pro všechny osy
2. Invertovat směr os Y a Z
3. Používat kladné měřítko, které by nemělo způsobovat problémy s řízením rychlosti
Podotykam, ze je to navrh nejakej chytrej apky a sam o tom bohuzial nemam ani paru.
A poradil mi vyřešit to jiným způsobem. Místo použití záporného měřítka můžeš invertovat směr os pomocí samostatného invertoru. Uprav kód následovně:
```
# Přidejte tento řádek na začátek souboru (kde jsou loadrt příkazy)
loadrt invert names=invert_y,invert_z
# Přidejte tyto řádky do sekce kde jsou addf příkazy
addf invert_y servo-thread
addf invert_z servo-thread
# Nastavte kladné měřítko
setp input.1.abs-y-scale 127.5
setp input.1.abs-ry-scale 127.5
# A přidejte invertory do signálové cesty (přesné umístění závisí na zbytku vašeho HAL souboru)
net joy-y-pre <= input.1.abs-y
net joy-y-pre => invert_y.in
net joy-y <= invert_y.out => halui.axis.y.analog
# nebo halui.joint.1.analog podle vašeho nastavení
net joy-z-pre <= input.1.abs-ry
net joy-z-pre => invert_z.in
net joy-z <= invert_z.out => halui.axis.z.analog
# nebo halui.joint.2.analog podle vašeho nastavení
```
Toto řešení by mělo:
1. Zachovat správnou funkci omezení rychlosti pro všechny osy
2. Invertovat směr os Y a Z
3. Používat kladné měřítko, které by nemělo způsobovat problémy s řízením rychlosti
Podotykam, ze je to navrh nejakej chytrej apky a sam o tom bohuzial nemam ani paru.
Rad kreslim v 3D. Ked je to zaujimave a nieco nove sa naucim, tak aj zadarmo.