utilisation de pi4j
Modérateur : Francois
utilisation de pi4j
Bonjour,
quelqu'un utilise il pi4j car j'essaye de moduler un signal pwm et j'ai un tats d'erreur de compilation ??
voici mon test :
public static GpioController gGPIOController = GpioFactory.getInstance();
GpioPinPwmOutput pin; la ok
pin = gGPIOController.provisionPwmOutputPin(getPin(nGPIO)); la ok
utilisation de pin.pwmSetMode et pin.setPwm pas ok ??
voilà l'erreur :
error: cannot find symbol pin.pwmSetMode(2);
symbol: method pwmSetMode(int)
location: variable pin of type GpioPinPwmOutput
quelqu'un peut il m'aider
quelqu'un utilise il pi4j car j'essaye de moduler un signal pwm et j'ai un tats d'erreur de compilation ??
voici mon test :
public static GpioController gGPIOController = GpioFactory.getInstance();
GpioPinPwmOutput pin; la ok
pin = gGPIOController.provisionPwmOutputPin(getPin(nGPIO)); la ok
utilisation de pin.pwmSetMode et pin.setPwm pas ok ??
voilà l'erreur :
error: cannot find symbol pin.pwmSetMode(2);
symbol: method pwmSetMode(int)
location: variable pin of type GpioPinPwmOutput
quelqu'un peut il m'aider
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: utilisation de pi4j
Bonjour.
Vous pouvez donner la portion de code complète, et la sortie d'erreur complète correspondante ?
Je galère pour comprendre...
Cdt.
Vous pouvez donner la portion de code complète, et la sortie d'erreur complète correspondante ?
Je galère pour comprendre...
Cdt.
Cordialement,
Vague Nerd
Vague Nerd
Re: utilisation de pi4j
Bonjour,
tout d'abord merci pour votre réponse je me sens moins seul.
en gros j'essaye de fournir un signal pwm pour contrôler un servo avec pi4j et a mon avis je n'utilise pas la bonne syntaxe.
en python j'y arrive.
un petit exemple serais le bienvenu.
d'avance merci
tout d'abord merci pour votre réponse je me sens moins seul.
en gros j'essaye de fournir un signal pwm pour contrôler un servo avec pi4j et a mon avis je n'utilise pas la bonne syntaxe.
en python j'y arrive.
un petit exemple serais le bienvenu.
d'avance merci
Re: utilisation de pi4j
voici l'erreur que j'obtiens lors de la création de l'archive java :
a mon avis il me manque une librairie ou quelque chose du genre, j'utilise la librairie pi4j-core.jar
peut etre que les fonction pwmSetMode, pwmSetRange ne sont pas define
la portion de code c'est un test qui fait quelques lignes que je ne garantis pas
voilà en gros la question c'est comment faire l'équivalent en java de ce code python et quelle librairie utiliser ?
je ne sais pas comment mieux décrire ma situation, help
Code : Tout sélectionner
java:242: error: cannot find symbol
pin.pwmSetRange();
^
symbol: method pwmSetRange(int)
location: variable pin of type GpioPinPwmOutput
1 error
peut etre que les fonction pwmSetMode, pwmSetRange ne sont pas define
la portion de code c'est un test qui fait quelques lignes que je ne garantis pas
Code : Tout sélectionner
public static boolean GPIOPwm(int nGPIO,int cycle){
GpioPinPwmOutput pin;
int DC=50;
try{
pin = gGPIOController.provisionPwmOutputPin(getPin(nGPIO));
if(pin != null){
pin.setPwm(DC); //en python GPIO.PWM(port, freq)
pin.pwmSetRange(cycle)n python pwm.ChangeDutyCycle()
gGPIOController.unprovisionPin(pin);
return true;
}
else{
return false;
}
}
Code : Tout sélectionner
GPIO.setup(port,GPIO.OUT)
pwm=GPIO.PWM(port,frequence) //Ex: 11,50
pwm.start()
pwm.ChangeDutyCycle()
pwm.stop()
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: utilisation de pi4j
Bonjour.
Pour ma part, j'ai eu besoin des librairies suivantes.
Voulliez-vous taper setPwm() ?
D'après ce que me dit google, il ne faut pas faire du PWM pour bouger une servo, mais du PPM.
Le PPM à une durée de cycle de 20 ms, et c'est la taille de l'état haut qui définit l'angle du servo...
Ok je suis pas clair. Pour mettre le servo au mini, il faut envoyer :
Pour center le servo ;
Pour mettre le servo au max :
Cdt.
PS : je me suis permis d'éditer votre post pour plus de facilité de lecture.
Pour ma part, j'ai eu besoin des librairies suivantes.
- pi4j-core.jar
pi4j-device.jar
pi4j-gpio-extension.jar
pi4j-service.jar
Voulliez-vous taper setPwm() ?
Cette ligne semble la contraction de deux lignes... un copier/coller raté ?pin.pwmSetRange(cycle)n python pwm.ChangeDutyCycle()
D'après ce que me dit google, il ne faut pas faire du PWM pour bouger une servo, mais du PPM.
Le PPM à une durée de cycle de 20 ms, et c'est la taille de l'état haut qui définit l'angle du servo...
Ok je suis pas clair. Pour mettre le servo au mini, il faut envoyer :
Pour center le servo ;
Pour mettre le servo au max :
Cdt.
PS : je me suis permis d'éditer votre post pour plus de facilité de lecture.
Cordialement,
Vague Nerd
Vague Nerd
Re: utilisation de pi4j
merci pour cette réponse je vais tester de nouveau
Re: utilisation de pi4j
concernant pwmSetRange().
quel est l'équivalent du ChangeDutyCycle de python en pi4j il faut donner une fréquence de base j'imagine que c'est setPwm()comme par exemple 50hz. et une longueur de pulse comme par exemple 10% ou 1 ms. et là je cale.
quel est l'équivalent du ChangeDutyCycle de python en pi4j il faut donner une fréquence de base j'imagine que c'est setPwm()comme par exemple 50hz. et une longueur de pulse comme par exemple 10% ou 1 ms. et là je cale.
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: utilisation de pi4j
Pour que le pwm soit du ppm, il faut effectivement fixer la longueur de cycle.
Par contre, je pense que c'est setPwm() qui doit fixer la longueur du HIGH (j'imagine...)
Mais avez vous essayé de ne faire que setPwm() ? La taille de cycle par défaut est peut-etre la bonne !
J'arrive pas à trouver d'exemple... c'est agaçant !
Cdt.
Par contre, je pense que c'est setPwm() qui doit fixer la longueur du HIGH (j'imagine...)
Mais avez vous essayé de ne faire que setPwm() ? La taille de cycle par défaut est peut-etre la bonne !
J'arrive pas à trouver d'exemple... c'est agaçant !
Cdt.
Cordialement,
Vague Nerd
Vague Nerd