utilisation de pi4j

Notre framboise peut faire tourner les applications Java. Comment faire, comment développer ces applications, et les failles de sécurité de java ? Parlez en ici...

Modérateur : Francois

Répondre
danaos
Messages : 5
Enregistré le : ven. 18 déc. 2015 23:21

utilisation de pi4j

Message par danaos » ven. 18 déc. 2015 23:32

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

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Message par vague nerd » lun. 4 janv. 2016 09:52

Bonjour.
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

danaos
Messages : 5
Enregistré le : ven. 18 déc. 2015 23:21

Re: utilisation de pi4j

Message par danaos » mar. 12 janv. 2016 19:38

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

danaos
Messages : 5
Enregistré le : ven. 18 déc. 2015 23:21

Re: utilisation de pi4j

Message par danaos » ven. 15 janv. 2016 17:46

voici l'erreur que j'obtiens lors de la création de l'archive java :

Code : Tout sélectionner

java:242: error: cannot find symbol
			pin.pwmSetRange();
			   ^
  symbol:   method pwmSetRange(int)
  location: variable pin of type GpioPinPwmOutput
1 error
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

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;
		}
}
voilà en gros la question c'est comment faire l'équivalent en java de ce code python et quelle librairie utiliser ?

Code : Tout sélectionner

GPIO.setup(port,GPIO.OUT)
pwm=GPIO.PWM(port,frequence) //Ex: 11,50
pwm.start()
pwm.ChangeDutyCycle()
pwm.stop()
je ne sais pas comment mieux décrire ma situation, help

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Message par vague nerd » ven. 15 janv. 2016 23:13

Bonjour.

Pour ma part, j'ai eu besoin des librairies suivantes.
  • pi4j-core.jar
    pi4j-device.jar
    pi4j-gpio-extension.jar
    pi4j-service.jar
Concernant votre message d'erreur, il dit plutôt que la classe GpioPinPwmOutput n'a pas de méthode pwmSetRange().
Voulliez-vous taper setPwm() ?
pin.pwmSetRange(cycle)n python pwm.ChangeDutyCycle()
Cette ligne semble la contraction de deux lignes... un copier/coller raté ?

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 :
Image
Pour center le servo ;
Image
Pour mettre le servo au max :
Image
Cdt.

PS : je me suis permis d'éditer votre post pour plus de facilité de lecture.
Cordialement,

Vague Nerd

danaos
Messages : 5
Enregistré le : ven. 18 déc. 2015 23:21

Re: utilisation de pi4j

Message par danaos » ven. 15 janv. 2016 23:19

merci pour cette réponse je vais tester de nouveau

danaos
Messages : 5
Enregistré le : ven. 18 déc. 2015 23:21

Re: utilisation de pi4j

Message par danaos » ven. 15 janv. 2016 23:25

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.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Message par vague nerd » ven. 15 janv. 2016 23:40

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.
Cordialement,

Vague Nerd

Répondre

Retourner vers « Java »